aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/android.scm
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@reproducible-builds.org>2019-09-19 16:43:47 -0700
committerVagrant Cascadian <vagrant@debian.org>2019-09-19 16:45:34 -0700
commit68620d62f5cd49d6455c351f3a68e3c41dc6ce22 (patch)
tree19f13c26b5d6ff895075fc7c21cb52b1234ed947 /gnu/packages/android.scm
parentb7f1a1aafd806fadee068a026964cde6521a5315 (diff)
downloadguix-68620d62f5cd49d6455c351f3a68e3c41dc6ce22.tar
guix-68620d62f5cd49d6455c351f3a68e3c41dc6ce22.tar.gz
gnu: Add enjarify.
* gnu/packages/android (enjarify): New variable. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Add enjarify. [arguments]: add enjarify to add-known-tools phase. * gnu/packages/patches/enjarify-setup-py.patch: New file. * gnu/local.mk: Add enjarify-setup-py.patch.
Diffstat (limited to 'gnu/packages/android.scm')
-rw-r--r--gnu/packages/android.scm58
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 56d5edaa75..8eb5182f51 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -39,6 +39,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages docker)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python)
@@ -934,3 +935,60 @@ these same tools to create your own additional or alternative repository for
publishing, or to assist in creating, testing and submitting metadata to the
main repository.")
(license license:agpl3+)))
+
+(define-public enjarify
+ (package
+ (name "enjarify")
+ (version "1.0.3")
+ (home-page "https://github.com/Storyyeller/enjarify")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (patches
+ (search-patches "enjarify-setup-py.patch"))
+ (sha256
+ (base32
+ "1nam7h1g4f1h6jla4qcjjagnyvd24dv6d5445w04q8hx07nxdapk"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enjarify-wrapper-inherit-pythonpath
+ ;; enjarify sets PYTHONPATH from a shell script, overwriting
+ ;; PYTHONPATH set from guix. Comment out this line.
+ (lambda _
+ (substitute* "enjarify.sh"
+ (("export PYTHONPATH") "# export PYTHONPATH"))
+ #t))
+ (add-before 'check 'fixup-expected-test-results
+ ;; Upstream adjusted this test in commit:
+ ;; 3ae884a6485af82d300515813f537685b08dd800
+ (lambda _
+ (substitute* "tests/test2/expected.txt"
+ (("^20") "0"))
+ #t))
+ (add-before 'check 'drop-java-xss-argument
+ ;; Upstream removed this argument in order to support 32-bit
+ ;; architectures. commit: 4be0111d879aa95fdc0d9f24fe529f8c664d4093
+ (lambda _
+ (substitute* "enjarify/runtests.py"
+ (("java -Xss515m") "java "))
+ #t))
+ (add-after 'install 'install-enjarify-wrapper
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin/"))
+ (copy-file "enjarify.sh" (string-append out "/bin/enjarify"))
+ #t))))))
+ (native-inputs `(("openjdk:jdk" ,openjdk12 "jdk")))
+ (synopsis "Translate Dalvik bytecode to equivalent Java bytecode")
+ (description "Android applications are Java programs that run on a
+customized virtual machine, which is part of the Android operating system, the
+Dalvik VM. Their bytecode differs from the bytecode of normal Java
+applications. Enjarify can translate the Dalvik bytecode back to equivalent
+Java bytecode, which simplifies the analysis of Android applications.")
+ (license license:asl2.0)))