From 2cac8891510533338f6214fbd5ab9c2f6204e856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Sun, 7 Jan 2018 22:44:12 +0100 Subject: gnu: java-aqute-bnd-annotation: Update to 3.5.0. * gnu/packages/java.scm (java-aqute-bnd-annotation): Update to 3.5.0. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 5771366f66..b81cf67374 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6914,7 +6914,7 @@ package contains utilities for obtaining services via the Java SE 6 (define-public java-aqute-bnd-annotation (package (name "java-aqute-bnd-annotation") - (version "3.4.0") + (version "3.5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/bndtools/bnd/archive/" @@ -6922,7 +6922,7 @@ package contains utilities for obtaining services via the Java SE 6 (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "09vgb6axikbz66zi9falijbnzh1qnp9ysfns123dmzdb01cbza9q")))) + "1ggyiq0as0f6cz333a0dh98j72kmvv5pf2s47v9554yh905lfqdl")))) (build-system ant-build-system) (arguments `(#:jar-name "java-aqute-bnd-annotation.jar" -- cgit v1.2.3 From 15b8b5deca4418377923ef7d9fbdce1ccde42a54 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 24 Mar 2018 22:55:48 +0100 Subject: gnu: sablevm-classpath: Remove unnecessary inputs. * gnu/packages/java.scm (sablevm-classpath)[inputs]: Remove. --- gnu/packages/java.scm | 3 --- 1 file changed, 3 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b81cf67374..317aa02328 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -139,9 +139,6 @@ and binary format defined in The Java Virtual Machine Specification.") "--disable-dssi" "--disable-alsa" "--disable-gjdoc"))) - (inputs - `(("gconf" ,gconf) - ("gtk+" ,gtk+-2))) (native-inputs `(("jikes" ,jikes) ("fastjar" ,fastjar) -- cgit v1.2.3 From f15e2ee4e833845d429e7736aa9a76ad88321cc1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 24 Mar 2018 22:56:39 +0100 Subject: gnu: sablevm: Use a different GC implementation. This is an attempt to fix a segfault when building ant-bootstrap. * gnu/packages/java.scm (sablevm)[arguments]: Use gencopy GC implementation. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 317aa02328..fafbb22954 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -167,7 +167,7 @@ This package provides the classpath library.") (build-system gnu-build-system) (arguments `(#:configure-flags - (list "--with-threading=switch" ; slower but prevents segfault + (list "--with-gc=gencopy" ; this seems to prevent a segfault "--with-internal-libffi=no" "--with-internal-libpopt=no") #:phases -- cgit v1.2.3 From 4d4a5698ec599f3a1aa574f579dffa23915ab52d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 00:14:30 +0100 Subject: gnu: sablevm: Do not change GC, just disable stripping. * gnu/packages/java.scm (sablevm)[arguments]: Disable stripping; do not play with GC settings as they have no reliable effect on build success. --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fafbb22954..f226a69846 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -167,9 +167,9 @@ This package provides the classpath library.") (build-system gnu-build-system) (arguments `(#:configure-flags - (list "--with-gc=gencopy" ; this seems to prevent a segfault - "--with-internal-libffi=no" + (list "--with-internal-libffi=no" "--with-internal-libpopt=no") + #:strip-binaries? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-timestamp-for-reproducibility -- cgit v1.2.3 From 45f762ee968ff684107fb08f407bbea5e5852449 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 19:27:22 +0200 Subject: gnu: Add classpath-bootstrap. * gnu/packages/java.scm (classpath-bootstrap): New variable. --- gnu/packages/java.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f226a69846..882a8b462e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -215,6 +215,49 @@ etc.). SableVM is no longer maintained. This package provides the virtual machine.") (license license:lgpl2.1+))) +;; This is the last version of GNU Classpath that can be built without ECJ. +(define classpath-bootstrap + (package + (name "classpath") + (version "0.93") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/classpath/classpath-" + version ".tar.gz")) + (sha256 + (base32 + "0i99wf9xd3hw1sj2sazychb9prx8nadxh2clgvk3zlmb28v0jbfz")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "JAVAC=" + (assoc-ref %build-inputs "jikes") + "/bin/jikes") + "--disable-Werror" + "--disable-gmp" + "--disable-gtk-peer" + "--disable-gconf-peer" + "--disable-plugin" + "--disable-dssi" + "--disable-alsa" + "--disable-gjdoc") + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-data + (lambda _ (zero? (system* "make" "install-data"))))))) + (native-inputs + `(("jikes" ,jikes) + ("fastjar" ,fastjar) + ("libltdl" ,libltdl) + ("pkg-config" ,pkg-config))) + (home-page "https://www.gnu.org/software/classpath/") + (synopsis "Essential libraries for Java") + (description "GNU Classpath is a project to create core class libraries +for use with runtimes, compilers and tools for the Java programming +language.") + ;; GPLv2 or later, with special linking exception. + (license license:gpl2+))) + (define ant-bootstrap (package (name "ant-bootstrap") -- cgit v1.2.3 From 063629aa3ef21e216357430ab1601fc58d0f4daf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 19:27:57 +0200 Subject: gnu: Add jamvm-1-bootstrap. * gnu/packages/java.scm (jamvm-1-bootstrap): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 882a8b462e..a8ba91127f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -258,6 +258,37 @@ language.") ;; GPLv2 or later, with special linking exception. (license license:gpl2+))) +;; This is the last version of JamVM that works with a version of GNU +;; classpath that does not require ECJ. +(define jamvm-1-bootstrap + (package + (name "jamvm") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jamvm/jamvm/" + "JamVM%20" version "/jamvm-" + version ".tar.gz")) + (sha256 + (base32 + "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-classpath-install-dir=" + (assoc-ref %build-inputs "classpath"))))) + (inputs + `(("classpath" ,classpath-bootstrap) + ("jikes" ,jikes) + ("zlib" ,zlib))) + (home-page "http://jamvm.sourceforge.net/") + (synopsis "Small Java Virtual Machine") + (description "JamVM is a Java Virtual Machine conforming to the JVM +specification edition 2 (blue book). It is extremely small. However, unlike +other small VMs it supports the full spec, including object finalisation and +JNI.") + (license license:gpl2+))) + (define ant-bootstrap (package (name "ant-bootstrap") -- cgit v1.2.3 From aa432388da01ebf3f7262e958714fa8295a9df78 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 19:28:19 +0200 Subject: gnu: ant-bootstrap: Build with JamVM 1.5.1. * gnu/packages/java.scm (ant-bootstrap)[native-inputs]: Replace sablevm with jamvm-1-bootstrap. [arguments]: Adjust accordingly. --- gnu/packages/java.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a8ba91127f..c039791c87 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -312,15 +312,16 @@ JNI.") (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) - (setenv "JAVA_HOME" - (string-append (assoc-ref inputs "sablevm") - "/lib/sablevm")) + (setenv "JAVA_HOME" (assoc-ref inputs "jamvm")) (setenv "JAVACMD" - (string-append (assoc-ref inputs "sablevm") - "/bin/java-sablevm")) + (string-append (assoc-ref inputs "jamvm") + "/bin/jamvm")) (setenv "JAVAC" - (string-append (assoc-ref inputs "sablevm") - "/bin/javac-sablevm")) + (string-append (assoc-ref inputs "jikes") + "/bin/jikes")) + (setenv "CLASSPATH" + (string-append (assoc-ref inputs "jamvm") + "/lib/rt.jar")) ;; Use jikes instead of javac for tags in build.xml (setenv "ANT_OPTS" "-Dbuild.compiler=jikes") @@ -339,7 +340,7 @@ JNI.") (delete 'install)))) (native-inputs `(("jikes" ,jikes) - ("sablevm" ,sablevm))) + ("jamvm" ,jamvm-1-bootstrap))) (home-page "http://ant.apache.org") (synopsis "Build tool for Java") (description -- cgit v1.2.3 From ff4d9fdf8cca08e719a6330b0b25762bc8ccef6f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 19:33:48 +0200 Subject: gnu: ant-bootstrap: Update to 1.8.4. * gnu/packages/java.scm (ant-bootstrap): Update to 1.8.4. --- gnu/packages/java.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c039791c87..e2b2405efa 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -294,8 +294,8 @@ JNI.") (name "ant-bootstrap") ;; The 1.10.x series requires Java 8. 1.9.0 and later use generics, which ;; are not supported. The 1.8.x series is the last to use only features - ;; supported by Jikes, but it cannot seem to be built with sablevm. - (version "1.7.1") + ;; supported by Jikes. + (version "1.8.4") (source (origin (method url-fetch) (uri (string-append "http://archive.apache.org/dist/" @@ -303,7 +303,7 @@ JNI.") version "-src.tar.bz2")) (sha256 (base32 - "19pvqvgkxgpgsqm4lvbki5sm0z84kxmykdqicvfad47gc1r9mi2d")))) + "1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit v1.2.3 From 6c775dc644958c6844048b02ae7f37890b8979c5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 19:34:13 +0200 Subject: gnu: ecj-bootstrap: Build with JamVM 1.5.1 and jikes. * gnu/packages/java.scm (ecj-bootstrap)[native-inputs]: Replace "sablevm" with "jikes" and "jamvm-1-bootstrap". [arguments]: Adjust accordingly. --- gnu/packages/java.scm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e2b2405efa..ad79e5c67a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -379,9 +379,12 @@ build process and its dependencies, whereas Make uses Makefile format.") (lambda* (#:key inputs #:allow-other-keys) (setenv "CLASSPATH" (string-join - (find-files (string-append (assoc-ref inputs "ant-bootstrap") - "/lib") - "\\.jar$") + (cons (string-append (assoc-ref inputs "jamvm") + "/lib/rt.jar") + (find-files (string-append + (assoc-ref inputs "ant-bootstrap") + "/lib") + "\\.jar$")) ":")) #t)) (replace 'build @@ -396,7 +399,7 @@ build process and its dependencies, whereas Make uses Makefile format.") Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) ;; Compile it all! - (and (zero? (apply system* "javac-sablevm" + (and (zero? (apply system* "jikes" (find-files "." "\\.java$"))) (zero? (system* "fastjar" "cvfm" "ecj-bootstrap.jar" "manifest" "."))))) @@ -410,7 +413,8 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) (native-inputs `(("ant-bootstrap" ,ant-bootstrap) ("unzip" ,unzip) - ("sablevm" ,sablevm) + ("jikes" ,jikes) + ("jamvm" ,jamvm-1-bootstrap) ("fastjar" ,fastjar))) (home-page "https://eclipse.org") (synopsis "Eclipse Java development tools core batch compiler") -- cgit v1.2.3 From c4f06c1164b2ce59fc601ad3f9ca86a4bdec96d4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 20:54:15 +0200 Subject: gnu: ecj-javac-wrapper: Do not use sablevm. * gnu/packages/java.scm (ecj-javac-wrapper)[native-inputs]: Remove sablevm and sablevm-classpath; add jamvm-1-bootstrap and classpath-bootstrap. [arguments]: Simplify builder now that only jamvm is used. --- gnu/packages/java.scm | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ad79e5c67a..11a6480584 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -431,7 +431,7 @@ requirement for all GNU Classpath releases after version 0.93.") (arguments `(#:modules ((guix build utils)) #:builder - (let ((backend 'sablevm)) + (begin (use-modules (guix build utils)) (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) (target (string-append bin "/javac")) @@ -439,24 +439,12 @@ requirement for all GNU Classpath releases after version 0.93.") "/bin/guile")) (ecj (string-append (assoc-ref %build-inputs "ecj-bootstrap") "/share/java/ecj-bootstrap.jar")) - (java (case backend - ((sablevm) - (string-append (assoc-ref %build-inputs "sablevm") - "/lib/sablevm/bin/java")) - ((jamvm) - (string-append (assoc-ref %build-inputs "jamvm") - "/bin/jamvm")))) - (bootcp (case backend - ((sablevm) - (let ((jvmlib (string-append - (assoc-ref %build-inputs "sablevm-classpath") - "/lib/sablevm"))) - (string-append jvmlib "/jre/lib/rt.jar"))) - ((jamvm) - (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") - "/share/classpath"))) - (string-append jvmlib "/lib/glibj.zip:" - jvmlib "/lib/tools.zip")))))) + (java (string-append (assoc-ref %build-inputs "jamvm") + "/bin/jamvm")) + (bootcp (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") + "/share/classpath"))) + (string-append jvmlib "/lib/glibj.zip:" + jvmlib "/lib/tools.zip")))) (mkdir-p bin) (with-output-to-file target (lambda _ @@ -475,10 +463,11 @@ requirement for all GNU Classpath releases after version 0.93.") (define (main args) (let ((classpath (getenv "CLASSPATH"))) (setenv "CLASSPATH" - (string-append ,ecj - (if classpath - (string-append ":" classpath) - "")))) + (string-join (list ,ecj + ,(string-append (assoc-ref %build-inputs "jamvm") + "/lib/rt.jar") + (or classpath "")) + ":"))) (receive (vm-args other-args) ;; Separate VM arguments from arguments to ECJ. (partition (cut string-prefix? "-J" <>) @@ -502,8 +491,8 @@ requirement for all GNU Classpath releases after version 0.93.") (native-inputs `(("guile" ,guile-2.2) ("ecj-bootstrap" ,ecj-bootstrap) - ("sablevm" ,sablevm) - ("sablevm-classpath" ,sablevm-classpath))) + ("jamvm" ,jamvm-1-bootstrap) + ("classpath" ,classpath-bootstrap))) (description "This package provides a wrapper around the @dfn{Eclipse compiler for Java} (ecj) with a command line interface that is compatible with the standard javac executable."))) -- cgit v1.2.3 From 8778da03c8e82885a89faae13c4bd52a53afefd9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 21:13:03 +0200 Subject: gnu: Replace classpath-on-sablevm with classpath-0.99. * gnu/packages/java.scm (classpath-on-sablevm): Replace with... (classpath-0.99): ...this new variable. (classpath-devel): Inherit from classpath-0.99. --- gnu/packages/java.scm | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 11a6480584..f3fe2b2d55 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -497,14 +497,11 @@ requirement for all GNU Classpath releases after version 0.93.") compiler for Java} (ecj) with a command line interface that is compatible with the standard javac executable."))) -;; Note: All the tool wrappers (e.g. for javah, javac, etc) fail with -;; java.lang.UnsupportedClassVersionError. They simply won't run on the old -;; sablevm. We use Classpath 0.99 to build JamVM, on which the Classpath -;; tools do run. Using these Classpath tools on JamVM we can then build the -;; development version of GNU Classpath. -(define classpath-on-sablevm - (package - (name "classpath") +;; The classpath-bootstrap was built without a virtual machine, so it does not +;; provide a wrapper for javah. We cannot build the development version of +;; Classpath without javah. +(define classpath-0.99 + (package (inherit classpath-bootstrap) (version "0.99") (source (origin (method url-fetch) @@ -513,7 +510,6 @@ the standard javac executable."))) (sha256 (base32 "1j7cby4k66f1nvckm48xcmh352b1d1b33qk7l6hi7dp9i9zjjagr")))) - (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-ecj-jar=" @@ -523,8 +519,8 @@ the standard javac executable."))) (assoc-ref %build-inputs "ecj-javac-wrapper") "/bin/javac") (string-append "JAVA=" - (assoc-ref %build-inputs "sablevm") - "/bin/java-sablevm") + (assoc-ref %build-inputs "jamvm") + "/bin/jamvm") "GCJ_JAVAC_TRUE=no" "ac_cv_prog_java_works=yes" ; trust me "--disable-Werror" @@ -543,17 +539,10 @@ the standard javac executable."))) `(("ecj-bootstrap" ,ecj-bootstrap) ("ecj-javac-wrapper" ,ecj-javac-wrapper) ("fastjar" ,fastjar) - ("sablevm" ,sablevm) - ("sablevm-classpath" ,sablevm-classpath) + ("jamvm" ,jamvm-1-bootstrap) + ("classpath" ,classpath-bootstrap) ("libltdl" ,libltdl) - ("pkg-config" ,pkg-config))) - (home-page "https://www.gnu.org/software/classpath/") - (synopsis "Essential libraries for Java") - (description "GNU Classpath is a project to create core class libraries -for use with runtimes, compilers and tools for the Java programming -language.") - ;; GPLv2 or later, with special linking exception. - (license license:gpl2+))) + ("pkg-config" ,pkg-config))))) (define jamvm-bootstrap (package @@ -720,7 +709,7 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) (define-public classpath-devel (let ((commit "e7c13ee0cf2005206fbec0eca677f8cf66d5a103") (revision "1")) - (package (inherit classpath-on-sablevm) + (package (inherit classpath-bootstrap) (version (string-append "0.99-" revision "." (string-take commit 9))) (source (origin (method git-fetch) -- cgit v1.2.3 From 58d2b13544e3b10fc88df8508f978c341794b6d0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 21:14:06 +0200 Subject: gnu: Remove jamvm-bootstrap. * gnu/packages/java.scm (jamvm-bootstrap): Remove variable. (classpath-devel)[native-inputs]: Use "jamvm-1-bootstrap" instead of "jamvm-bootstrap". (jamvm): Inherit from jamvm-1-bootstrap. --- gnu/packages/java.scm | 49 +++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f3fe2b2d55..1ee270b83c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -544,35 +544,6 @@ the standard javac executable."))) ("libltdl" ,libltdl) ("pkg-config" ,pkg-config))))) -(define jamvm-bootstrap - (package - (name "jamvm") - (version "2.0.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/jamvm/jamvm/" - "JamVM%20" version "/jamvm-" - version ".tar.gz")) - (sha256 - (base32 - "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags - (list (string-append "--with-classpath-install-dir=" - (assoc-ref %build-inputs "classpath"))))) - (inputs - `(("classpath" ,classpath-on-sablevm) - ("ecj-javac-wrapper" ,ecj-javac-wrapper) - ("zlib" ,zlib))) - (home-page "http://jamvm.sourceforge.net/") - (synopsis "Small Java Virtual Machine") - (description "JamVM is a Java Virtual Machine conforming to the JVM -specification edition 2 (blue book). It is extremely small. However, unlike -other small VMs it supports the full spec, including object finalisation and -JNI.") - (license license:gpl2+))) - ;; We need this because the tools provided by the latest release of GNU ;; Classpath don't actually work with sablevm. (define classpath-jamvm-wrappers @@ -768,12 +739,26 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("ecj-bootstrap" ,ecj-bootstrap) ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) ("fastjar" ,fastjar) - ("jamvm" ,jamvm-bootstrap) + ("jamvm" ,jamvm-1-bootstrap) ("libltdl" ,libltdl) ("pkg-config" ,pkg-config)))))) -(define-public jamvm - (package (inherit jamvm-bootstrap) +(define jamvm + (package (inherit jamvm-1-bootstrap) + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jamvm/jamvm/" + "JamVM%20" version "/jamvm-" + version ".tar.gz")) + (sha256 + (base32 + "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-classpath-install-dir=" + (assoc-ref %build-inputs "classpath"))))) (inputs `(("classpath" ,classpath-devel) ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) -- cgit v1.2.3 From c98d7a66cc98b950b48bcfd313dce5d20ecb6bc8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 21:14:44 +0200 Subject: gnu: classpath-jamvm-wrappers: Use classpath-0.99. * gnu/packages/java.scm (classpath-jamvm-wrappers): Inherit from classpath-0.99. [native-inputs]: Replace "jamvm-bootstrap" with "jamvm-1-bootstrap"; replace "classpath-on-sablevm" with "classpath-0.99". --- gnu/packages/java.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1ee270b83c..1cc11f88e8 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -544,10 +544,10 @@ the standard javac executable."))) ("libltdl" ,libltdl) ("pkg-config" ,pkg-config))))) -;; We need this because the tools provided by the latest release of GNU -;; Classpath don't actually work with sablevm. +;; We need this because classpath-bootstrap does not provide all of the tools +;; we need to build classpath-devel. (define classpath-jamvm-wrappers - (package (inherit classpath-on-sablevm) + (package (inherit classpath-0.99) (name "classpath-jamvm-wrappers") (source #f) (build-system trivial-build-system) @@ -581,8 +581,8 @@ gnu.classpath.tools.~a.~a $@" #t)))) (native-inputs `(("bash" ,bash) - ("jamvm" ,jamvm-bootstrap) - ("classpath" ,classpath-on-sablevm))) + ("jamvm" ,jamvm-1-bootstrap) + ("classpath" ,classpath-0.99))) (inputs '()) (synopsis "Executables from GNU Classpath") (description "This package provides wrappers around the tools provided by -- cgit v1.2.3 From b5a0d427086b642d805c25a7092a3c90041e3e78 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 21:18:02 +0200 Subject: gnu: Remove ecj-javac-on-jamvm-wrapper. * gnu/packages/java.scm (ecj-javac-on-jamvm-wrapper): Remove variable. (classpath-devel)[native-inputs]: Use ecj-javac-wrapper instead. (jamvm)[inputs]: Use ecj-javac-wrapper instead. (ecj-javac-on-jamvm-wrapper-final): Rename... (ecj-javac-wrapper-final): ...to this. (icedtea-6)[native-inputs]: Use "ecj-javac-wrapper-final" instead of 'ecj-javac-on-jamvm-wrapper-final". [arguments]: Use jamvm's rt.jar. --- gnu/packages/java.scm | 108 ++++++-------------------------------------------- 1 file changed, 12 insertions(+), 96 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1cc11f88e8..d2f14c0264 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -589,92 +589,6 @@ gnu.classpath.tools.~a.~a $@" the GNU Classpath library. They are executed by the JamVM virtual machine."))) -(define ecj-javac-on-jamvm-wrapper - (package (inherit ecj-javac-wrapper) - (name "ecj-javac-on-jamvm-wrapper") - (arguments - `(#:modules ((guix build utils)) - #:builder - ;; TODO: This builder is exactly the same as in ecj-javac-wrapper, - ;; except that the backend is 'jamvm here. Can we reuse the same - ;; builder somehow? - (let ((backend 'jamvm)) - (use-modules (guix build utils)) - (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) - (target (string-append bin "/javac")) - (guile (string-append (assoc-ref %build-inputs "guile") - "/bin/guile")) - (ecj (string-append (assoc-ref %build-inputs "ecj-bootstrap") - "/share/java/ecj-bootstrap.jar")) - (java (case backend - ((sablevm) - (string-append (assoc-ref %build-inputs "sablevm") - "/lib/sablevm/bin/java")) - ((jamvm) - (string-append (assoc-ref %build-inputs "jamvm") - "/bin/jamvm")))) - (bootcp (case backend - ((sablevm) - (let ((jvmlib (string-append - (assoc-ref %build-inputs "sablevm-classpath") - "/lib/sablevm"))) - (string-append jvmlib "/jre/lib/rt.jar"))) - ((jamvm) - (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") - "/share/classpath"))) - (string-append jvmlib "/lib/glibj.zip:" - jvmlib "/lib/tools.zip")))))) - (mkdir-p bin) - (with-output-to-file target - (lambda _ - (format #t "#!~a --no-auto-compile\n!#\n" guile) - (write - `(begin (use-modules (ice-9 match) - (ice-9 receive) - (ice-9 hash-table) - (srfi srfi-1) - (srfi srfi-26)) - (define defaults - '(("-bootclasspath" ,bootcp) - ("-source" "1.5") - ("-target" "1.5") - ("-cp" "."))) - (define (main args) - (let ((classpath (getenv "CLASSPATH"))) - (setenv "CLASSPATH" - (string-append ,ecj - (if classpath - (string-append ":" classpath) - "")))) - (receive (vm-args other-args) - ;; Separate VM arguments from arguments to ECJ. - (partition (cut string-prefix? "-J" <>) - (fold (lambda (default acc) - (if (member (first default) acc) - acc (append default acc))) - args defaults)) - (apply system* ,java - (append - ;; Remove "-J" prefix - (map (cut string-drop <> 2) vm-args) - '("org.eclipse.jdt.internal.compiler.batch.Main") - (cons "-nowarn" other-args))))) - ;; Entry point - (let ((args (cdr (command-line)))) - (if (null? args) - (format (current-error-port) "javac: no arguments given!\n") - (main args))))))) - (chmod target #o755) - #t)))) - (native-inputs - `(("guile" ,guile-2.2) - ("ecj-bootstrap" ,ecj-bootstrap) - ("jamvm" ,jamvm-bootstrap) - ("classpath" ,classpath-on-sablevm))) - (description "This package provides a wrapper around the @dfn{Eclipse -compiler for Java} (ecj) with a command line interface that is compatible with -the standard javac executable. The tool runs on JamVM instead of SableVM."))) - ;; The last release of GNU Classpath is 0.99 and it happened in 2012. Since ;; then Classpath has gained much more support for Java 1.6. (define-public classpath-devel @@ -737,7 +651,7 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("texinfo" ,texinfo) ("classpath-jamvm-wrappers" ,classpath-jamvm-wrappers) ; for javah ("ecj-bootstrap" ,ecj-bootstrap) - ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) + ("ecj-javac-wrapper" ,ecj-javac-wrapper) ("fastjar" ,fastjar) ("jamvm" ,jamvm-1-bootstrap) ("libltdl" ,libltdl) @@ -761,11 +675,11 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) (assoc-ref %build-inputs "classpath"))))) (inputs `(("classpath" ,classpath-devel) - ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) + ("ecj-javac-wrapper" ,ecj-javac-wrapper) ("zlib" ,zlib))))) -(define ecj-javac-on-jamvm-wrapper-final - (package (inherit ecj-javac-on-jamvm-wrapper) +(define ecj-javac-wrapper-final + (package (inherit ecj-javac-wrapper) (native-inputs `(("guile" ,guile-2.2) ("ecj-bootstrap" ,ecj-bootstrap) @@ -773,9 +687,9 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("classpath" ,classpath-devel))))) ;; The bootstrap JDK consisting of jamvm, classpath-devel, -;; ecj-javac-on-jamvm-wrapper-final cannot build Icedtea 2.x directly, because -;; it's written in Java 7. It can, however, build the unmaintained Icedtea -;; 1.x, which uses Java 6 only. +;; ecj-javac-wrapper-final cannot build Icedtea 2.x directly, because it's +;; written in Java 7. It can, however, build the unmaintained Icedtea 1.x, +;; which uses Java 6 only. (define-public icedtea-6 (package (name "icedtea") @@ -862,7 +776,8 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) #t)))) (add-after 'unpack 'use-classpath (lambda* (#:key inputs #:allow-other-keys) - (let ((jvmlib (assoc-ref inputs "classpath"))) + (let ((jvmlib (assoc-ref inputs "classpath")) + (jamvm (assoc-ref inputs "jamvm"))) ;; Classpath does not provide rt.jar. (substitute* "Makefile.in" (("\\$\\(SYSTEM_JDK_DIR\\)/jre/lib/rt.jar") @@ -870,7 +785,8 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ;; Make sure we can find all classes. (setenv "CLASSPATH" (string-append jvmlib "/share/classpath/glibj.zip:" - jvmlib "/share/classpath/tools.zip")) + jvmlib "/share/classpath/tools.zip:" + jamvm "/lib/rt.jar")) (setenv "JAVACFLAGS" (string-append "-cp " jvmlib "/share/classpath/glibj.zip:" @@ -1007,7 +923,7 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("cpio" ,cpio) ("cups" ,cups) ("ecj" ,ecj-bootstrap) - ("ecj-javac" ,ecj-javac-on-jamvm-wrapper-final) + ("ecj-javac" ,ecj-javac-wrapper-final) ("fastjar" ,fastjar) ("fontconfig" ,fontconfig) ("freetype" ,freetype) -- cgit v1.2.3 From 269fb7d310509d151b18576ac8229644c6542223 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Mar 2018 21:39:05 +0200 Subject: gnu: Remove sablevm and sablevm-classpath, update comments. * gnu/packages/java.scm (sablevm, sablevm-classpath): Remove variables. --- gnu/packages/java.scm | 133 +++++++------------------------------------------- 1 file changed, 18 insertions(+), 115 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d2f14c0264..9c5566f819 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -79,24 +79,25 @@ ;;; ;; The Java bootstrap begins with Jikes, a Java compiler written in C++. We -;; use it to build the SableVM standard library and virtual machine, which are -;; written in a simpler dialect of Java and C, respectively. This is -;; sufficient to build an older version of Ant, which is needed to build an -;; older version of ECJ, an incremental Java compiler, both of which are -;; written in Java. +;; use it to build a simple version of GNU Classpath, the Java standard +;; library. We chose version 0.93 because it is the last version that can be +;; built with Jikes. With Jikes and this version of GNU Classpath we can +;; build JamVM, a Java Virtual Machine. We build version 1.5.1 because it is +;; the last version of JamVM that works with a version of GNU classpath that +;; does not require ECJ. These three packages make up the bootstrap JDK. + +;; This is sufficient to build an older version of Ant, which is needed to +;; build an older version of ECJ, an incremental Java compiler, both of which +;; are written in Java. ;; -;; ECJ is needed to build the latest release of GNU Classpath (0.99). -;; Classpath (> 0.98) is a requirement for JamVM, a more modern implementation -;; of the Java virtual machine. -;; -;; With JamVM we can build the latest development version of GNU Classpath, -;; which has much more support for Java 1.6 than the latest release. Since -;; the previous build of JamVM is limited by the use of GNU Classpath 0.99 we -;; rebuild it with the latest development version of GNU Classpath. -;; -;; Finally, we use the bootstrap toolchain to build the OpenJDK with the -;; Icedtea 1.x build framework. We then build the more recent JDKs Icedtea -;; 2.x and Icedtea 3.x. +;; ECJ is needed to build the latest release (0.99) and the development +;; version of GNU Classpath. The development version of GNU Classpath has +;; much more support for Java 1.6 than the latest release, but we need to +;; build 0.99 first to get a working version of javah. ECJ, the development +;; version of GNU Classpath, and the latest version of JamVM make up the +;; second stage JDK with which we can build the OpenJDK with the Icedtea 1.x +;; build framework. We then build the more recent JDKs Icedtea 2.x and +;; Icedtea 3.x. (define jikes (package @@ -117,104 +118,6 @@ defined in The Java Language Specification into the bytecoded instruction set and binary format defined in The Java Virtual Machine Specification.") (license license:ibmpl1.0))) -(define sablevm-classpath - (package - (name "sablevm-classpath") - (version "1.13") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/sablevm/sablevm/" - version "/sablevm-classpath-" version ".tar.gz")) - (sha256 - (base32 - "1qyhyfz8idghxdam16hdgpa24r2x4xbg9z8c8asa3chnd79h3zw2")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags - (list "--with-jikes" - "--disable-Werror" - "--disable-gmp" - "--disable-gtk-peer" - "--disable-plugin" - "--disable-dssi" - "--disable-alsa" - "--disable-gjdoc"))) - (native-inputs - `(("jikes" ,jikes) - ("fastjar" ,fastjar) - ("pkg-config" ,pkg-config))) - (home-page "http://sablevm.org/") - (synopsis "Java Virtual Machine") - (description "SableVM is a clean-room, highly portable and efficient Java -virtual machine. Its goals are to be reasonably small, fast, and compliant -with the various specifications (JVM specification, JNI, invocation interface, -etc.). SableVM is no longer maintained. - -This package provides the classpath library.") - (license license:lgpl2.1+))) - -(define sablevm - (package - (name "sablevm") - (version "1.13") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/sablevm/sablevm/" - version "/sablevm-" version ".tar.gz")) - (sha256 - (base32 - "1jyg4bsym6igz94wps5443c7wiwlzinqzkchcw972nz4kf1cql6g")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags - (list "--with-internal-libffi=no" - "--with-internal-libpopt=no") - #:strip-binaries? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-timestamp-for-reproducibility - (lambda _ - (substitute* "src/sablevm/Makefile.in" - (("\\$\\(SVMCOMPILETIME\\)") "(unknown)")) - #t)) - (add-after 'unpack 'link-with-popt - (lambda _ - (substitute* "src/sablevm/Makefile.in" - (("\\$\\(SVMADD\\)" match) - (string-append match " -lpopt"))) - #t)) - (add-after 'unpack 'patch-path-to-classpath - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makefile.in" - (("@datadir@/sablevm-classpath") - (string-append (assoc-ref inputs "classpath") - "/share/sablevm-classpath"))) - (substitute* "src/libsablevm/Makefile.in" - (("\\$\\(libdir\\)/sablevm-classpath") - (string-append (assoc-ref inputs "classpath") - "/lib/sablevm-classpath")) - (("\\$\\(datadir\\)/sablevm-classpath") - (string-append (assoc-ref inputs "classpath") - "/share/sablevm-classpath"))) - #t))))) - (inputs - `(("classpath" ,sablevm-classpath) - ("jikes" ,jikes) - ("zlib" ,zlib) - ("popt" ,popt) - ("libffi" ,libffi))) - (native-inputs - `(("libltdl" ,libltdl))) - (home-page "http://sablevm.org/") - (synopsis "Java Virtual Machine") - (description "SableVM is a clean-room, highly portable and efficient Java -virtual machine. Its goals are to be reasonably small, fast, and compliant -with the various specifications (JVM specification, JNI, invocation interface, -etc.). SableVM is no longer maintained. - -This package provides the virtual machine.") - (license license:lgpl2.1+))) - ;; This is the last version of GNU Classpath that can be built without ECJ. (define classpath-bootstrap (package -- cgit v1.2.3 From d4fd4c3a7bde4bcb12f4973b1ab1548aeb8030fd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Mar 2018 00:01:22 +0200 Subject: gnu: ant-bootstrap: Make build more reliable. * gnu/packages/java.scm (ant-bootstrap)[arguments]: Remove bootstrap phase; create HOME/.ant.properties; pass options to JamVM. --- gnu/packages/java.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9c5566f819..3293f27546 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -212,6 +212,7 @@ JNI.") `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) @@ -226,6 +227,11 @@ JNI.") (string-append (assoc-ref inputs "jamvm") "/lib/rt.jar")) + ;; Ant complains if this file doesn't exist. + (setenv "HOME" "/tmp") + (with-output-to-file "/tmp/.ant.properties" + (lambda _ (display ""))) + ;; Use jikes instead of javac for tags in build.xml (setenv "ANT_OPTS" "-Dbuild.compiler=jikes") @@ -233,6 +239,11 @@ JNI.") ;; interesting, so we silence them. (setenv "$BOOTJAVAC_OPTS" "-nowarn") + ;; Without these JamVM options the build may freeze. + (substitute* "bootstrap.sh" + (("^\"\\$\\{JAVACMD\\}\" " m) + (string-append m "-Xnocompact -Xnoinlining "))) + ;; Disable tests because we are bootstrapping and thus don't have ;; any of the dependencies required to build and run the tests. (substitute* "build.xml" -- cgit v1.2.3 From ae0a5a7edcd5e7874dc294dede74a69fa6d1df32 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Mar 2018 00:14:44 +0200 Subject: gnu: ecj-javac-wrapper: Run JamVM with conservative options. * gnu/packages/java.scm (ecj-javac-wrapper)[arguments]: Add options to jamvm invocation. --- gnu/packages/java.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3293f27546..7657f58219 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -391,6 +391,7 @@ requirement for all GNU Classpath releases after version 0.93.") args defaults)) (apply system* ,java (append + (list "-Xnocompact" "-Xnoinlining") ;; Remove "-J" prefix (map (cut string-drop <> 2) vm-args) '("org.eclipse.jdt.internal.compiler.batch.Main") -- cgit v1.2.3 From 40e3a197f9ef316ceda709d27070104760ad8656 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Mar 2018 00:30:45 +0200 Subject: gnu: classpath-jamvm-wrappers: Run JamVM with conservative options. * gnu/packages/java.scm (classpath-jamvm-wrappers)[arguments]: Pass extra options to JamVM. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7657f58219..170be77949 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -481,7 +481,7 @@ the standard javac executable."))) (with-output-to-file (string-append bin tool) (lambda _ (format #t "#!~a/bin/sh -~a/bin/jamvm -classpath ~a/share/classpath/tools.zip \ +~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \ gnu.classpath.tools.~a.~a $@" bash jamvm classpath tool (if (string=? "native2ascii" tool) -- cgit v1.2.3 From 51602aac8e9449e39441693553f7afb87094ee14 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Mar 2018 08:00:17 +0200 Subject: gnu: ecj-javac-wrapper: Fix reference to glibj and tools.zip. * gnu/packages/java.scm (ecj-javac-wrapper)[arguments]: Fix references to glibj and tools.zip. --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 170be77949..3248bebfc0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -357,8 +357,8 @@ requirement for all GNU Classpath releases after version 0.93.") "/bin/jamvm")) (bootcp (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") "/share/classpath"))) - (string-append jvmlib "/lib/glibj.zip:" - jvmlib "/lib/tools.zip")))) + (string-append jvmlib "/glibj.zip:" + jvmlib "/tools.zip")))) (mkdir-p bin) (with-output-to-file target (lambda _ -- cgit v1.2.3 From bab9793f54f055e814428fe6e312b0f80b629333 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 26 Mar 2018 12:19:14 +0300 Subject: gnu: classpath: Add aarch64-linux support. * gnu/packages/java.scm (classpath-bootstrap, classpath-0.99)[source]: Add patch. * gnu/packages/patches/classpath-aarch64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/packages/java.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3248bebfc0..4a6172a8cc 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -129,7 +129,8 @@ and binary format defined in The Java Virtual Machine Specification.") version ".tar.gz")) (sha256 (base32 - "0i99wf9xd3hw1sj2sazychb9prx8nadxh2clgvk3zlmb28v0jbfz")))) + "0i99wf9xd3hw1sj2sazychb9prx8nadxh2clgvk3zlmb28v0jbfz")) + (patches (search-patches "classpath-aarch64-support.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -424,7 +425,8 @@ the standard javac executable."))) version ".tar.gz")) (sha256 (base32 - "1j7cby4k66f1nvckm48xcmh352b1d1b33qk7l6hi7dp9i9zjjagr")))) + "1j7cby4k66f1nvckm48xcmh352b1d1b33qk7l6hi7dp9i9zjjagr")) + (patches (search-patches "classpath-aarch64-support.patch")))) (arguments `(#:configure-flags (list (string-append "--with-ecj-jar=" -- cgit v1.2.3