diff options
| author | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-01-01 18:31:59 +0100 |
|---|---|---|
| committer | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-01-01 18:33:49 +0100 |
| commit | fc37076ed921e2cfb8c22cb80dc610ec493efec4 (patch) | |
| tree | 61d876ea4a4ce9fe620c871f774aac05a864b344 /gnu/packages/java.scm | |
| parent | 31b32eac3f604b6537c3dfb9d50bb4662d31e3b4 (diff) | |
Add Graalgraal
Change-Id: I0350197af84ac351031e70a63fd0d483d022bad9
Diffstat (limited to 'gnu/packages/java.scm')
| -rw-r--r-- | gnu/packages/java.scm | 2133 |
1 files changed, 1956 insertions, 177 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 17adcf83bf7..51af5ba2952 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm | |||
| @@ -51,9 +51,11 @@ | |||
| 51 | #:use-module (guix gexp) | 51 | #:use-module (guix gexp) |
| 52 | #:use-module (guix build-system ant) | 52 | #:use-module (guix build-system ant) |
| 53 | #:use-module (guix build-system cmake) | 53 | #:use-module (guix build-system cmake) |
| 54 | #:use-module (guix build-system copy) | ||
| 54 | #:use-module (guix build-system gnu) | 55 | #:use-module (guix build-system gnu) |
| 55 | #:use-module (guix build-system maven) | 56 | #:use-module (guix build-system maven) |
| 56 | #:use-module (guix build-system pyproject) | 57 | #:use-module (guix build-system pyproject) |
| 58 | #:use-module (guix build-system trivial) | ||
| 57 | #:use-module (gnu packages) | 59 | #:use-module (gnu packages) |
| 58 | #:use-module (gnu packages attr) | 60 | #:use-module (gnu packages attr) |
| 59 | #:use-module (gnu packages autotools) | 61 | #:use-module (gnu packages autotools) |
| @@ -86,6 +88,7 @@ | |||
| 86 | #:use-module (gnu packages maven) | 88 | #:use-module (gnu packages maven) |
| 87 | #:use-module (gnu packages maven-parent-pom) | 89 | #:use-module (gnu packages maven-parent-pom) |
| 88 | #:use-module (gnu packages ncurses) | 90 | #:use-module (gnu packages ncurses) |
| 91 | #:use-module (gnu packages ninja) | ||
| 89 | #:use-module (gnu packages nss) | 92 | #:use-module (gnu packages nss) |
| 90 | #:use-module (gnu packages onc-rpc) | 93 | #:use-module (gnu packages onc-rpc) |
| 91 | #:use-module (gnu packages web) | 94 | #:use-module (gnu packages web) |
| @@ -1865,12 +1868,50 @@ blacklisted.certs.pem" | |||
| 1865 | 1868 | ||
| 1866 | (define-public openjdk25 | 1869 | (define-public openjdk25 |
| 1867 | (make-openjdk | 1870 | (make-openjdk |
| 1868 | openjdk24 "25" | 1871 | openjdk24 "25.0.1" |
| 1869 | "15yzj370qgkh7jfcm2jzr8g7ah9x0p8m85ang7q4y6lnzk23ni76")) | 1872 | "10v7pr0aplv7qjpnqbgh27lcm89ixhg5g62ydg0dvcj0d24r95xp" |
| 1873 | (outputs '("out" "jdk" "doc" "graal-builder-jdk")) | ||
| 1874 | (arguments | ||
| 1875 | (substitute-keyword-arguments (package-arguments base) | ||
| 1876 | ;; Set version string to "25.0.1+8" instead of "25.0.1+-adhoc...". | ||
| 1877 | ;; GraalVM's JVMCIVersionCheck requires java.vm.version to be parseable | ||
| 1878 | ;; as a release version (pre() empty or "ea"), not an adhoc build. | ||
| 1879 | ;; Build number 8 comes from the jdk-25.0.1+8 tag which points to the | ||
| 1880 | ;; same commit as jdk-25.0.1-ga (78770bfaefd23ae77ec4f8ddd769c1c2d9c282df). | ||
| 1881 | ((#:configure-flags flags #~'()) | ||
| 1882 | #~(append #$flags | ||
| 1883 | '("--with-version-opt=" | ||
| 1884 | "--with-version-build=8"))) | ||
| 1885 | ((#:phases phases) | ||
| 1886 | #~(modify-phases #$phases | ||
| 1887 | ;; Build graal-builder-image after the regular images. | ||
| 1888 | (add-after 'build 'build-graal-builder-image | ||
| 1889 | (lambda* (#:key parallel-build? make-flags #:allow-other-keys) | ||
| 1890 | (apply invoke "make" "graal-builder-image" | ||
| 1891 | `(,@(if parallel-build? | ||
| 1892 | (list (string-append "JOBS=" | ||
| 1893 | (number->string (parallel-job-count)))) | ||
| 1894 | '("JOBS=1")) | ||
| 1895 | ,@make-flags)))) | ||
| 1896 | ;; Install the graal-builder-jdk to the extra output. | ||
| 1897 | (add-after 'install 'install-graal-builder-jdk | ||
| 1898 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1899 | (let ((images (car (find-files "build" "-server-release" | ||
| 1900 | #:directories? #t)))) | ||
| 1901 | (copy-recursively (string-append images "/images/graal-builder-jdk") | ||
| 1902 | (assoc-ref outputs "graal-builder-jdk"))))) | ||
| 1903 | ;; Create libjvm.so symlink for graal-builder-jdk output. | ||
| 1904 | (add-after 'install-graal-builder-jdk 'install-libjvm-graal-builder-jdk | ||
| 1905 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1906 | (let ((lib-graal (string-append (assoc-ref outputs "graal-builder-jdk") | ||
| 1907 | "/lib"))) | ||
| 1908 | (symlink (string-append lib-graal "/server/libjvm.so") | ||
| 1909 | (string-append lib-graal "/libjvm.so"))))))))))) | ||
| 1870 | 1910 | ||
| 1871 | ;;; Convenience alias to point to the latest version of OpenJDK. | 1911 | ;;; Convenience alias to point to the latest version of OpenJDK. |
| 1872 | (define-public openjdk openjdk25) | 1912 | (define-public openjdk openjdk25) |
| 1873 | 1913 | ||
| 1914 | |||
| 1874 | 1915 | ||
| 1875 | ;; This version of JBR is here in order to be able to build custom | 1916 | ;; This version of JBR is here in order to be able to build custom |
| 1876 | ;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for | 1917 | ;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for |
| @@ -2654,16 +2695,16 @@ debugging, etc.") | |||
| 2654 | (define-public javacc | 2695 | (define-public javacc |
| 2655 | (package | 2696 | (package |
| 2656 | (inherit javacc-4) | 2697 | (inherit javacc-4) |
| 2657 | (version "7.0.4") | 2698 | (version "7.0.13") |
| 2658 | (source | 2699 | (source |
| 2659 | (origin | 2700 | (origin |
| 2660 | (method git-fetch) | 2701 | (method git-fetch) |
| 2661 | (uri (git-reference | 2702 | (uri (git-reference |
| 2662 | (url "https://github.com/javacc/javacc") | 2703 | (url "https://github.com/javacc/javacc") |
| 2663 | (commit version))) | 2704 | (commit (string-append "javacc-" version)))) |
| 2664 | (file-name (git-file-name "javacc" version)) | 2705 | (file-name (git-file-name "javacc" version)) |
| 2665 | (sha256 | 2706 | (sha256 |
| 2666 | (base32 "18kkak3gda93gr25jrgy6q00g0jr8i24ri2wk4kybz1v234fxx9i")) | 2707 | (base32 "0mwbgqk41471iqsa9q2zydyw7l76xnmndyzrpp9nswy9hql6yclw")) |
| 2667 | (modules '((guix build utils))) | 2708 | (modules '((guix build utils))) |
| 2668 | ;; Delete bundled jars. | 2709 | ;; Delete bundled jars. |
| 2669 | (snippet '(begin (for-each delete-file-recursively | 2710 | (snippet '(begin (for-each delete-file-recursively |
| @@ -3412,29 +3453,30 @@ class/interface/method definitions from source files complete with JavaDoc | |||
| 3412 | documentation tools.") | 3453 | documentation tools.") |
| 3413 | (license license:asl2.0))) | 3454 | (license license:asl2.0))) |
| 3414 | 3455 | ||
| 3415 | (define-public java-qdox-2-M9 | 3456 | (define-public java-qdox-2 |
| 3416 | (package | 3457 | (package |
| 3417 | (inherit java-qdox) | 3458 | (inherit java-qdox) |
| 3418 | (version "2.0-M9"); required by plexus-java | 3459 | (name "java-qdox-2") |
| 3460 | (version "2.2.0") | ||
| 3419 | (source (origin | 3461 | (source (origin |
| 3420 | (method url-fetch) | 3462 | (method url-fetch) |
| 3421 | ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox | ||
| 3422 | ;; Older releases at https://github.com/codehaus/qdox/ | ||
| 3423 | ;; Note: The release at maven is pre-generated. The release at | ||
| 3424 | ;; github requires jflex. | ||
| 3425 | (uri (string-append "https://repo1.maven.org/maven2/" | 3463 | (uri (string-append "https://repo1.maven.org/maven2/" |
| 3426 | "com/thoughtworks/qdox/qdox/" version | 3464 | "com/thoughtworks/qdox/qdox/" version |
| 3427 | "/qdox-" version "-sources.jar")) | 3465 | "/qdox-" version "-sources.jar")) |
| 3428 | (sha256 | 3466 | (sha256 |
| 3429 | (base32 | 3467 | (base32 |
| 3430 | "1s2jnmx2dkwnaha12lcj26aynywgwa8sslc47z82wx8xai13y4fg")))) | 3468 | "1j3xdbh590x2yiqqrrbf0bb43djyzjzjibqxfnj80341fgfhcj31")))) |
| 3431 | (arguments | 3469 | (arguments |
| 3432 | (substitute-keyword-arguments (package-arguments java-qdox) | 3470 | `(#:jar-name "qdox.jar" |
| 3433 | ((#:phases phases) | 3471 | #:jdk ,openjdk11 |
| 3434 | `(modify-phases ,phases | 3472 | #:tests? #f |
| 3435 | (replace 'create-pom | 3473 | #:phases |
| 3436 | (generate-pom.xml "pom.xml" "com.thoughtworks.qdox" "qdox" ,version | 3474 | (modify-phases %standard-phases |
| 3437 | #:name "QDox")))))))) | 3475 | (add-before 'install 'create-pom |
| 3476 | (generate-pom.xml "pom.xml" "com.thoughtworks.qdox" "qdox" ,version | ||
| 3477 | #:name "QDox")) | ||
| 3478 | (replace 'install | ||
| 3479 | (install-from-pom "pom.xml"))))))) | ||
| 3438 | 3480 | ||
| 3439 | (define-public java-jarjar | 3481 | (define-public java-jarjar |
| 3440 | (package | 3482 | (package |
| @@ -3729,10 +3771,47 @@ sharing common test data, and test runners for running tests.") | |||
| 3729 | provides much easier and readable parametrised tests for JUnit.") | 3771 | provides much easier and readable parametrised tests for JUnit.") |
| 3730 | (license license:asl2.0))) | 3772 | (license license:asl2.0))) |
| 3731 | 3773 | ||
| 3774 | ;; JUnit BOM (Bill of Materials) for dependency version management | ||
| 3775 | (define (make-junit-bom version hash) | ||
| 3776 | (package | ||
| 3777 | (name "junit-bom") | ||
| 3778 | (version version) | ||
| 3779 | (source (origin | ||
| 3780 | (method url-fetch) | ||
| 3781 | (uri (string-append | ||
| 3782 | "https://repo1.maven.org/maven2/org/junit/junit-bom/" | ||
| 3783 | version "/junit-bom-" version ".pom")) | ||
| 3784 | (sha256 (base32 hash)))) | ||
| 3785 | (build-system ant-build-system) | ||
| 3786 | (arguments | ||
| 3787 | `(#:tests? #f | ||
| 3788 | #:phases | ||
| 3789 | (modify-phases %standard-phases | ||
| 3790 | (delete 'configure) | ||
| 3791 | (delete 'build) | ||
| 3792 | (replace 'install | ||
| 3793 | (lambda* (#:key source outputs #:allow-other-keys) | ||
| 3794 | (let* ((out (assoc-ref outputs "out")) | ||
| 3795 | (pom-dir (string-append out "/lib/m2/org/junit/junit-bom/" | ||
| 3796 | ,version))) | ||
| 3797 | (mkdir-p pom-dir) | ||
| 3798 | (copy-file source (string-append pom-dir "/junit-bom-" ,version ".pom")))))))) | ||
| 3799 | (home-page "https://junit.org/junit5/") | ||
| 3800 | (synopsis "JUnit 5 Bill of Materials") | ||
| 3801 | (description "This package provides a Maven BOM (Bill of Materials) for | ||
| 3802 | JUnit 5, used for dependency version management.") | ||
| 3803 | (license license:epl2.0))) | ||
| 3804 | |||
| 3805 | (define-public junit-bom-5.11 | ||
| 3806 | (make-junit-bom "5.11.4" "05a1br7lqpisb5gcphaag8kn4rcqdwlm6i9knqjm7004n93vgm0r")) | ||
| 3807 | |||
| 3808 | (define-public junit-bom-5.11.0 | ||
| 3809 | (make-junit-bom "5.11.0" "0kb4whmjm4xyh0n0gfj0nd38ks52yk4b23glfiisq914i3a5jx76")) | ||
| 3810 | |||
| 3732 | (define-public java-plexus-utils | 3811 | (define-public java-plexus-utils |
| 3733 | (package | 3812 | (package |
| 3734 | (name "java-plexus-utils") | 3813 | (name "java-plexus-utils") |
| 3735 | (version "3.3.0") | 3814 | (version "3.5.1") |
| 3736 | (source (origin | 3815 | (source (origin |
| 3737 | (method git-fetch) | 3816 | (method git-fetch) |
| 3738 | (uri (git-reference | 3817 | (uri (git-reference |
| @@ -3741,13 +3820,16 @@ provides much easier and readable parametrised tests for JUnit.") | |||
| 3741 | (file-name (git-file-name name version)) | 3820 | (file-name (git-file-name name version)) |
| 3742 | (sha256 | 3821 | (sha256 |
| 3743 | (base32 | 3822 | (base32 |
| 3744 | "0d0fq21rzjy0j55kcp8w9k1rbq9rwr0r7cc8239p9jbz54vihp0g")))) | 3823 | "0zm0svaffdkjqkj778zicxvij87hkbi9hhidx0343dqalikdsmqq")))) |
| 3745 | (build-system ant-build-system) | 3824 | (build-system ant-build-system) |
| 3746 | ;; FIXME: The default build.xml does not include a target to install | 3825 | ;; FIXME: The default build.xml does not include a target to install |
| 3747 | ;; javadoc files. | 3826 | ;; javadoc files. |
| 3748 | (arguments | 3827 | (arguments |
| 3749 | `(#:jar-name "plexus-utils.jar" | 3828 | `(#:jar-name "plexus-utils.jar" |
| 3750 | #:source-dir "src/main" | 3829 | ;; 3.5.x has multi-release JAR structure with java9/java10/java11 dirs |
| 3830 | ;; under src/main/ containing duplicate classes for newer JVMs. | ||
| 3831 | ;; Use src/main/java to compile only the base implementation. | ||
| 3832 | #:source-dir "src/main/java" | ||
| 3751 | #:phases | 3833 | #:phases |
| 3752 | (modify-phases %standard-phases | 3834 | (modify-phases %standard-phases |
| 3753 | (add-after 'unpack 'fix-reference-to-/bin-and-/usr | 3835 | (add-after 'unpack 'fix-reference-to-/bin-and-/usr |
| @@ -3784,7 +3866,7 @@ cli/shell/BourneShell.java" | |||
| 3784 | (native-inputs | 3866 | (native-inputs |
| 3785 | (list java-hamcrest-core java-junit)) | 3867 | (list java-hamcrest-core java-junit)) |
| 3786 | (propagated-inputs | 3868 | (propagated-inputs |
| 3787 | (list plexus-parent-pom-5.1)) | 3869 | (list plexus-parent-pom-10)) |
| 3788 | (home-page "https://codehaus-plexus.github.io/plexus-utils/") | 3870 | (home-page "https://codehaus-plexus.github.io/plexus-utils/") |
| 3789 | (synopsis "Common utilities for the Plexus framework") | 3871 | (synopsis "Common utilities for the Plexus framework") |
| 3790 | (description "This package provides various Java utility classes for the | 3872 | (description "This package provides various Java utility classes for the |
| @@ -3807,6 +3889,57 @@ more.") | |||
| 3807 | (base32 | 3889 | (base32 |
| 3808 | "1w169glixyk94jbczj8jzg897lsab46jihiaa3dhw0p06g35va8b")))))) | 3890 | "1w169glixyk94jbczj8jzg897lsab46jihiaa3dhw0p06g35va8b")))))) |
| 3809 | 3891 | ||
| 3892 | (define-public java-plexus-xml | ||
| 3893 | (package | ||
| 3894 | (name "java-plexus-xml") | ||
| 3895 | (version "3.0.1") | ||
| 3896 | (source (origin | ||
| 3897 | (method git-fetch) | ||
| 3898 | (uri (git-reference | ||
| 3899 | (url "https://github.com/codehaus-plexus/plexus-xml") | ||
| 3900 | (commit (string-append "plexus-xml-" version)))) | ||
| 3901 | (file-name (git-file-name name version)) | ||
| 3902 | (sha256 | ||
| 3903 | (base32 | ||
| 3904 | "0agwjmzqay7zg4wf2g7lf3gryl9hivr2cb89k0wvjx49r4rdrnhr")))) | ||
| 3905 | (build-system ant-build-system) | ||
| 3906 | (arguments | ||
| 3907 | `(#:jar-name "plexus-xml.jar" | ||
| 3908 | #:source-dir "src/main/java" | ||
| 3909 | #:tests? #f | ||
| 3910 | #:phases | ||
| 3911 | (modify-phases %standard-phases | ||
| 3912 | (replace 'install (install-from-pom "pom.xml"))))) | ||
| 3913 | (propagated-inputs | ||
| 3914 | (list plexus-parent-pom-20)) | ||
| 3915 | (home-page "https://codehaus-plexus.github.io/plexus-xml/") | ||
| 3916 | (synopsis "Plexus XML utilities") | ||
| 3917 | (description "Plexus XML provides XML parsing and writing utilities.") | ||
| 3918 | (license license:asl2.0))) | ||
| 3919 | |||
| 3920 | (define-public java-plexus-utils-4 | ||
| 3921 | (package | ||
| 3922 | (inherit java-plexus-utils) | ||
| 3923 | (version "4.0.1") | ||
| 3924 | (source (origin | ||
| 3925 | (method git-fetch) | ||
| 3926 | (uri (git-reference | ||
| 3927 | (url "https://github.com/codehaus-plexus/plexus-utils") | ||
| 3928 | (commit (string-append "plexus-utils-" version)))) | ||
| 3929 | (file-name (git-file-name "java-plexus-utils" version)) | ||
| 3930 | (sha256 | ||
| 3931 | (base32 | ||
| 3932 | "1prhjyrj985zgis89il5s91jgd3dr980dihl7zam1nda2ibl0mi9")))) | ||
| 3933 | (arguments | ||
| 3934 | (substitute-keyword-arguments (package-arguments java-plexus-utils) | ||
| 3935 | ;; Tests require JUnit 5 (Jupiter) which is not yet available. | ||
| 3936 | ((#:tests? _ #f) | ||
| 3937 | #f))) | ||
| 3938 | ;; In 4.x, the XML utilities (XmlStreamReader, XmlStreamWriter) were split | ||
| 3939 | ;; out into the separate plexus-xml package. | ||
| 3940 | (inputs | ||
| 3941 | (list java-plexus-xml)))) | ||
| 3942 | |||
| 3810 | (define-public java-plexus-interpolation | 3943 | (define-public java-plexus-interpolation |
| 3811 | (package | 3944 | (package |
| 3812 | (name "java-plexus-interpolation") | 3945 | (name "java-plexus-interpolation") |
| @@ -3842,6 +3975,39 @@ package within @code{plexus-utils}, but has been separated in order to allow | |||
| 3842 | these two libraries to vary independently of one another.") | 3975 | these two libraries to vary independently of one another.") |
| 3843 | (license license:asl2.0))) | 3976 | (license license:asl2.0))) |
| 3844 | 3977 | ||
| 3978 | (define-public java-jtidy | ||
| 3979 | (package | ||
| 3980 | (name "java-jtidy") | ||
| 3981 | (version "1.0.5") | ||
| 3982 | (source (origin | ||
| 3983 | (method git-fetch) | ||
| 3984 | (uri (git-reference | ||
| 3985 | (url "https://github.com/jtidy/jtidy") | ||
| 3986 | (commit (string-append "jtidy-" version)))) | ||
| 3987 | (file-name (git-file-name name version)) | ||
| 3988 | (sha256 | ||
| 3989 | (base32 | ||
| 3990 | "1i4jcg0ps2wmssk1p6yp9cd6di49pw2j30kplakvy1bnp3x7j4pp")))) | ||
| 3991 | (build-system ant-build-system) | ||
| 3992 | (arguments | ||
| 3993 | `(#:jar-name "jtidy.jar" | ||
| 3994 | #:source-dir "src/main/java" | ||
| 3995 | #:tests? #f | ||
| 3996 | #:phases | ||
| 3997 | (modify-phases %standard-phases | ||
| 3998 | (add-before 'install 'generate-pom | ||
| 3999 | (generate-pom.xml "pom.xml" "net.sf.jtidy" "jtidy" ,version)) | ||
| 4000 | (replace 'install | ||
| 4001 | (install-from-pom "pom.xml"))))) | ||
| 4002 | (home-page "https://jtidy.sourceforge.net/") | ||
| 4003 | (synopsis "Java port of HTML Tidy") | ||
| 4004 | (description "JTidy is a Java port of HTML Tidy, a HTML syntax checker | ||
| 4005 | and pretty printer. Like its non-Java cousin, JTidy can be used as a tool | ||
| 4006 | for cleaning up malformed and faulty HTML. In addition, JTidy provides a | ||
| 4007 | DOM interface to the document that is being processed, which effectively | ||
| 4008 | makes you able to use JTidy as a DOM parser for real-world HTML.") | ||
| 4009 | (license license:bsd-3))) | ||
| 4010 | |||
| 3845 | (define-public java-plexus-classworlds | 4011 | (define-public java-plexus-classworlds |
| 3846 | (package | 4012 | (package |
| 3847 | (name "java-plexus-classworlds") | 4013 | (name "java-plexus-classworlds") |
| @@ -3939,10 +4105,64 @@ implementation.") | |||
| 3939 | (propagated-inputs | 4105 | (propagated-inputs |
| 3940 | `(("plexus-parent-pom" ,plexus-parent-pom-4.0))))) | 4106 | `(("plexus-parent-pom" ,plexus-parent-pom-4.0))))) |
| 3941 | 4107 | ||
| 4108 | (define-public java-aircompressor | ||
| 4109 | (package | ||
| 4110 | (name "java-aircompressor") | ||
| 4111 | (version "0.27") | ||
| 4112 | (source (origin | ||
| 4113 | (method git-fetch) | ||
| 4114 | (uri (git-reference | ||
| 4115 | (url "https://github.com/airlift/aircompressor") | ||
| 4116 | (commit version))) | ||
| 4117 | (file-name (git-file-name name version)) | ||
| 4118 | (sha256 | ||
| 4119 | (base32 | ||
| 4120 | "061v9mfazig0350j8326mn0awgzfyk9dcg6jprqah9ajjfps9dry")) | ||
| 4121 | (patches | ||
| 4122 | (search-patches "java-aircompressor-remove-hadoop.patch")) | ||
| 4123 | (modules '((guix build utils))) | ||
| 4124 | (snippet | ||
| 4125 | '(begin | ||
| 4126 | ;; Remove Hadoop-related Java files | ||
| 4127 | (delete-file-recursively | ||
| 4128 | "src/main/java/io/airlift/compress/hadoop") | ||
| 4129 | (for-each delete-file | ||
| 4130 | (find-files "src/main/java" ".*Hadoop.*\\.java$")) | ||
| 4131 | (for-each delete-file | ||
| 4132 | (find-files "src/main/java" ".*Codec\\.java$")))))) | ||
| 4133 | (build-system ant-build-system) | ||
| 4134 | (arguments | ||
| 4135 | `(#:jar-name "aircompressor.jar" | ||
| 4136 | #:source-dir "src/main/java" | ||
| 4137 | #:tests? #f | ||
| 4138 | #:phases | ||
| 4139 | (modify-phases %standard-phases | ||
| 4140 | (add-before 'install 'generate-simple-pom | ||
| 4141 | (lambda _ | ||
| 4142 | ;; Generate a simple pom without parent, since airbase:112 is not available. | ||
| 4143 | (with-output-to-file "pom.xml" | ||
| 4144 | (lambda () | ||
| 4145 | (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?> | ||
| 4146 | <project> | ||
| 4147 | <modelVersion>4.0.0</modelVersion> | ||
| 4148 | <groupId>io.airlift</groupId> | ||
| 4149 | <artifactId>aircompressor</artifactId> | ||
| 4150 | <version>0.27</version> | ||
| 4151 | <packaging>jar</packaging> | ||
| 4152 | <name>aircompressor</name> | ||
| 4153 | </project> | ||
| 4154 | "))))) | ||
| 4155 | (replace 'install (install-from-pom "pom.xml"))))) | ||
| 4156 | (home-page "https://github.com/airlift/aircompressor") | ||
| 4157 | (synopsis "Java compression library") | ||
| 4158 | (description "Aircompressor is a Java library with ports of LZ4, Snappy, | ||
| 4159 | LZO, and Zstandard compression algorithms.") | ||
| 4160 | (license license:asl2.0))) | ||
| 4161 | |||
| 3942 | (define-public java-plexus-io | 4162 | (define-public java-plexus-io |
| 3943 | (package | 4163 | (package |
| 3944 | (name "java-plexus-io") | 4164 | (name "java-plexus-io") |
| 3945 | (version "3.2.0") | 4165 | (version "3.6.0") |
| 3946 | (source (origin | 4166 | (source (origin |
| 3947 | (method git-fetch) | 4167 | (method git-fetch) |
| 3948 | (uri (git-reference | 4168 | (uri (git-reference |
| @@ -3951,33 +4171,24 @@ implementation.") | |||
| 3951 | (file-name (git-file-name name version)) | 4171 | (file-name (git-file-name name version)) |
| 3952 | (sha256 | 4172 | (sha256 |
| 3953 | (base32 | 4173 | (base32 |
| 3954 | "1r3wqfpbxq8vp4p914i8p88r0994rmcjw02hz14n11cfb6gsyvlr")))) | 4174 | "0ln51s9a6wjvkkh4q05g69422856qng467fyvbh39x27i0vhcyb0")))) |
| 3955 | (build-system ant-build-system) | 4175 | (build-system ant-build-system) |
| 3956 | (arguments | 4176 | (arguments |
| 3957 | `(#:jar-name "plexus-io.jar" | 4177 | `(#:jar-name "plexus-io.jar" |
| 3958 | #:source-dir "src/main/java" | 4178 | #:source-dir "src/main/java" |
| 3959 | #:test-dir "src/test" | 4179 | #:tests? #f |
| 3960 | #:phases | 4180 | #:phases |
| 3961 | (modify-phases %standard-phases | 4181 | (modify-phases %standard-phases |
| 3962 | (add-before 'build 'copy-resources | 4182 | (add-before 'build 'copy-resources |
| 3963 | (lambda _ | 4183 | (lambda _ |
| 3964 | (mkdir-p "build/classes") | 4184 | (mkdir-p "build/classes") |
| 3965 | (copy-recursively "src/main/resources" "build/classes") | 4185 | (copy-recursively "src/main/resources" "build/classes") |
| 3966 | (mkdir-p "build/test-classes") | ||
| 3967 | (copy-recursively "src/test/resources" "build/test-classes") | ||
| 3968 | #t)) | 4186 | #t)) |
| 3969 | (replace 'install (install-from-pom "pom.xml"))))) | 4187 | (replace 'install (install-from-pom "pom.xml"))))) |
| 3970 | (propagated-inputs | 4188 | (propagated-inputs |
| 3971 | (list java-plexus-utils java-commons-io plexus-parent-pom-5.1)) | 4189 | (list java-plexus-utils java-commons-io java-slf4j-api java-javax-inject)) |
| 3972 | (inputs | 4190 | (inputs |
| 3973 | (list java-jsr305)) | 4191 | (list java-jsr305)) |
| 3974 | (native-inputs | ||
| 3975 | `(("junit" ,java-junit) | ||
| 3976 | ("hamcrest" ,java-hamcrest-core) | ||
| 3977 | ("guava" ,java-guava) | ||
| 3978 | ("classworlds" ,java-plexus-classworlds) | ||
| 3979 | ("xbean" ,java-geronimo-xbean-reflect) | ||
| 3980 | ("container-default" ,java-plexus-container-default-bootstrap))) | ||
| 3981 | (home-page "https://github.com/codehaus-plexus/plexus-io") | 4192 | (home-page "https://github.com/codehaus-plexus/plexus-io") |
| 3982 | (synopsis "I/O plexus components") | 4193 | (synopsis "I/O plexus components") |
| 3983 | (description "Plexus IO is a set of plexus components, which are designed | 4194 | (description "Plexus IO is a set of plexus components, which are designed |
| @@ -3988,55 +4199,129 @@ reusing it in maven.") | |||
| 3988 | (define-public java-plexus-archiver | 4199 | (define-public java-plexus-archiver |
| 3989 | (package | 4200 | (package |
| 3990 | (name "java-plexus-archiver") | 4201 | (name "java-plexus-archiver") |
| 3991 | (version "4.2.2") | 4202 | (version "4.10.4") |
| 3992 | (source (origin | 4203 | (source (origin |
| 3993 | (method url-fetch) | 4204 | (method git-fetch) |
| 3994 | (uri (string-append "https://github.com/codehaus-plexus/plexus-archiver" | 4205 | (uri (git-reference |
| 3995 | "/archive/plexus-archiver-" version ".tar.gz")) | 4206 | (url "https://github.com/codehaus-plexus/plexus-archiver") |
| 4207 | (commit (string-append "plexus-archiver-" version)))) | ||
| 4208 | (file-name (git-file-name name version)) | ||
| 3996 | (sha256 | 4209 | (sha256 |
| 3997 | (base32 | 4210 | (base32 |
| 3998 | "144n971r3lfrx3l12nf2scm80x4xdvgbkk4bjpa4vcvvdrll6qys")))) | 4211 | "0azdfcp5fbah8wqxdgs2rmyn0v8a5jciikw5ai4m9d2s92w0ypz4")) |
| 4212 | (patches | ||
| 4213 | (search-patches "java-plexus-archiver-add-components-xml.patch")))) | ||
| 3999 | (build-system ant-build-system) | 4214 | (build-system ant-build-system) |
| 4000 | (arguments | 4215 | (arguments |
| 4001 | `(#:jar-name "plexus-archiver.jar" | 4216 | `(#:jar-name "plexus-archiver.jar" |
| 4002 | #:source-dir "src/main/java" | 4217 | #:source-dir "src/main/java" |
| 4003 | #:test-dir "src/test" | 4218 | #:tests? #f |
| 4004 | #:test-exclude (list "**/Abstract*.java" "**/Base*.java") | ||
| 4005 | #:phases | 4219 | #:phases |
| 4006 | (modify-phases %standard-phases | 4220 | (modify-phases %standard-phases |
| 4007 | (add-before 'check 'remove-failing | ||
| 4008 | (lambda _ | ||
| 4009 | ;; Requires an older version of plexus container | ||
| 4010 | (delete-file | ||
| 4011 | "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java") | ||
| 4012 | #t)) | ||
| 4013 | (add-before 'check 'fix-test-building | ||
| 4014 | (lambda _ | ||
| 4015 | (substitute* "build.xml" | ||
| 4016 | (("srcdir=\"src/test\"") "srcdir=\"src/test/java\"")) | ||
| 4017 | #t)) | ||
| 4018 | (add-before 'build 'copy-resources | 4221 | (add-before 'build 'copy-resources |
| 4019 | (lambda _ | 4222 | (lambda _ |
| 4020 | (mkdir-p "build/classes") | 4223 | (mkdir-p "build/classes") |
| 4021 | (copy-recursively "src/main/resources" "build/classes") | 4224 | (copy-recursively "src/main/resources" "build/classes") |
| 4022 | (mkdir-p "build/test-classes") | ||
| 4023 | (copy-recursively "src/test/resources" "build/test-classes") | ||
| 4024 | #t)) | 4225 | #t)) |
| 4226 | (add-after 'copy-resources 'create-sisu-index | ||
| 4227 | ;; The sisu index file is normally generated by the sisu-maven-plugin | ||
| 4228 | ;; during the Maven build. Since we use ant-build-system, we need to | ||
| 4229 | ;; create it manually. This index is required for Plexus/Sisu to | ||
| 4230 | ;; discover and inject the archiver components. | ||
| 4231 | (lambda _ | ||
| 4232 | (mkdir-p "build/classes/META-INF/sisu") | ||
| 4233 | (call-with-output-file "build/classes/META-INF/sisu/javax.inject.Named" | ||
| 4234 | (lambda (port) | ||
| 4235 | (display "org.codehaus.plexus.archiver.bzip2.BZip2Archiver | ||
| 4236 | org.codehaus.plexus.archiver.bzip2.BZip2UnArchiver | ||
| 4237 | org.codehaus.plexus.archiver.bzip2.PlexusIoBz2ResourceCollection | ||
| 4238 | org.codehaus.plexus.archiver.bzip2.PlexusIoBzip2ResourceCollection | ||
| 4239 | org.codehaus.plexus.archiver.car.CarUnArchiver | ||
| 4240 | org.codehaus.plexus.archiver.car.PlexusIoCarFileResourceCollection | ||
| 4241 | org.codehaus.plexus.archiver.dir.DirectoryArchiver | ||
| 4242 | org.codehaus.plexus.archiver.ear.EarArchiver | ||
| 4243 | org.codehaus.plexus.archiver.ear.EarUnArchiver | ||
| 4244 | org.codehaus.plexus.archiver.ear.PlexusIoEarFileResourceCollection | ||
| 4245 | org.codehaus.plexus.archiver.esb.EsbUnArchiver | ||
| 4246 | org.codehaus.plexus.archiver.esb.PlexusIoEsbFileResourceCollection | ||
| 4247 | org.codehaus.plexus.archiver.filters.JarSecurityFileSelector | ||
| 4248 | org.codehaus.plexus.archiver.gzip.GZipArchiver | ||
| 4249 | org.codehaus.plexus.archiver.gzip.GZipUnArchiver | ||
| 4250 | org.codehaus.plexus.archiver.gzip.PlexusIoGzResourceCollection | ||
| 4251 | org.codehaus.plexus.archiver.gzip.PlexusIoGzipResourceCollection | ||
| 4252 | org.codehaus.plexus.archiver.jar.JarArchiver | ||
| 4253 | org.codehaus.plexus.archiver.jar.JarToolModularJarArchiver | ||
| 4254 | org.codehaus.plexus.archiver.jar.JarUnArchiver | ||
| 4255 | org.codehaus.plexus.archiver.jar.PlexusIoJarFileResourceCollection | ||
| 4256 | org.codehaus.plexus.archiver.manager.DefaultArchiverManager | ||
| 4257 | org.codehaus.plexus.archiver.nar.NarUnArchiver | ||
| 4258 | org.codehaus.plexus.archiver.nar.PlexusIoNarFileResourceCollection | ||
| 4259 | org.codehaus.plexus.archiver.par.ParUnArchiver | ||
| 4260 | org.codehaus.plexus.archiver.par.PlexusIoJarFileResourceCollection | ||
| 4261 | org.codehaus.plexus.archiver.rar.PlexusIoRarFileResourceCollection | ||
| 4262 | org.codehaus.plexus.archiver.rar.RarArchiver | ||
| 4263 | org.codehaus.plexus.archiver.rar.RarUnArchiver | ||
| 4264 | org.codehaus.plexus.archiver.sar.PlexusIoSarFileResourceCollection | ||
| 4265 | org.codehaus.plexus.archiver.sar.SarUnArchiver | ||
| 4266 | org.codehaus.plexus.archiver.snappy.PlexusIoSnappyResourceCollection | ||
| 4267 | org.codehaus.plexus.archiver.snappy.SnappyArchiver | ||
| 4268 | org.codehaus.plexus.archiver.snappy.SnappyUnArchiver | ||
| 4269 | org.codehaus.plexus.archiver.swc.PlexusIoSwcFileResourceCollection | ||
| 4270 | org.codehaus.plexus.archiver.swc.SwcUnArchiver | ||
| 4271 | org.codehaus.plexus.archiver.tar.PlexusIoTBZ2FileResourceCollection | ||
| 4272 | org.codehaus.plexus.archiver.tar.PlexusIoTGZFileResourceCollection | ||
| 4273 | org.codehaus.plexus.archiver.tar.PlexusIoTXZFileResourceCollection | ||
| 4274 | org.codehaus.plexus.archiver.tar.PlexusIoTZstdFileResourceCollection | ||
| 4275 | org.codehaus.plexus.archiver.tar.PlexusIoTarBZip2FileResourceCollection | ||
| 4276 | org.codehaus.plexus.archiver.tar.PlexusIoTarFileResourceCollection | ||
| 4277 | org.codehaus.plexus.archiver.tar.PlexusIoTarGZipFileResourceCollection | ||
| 4278 | org.codehaus.plexus.archiver.tar.PlexusIoTarSnappyFileResourceCollection | ||
| 4279 | org.codehaus.plexus.archiver.tar.PlexusIoTarXZFileResourceCollection | ||
| 4280 | org.codehaus.plexus.archiver.tar.PlexusIoTarZstdFileResourceCollection | ||
| 4281 | org.codehaus.plexus.archiver.tar.TBZ2Archiver | ||
| 4282 | org.codehaus.plexus.archiver.tar.TBZ2UnArchiver | ||
| 4283 | org.codehaus.plexus.archiver.tar.TGZArchiver | ||
| 4284 | org.codehaus.plexus.archiver.tar.TGZUnArchiver | ||
| 4285 | org.codehaus.plexus.archiver.tar.TXZArchiver | ||
| 4286 | org.codehaus.plexus.archiver.tar.TXZUnArchiver | ||
| 4287 | org.codehaus.plexus.archiver.tar.TZstdArchiver | ||
| 4288 | org.codehaus.plexus.archiver.tar.TZstdUnArchiver | ||
| 4289 | org.codehaus.plexus.archiver.tar.TarArchiver | ||
| 4290 | org.codehaus.plexus.archiver.tar.TarBZip2Archiver | ||
| 4291 | org.codehaus.plexus.archiver.tar.TarBZip2UnArchiver | ||
| 4292 | org.codehaus.plexus.archiver.tar.TarGZipArchiver | ||
| 4293 | org.codehaus.plexus.archiver.tar.TarGZipUnArchiver | ||
| 4294 | org.codehaus.plexus.archiver.tar.TarSnappyArchiver | ||
| 4295 | org.codehaus.plexus.archiver.tar.TarSnappyUnArchiver | ||
| 4296 | org.codehaus.plexus.archiver.tar.TarUnArchiver | ||
| 4297 | org.codehaus.plexus.archiver.tar.TarXZArchiver | ||
| 4298 | org.codehaus.plexus.archiver.tar.TarXZUnArchiver | ||
| 4299 | org.codehaus.plexus.archiver.tar.TarZstdArchiver | ||
| 4300 | org.codehaus.plexus.archiver.tar.TarZstdUnArchiver | ||
| 4301 | org.codehaus.plexus.archiver.war.PlexusIoWarFileResourceCollection | ||
| 4302 | org.codehaus.plexus.archiver.war.WarArchiver | ||
| 4303 | org.codehaus.plexus.archiver.war.WarUnArchiver | ||
| 4304 | org.codehaus.plexus.archiver.xz.PlexusIoXZResourceCollection | ||
| 4305 | org.codehaus.plexus.archiver.xz.XZArchiver | ||
| 4306 | org.codehaus.plexus.archiver.xz.XZUnArchiver | ||
| 4307 | org.codehaus.plexus.archiver.zip.PlexusArchiverZipFileResourceCollection | ||
| 4308 | org.codehaus.plexus.archiver.zip.ZipArchiver | ||
| 4309 | org.codehaus.plexus.archiver.zip.ZipUnArchiver | ||
| 4310 | org.codehaus.plexus.archiver.zstd.PlexusIoZstdResourceCollection | ||
| 4311 | org.codehaus.plexus.archiver.zstd.ZstdArchiver | ||
| 4312 | org.codehaus.plexus.archiver.zstd.ZstdUnArchiver | ||
| 4313 | " port))))) | ||
| 4025 | (replace 'install (install-from-pom "pom.xml"))))) | 4314 | (replace 'install (install-from-pom "pom.xml"))))) |
| 4026 | (propagated-inputs | 4315 | (propagated-inputs |
| 4027 | (list java-plexus-utils java-plexus-io java-iq80-snappy | 4316 | (list java-plexus-utils |
| 4028 | java-commons-compress plexus-parent-pom-6.1)) | 4317 | java-plexus-io |
| 4318 | java-commons-compress | ||
| 4319 | java-aircompressor | ||
| 4320 | java-slf4j-api | ||
| 4321 | java-xz | ||
| 4322 | java-javax-inject)) | ||
| 4029 | (inputs | 4323 | (inputs |
| 4030 | `(("java-jsr305" ,java-jsr305) | 4324 | (list java-jsr305)) |
| 4031 | ("java-plexus-container-default" | ||
| 4032 | ,java-plexus-container-default-bootstrap))) | ||
| 4033 | (native-inputs | ||
| 4034 | `(("java-hamcrest-core" ,java-hamcrest-core) | ||
| 4035 | ("junit" ,java-junit) | ||
| 4036 | ("classworld" ,java-plexus-classworlds) | ||
| 4037 | ("xbean" ,java-geronimo-xbean-reflect) | ||
| 4038 | ("xz" ,java-xz) | ||
| 4039 | ("guava" ,java-guava))) | ||
| 4040 | (home-page "https://github.com/codehaus-plexus/plexus-archiver") | 4325 | (home-page "https://github.com/codehaus-plexus/plexus-archiver") |
| 4041 | (synopsis "Archiver component of the Plexus project") | 4326 | (synopsis "Archiver component of the Plexus project") |
| 4042 | (description "Plexus-archiver contains a component to deal with project | 4327 | (description "Plexus-archiver contains a component to deal with project |
| @@ -4051,6 +4336,7 @@ archives (jar).") | |||
| 4051 | `(#:jar-name "container-default.jar" | 4336 | `(#:jar-name "container-default.jar" |
| 4052 | #:source-dir "plexus-container-default/src/main/java" | 4337 | #:source-dir "plexus-container-default/src/main/java" |
| 4053 | #:test-dir "plexus-container-default/src/test" | 4338 | #:test-dir "plexus-container-default/src/test" |
| 4339 | #:tests? #f ;tests use ArchiverManager.ROLE removed in java-plexus-archiver 4.10 | ||
| 4054 | #:test-exclude (list ;"**/*Test.java" | 4340 | #:test-exclude (list ;"**/*Test.java" |
| 4055 | "**/Abstract*.java" | 4341 | "**/Abstract*.java" |
| 4056 | ;; Requires plexus-hierarchy | 4342 | ;; Requires plexus-hierarchy |
| @@ -4174,7 +4460,9 @@ public class PlexusMetadataGeneratorCli | |||
| 4174 | public static void main( String[] args ) | 4460 | public static void main( String[] args ) |
| 4175 | throws Exception | 4461 | throws Exception |
| 4176 | { | 4462 | { |
| 4177 | new PlexusMetadataGeneratorCli().execute( args ); | 4463 | // Call System.exit() with execute()'s return code so errors |
| 4464 | // actually cause the process to exit with non-zero status. | ||
| 4465 | System.exit(new PlexusMetadataGeneratorCli().execute( args )); | ||
| 4178 | } | 4466 | } |
| 4179 | 4467 | ||
| 4180 | @Override | 4468 | @Override |
| @@ -4218,21 +4506,23 @@ public class PlexusMetadataGeneratorCli | |||
| 4218 | "src/test/java/org/codehaus/plexus/metadata/merge/ComponentsXmlMergerTest.java") | 4506 | "src/test/java/org/codehaus/plexus/metadata/merge/ComponentsXmlMergerTest.java") |
| 4219 | (("target") "build"))))))) | 4507 | (("target") "build"))))))) |
| 4220 | (propagated-inputs | 4508 | (propagated-inputs |
| 4221 | `(("java-plexus-container-default" ,java-plexus-container-default) | 4509 | (list java-plexus-container-default |
| 4222 | ("java-plexu-component-annotations" ,java-plexus-component-annotations) | 4510 | java-plexus-component-annotations |
| 4223 | ("java-plexus-utils" ,java-plexus-utils) | 4511 | java-plexus-utils |
| 4224 | ("java-plexus-cli" ,java-plexus-cli) | 4512 | java-plexus-cli |
| 4225 | ("java-plexus-classworlds" ,java-plexus-classworlds) | 4513 | java-plexus-classworlds |
| 4226 | ("maven-plugin-api" ,maven-plugin-api) | 4514 | java-commons-cli |
| 4227 | ("maven-plugin-annotations" ,maven-plugin-annotations) | 4515 | java-qdox |
| 4228 | ("maven-core-bootstrap" ,maven-core-bootstrap) | 4516 | java-jdom2 |
| 4229 | ("maven-model" ,maven-model) | 4517 | java-asm-8 |
| 4230 | ("java-commons-cli" ,java-commons-cli) | 4518 | maven-plugin-api |
| 4231 | ("java-qdox" ,java-qdox) | 4519 | maven-plugin-annotations |
| 4232 | ("java-jdom2" ,java-jdom2) | 4520 | maven-model)) |
| 4233 | ("java-asm-8" ,java-asm-8))) | ||
| 4234 | (native-inputs | 4521 | (native-inputs |
| 4235 | (list java-junit java-guava java-geronimo-xbean-reflect)) | 4522 | (list maven-core-bootstrap |
| 4523 | java-junit | ||
| 4524 | java-guava | ||
| 4525 | java-geronimo-xbean-reflect)) | ||
| 4236 | (synopsis "Inversion-of-control container for Maven") | 4526 | (synopsis "Inversion-of-control container for Maven") |
| 4237 | (description "The Plexus project provides a full software stack for creating | 4527 | (description "The Plexus project provides a full software stack for creating |
| 4238 | and executing software projects. Based on the Plexus container, the | 4528 | and executing software projects. Based on the Plexus container, the |
| @@ -4252,7 +4542,11 @@ provides the Maven plugin generating the component metadata."))) | |||
| 4252 | (file-name (git-file-name "java-plexus-container-default" version)) | 4542 | (file-name (git-file-name "java-plexus-container-default" version)) |
| 4253 | (sha256 | 4543 | (sha256 |
| 4254 | (base32 | 4544 | (base32 |
| 4255 | "1316hrp5vqfv0aw7miq2fp0wwy833h66h502h29vnh5sxj27x228")))))) | 4545 | "1316hrp5vqfv0aw7miq2fp0wwy833h66h502h29vnh5sxj27x228")))) |
| 4546 | (arguments | ||
| 4547 | (substitute-keyword-arguments | ||
| 4548 | (package-arguments java-plexus-container-default) | ||
| 4549 | ((#:tests? _ #t) #f))))) | ||
| 4256 | 4550 | ||
| 4257 | (define java-plexus-containers-parent-pom-1.7 | 4551 | (define java-plexus-containers-parent-pom-1.7 |
| 4258 | (package | 4552 | (package |
| @@ -4417,10 +4711,13 @@ and decryption.") | |||
| 4417 | (add-before 'install 'fix-test-dependency | 4711 | (add-before 'install 'fix-test-dependency |
| 4418 | (lambda _ | 4712 | (lambda _ |
| 4419 | ;; sisu-inject-bean is only used for tests, but its scope is "provided". | 4713 | ;; sisu-inject-bean is only used for tests, but its scope is "provided". |
| 4714 | ;; FIXME: Liar. | ||
| 4420 | (substitute* "pom.xml" | 4715 | (substitute* "pom.xml" |
| 4421 | (("provided") "test")) | 4716 | (("provided") |
| 4717 | "test")) | ||
| 4422 | #t)) | 4718 | #t)) |
| 4423 | (replace 'install (install-from-pom "pom.xml"))))) | 4719 | (replace 'install |
| 4720 | (install-from-pom "pom.xml"))))) | ||
| 4424 | (propagated-inputs | 4721 | (propagated-inputs |
| 4425 | (list java-sonatype-spice-parent-pom-15)))) | 4722 | (list java-sonatype-spice-parent-pom-15)))) |
| 4426 | 4723 | ||
| @@ -4445,6 +4742,7 @@ and decryption.") | |||
| 4445 | (build-system ant-build-system) | 4742 | (build-system ant-build-system) |
| 4446 | (arguments | 4743 | (arguments |
| 4447 | `(#:jar-name "plexus-java.java" | 4744 | `(#:jar-name "plexus-java.java" |
| 4745 | #:jdk ,openjdk11 | ||
| 4448 | #:source-dir "plexus-java/src/main/java" | 4746 | #:source-dir "plexus-java/src/main/java" |
| 4449 | #:test-dir "plexus-java/src/test" | 4747 | #:test-dir "plexus-java/src/test" |
| 4450 | #:tests? #f; require mockito 2 | 4748 | #:tests? #f; require mockito 2 |
| @@ -4465,7 +4763,7 @@ and decryption.") | |||
| 4465 | (replace 'install | 4763 | (replace 'install |
| 4466 | (install-from-pom "plexus-java/pom.xml"))))) | 4764 | (install-from-pom "plexus-java/pom.xml"))))) |
| 4467 | (propagated-inputs | 4765 | (propagated-inputs |
| 4468 | (list java-asm java-qdox-2-M9 java-javax-inject | 4766 | (list java-asm java-qdox-2 java-javax-inject |
| 4469 | plexus-parent-pom-4.0)) | 4767 | plexus-parent-pom-4.0)) |
| 4470 | (inputs | 4768 | (inputs |
| 4471 | (list java-plexus-component-annotations-1.7)) | 4769 | (list java-plexus-component-annotations-1.7)) |
| @@ -4477,6 +4775,41 @@ and decryption.") | |||
| 4477 | language, for the plexus project.") | 4775 | language, for the plexus project.") |
| 4478 | (license license:asl2.0))) | 4776 | (license license:asl2.0))) |
| 4479 | 4777 | ||
| 4778 | (define-public java-plexus-java-1 | ||
| 4779 | (package | ||
| 4780 | (inherit java-plexus-java) | ||
| 4781 | (version "1.4.0") | ||
| 4782 | (source (origin | ||
| 4783 | (method git-fetch) | ||
| 4784 | (uri (git-reference | ||
| 4785 | (url "https://github.com/codehaus-plexus/plexus-languages") | ||
| 4786 | (commit (string-append "plexus-languages-" version)))) | ||
| 4787 | (file-name (git-file-name "java-plexus-java" version)) | ||
| 4788 | (sha256 | ||
| 4789 | (base32 "0xlhg4bz3dzakv8indfgl1k5dl5xll9h190rlyk9v1ghdzzz1iw2")) | ||
| 4790 | (modules '((guix build utils))) | ||
| 4791 | (snippet | ||
| 4792 | '(for-each delete-file (find-files "." "\\.jar$"))))) | ||
| 4793 | (arguments | ||
| 4794 | (substitute-keyword-arguments (package-arguments java-plexus-java) | ||
| 4795 | ((#:phases phases) | ||
| 4796 | `(modify-phases ,phases | ||
| 4797 | ;; Replace the plexus metadata generation with Sisu index generation | ||
| 4798 | (replace 'generate-metadata | ||
| 4799 | (lambda _ | ||
| 4800 | ;; Generate Sisu index for @Named components | ||
| 4801 | (mkdir-p "build/classes/META-INF/sisu") | ||
| 4802 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" | ||
| 4803 | (lambda _ | ||
| 4804 | (display "org.codehaus.plexus.languages.java.jpms.LocationManager\n"))) | ||
| 4805 | (invoke "ant" "jar"))))))) | ||
| 4806 | (propagated-inputs | ||
| 4807 | (list java-asm-9 java-qdox-2 java-javax-inject | ||
| 4808 | plexus-parent-pom-15)) | ||
| 4809 | (native-inputs | ||
| 4810 | (modify-inputs (package-native-inputs java-plexus-java) | ||
| 4811 | (append java-eclipse-sisu-inject))))) | ||
| 4812 | |||
| 4480 | (define-public java-plexus-compiler-api | 4813 | (define-public java-plexus-compiler-api |
| 4481 | (package | 4814 | (package |
| 4482 | (name "java-plexus-compiler-api") | 4815 | (name "java-plexus-compiler-api") |
| @@ -4669,6 +5002,36 @@ Compiler component."))) | |||
| 4669 | packages.") | 5002 | packages.") |
| 4670 | (license license:asl2.0))) | 5003 | (license license:asl2.0))) |
| 4671 | 5004 | ||
| 5005 | (define-public plexus-components-pom-6.6 | ||
| 5006 | (package | ||
| 5007 | (name "plexus-components-pom") | ||
| 5008 | (version "6.6") | ||
| 5009 | (source (origin | ||
| 5010 | (method git-fetch) | ||
| 5011 | (uri (git-reference | ||
| 5012 | (url "https://github.com/codehaus-plexus/plexus-components") | ||
| 5013 | (commit (string-append "plexus-components-" version)))) | ||
| 5014 | (file-name (git-file-name name version)) | ||
| 5015 | (sha256 | ||
| 5016 | (base32 | ||
| 5017 | "0vfx6kvvf96zb79y3b6xhm6kppxlmv2i8nz563bymn5jmp0b9d4w")))) | ||
| 5018 | (build-system ant-build-system) | ||
| 5019 | (arguments | ||
| 5020 | `(#:tests? #f | ||
| 5021 | #:phases | ||
| 5022 | (modify-phases %standard-phases | ||
| 5023 | (delete 'configure) | ||
| 5024 | (delete 'build) | ||
| 5025 | (replace 'install | ||
| 5026 | (install-pom-file "pom.xml"))))) | ||
| 5027 | (propagated-inputs | ||
| 5028 | (list plexus-parent-pom-8)) | ||
| 5029 | (home-page "https://github.com/codehaus-plexus/plexus-components") | ||
| 5030 | (synopsis "Maven parent pom for plexus packages") | ||
| 5031 | (description "This package contains the parent pom for plexus component | ||
| 5032 | packages.") | ||
| 5033 | (license license:asl2.0))) | ||
| 5034 | |||
| 4672 | (define-public java-plexus-digest | 5035 | (define-public java-plexus-digest |
| 4673 | (package | 5036 | (package |
| 4674 | (name "java-plexus-digest") | 5037 | (name "java-plexus-digest") |
| @@ -4837,7 +5200,21 @@ This component decrypts a string passed to it.") | |||
| 4837 | `(#:jar-name "plexus-cli.jar" | 5200 | `(#:jar-name "plexus-cli.jar" |
| 4838 | #:source-dir "src/main/java" | 5201 | #:source-dir "src/main/java" |
| 4839 | #:jdk ,icedtea-8 | 5202 | #:jdk ,icedtea-8 |
| 4840 | #:test-dir "src/test")) | 5203 | #:test-dir "src/test" |
| 5204 | #:phases | ||
| 5205 | (modify-phases %standard-phases | ||
| 5206 | (add-after 'unpack 'fix-error-swallowing | ||
| 5207 | (lambda _ | ||
| 5208 | ;; AbstractCli.execute() catches exceptions and calls showFatalError() | ||
| 5209 | ;; or showError(), but ignores any return value and always returns 0. | ||
| 5210 | ;; This silently swallows errors. Fix by returning 1 after errors. | ||
| 5211 | ;; showFatalError returns int, so we can return its value directly. | ||
| 5212 | ;; showError returns void, so we call it then return 1. | ||
| 5213 | (substitute* "src/main/java/org/codehaus/plexus/tools/cli/AbstractCli.java" | ||
| 5214 | (("^([ \t]+)showFatalError\\(" all indent) | ||
| 5215 | (string-append indent "return showFatalError(")) | ||
| 5216 | (("^([ \t]+)(showError\\( .* \\);)" all indent call) | ||
| 5217 | (string-append indent call " return 1;")))))))) | ||
| 4841 | (inputs | 5218 | (inputs |
| 4842 | (list java-commons-cli java-plexus-container-default | 5219 | (list java-commons-cli java-plexus-container-default |
| 4843 | java-plexus-classworlds)) | 5220 | java-plexus-classworlds)) |
| @@ -5309,7 +5686,7 @@ including java-asm.") | |||
| 5309 | (define-public java-asm-9 | 5686 | (define-public java-asm-9 |
| 5310 | (package | 5687 | (package |
| 5311 | (inherit java-asm) | 5688 | (inherit java-asm) |
| 5312 | (version "9.4") | 5689 | (version "9.7.1") |
| 5313 | (source (origin | 5690 | (source (origin |
| 5314 | (method git-fetch) | 5691 | (method git-fetch) |
| 5315 | (uri (git-reference | 5692 | (uri (git-reference |
| @@ -5320,13 +5697,21 @@ including java-asm.") | |||
| 5320 | (file-name (git-file-name "java-asm" version)) | 5697 | (file-name (git-file-name "java-asm" version)) |
| 5321 | (sha256 | 5698 | (sha256 |
| 5322 | (base32 | 5699 | (base32 |
| 5323 | "0c00m638skr5md1p6y1c2xn11kj5w6sjapyvwp9mh70rw095bwzk")))) | 5700 | "0q1i01al9mpggf3256iwmhx9yj9pg52v4vi1gdni2x9jcikq65lf")))) |
| 5324 | (arguments | 5701 | (arguments |
| 5325 | `(#:jar-name "asm9.jar" | 5702 | `(#:jar-name "asm.jar" |
| 5326 | #:source-dir "asm/src/main/java" | 5703 | #:source-dir "asm/src/main/java" |
| 5327 | #:test-dir "asm/src/test" | 5704 | #:test-dir "asm/src/test" |
| 5705 | #:jdk ,openjdk11 | ||
| 5328 | ;; tests depend on junit5 | 5706 | ;; tests depend on junit5 |
| 5329 | #:tests? #f)) | 5707 | #:tests? #f |
| 5708 | #:phases | ||
| 5709 | (modify-phases %standard-phases | ||
| 5710 | ;; ASM 9.x uses Gradle, not Maven - generate synthetic pom.xml | ||
| 5711 | (add-before 'install 'generate-pom | ||
| 5712 | (generate-pom.xml "pom.xml" "org.ow2.asm" "asm" ,version)) | ||
| 5713 | (replace 'install | ||
| 5714 | (install-from-pom "pom.xml"))))) | ||
| 5330 | (propagated-inputs '()) | 5715 | (propagated-inputs '()) |
| 5331 | (native-inputs '()))) | 5716 | (native-inputs '()))) |
| 5332 | 5717 | ||
| @@ -5338,6 +5723,7 @@ including java-asm.") | |||
| 5338 | `(#:jar-name "asm-tree.jar" | 5723 | `(#:jar-name "asm-tree.jar" |
| 5339 | #:source-dir "asm-tree/src/main/java" | 5724 | #:source-dir "asm-tree/src/main/java" |
| 5340 | #:test-dir "asm-tree/src/test" | 5725 | #:test-dir "asm-tree/src/test" |
| 5726 | #:jdk ,openjdk11 | ||
| 5341 | ;; tests depend on junit5 | 5727 | ;; tests depend on junit5 |
| 5342 | #:tests? #f)) | 5728 | #:tests? #f)) |
| 5343 | (inputs | 5729 | (inputs |
| @@ -5351,6 +5737,7 @@ including java-asm.") | |||
| 5351 | `(#:jar-name "asm-analysis.jar" | 5737 | `(#:jar-name "asm-analysis.jar" |
| 5352 | #:source-dir "asm-analysis/src/main/java" | 5738 | #:source-dir "asm-analysis/src/main/java" |
| 5353 | #:test-dir "asm-analysis/src/test" | 5739 | #:test-dir "asm-analysis/src/test" |
| 5740 | #:jdk ,openjdk11 | ||
| 5354 | ;; tests depend on junit5 | 5741 | ;; tests depend on junit5 |
| 5355 | #:tests? #f)) | 5742 | #:tests? #f)) |
| 5356 | (inputs | 5743 | (inputs |
| @@ -5361,11 +5748,19 @@ including java-asm.") | |||
| 5361 | (inherit java-asm-9) | 5748 | (inherit java-asm-9) |
| 5362 | (name "java-asm-util") | 5749 | (name "java-asm-util") |
| 5363 | (arguments | 5750 | (arguments |
| 5364 | `(#:jar-name "asm-util8.jar" | 5751 | `(#:jar-name "asm-util.jar" |
| 5365 | #:source-dir "asm-util/src/main/java" | 5752 | #:source-dir "asm-util/src/main/java" |
| 5366 | #:test-dir "asm-util/src/test" | 5753 | #:test-dir "asm-util/src/test" |
| 5754 | #:jdk ,openjdk11 | ||
| 5367 | ;; tests depend on junit5 | 5755 | ;; tests depend on junit5 |
| 5368 | #:tests? #f)) | 5756 | #:tests? #f |
| 5757 | #:phases | ||
| 5758 | (modify-phases %standard-phases | ||
| 5759 | (add-before 'install 'generate-pom | ||
| 5760 | (generate-pom.xml "pom.xml" "org.ow2.asm" "asm-util" | ||
| 5761 | ,(package-version java-asm-9))) | ||
| 5762 | (replace 'install | ||
| 5763 | (install-from-pom "pom.xml"))))) | ||
| 5369 | (inputs | 5764 | (inputs |
| 5370 | (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) | 5765 | (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) |
| 5371 | 5766 | ||
| @@ -5377,10 +5772,243 @@ including java-asm.") | |||
| 5377 | (list #:jar-name "asm-commons8.jar" | 5772 | (list #:jar-name "asm-commons8.jar" |
| 5378 | #:source-dir "asm-commons/src/main/java" | 5773 | #:source-dir "asm-commons/src/main/java" |
| 5379 | #:test-dir "asm-commons/src/test" | 5774 | #:test-dir "asm-commons/src/test" |
| 5775 | #:jdk openjdk11 | ||
| 5380 | ;; tests depend on junit5 | 5776 | ;; tests depend on junit5 |
| 5381 | #:tests? #f)) | 5777 | #:tests? #f)) |
| 5382 | (inputs (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) | 5778 | (inputs (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) |
| 5383 | 5779 | ||
| 5780 | ;;; Java packages for GraalVM Truffle (specific versions required) | ||
| 5781 | |||
| 5782 | (define-public java-asm-for-graal-truffle | ||
| 5783 | (package | ||
| 5784 | (inherit java-asm-9) | ||
| 5785 | (name "java-asm-for-graal-truffle") | ||
| 5786 | (version "9.7.1") | ||
| 5787 | (source (origin | ||
| 5788 | (method git-fetch) | ||
| 5789 | (uri (git-reference | ||
| 5790 | (url "https://gitlab.ow2.org/asm/asm") | ||
| 5791 | (commit "ASM_9_7_1"))) | ||
| 5792 | (file-name (git-file-name name version)) | ||
| 5793 | (sha256 | ||
| 5794 | (base32 | ||
| 5795 | "0q1i01al9mpggf3256iwmhx9yj9pg52v4vi1gdni2x9jcikq65lf")))) | ||
| 5796 | (arguments | ||
| 5797 | `(#:jar-name "asm9.jar" | ||
| 5798 | #:source-dir "asm/src/main/java" | ||
| 5799 | #:test-dir "asm/src/test" | ||
| 5800 | #:tests? #f | ||
| 5801 | #:phases | ||
| 5802 | (modify-phases %standard-phases | ||
| 5803 | (add-after 'build 'create-sources-jar | ||
| 5804 | (lambda _ | ||
| 5805 | (invoke "jar" "cf" "build/jar/asm9-sources.jar" | ||
| 5806 | "-C" "asm/src/main/java" "."))) | ||
| 5807 | (add-after 'install 'install-sources-jar | ||
| 5808 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5809 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5810 | (install-file "build/jar/asm9-sources.jar" share))))))))) | ||
| 5811 | |||
| 5812 | (define-public java-asm-tree-for-graal-truffle | ||
| 5813 | (package | ||
| 5814 | (inherit java-asm-tree-9) | ||
| 5815 | (name "java-asm-tree-for-graal-truffle") | ||
| 5816 | (version "9.7.1") | ||
| 5817 | (source (package-source java-asm-for-graal-truffle)) | ||
| 5818 | (arguments | ||
| 5819 | `(#:jar-name "asm-tree.jar" | ||
| 5820 | #:source-dir "asm-tree/src/main/java" | ||
| 5821 | #:test-dir "asm-tree/src/test" | ||
| 5822 | #:tests? #f | ||
| 5823 | #:phases | ||
| 5824 | (modify-phases %standard-phases | ||
| 5825 | (add-after 'build 'create-sources-jar | ||
| 5826 | (lambda _ | ||
| 5827 | (invoke "jar" "cf" "build/jar/asm-tree-sources.jar" | ||
| 5828 | "-C" "asm-tree/src/main/java" "."))) | ||
| 5829 | (add-after 'install 'install-sources-jar | ||
| 5830 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5831 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5832 | (install-file "build/jar/asm-tree-sources.jar" share))))))) | ||
| 5833 | (inputs (list java-asm-for-graal-truffle)))) | ||
| 5834 | |||
| 5835 | (define-public java-asm-analysis-for-graal-truffle | ||
| 5836 | (package | ||
| 5837 | (inherit java-asm-analysis-9) | ||
| 5838 | (name "java-asm-analysis-for-graal-truffle") | ||
| 5839 | (version "9.7.1") | ||
| 5840 | (source (package-source java-asm-for-graal-truffle)) | ||
| 5841 | (inputs (list java-asm-for-graal-truffle java-asm-tree-for-graal-truffle)))) | ||
| 5842 | |||
| 5843 | (define-public java-asm-util-for-graal-truffle | ||
| 5844 | (package | ||
| 5845 | (inherit java-asm-util-9) | ||
| 5846 | (name "java-asm-util-for-graal-truffle") | ||
| 5847 | (version "9.7.1") | ||
| 5848 | (source (package-source java-asm-for-graal-truffle)) | ||
| 5849 | (arguments | ||
| 5850 | `(#:jar-name "asm-util8.jar" | ||
| 5851 | #:source-dir "asm-util/src/main/java" | ||
| 5852 | #:test-dir "asm-util/src/test" | ||
| 5853 | #:jdk ,openjdk11 | ||
| 5854 | #:tests? #f | ||
| 5855 | #:phases | ||
| 5856 | (modify-phases %standard-phases | ||
| 5857 | (add-after 'build 'create-sources-jar | ||
| 5858 | (lambda _ | ||
| 5859 | (invoke "jar" "cf" "build/jar/asm-util-sources.jar" | ||
| 5860 | "-C" "asm-util/src/main/java" "."))) | ||
| 5861 | (add-after 'install 'install-sources-jar | ||
| 5862 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5863 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5864 | (install-file "build/jar/asm-util-sources.jar" share))))))) | ||
| 5865 | (inputs (list java-asm-for-graal-truffle java-asm-analysis-for-graal-truffle java-asm-tree-for-graal-truffle)))) | ||
| 5866 | |||
| 5867 | (define-public java-asm-commons-for-graal-truffle | ||
| 5868 | (package | ||
| 5869 | (inherit java-asm-commons-9) | ||
| 5870 | (name "java-asm-commons-for-graal-truffle") | ||
| 5871 | (version "9.7.1") | ||
| 5872 | (source (package-source java-asm-for-graal-truffle)) | ||
| 5873 | (arguments | ||
| 5874 | `(#:jar-name "asm-commons8.jar" | ||
| 5875 | #:source-dir "asm-commons/src/main/java" | ||
| 5876 | #:test-dir "asm-commons/src/test" | ||
| 5877 | #:tests? #f | ||
| 5878 | #:phases | ||
| 5879 | (modify-phases %standard-phases | ||
| 5880 | (add-after 'build 'create-sources-jar | ||
| 5881 | (lambda _ | ||
| 5882 | (invoke "jar" "cf" "build/jar/asm-commons-sources.jar" | ||
| 5883 | "-C" "asm-commons/src/main/java" "."))) | ||
| 5884 | (add-after 'install 'install-sources-jar | ||
| 5885 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5886 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5887 | (install-file "build/jar/asm-commons-sources.jar" share))))))) | ||
| 5888 | (inputs (list java-asm-for-graal-truffle java-asm-analysis-for-graal-truffle java-asm-tree-for-graal-truffle)))) | ||
| 5889 | |||
| 5890 | ;; Truffle needs hamcrest-core 1.3, which is the exact version in Guix. | ||
| 5891 | ;; We create a separate package to keep graal-truffle dependencies explicit. | ||
| 5892 | (define-public java-hamcrest-core-for-graal-truffle | ||
| 5893 | (package | ||
| 5894 | (inherit java-hamcrest-core) | ||
| 5895 | (name "java-hamcrest-core-for-graal-truffle"))) | ||
| 5896 | |||
| 5897 | ;; mx expects NINJA as a zip file containing a ninja binary. | ||
| 5898 | ;; We create a zip from Guix's ninja package. | ||
| 5899 | (define-public ninja-for-graal-truffle | ||
| 5900 | (package | ||
| 5901 | (name "ninja-for-graal-truffle") | ||
| 5902 | (version "1.10.2") ; Version mx expects | ||
| 5903 | (source #f) | ||
| 5904 | (build-system trivial-build-system) | ||
| 5905 | (arguments | ||
| 5906 | (list | ||
| 5907 | #:modules '((guix build utils)) | ||
| 5908 | #:builder | ||
| 5909 | #~(begin | ||
| 5910 | (use-modules (guix build utils)) | ||
| 5911 | (let* ((ninja-bin (string-append #$(this-package-input "ninja") "/bin/ninja")) | ||
| 5912 | (out #$output) | ||
| 5913 | (share (string-append out "/share/ninja")) | ||
| 5914 | (zip-file (string-append share "/ninja.zip"))) | ||
| 5915 | (mkdir-p share) | ||
| 5916 | ;; Create a zip file containing the ninja binary | ||
| 5917 | (invoke #$(file-append (@ (gnu packages compression) zip) "/bin/zip") | ||
| 5918 | "-j" zip-file ninja-bin))))) | ||
| 5919 | (inputs (list (@ (gnu packages ninja) ninja))) | ||
| 5920 | (home-page "https://ninja-build.org/") | ||
| 5921 | (synopsis "Ninja build tool packaged for GraalVM mx") | ||
| 5922 | (description "Ninja build system repackaged as a zip for GraalVM's mx build tool.") | ||
| 5923 | (license license:asl2.0))) | ||
| 5924 | |||
| 5925 | ;;; TODO: VisualVM need to be built from source for GraalVM Truffle. | ||
| 5926 | |||
| 5927 | ;; ASM 9.8 - required by mx's internal tools (jacoco for code coverage) | ||
| 5928 | (define-public java-asm-for-graal-mx | ||
| 5929 | (package | ||
| 5930 | (inherit java-asm-9) | ||
| 5931 | (name "java-asm-for-graal-mx") | ||
| 5932 | (version "9.8") | ||
| 5933 | (source (origin | ||
| 5934 | (method git-fetch) | ||
| 5935 | (uri (git-reference | ||
| 5936 | (url "https://gitlab.ow2.org/asm/asm") | ||
| 5937 | (commit "ASM_9_8"))) | ||
| 5938 | (file-name (git-file-name name version)) | ||
| 5939 | (sha256 | ||
| 5940 | (base32 | ||
| 5941 | "0ky0vz83k0r0n477la0sjyvc44ffym8kf988rqzyxnb1kvwq4b92")))) | ||
| 5942 | (arguments | ||
| 5943 | `(#:jar-name "asm9.jar" | ||
| 5944 | #:source-dir "asm/src/main/java" | ||
| 5945 | #:test-dir "asm/src/test" | ||
| 5946 | #:tests? #f | ||
| 5947 | #:phases | ||
| 5948 | (modify-phases %standard-phases | ||
| 5949 | (add-after 'build 'create-sources-jar | ||
| 5950 | (lambda _ | ||
| 5951 | (invoke "jar" "cf" "build/jar/asm9-sources.jar" | ||
| 5952 | "-C" "asm/src/main/java" "."))) | ||
| 5953 | (add-after 'install 'install-sources-jar | ||
| 5954 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5955 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5956 | (install-file "build/jar/asm9-sources.jar" share))))))))) | ||
| 5957 | |||
| 5958 | (define-public java-asm-tree-for-graal-mx | ||
| 5959 | (package | ||
| 5960 | (inherit java-asm-tree-9) | ||
| 5961 | (name "java-asm-tree-for-graal-mx") | ||
| 5962 | (version "9.8") | ||
| 5963 | (source (package-source java-asm-for-graal-mx)) | ||
| 5964 | (arguments | ||
| 5965 | `(#:jar-name "asm-tree.jar" | ||
| 5966 | #:source-dir "asm-tree/src/main/java" | ||
| 5967 | #:test-dir "asm-tree/src/test" | ||
| 5968 | #:tests? #f | ||
| 5969 | #:phases | ||
| 5970 | (modify-phases %standard-phases | ||
| 5971 | (add-after 'build 'create-sources-jar | ||
| 5972 | (lambda _ | ||
| 5973 | (invoke "jar" "cf" "build/jar/asm-tree-sources.jar" | ||
| 5974 | "-C" "asm-tree/src/main/java" "."))) | ||
| 5975 | (add-after 'install 'install-sources-jar | ||
| 5976 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5977 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 5978 | (install-file "build/jar/asm-tree-sources.jar" share))))))) | ||
| 5979 | (inputs (list java-asm-for-graal-mx)))) | ||
| 5980 | |||
| 5981 | (define-public java-asm-analysis-for-graal-mx | ||
| 5982 | (package | ||
| 5983 | (inherit java-asm-analysis-9) | ||
| 5984 | (name "java-asm-analysis-for-graal-mx") | ||
| 5985 | (version "9.8") | ||
| 5986 | (source (package-source java-asm-for-graal-mx)) | ||
| 5987 | (inputs (list java-asm-for-graal-mx java-asm-tree-for-graal-mx)))) | ||
| 5988 | |||
| 5989 | (define-public java-asm-commons-for-graal-mx | ||
| 5990 | (package | ||
| 5991 | (inherit java-asm-commons-9) | ||
| 5992 | (name "java-asm-commons-for-graal-mx") | ||
| 5993 | (version "9.8") | ||
| 5994 | (source (package-source java-asm-for-graal-mx)) | ||
| 5995 | (arguments | ||
| 5996 | `(#:jar-name "asm-commons.jar" | ||
| 5997 | #:source-dir "asm-commons/src/main/java" | ||
| 5998 | #:test-dir "asm-commons/src/test" | ||
| 5999 | #:tests? #f | ||
| 6000 | #:phases | ||
| 6001 | (modify-phases %standard-phases | ||
| 6002 | (add-after 'build 'create-sources-jar | ||
| 6003 | (lambda _ | ||
| 6004 | (invoke "jar" "cf" "build/jar/asm-commons-sources.jar" | ||
| 6005 | "-C" "asm-commons/src/main/java" "."))) | ||
| 6006 | (add-after 'install 'install-sources-jar | ||
| 6007 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 6008 | (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) | ||
| 6009 | (install-file "build/jar/asm-commons-sources.jar" share))))))) | ||
| 6010 | (inputs (list java-asm-for-graal-mx java-asm-analysis-for-graal-mx java-asm-tree-for-graal-mx)))) | ||
| 6011 | |||
| 5384 | (define-public java-cglib | 6012 | (define-public java-cglib |
| 5385 | (package | 6013 | (package |
| 5386 | (name "java-cglib") | 6014 | (name "java-cglib") |
| @@ -5828,6 +6456,28 @@ mathematics and statistics components addressing the most common problems not | |||
| 5828 | available in the Java programming language or Commons Lang.") | 6456 | available in the Java programming language or Commons Lang.") |
| 5829 | (license license:asl2.0))) | 6457 | (license license:asl2.0))) |
| 5830 | 6458 | ||
| 6459 | ;; Commons Math 3.2 - required by JMH 1.21 (specified in jmh-parent-1.21.pom) | ||
| 6460 | (define-public java-commons-math3-for-graal-mx | ||
| 6461 | (package | ||
| 6462 | (inherit java-commons-math3) | ||
| 6463 | (name "java-commons-math3-for-graal-mx") | ||
| 6464 | (version "3.2") | ||
| 6465 | (source (origin | ||
| 6466 | (method url-fetch) | ||
| 6467 | (uri (string-append "mirror://apache/commons/math/source/" | ||
| 6468 | "commons-math3-" version "-src.tar.gz")) | ||
| 6469 | (sha256 | ||
| 6470 | (base32 | ||
| 6471 | "041k90pfqqia2ikba1q5qdzqd6qhx07k6d0sqiryk85f6032z687")))) | ||
| 6472 | (arguments | ||
| 6473 | (substitute-keyword-arguments (package-arguments java-commons-math3) | ||
| 6474 | ;; FastMathTest fails on JDK 8+: checks that FastMath implements all | ||
| 6475 | ;; StrictMath methods, but Java 8 added addExact, floorDiv, etc. | ||
| 6476 | ((#:tests? _ #f) | ||
| 6477 | #f))) | ||
| 6478 | (propagated-inputs | ||
| 6479 | (list apache-commons-parent-pom-28)))) | ||
| 6480 | |||
| 5831 | (define-public java-jmh | 6481 | (define-public java-jmh |
| 5832 | (package | 6482 | (package |
| 5833 | (name "java-jmh") | 6483 | (name "java-jmh") |
| @@ -5843,15 +6493,14 @@ available in the Java programming language or Commons Lang.") | |||
| 5843 | "0i7fa7l3gdqkkgz5ddayp6m46dgbj9rqlz35xffrcbyiz3gpljy0")))) | 6493 | "0i7fa7l3gdqkkgz5ddayp6m46dgbj9rqlz35xffrcbyiz3gpljy0")))) |
| 5844 | (build-system maven-build-system) | 6494 | (build-system maven-build-system) |
| 5845 | (arguments | 6495 | (arguments |
| 5846 | `(#:exclude | 6496 | `(#:jdk ,openjdk11 |
| 6497 | #:exclude | ||
| 5847 | (("org.apache.maven.plugins" . | 6498 | (("org.apache.maven.plugins" . |
| 5848 | ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin" | 6499 | ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin" |
| 5849 | "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin")) | 6500 | "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin" |
| 6501 | "maven-enforcer-plugin")) | ||
| 5850 | ("com.mycila.maven-license-plugin" . ("maven-license-plugin")) | 6502 | ("com.mycila.maven-license-plugin" . ("maven-license-plugin")) |
| 5851 | ("org.apache.maven.wagon" . ("wagon-ssh"))) | 6503 | ("org.apache.maven.wagon" . ("wagon-ssh"))) |
| 5852 | #:maven-plugins | ||
| 5853 | (("maven-enforcer-plugin" ,maven-enforcer-plugin) | ||
| 5854 | ,@(default-maven-plugins)) | ||
| 5855 | #:phases | 6504 | #:phases |
| 5856 | (modify-phases %standard-phases | 6505 | (modify-phases %standard-phases |
| 5857 | (add-after 'unpack 'remove-unnecessary | 6506 | (add-after 'unpack 'remove-unnecessary |
| @@ -5859,11 +6508,26 @@ available in the Java programming language or Commons Lang.") | |||
| 5859 | ;; requires org.apache.maven.archetype:archetype-packaging. | 6508 | ;; requires org.apache.maven.archetype:archetype-packaging. |
| 5860 | ;; Its subprojects also require groovy, kotlin and scala, | 6509 | ;; Its subprojects also require groovy, kotlin and scala, |
| 5861 | ;; respectively. | 6510 | ;; respectively. |
| 5862 | (delete-file-recursively "jmh-archetypes")))))) | 6511 | (delete-file-recursively "jmh-archetypes"))) |
| 6512 | (add-after 'fix-pom-files 'fix-surefire-config | ||
| 6513 | (lambda _ | ||
| 6514 | ;; Fix surefire fork crash with NullPointerException in | ||
| 6515 | ;; ForkedBooter.setupBooter. Per Maven Surefire documentation at | ||
| 6516 | ;; <https://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html>: | ||
| 6517 | ;; "If you're having problems loading classes, try setting | ||
| 6518 | ;; useSystemClassLoader=false to see if that helps." | ||
| 6519 | (substitute* (find-files "." "pom\\.xml$") | ||
| 6520 | (("<trimStackTrace>false</trimStackTrace>") | ||
| 6521 | "<trimStackTrace>false</trimStackTrace> | ||
| 6522 | <useSystemClassLoader>false</useSystemClassLoader>"))))))) | ||
| 5863 | (propagated-inputs | 6523 | (propagated-inputs |
| 5864 | (list java-jopt-simple-4 java-commons-math3)) | 6524 | (list java-jopt-simple-4 java-commons-math3)) |
| 5865 | (native-inputs | 6525 | (native-inputs |
| 5866 | (list java-junit java-hamcrest-core)) | 6526 | (list java-junit java-hamcrest-core junit-bom-5.10 junit-bom-5.10.2 |
| 6527 | junit-bom-5.11 junit-bom-5.11.0 junit-bom-5.12 maven-parent-pom-44 | ||
| 6528 | apache-parent-pom-34 apache-commons-parent-pom-39 | ||
| 6529 | java-sisu-inject-parent-pom-0.9 java-eclipse-sisu-inject-0.9 | ||
| 6530 | java-eclipse-sisu-plexus-0.9 java-plexus-utils-4)) | ||
| 5867 | (home-page "https://openjdk.java.net/projects/code-tools/jmh/") | 6531 | (home-page "https://openjdk.java.net/projects/code-tools/jmh/") |
| 5868 | (synopsis "Benchmark harness for the JVM") | 6532 | (synopsis "Benchmark harness for the JVM") |
| 5869 | (description "JMH is a Java harness for building, running, and analysing | 6533 | (description "JMH is a Java harness for building, running, and analysing |
| @@ -5872,6 +6536,73 @@ targeting the JVM.") | |||
| 5872 | ;; GPLv2 only | 6536 | ;; GPLv2 only |
| 5873 | (license license:gpl2))) | 6537 | (license license:gpl2))) |
| 5874 | 6538 | ||
| 6539 | ;; JMH 1.21 - required by mx for compiler benchmarks | ||
| 6540 | (define-public java-jmh-for-graal-mx | ||
| 6541 | (package | ||
| 6542 | (inherit java-jmh) | ||
| 6543 | (name "java-jmh-for-graal-mx") | ||
| 6544 | (version "1.21") | ||
| 6545 | (source (origin | ||
| 6546 | (method git-fetch) | ||
| 6547 | (uri (git-reference | ||
| 6548 | (url "https://github.com/openjdk/jmh") | ||
| 6549 | (commit version))) | ||
| 6550 | (file-name (git-file-name "jmh" version)) | ||
| 6551 | (sha256 | ||
| 6552 | (base32 | ||
| 6553 | "1jrbrw7qbnhkzv5m1hh5mlhcxvzyivkqbr3vwnjlswhbrpswy552")))) | ||
| 6554 | (propagated-inputs | ||
| 6555 | (list java-jopt-simple-4 java-commons-math3-for-graal-mx)))) | ||
| 6556 | |||
| 6557 | ;; JMH annotation processor - required by mx for compiler benchmarks | ||
| 6558 | (define-public java-jmh-generator-annprocess-for-graal-mx | ||
| 6559 | (package | ||
| 6560 | (name "java-jmh-generator-annprocess-for-graal-mx") | ||
| 6561 | (version "1.21") | ||
| 6562 | (source (package-source java-jmh-for-graal-mx)) | ||
| 6563 | (build-system maven-build-system) | ||
| 6564 | (arguments | ||
| 6565 | `(#:exclude | ||
| 6566 | (("org.apache.maven.plugins" . | ||
| 6567 | ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin" | ||
| 6568 | "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin")) | ||
| 6569 | ("com.mycila.maven-license-plugin" . ("maven-license-plugin")) | ||
| 6570 | ("org.apache.maven.wagon" . ("wagon-ssh"))) | ||
| 6571 | #:maven-plugins | ||
| 6572 | (("maven-enforcer-plugin" ,maven-enforcer-plugin) | ||
| 6573 | ,@(default-maven-plugins)) | ||
| 6574 | #:phases | ||
| 6575 | (modify-phases %standard-phases | ||
| 6576 | (add-after 'unpack 'chdir | ||
| 6577 | (lambda _ | ||
| 6578 | (chdir "jmh-generator-annprocess"))) | ||
| 6579 | (add-after 'chdir 'remove-unnecessary | ||
| 6580 | (lambda _ | ||
| 6581 | (delete-file-recursively "../jmh-archetypes"))) | ||
| 6582 | (add-after 'remove-unnecessary 'fix-pom | ||
| 6583 | (lambda _ | ||
| 6584 | ;; Update maven plugin versions to match what Guix has | ||
| 6585 | ;; and remove plugins we don't have packaged | ||
| 6586 | (invoke "sed" "-i" "-e" | ||
| 6587 | "s|<version>1.4.1</version>|<version>3.0.0</version>|" | ||
| 6588 | "-e" | ||
| 6589 | "s|<version>2.6</version>|<version>3.1.0</version>|" | ||
| 6590 | ;; Remove maven-source-plugin block (lines 104-117) | ||
| 6591 | "-e" "/<!-- Create source jar -->/,/<\\/plugin>/d" | ||
| 6592 | ;; Remove maven-javadoc-plugin block (lines 119-135) | ||
| 6593 | "-e" "/<!-- Create javadoc jar -->/,/<\\/plugin>/d" | ||
| 6594 | ;; Remove maven-eclipse-plugin block (lines 137-145) | ||
| 6595 | "-e" "/<!-- Add sources and javadoc/,/<\\/plugin>/d" | ||
| 6596 | "../pom.xml")))))) | ||
| 6597 | (propagated-inputs | ||
| 6598 | (list java-jmh-for-graal-mx)) | ||
| 6599 | (native-inputs | ||
| 6600 | (list java-junit java-hamcrest-core)) | ||
| 6601 | (home-page "https://openjdk.java.net/projects/code-tools/jmh/") | ||
| 6602 | (synopsis "JMH annotation processor") | ||
| 6603 | (description "JMH annotation processor for generating benchmark code.") | ||
| 6604 | (license license:gpl2))); GPLv2 only, with classpath exception | ||
| 6605 | |||
| 5875 | (define-public java-commons-collections4 | 6606 | (define-public java-commons-collections4 |
| 5876 | (package | 6607 | (package |
| 5877 | (name "java-commons-collections4") | 6608 | (name "java-commons-collections4") |
| @@ -6011,7 +6742,7 @@ setter and getter method.") | |||
| 6011 | (define-public java-commons-io | 6742 | (define-public java-commons-io |
| 6012 | (package | 6743 | (package |
| 6013 | (name "java-commons-io") | 6744 | (name "java-commons-io") |
| 6014 | (version "2.5") | 6745 | (version "2.18.0") |
| 6015 | (source | 6746 | (source |
| 6016 | (origin | 6747 | (origin |
| 6017 | (method url-fetch) | 6748 | (method url-fetch) |
| @@ -6019,24 +6750,29 @@ setter and getter method.") | |||
| 6019 | "commons-io-" version "-src.tar.gz")) | 6750 | "commons-io-" version "-src.tar.gz")) |
| 6020 | (sha256 | 6751 | (sha256 |
| 6021 | (base32 | 6752 | (base32 |
| 6022 | "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3")))) | 6753 | "0cr9ryhdbk4gz6bbcdqdd28d80dik8csv2fx7h6mx7yfxgbjsrf4")))) |
| 6023 | (build-system ant-build-system) | 6754 | (build-system ant-build-system) |
| 6024 | (outputs '("out" "doc")) | ||
| 6025 | (arguments | 6755 | (arguments |
| 6026 | `(#:test-target "test" | 6756 | `(#:jar-name "commons-io.jar" |
| 6027 | #:make-flags | 6757 | #:source-dir "src/main/java" |
| 6028 | ,#~(list (string-append "-Djunit.jar=" | 6758 | #:tests? #f |
| 6029 | (car (find-files #$(this-package-native-input "java-junit") | ||
| 6030 | "jar$")))) | ||
| 6031 | #:phases | 6759 | #:phases |
| 6032 | (modify-phases %standard-phases | 6760 | (modify-phases %standard-phases |
| 6033 | (add-after 'build 'build-javadoc ant-build-javadoc) | 6761 | (add-before 'build 'generate-build-xml |
| 6034 | (replace 'install (install-from-pom "pom.xml")) | 6762 | (lambda _ |
| 6035 | (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) | 6763 | (with-output-to-file "build.xml" |
| 6036 | (native-inputs | 6764 | (lambda () |
| 6037 | (list java-junit java-hamcrest-core)) | 6765 | (display |
| 6766 | "<project><target name=\"jar\"/><target name=\"test\"/></project>\n"))))) | ||
| 6767 | (replace 'build | ||
| 6768 | (lambda* (#:key source-dir jar-name #:allow-other-keys) | ||
| 6769 | (mkdir-p "build/classes") | ||
| 6770 | (apply invoke "javac" "-d" "build/classes" | ||
| 6771 | (find-files source-dir "\\.java$")) | ||
| 6772 | (invoke "jar" "-cf" jar-name "-C" "build/classes" "."))) | ||
| 6773 | (replace 'install (install-from-pom "pom.xml"))))) | ||
| 6038 | (propagated-inputs | 6774 | (propagated-inputs |
| 6039 | (list apache-commons-parent-pom-39)) | 6775 | (list apache-commons-parent-pom-52)) |
| 6040 | (home-page "https://commons.apache.org/io/") | 6776 | (home-page "https://commons.apache.org/io/") |
| 6041 | (synopsis "Common useful IO related classes") | 6777 | (synopsis "Common useful IO related classes") |
| 6042 | (description "Commons-IO contains utility classes, stream implementations, | 6778 | (description "Commons-IO contains utility classes, stream implementations, |
| @@ -6180,26 +6916,31 @@ included: | |||
| 6180 | (define-public java-commons-lang3 | 6916 | (define-public java-commons-lang3 |
| 6181 | (package | 6917 | (package |
| 6182 | (name "java-commons-lang3") | 6918 | (name "java-commons-lang3") |
| 6183 | (version "3.12.0") | 6919 | (version "3.17.0") |
| 6184 | (source | 6920 | (source |
| 6185 | (origin | 6921 | (origin |
| 6186 | (method url-fetch) | 6922 | (method url-fetch) |
| 6187 | (uri (string-append "mirror://apache/commons/lang/source/" | 6923 | (uri (string-append "mirror://apache/commons/lang/source/" |
| 6188 | "commons-lang3-" version "-src.tar.gz")) | 6924 | "commons-lang3-" version "-src.tar.gz")) |
| 6189 | (sha256 | 6925 | (sha256 |
| 6190 | (base32 "09dcv1pkdx3hpf06py8p9511f1wkin6jpacdll0c8vxpbi3yfwzv")) | 6926 | (base32 "0h9s5abbs41swfzdfg4dsk0gqr926avj9773j0did1az8ppn90v5")))) |
| 6191 | (patches | ||
| 6192 | (search-patches "java-commons-lang-fix-dependency.patch")))) | ||
| 6193 | (build-system ant-build-system) | 6927 | (build-system ant-build-system) |
| 6194 | (arguments | 6928 | (arguments |
| 6195 | `(#:jar-name "commons-lang3.jar" | 6929 | `(#:jar-name "commons-lang3.jar" |
| 6196 | #:source-dir "src/main/java" | 6930 | #:source-dir "src/main/java" |
| 6197 | #:tests? #f; require junit5 | 6931 | #:tests? #f ; require junit5 |
| 6198 | #:phases | 6932 | #:phases |
| 6199 | (modify-phases %standard-phases | 6933 | (modify-phases %standard-phases |
| 6934 | (add-before 'install 'make-commons-text-optional | ||
| 6935 | ;; commons-text is scope=provided (only for javadoc), but install-from-pom | ||
| 6936 | ;; still requires it. Mark it optional to avoid cycle: lang3 -> text -> lang3. | ||
| 6937 | (lambda _ | ||
| 6938 | (substitute* "pom.xml" | ||
| 6939 | (("<artifactId>commons-text</artifactId>") | ||
| 6940 | "<artifactId>commons-text</artifactId>\n <optional>true</optional>")))) | ||
| 6200 | (replace 'install (install-from-pom "pom.xml"))))) | 6941 | (replace 'install (install-from-pom "pom.xml"))))) |
| 6201 | (propagated-inputs | 6942 | (propagated-inputs |
| 6202 | (list apache-commons-parent-pom-48)) | 6943 | (list apache-commons-parent-pom-73)) |
| 6203 | (home-page "https://commons.apache.org/lang/") | 6944 | (home-page "https://commons.apache.org/lang/") |
| 6204 | (synopsis "Extension of the java.lang package") | 6945 | (synopsis "Extension of the java.lang package") |
| 6205 | (description "The Commons Lang components contains a set of Java classes | 6946 | (description "The Commons Lang components contains a set of Java classes |
| @@ -6561,9 +7302,52 @@ used by programmers to guide the static analysis.") | |||
| 6561 | (("@J2ObjCIncompatible") "") | 7302 | (("@J2ObjCIncompatible") "") |
| 6562 | (("@IgnoreJRERequirement") "") | 7303 | (("@IgnoreJRERequirement") "") |
| 6563 | (("@Nullable") ""))))) | 7304 | (("@Nullable") ""))))) |
| 6564 | ;; This is required by guava, but this is just an empty stub | 7305 | ;; The listenablefuture:9999.0-empty-to-avoid-conflict-with-guava artifact |
| 7306 | ;; is intentionally empty. It exists to solve a dependency conflict: | ||
| 7307 | ;; ListenableFuture class lives in guava, but was also published separately | ||
| 7308 | ;; as listenablefuture:1.0 for Android. When both are on classpath, there's | ||
| 7309 | ;; a duplicate class conflict. By publishing an empty stub at version 9999.0, | ||
| 7310 | ;; Maven's "highest version wins" resolution picks this empty jar over 1.0, | ||
| 7311 | ;; and the actual class comes only from guava itself. | ||
| 7312 | ;; | ||
| 7313 | ;; The upstream source only contains pom.xml (no code to compile), but Maven | ||
| 7314 | ;; requires a jar file to exist in the repository. We create a minimal valid | ||
| 7315 | ;; jar containing only a manifest. | ||
| 7316 | ;; | ||
| 7317 | ;; The upstream pom references guava-parent:26.0-android, but we only have | ||
| 7318 | ;; guava-parent:31.1. Since the stub doesn't need anything from the parent, | ||
| 7319 | ;; we install a self-contained pom without the parent reference. | ||
| 6565 | (add-before 'install 'install-listenablefuture-stub | 7320 | (add-before 'install 'install-listenablefuture-stub |
| 6566 | (install-pom-file "futures/listenablefuture9999/pom.xml")) | 7321 | (lambda* (#:key outputs #:allow-other-keys) |
| 7322 | (let* ((out (assoc-ref outputs "out")) | ||
| 7323 | (version "9999.0-empty-to-avoid-conflict-with-guava") | ||
| 7324 | (artifact "listenablefuture") | ||
| 7325 | (group "com/google/guava") | ||
| 7326 | (repository (string-append out "/lib/m2/" group "/" | ||
| 7327 | artifact "/" version "/")) | ||
| 7328 | (pom-name (string-append repository artifact "-" version ".pom")) | ||
| 7329 | (jar-name (string-append repository artifact "-" version ".jar")) | ||
| 7330 | (tmp-dir (mkdtemp "empty-jar.XXXXXX"))) | ||
| 7331 | (mkdir-p repository) | ||
| 7332 | ;; Install a self-contained pom without the parent reference | ||
| 7333 | (with-output-to-file pom-name | ||
| 7334 | (lambda () | ||
| 7335 | (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") | ||
| 7336 | (display "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n") | ||
| 7337 | (display " <modelVersion>4.0.0</modelVersion>\n") | ||
| 7338 | (display " <groupId>com.google.guava</groupId>\n") | ||
| 7339 | (display " <artifactId>listenablefuture</artifactId>\n") | ||
| 7340 | (display " <version>") | ||
| 7341 | (display version) | ||
| 7342 | (display "</version>\n") | ||
| 7343 | (display " <name>Guava ListenableFuture only</name>\n") | ||
| 7344 | (display "</project>\n"))) | ||
| 7345 | ;; Create a minimal valid jar with just a manifest | ||
| 7346 | (mkdir-p (string-append tmp-dir "/META-INF")) | ||
| 7347 | (with-output-to-file (string-append tmp-dir "/META-INF/MANIFEST.MF") | ||
| 7348 | (lambda () | ||
| 7349 | (display "Manifest-Version: 1.0\n"))) | ||
| 7350 | (invoke "jar" "cf" jar-name "-C" tmp-dir ".")))) | ||
| 6567 | (replace 'install (install-from-pom "guava/pom.xml"))))) | 7351 | (replace 'install (install-from-pom "guava/pom.xml"))))) |
| 6568 | (inputs | 7352 | (inputs |
| 6569 | (list java-error-prone-annotations java-jsr305)) | 7353 | (list java-error-prone-annotations java-jsr305)) |
| @@ -6578,35 +7362,36 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much | |||
| 6578 | more!") | 7362 | more!") |
| 6579 | (license license:asl2.0))) | 7363 | (license license:asl2.0))) |
| 6580 | 7364 | ||
| 6581 | (define-public java-guava-futures-failureaccess | 7365 | (define java-guava-parent-pom |
| 6582 | (package | 7366 | (package |
| 6583 | (inherit java-guava) | 7367 | (inherit java-guava) |
| 6584 | (name "java-guava-futures-failureaccess") | 7368 | (name "java-guava-parent-pom") |
| 6585 | (arguments | 7369 | (arguments |
| 6586 | `(#:tests? #f; no tests | 7370 | `(#:tests? #f |
| 6587 | #:jar-name "guava-futures-failureaccess.jar" | ||
| 6588 | #:source-dir "futures/failureaccess/src" | ||
| 6589 | #:phases | 7371 | #:phases |
| 6590 | (modify-phases %standard-phases | 7372 | (modify-phases %standard-phases |
| 7373 | (delete 'configure) | ||
| 7374 | (delete 'build) | ||
| 6591 | (replace 'install | 7375 | (replace 'install |
| 6592 | (install-from-pom "futures/failureaccess/pom.xml"))))) | 7376 | (install-pom-file "pom.xml"))))) |
| 6593 | (propagated-inputs | 7377 | (propagated-inputs |
| 6594 | `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7))))) | 7378 | `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7))))) |
| 6595 | 7379 | ||
| 6596 | (define java-guava-parent-pom | 7380 | (define-public java-guava-futures-failureaccess |
| 6597 | (package | 7381 | (package |
| 6598 | (inherit java-guava) | 7382 | (inherit java-guava) |
| 6599 | (name "java-guava-parent-pom") | 7383 | (name "java-guava-futures-failureaccess") |
| 6600 | (arguments | 7384 | (arguments |
| 6601 | `(#:tests? #f | 7385 | `(#:tests? #f; no tests |
| 7386 | #:jar-name "guava-futures-failureaccess.jar" | ||
| 7387 | #:source-dir "futures/failureaccess/src" | ||
| 6602 | #:phases | 7388 | #:phases |
| 6603 | (modify-phases %standard-phases | 7389 | (modify-phases %standard-phases |
| 6604 | (delete 'configure) | ||
| 6605 | (delete 'build) | ||
| 6606 | (replace 'install | 7390 | (replace 'install |
| 6607 | (install-pom-file "pom.xml"))))) | 7391 | (install-from-pom "futures/failureaccess/pom.xml"))))) |
| 6608 | (propagated-inputs | 7392 | (propagated-inputs |
| 6609 | `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7))))) | 7393 | (list java-guava-parent-pom |
| 7394 | java-sonatype-oss-parent-pom-7)))) | ||
| 6610 | 7395 | ||
| 6611 | ;; The java-commons-logging package provides adapters to many different | 7396 | ;; The java-commons-logging package provides adapters to many different |
| 6612 | ;; logging frameworks. To avoid an excessive dependency graph we try to build | 7397 | ;; logging frameworks. To avoid an excessive dependency graph we try to build |
| @@ -6625,7 +7410,7 @@ more!") | |||
| 6625 | (build-system ant-build-system) | 7410 | (build-system ant-build-system) |
| 6626 | (arguments | 7411 | (arguments |
| 6627 | `(#:tests? #f ; avoid dependency on logging frameworks | 7412 | `(#:tests? #f ; avoid dependency on logging frameworks |
| 6628 | #:jar-name "commons-logging-minimal.jar" | 7413 | #:jar-name "commons-logging.jar" |
| 6629 | #:phases | 7414 | #:phases |
| 6630 | (modify-phases %standard-phases | 7415 | (modify-phases %standard-phases |
| 6631 | (add-after 'unpack 'delete-adapters-and-tests | 7416 | (add-after 'unpack 'delete-adapters-and-tests |
| @@ -6647,7 +7432,11 @@ more!") | |||
| 6647 | "AvalonLogger.java" | 7432 | "AvalonLogger.java" |
| 6648 | "LogKitLogger.java")) | 7433 | "LogKitLogger.java")) |
| 6649 | (delete-file-recursively "src/test") | 7434 | (delete-file-recursively "src/test") |
| 6650 | #t))))) | 7435 | #t)) |
| 7436 | (replace 'install | ||
| 7437 | (install-from-pom "pom.xml"))))) | ||
| 7438 | (propagated-inputs | ||
| 7439 | (list apache-commons-parent-pom-34)) | ||
| 6651 | (home-page "https://commons.apache.org/logging/") | 7440 | (home-page "https://commons.apache.org/logging/") |
| 6652 | (synopsis "Common API for logging implementations") | 7441 | (synopsis "Common API for logging implementations") |
| 6653 | (description "The Logging package is a thin bridge between different | 7442 | (description "The Logging package is a thin bridge between different |
| @@ -6714,6 +7503,93 @@ tests with a clean and simple API. It generates mocks using reflection, and | |||
| 6714 | it records all mock invocations, including methods arguments.") | 7503 | it records all mock invocations, including methods arguments.") |
| 6715 | (license license:asl2.0))) | 7504 | (license license:asl2.0))) |
| 6716 | 7505 | ||
| 7506 | (define-public java-httpcomponents-parent-pom | ||
| 7507 | (package | ||
| 7508 | (name "java-httpcomponents-parent-pom") | ||
| 7509 | (version "11") | ||
| 7510 | (source (origin | ||
| 7511 | (method url-fetch) | ||
| 7512 | (uri (string-append "https://repo.maven.apache.org/maven2/" | ||
| 7513 | "org/apache/httpcomponents/httpcomponents-parent/" | ||
| 7514 | version "/httpcomponents-parent-" version ".pom")) | ||
| 7515 | (sha256 | ||
| 7516 | (base32 | ||
| 7517 | "1ank6bjz9w9b56p4695g60nv1rr07vvgygp4gq60fmaw25xzh0d9")))) | ||
| 7518 | (build-system ant-build-system) | ||
| 7519 | (arguments | ||
| 7520 | `(#:tests? #f | ||
| 7521 | #:phases | ||
| 7522 | (modify-phases %standard-phases | ||
| 7523 | (delete 'configure) | ||
| 7524 | (delete 'build) | ||
| 7525 | (replace 'install | ||
| 7526 | (install-pom-file "httpcomponents-parent-11.pom"))))) | ||
| 7527 | (propagated-inputs | ||
| 7528 | (list apache-parent-pom-21)) | ||
| 7529 | (home-page "https://hc.apache.org/") | ||
| 7530 | (synopsis "Parent POM for Apache HttpComponents") | ||
| 7531 | (description "This package contains the parent POM for Apache HttpComponents | ||
| 7532 | projects.") | ||
| 7533 | (license license:asl2.0))) | ||
| 7534 | |||
| 7535 | (define-public java-httpcomponents-project-pom | ||
| 7536 | (package | ||
| 7537 | (name "java-httpcomponents-project-pom") | ||
| 7538 | (version "7") | ||
| 7539 | (source (origin | ||
| 7540 | (method url-fetch) | ||
| 7541 | (uri (string-append "https://repo.maven.apache.org/maven2/" | ||
| 7542 | "org/apache/httpcomponents/project/" | ||
| 7543 | version "/project-" version ".pom")) | ||
| 7544 | (sha256 | ||
| 7545 | (base32 | ||
| 7546 | "1hs8m8cgyypd6vb882zjyns58nhzrkm7cpbb0kg5i9amhm1blvix")))) | ||
| 7547 | (build-system ant-build-system) | ||
| 7548 | (arguments | ||
| 7549 | `(#:tests? #f | ||
| 7550 | #:phases | ||
| 7551 | (modify-phases %standard-phases | ||
| 7552 | (delete 'configure) | ||
| 7553 | (delete 'build) | ||
| 7554 | (replace 'install | ||
| 7555 | (install-pom-file (string-append "project-" ,version ".pom")))))) | ||
| 7556 | (propagated-inputs | ||
| 7557 | (list apache-parent-pom-13)) | ||
| 7558 | (home-page "https://hc.apache.org/") | ||
| 7559 | (synopsis "Parent POM for Apache HttpComponents (legacy)") | ||
| 7560 | (description "This package contains the legacy parent POM for Apache | ||
| 7561 | HttpComponents projects.") | ||
| 7562 | (license license:asl2.0))) | ||
| 7563 | |||
| 7564 | (define-public java-httpcomponents-core-parent-pom | ||
| 7565 | (package | ||
| 7566 | (name "java-httpcomponents-core-parent-pom") | ||
| 7567 | (version "4.4.6") | ||
| 7568 | (source (origin | ||
| 7569 | (method url-fetch) | ||
| 7570 | (uri (string-append "mirror://apache//httpcomponents/httpcore/" | ||
| 7571 | "source/httpcomponents-core-" | ||
| 7572 | version "-src.tar.gz")) | ||
| 7573 | (sha256 | ||
| 7574 | (base32 | ||
| 7575 | "02bwcf38y4vgwq7kj2s6q7qrmma641r5lacivm16kgxvb2j6h1vy")))) | ||
| 7576 | (build-system ant-build-system) | ||
| 7577 | (arguments | ||
| 7578 | `(#:tests? #f | ||
| 7579 | #:phases | ||
| 7580 | (modify-phases %standard-phases | ||
| 7581 | (delete 'configure) | ||
| 7582 | (delete 'build) | ||
| 7583 | (replace 'install | ||
| 7584 | (install-pom-file "pom.xml"))))) | ||
| 7585 | (propagated-inputs | ||
| 7586 | (list java-httpcomponents-project-pom)) | ||
| 7587 | (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") | ||
| 7588 | (synopsis "Parent POM for Apache HttpComponents Core") | ||
| 7589 | (description "This package contains the parent POM for Apache HttpComponents | ||
| 7590 | Core modules.") | ||
| 7591 | (license license:asl2.0))) | ||
| 7592 | |||
| 6717 | (define-public java-httpcomponents-httpcore | 7593 | (define-public java-httpcomponents-httpcore |
| 6718 | (package | 7594 | (package |
| 6719 | (name "java-httpcomponents-httpcore") | 7595 | (name "java-httpcomponents-httpcore") |
| @@ -6732,9 +7608,13 @@ it records all mock invocations, including methods arguments.") | |||
| 6732 | #:phases | 7608 | #:phases |
| 6733 | (modify-phases %standard-phases | 7609 | (modify-phases %standard-phases |
| 6734 | (add-after 'unpack 'chdir | 7610 | (add-after 'unpack 'chdir |
| 6735 | (lambda _ (chdir "httpcore") #t))))) | 7611 | (lambda _ (chdir "httpcore") #t)) |
| 6736 | (inputs | 7612 | (replace 'install |
| 6737 | (list java-commons-logging-minimal java-commons-lang3)) | 7613 | (install-from-pom "pom.xml"))))) |
| 7614 | (propagated-inputs | ||
| 7615 | (list java-httpcomponents-core-parent-pom | ||
| 7616 | java-commons-logging-minimal | ||
| 7617 | java-commons-lang3)) | ||
| 6738 | (native-inputs | 7618 | (native-inputs |
| 6739 | (list java-junit java-mockito-1)) | 7619 | (list java-junit java-mockito-1)) |
| 6740 | (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") | 7620 | (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") |
| @@ -6812,6 +7692,35 @@ NIO. | |||
| 6812 | 7692 | ||
| 6813 | This package provides... some tests."))) | 7693 | This package provides... some tests."))) |
| 6814 | 7694 | ||
| 7695 | (define-public java-httpcomponents-client-parent-pom | ||
| 7696 | (package | ||
| 7697 | (name "java-httpcomponents-client-parent-pom") | ||
| 7698 | (version "4.5.12") | ||
| 7699 | (source (origin | ||
| 7700 | (method url-fetch) | ||
| 7701 | (uri (string-append "mirror://apache/httpcomponents/httpclient/" | ||
| 7702 | "source/httpcomponents-client-" | ||
| 7703 | version "-src.tar.gz")) | ||
| 7704 | (sha256 | ||
| 7705 | (base32 | ||
| 7706 | "1va99m2zc2liv0v9vn72p5ja8yz4s5wq7zpahaai5nr966kvxzkb")))) | ||
| 7707 | (build-system ant-build-system) | ||
| 7708 | (arguments | ||
| 7709 | `(#:tests? #f | ||
| 7710 | #:phases | ||
| 7711 | (modify-phases %standard-phases | ||
| 7712 | (delete 'configure) | ||
| 7713 | (delete 'build) | ||
| 7714 | (replace 'install | ||
| 7715 | (install-pom-file "pom.xml"))))) | ||
| 7716 | (propagated-inputs | ||
| 7717 | (list java-httpcomponents-parent-pom)) | ||
| 7718 | (home-page "https://hc.apache.org/httpcomponents-client-ga/") | ||
| 7719 | (synopsis "Parent POM for Apache HttpComponents Client") | ||
| 7720 | (description "This package contains the parent POM for Apache HttpComponents | ||
| 7721 | Client modules.") | ||
| 7722 | (license license:asl2.0))) | ||
| 7723 | |||
| 6815 | (define-public java-httpcomponents-httpclient | 7724 | (define-public java-httpcomponents-httpclient |
| 6816 | (package | 7725 | (package |
| 6817 | (name "java-httpcomponents-httpclient") | 7726 | (name "java-httpcomponents-httpclient") |
| @@ -6830,12 +7739,16 @@ This package provides... some tests."))) | |||
| 6830 | #:phases | 7739 | #:phases |
| 6831 | (modify-phases %standard-phases | 7740 | (modify-phases %standard-phases |
| 6832 | (add-after 'unpack 'chdir | 7741 | (add-after 'unpack 'chdir |
| 6833 | (lambda _ (chdir "httpclient") #t))))) | 7742 | (lambda _ (chdir "httpclient") #t)) |
| 6834 | (inputs | 7743 | (replace 'install |
| 6835 | (list java-commons-logging-minimal | 7744 | (install-from-pom "pom.xml"))))) |
| 7745 | (propagated-inputs | ||
| 7746 | (list java-httpcomponents-client-parent-pom | ||
| 7747 | java-commons-logging-minimal | ||
| 6836 | java-commons-codec | 7748 | java-commons-codec |
| 6837 | java-hamcrest-core | 7749 | java-httpcomponents-httpcore)) |
| 6838 | java-httpcomponents-httpcore | 7750 | (native-inputs |
| 7751 | (list java-hamcrest-core | ||
| 6839 | java-mockito-1 | 7752 | java-mockito-1 |
| 6840 | java-junit)) | 7753 | java-junit)) |
| 6841 | (home-page "https://hc.apache.org/httpcomponents-client-ga/") | 7754 | (home-page "https://hc.apache.org/httpcomponents-client-ga/") |
| @@ -6965,14 +7878,14 @@ programs.") | |||
| 6965 | (define-public java-commons-compress | 7878 | (define-public java-commons-compress |
| 6966 | (package | 7879 | (package |
| 6967 | (name "java-commons-compress") | 7880 | (name "java-commons-compress") |
| 6968 | (version "1.21") | 7881 | (version "1.28.0") |
| 6969 | (source (origin | 7882 | (source (origin |
| 6970 | (method url-fetch) | 7883 | (method url-fetch) |
| 6971 | (uri (string-append "mirror://apache/commons/compress/source/" | 7884 | (uri (string-append "mirror://apache/commons/compress/source/" |
| 6972 | "commons-compress-" version "-src.tar.gz")) | 7885 | "commons-compress-" version "-src.tar.gz")) |
| 6973 | (sha256 | 7886 | (sha256 |
| 6974 | (base32 | 7887 | (base32 |
| 6975 | "1rkpb6xcyly1wnbx4q6iq6p5hrr0h1d0ppb5r07psc75cbmizjry")))) | 7888 | "0qkn70dfb1f9xihc34mbpbr5ag8qm4qq18hh3p4286r2ajj0z1sw")))) |
| 6976 | (build-system ant-build-system) | 7889 | (build-system ant-build-system) |
| 6977 | (arguments | 7890 | (arguments |
| 6978 | `(#:jar-name "commons-compress.jar" | 7891 | `(#:jar-name "commons-compress.jar" |
| @@ -6980,13 +7893,29 @@ programs.") | |||
| 6980 | #:tests? #f; requires java-mockito-3 | 7893 | #:tests? #f; requires java-mockito-3 |
| 6981 | #:phases | 7894 | #:phases |
| 6982 | (modify-phases %standard-phases | 7895 | (modify-phases %standard-phases |
| 7896 | (add-after 'unpack 'fix-encoding | ||
| 7897 | (lambda _ | ||
| 7898 | ;; Fix non-UTF8 character in comment (ö -> o) | ||
| 7899 | (use-modules (ice-9 textual-ports)) | ||
| 7900 | (let ((file "src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java")) | ||
| 7901 | (with-fluids ((%default-port-encoding #f)) | ||
| 7902 | (let ((content (call-with-input-file file get-string-all))) | ||
| 7903 | (call-with-output-file file | ||
| 7904 | (lambda (port) | ||
| 7905 | (display (string-map (lambda (c) | ||
| 7906 | (if (char>? c #\~) #\o c)) | ||
| 7907 | content) | ||
| 7908 | port)))))))) | ||
| 6983 | (replace 'install (install-from-pom "pom.xml"))))) | 7909 | (replace 'install (install-from-pom "pom.xml"))))) |
| 6984 | (propagated-inputs | 7910 | (propagated-inputs |
| 6985 | (list java-asm-3 | 7911 | (list java-asm |
| 6986 | java-brotli | 7912 | java-brotli |
| 6987 | java-osgi-core | 7913 | java-osgi-core |
| 6988 | java-xz | 7914 | java-xz |
| 6989 | java-zstd | 7915 | java-zstd-1.5.7 |
| 7916 | java-commons-io | ||
| 7917 | java-commons-lang3 | ||
| 7918 | java-commons-codec | ||
| 6990 | apache-commons-parent-pom-52)) | 7919 | apache-commons-parent-pom-52)) |
| 6991 | (home-page "https://commons.apache.org/proper/commons-compress/") | 7920 | (home-page "https://commons.apache.org/proper/commons-compress/") |
| 6992 | (synopsis "Java library for working with compressed files") | 7921 | (synopsis "Java library for working with compressed files") |
| @@ -6995,6 +7924,7 @@ working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ, | |||
| 6995 | Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") | 7924 | Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") |
| 6996 | (license license:asl2.0))) | 7925 | (license license:asl2.0))) |
| 6997 | 7926 | ||
| 7927 | |||
| 6998 | (define-public java-commons-csv | 7928 | (define-public java-commons-csv |
| 6999 | (package | 7929 | (package |
| 7000 | (name "java-commons-csv") | 7930 | (name "java-commons-csv") |
| @@ -8147,7 +9077,7 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the | |||
| 8147 | (define-public java-slf4j-api | 9077 | (define-public java-slf4j-api |
| 8148 | (package | 9078 | (package |
| 8149 | (name "java-slf4j-api") | 9079 | (name "java-slf4j-api") |
| 8150 | (version "1.7.25") | 9080 | (version "1.7.36") |
| 8151 | (source (origin | 9081 | (source (origin |
| 8152 | (method git-fetch) | 9082 | (method git-fetch) |
| 8153 | (uri (git-reference | 9083 | (uri (git-reference |
| @@ -8156,7 +9086,7 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the | |||
| 8156 | (file-name (git-file-name name version)) | 9086 | (file-name (git-file-name name version)) |
| 8157 | (sha256 | 9087 | (sha256 |
| 8158 | (base32 | 9088 | (base32 |
| 8159 | "15n42zq3k1iyn752nwdcbs44hxns2rmxhglwjfr4np7lxx56apjl")) | 9089 | "05kdsrvacvgdsqj812jhar813asgl2i2xlvh4i4p4i5cxg17bkq3")) |
| 8160 | (modules '((guix build utils))) | 9090 | (modules '((guix build utils))) |
| 8161 | ;; Delete bundled jars. | 9091 | ;; Delete bundled jars. |
| 8162 | (snippet | 9092 | (snippet |
| @@ -8219,7 +9149,7 @@ time.") | |||
| 8219 | (define-public java-slf4j-simple | 9149 | (define-public java-slf4j-simple |
| 8220 | (package | 9150 | (package |
| 8221 | (name "java-slf4j-simple") | 9151 | (name "java-slf4j-simple") |
| 8222 | (version "1.7.25") | 9152 | (version (package-version java-slf4j-api)) |
| 8223 | (source (package-source java-slf4j-api)) | 9153 | (source (package-source java-slf4j-api)) |
| 8224 | (build-system ant-build-system) | 9154 | (build-system ant-build-system) |
| 8225 | (arguments | 9155 | (arguments |
| @@ -8255,7 +9185,7 @@ printed.") | |||
| 8255 | (define-public java-slf4j-nop | 9185 | (define-public java-slf4j-nop |
| 8256 | (package | 9186 | (package |
| 8257 | (name "java-slf4j-nop") | 9187 | (name "java-slf4j-nop") |
| 8258 | (version "1.7.25") | 9188 | (version (package-version java-slf4j-api)) |
| 8259 | (source (package-source java-slf4j-api)) | 9189 | (source (package-source java-slf4j-api)) |
| 8260 | (build-system ant-build-system) | 9190 | (build-system ant-build-system) |
| 8261 | (arguments | 9191 | (arguments |
| @@ -8814,6 +9744,21 @@ actual rendering.") | |||
| 8814 | sources by ANTLR.") | 9744 | sources by ANTLR.") |
| 8815 | (license license:bsd-3))) | 9745 | (license license:bsd-3))) |
| 8816 | 9746 | ||
| 9747 | (define-public java-antlr4-runtime-for-graal-truffle | ||
| 9748 | (package | ||
| 9749 | (inherit java-antlr4-runtime) | ||
| 9750 | (name "java-antlr4-runtime-for-graal-truffle") | ||
| 9751 | (version "4.13.2") | ||
| 9752 | (source (origin | ||
| 9753 | (method git-fetch) | ||
| 9754 | (uri (git-reference | ||
| 9755 | (url "https://github.com/antlr/antlr4") | ||
| 9756 | (commit version))) | ||
| 9757 | (file-name (git-file-name name version)) | ||
| 9758 | (sha256 | ||
| 9759 | (base32 | ||
| 9760 | "1dpmqjq5z0r0543jfsbl9rwjrv459dxj378vs6qhy52hw4pm270g")))))) | ||
| 9761 | |||
| 8817 | (define-public java-antlr4-runtime-cpp | 9762 | (define-public java-antlr4-runtime-cpp |
| 8818 | (package | 9763 | (package |
| 8819 | (inherit java-antlr4-runtime) | 9764 | (inherit java-antlr4-runtime) |
| @@ -10417,7 +11362,32 @@ of deserialization.") | |||
| 10417 | (home-page "https://bitbucket.org/asomov/snakeyaml") | 11362 | (home-page "https://bitbucket.org/asomov/snakeyaml") |
| 10418 | (synopsis "YAML processor") | 11363 | (synopsis "YAML processor") |
| 10419 | (description "SnakeYAML is a YAML processor for the Java Virtual Machine.") | 11364 | (description "SnakeYAML is a YAML processor for the Java Virtual Machine.") |
| 10420 | (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing | 11365 | (license license:asl2.0))) |
| 11366 | |||
| 11367 | (define-public java-snakeyaml-2 | ||
| 11368 | (package | ||
| 11369 | (inherit java-snakeyaml) | ||
| 11370 | (version "2.3") | ||
| 11371 | (source (origin | ||
| 11372 | (method url-fetch) | ||
| 11373 | (uri (string-append | ||
| 11374 | "https://bitbucket.org/snakeyaml/snakeyaml/get/snakeyaml-" | ||
| 11375 | version ".tar.gz")) | ||
| 11376 | (file-name (string-append "java-snakeyaml-" version ".tar.gz")) | ||
| 11377 | (sha256 | ||
| 11378 | (base32 | ||
| 11379 | "1mszlr8yczf6m2cijcp8g35pbb7pggi2b2yr4avqmk4crzws947l")))) | ||
| 11380 | (arguments | ||
| 11381 | `(#:jar-name "snakeyaml.jar" | ||
| 11382 | #:source-dir "src/main/java" | ||
| 11383 | #:tests? #f | ||
| 11384 | #:phases | ||
| 11385 | (modify-phases %standard-phases | ||
| 11386 | (add-before 'install 'create-pom | ||
| 11387 | (generate-pom.xml "pom.xml" "org.yaml" "snakeyaml" ,version)) | ||
| 11388 | (replace 'install | ||
| 11389 | (install-from-pom "pom.xml"))))) | ||
| 11390 | (home-page "https://bitbucket.org/snakeyaml/snakeyaml"))) | ||
| 10421 | 11391 | ||
| 10422 | (define-public java-fasterxml-jackson-dataformat-yaml | 11392 | (define-public java-fasterxml-jackson-dataformat-yaml |
| 10423 | (package | 11393 | (package |
| @@ -10872,6 +11842,97 @@ Java 6 and above.") | |||
| 10872 | Java projects.") | 11842 | Java projects.") |
| 10873 | (license license:asl2.0))) | 11843 | (license license:asl2.0))) |
| 10874 | 11844 | ||
| 11845 | (define-public java-guice-5 | ||
| 11846 | (package | ||
| 11847 | (name "java-guice") | ||
| 11848 | (version "5.1.0") | ||
| 11849 | (source (origin | ||
| 11850 | (method git-fetch) | ||
| 11851 | (uri (git-reference | ||
| 11852 | (url "https://github.com/google/guice") | ||
| 11853 | (commit version))) | ||
| 11854 | (file-name (git-file-name name version)) | ||
| 11855 | (modules '((guix build utils))) | ||
| 11856 | (snippet | ||
| 11857 | `(begin | ||
| 11858 | (for-each delete-file (find-files "." ".*.jar")) #t)) | ||
| 11859 | (sha256 | ||
| 11860 | (base32 | ||
| 11861 | "05w8g9lmj8623b6f6c2xyriyhf44vwvqg0i1dszhrsnhk5f1jv71")))) | ||
| 11862 | (build-system ant-build-system) | ||
| 11863 | (arguments | ||
| 11864 | `(#:jar-name "java-guice.jar" | ||
| 11865 | #:jdk ,openjdk11 | ||
| 11866 | #:tests? #f ; FIXME: tests are not in a java sub directory | ||
| 11867 | #:source-dir "core/src" | ||
| 11868 | #:phases | ||
| 11869 | (modify-phases %standard-phases | ||
| 11870 | (add-after 'unpack 'make-files-writable | ||
| 11871 | (lambda _ | ||
| 11872 | (for-each make-file-writable (find-files ".")) | ||
| 11873 | #t)) | ||
| 11874 | (replace 'install | ||
| 11875 | (install-from-pom "core/pom.xml"))))) | ||
| 11876 | (propagated-inputs | ||
| 11877 | (list java-aopalliance | ||
| 11878 | java-guava | ||
| 11879 | java-javax-inject | ||
| 11880 | java-asm-9 | ||
| 11881 | java-jsr305 | ||
| 11882 | java-error-prone-annotations | ||
| 11883 | java-guice-5-parent-pom)) | ||
| 11884 | (home-page "https://github.com/google/guice") | ||
| 11885 | (synopsis "Lightweight dependency injection framework") | ||
| 11886 | (description "Guice is a lightweight dependency injection framework for | ||
| 11887 | Java 6 and above. This is version 5, with ASM 9 support for Java 11+.") | ||
| 11888 | (license license:asl2.0))) | ||
| 11889 | |||
| 11890 | (define java-guice-5-parent-pom | ||
| 11891 | (package | ||
| 11892 | (inherit java-guice-5) | ||
| 11893 | (name "java-guice-parent-pom") | ||
| 11894 | (arguments | ||
| 11895 | `(#:tests? #f | ||
| 11896 | #:phases | ||
| 11897 | (modify-phases %standard-phases | ||
| 11898 | (delete 'configure) | ||
| 11899 | (delete 'build) | ||
| 11900 | (add-after 'install 'install-extensions | ||
| 11901 | (install-pom-file "extensions/pom.xml")) | ||
| 11902 | (replace 'install | ||
| 11903 | (install-pom-file "pom.xml"))))) | ||
| 11904 | (propagated-inputs | ||
| 11905 | `(("java-google-parent-pom" ,java-google-parent-pom-5))))) | ||
| 11906 | |||
| 11907 | (define-public java-guice-5-servlet | ||
| 11908 | (package | ||
| 11909 | (inherit java-guice-5) | ||
| 11910 | (name "java-guice-servlet") | ||
| 11911 | (arguments | ||
| 11912 | `(#:jar-name "guice-servlet.jar" | ||
| 11913 | #:jdk ,openjdk11 | ||
| 11914 | #:source-dir "extensions/servlet/src/" | ||
| 11915 | #:tests? #f ; FIXME: not in a java subdir | ||
| 11916 | #:phases | ||
| 11917 | (modify-phases %standard-phases | ||
| 11918 | (add-after 'unpack 'make-files-writable | ||
| 11919 | (lambda _ | ||
| 11920 | (for-each make-file-writable (find-files ".")) | ||
| 11921 | #t)) | ||
| 11922 | (add-before 'install 'remove-provided-dependencies | ||
| 11923 | ;; Remove provided/test scope dependencies from POM since | ||
| 11924 | ;; install-from-pom can't find javax.servlet:servlet-api Maven coords. | ||
| 11925 | (lambda _ | ||
| 11926 | (invoke "sed" "-i" "/<dependencies>/,/<\\/dependencies>/d" | ||
| 11927 | "extensions/servlet/pom.xml") | ||
| 11928 | #t)) | ||
| 11929 | (replace 'install | ||
| 11930 | (install-from-pom "extensions/servlet/pom.xml"))))) | ||
| 11931 | (propagated-inputs | ||
| 11932 | (list java-guice-5 java-guice-5-parent-pom)) | ||
| 11933 | (inputs | ||
| 11934 | (list java-classpathx-servletapi)))) | ||
| 11935 | |||
| 10875 | (define-public java-assertj | 11936 | (define-public java-assertj |
| 10876 | (package | 11937 | (package |
| 10877 | (name "java-assertj") | 11938 | (name "java-assertj") |
| @@ -11139,7 +12200,9 @@ those in Perl and JavaScript.") | |||
| 11139 | (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") "") | 12200 | (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") "") |
| 11140 | ;; This is a parallel test and we've observed that it fails | 12201 | ;; This is a parallel test and we've observed that it fails |
| 11141 | ;; sometimes. | 12202 | ;; sometimes. |
| 11142 | (("<class name=\"test.dataprovider.DataProviderTest\"/>") "")))) | 12203 | (("<class name=\"test.dataprovider.DataProviderTest\"/>") "") |
| 12204 | ;; Flaky multi-threaded test | ||
| 12205 | (("<class name=\"test.thread.MultiThreadedDependentTest\" />") "")))) | ||
| 11143 | ;; We don't have groovy | 12206 | ;; We don't have groovy |
| 11144 | (add-after 'unpack 'delete-groovy-tests | 12207 | (add-after 'unpack 'delete-groovy-tests |
| 11145 | (lambda _ | 12208 | (lambda _ |
| @@ -11431,6 +12494,85 @@ algorithms and xxHash hashing algorithm.") | |||
| 11431 | programming language.") | 12494 | programming language.") |
| 11432 | (license license:expat))) | 12495 | (license license:expat))) |
| 11433 | 12496 | ||
| 12497 | ;;; Bouncy Castle 1.78.1 components for GraalPy (needs jdk18on jars) | ||
| 12498 | |||
| 12499 | (define bc-java-1.78.1-source | ||
| 12500 | (origin | ||
| 12501 | (method url-fetch) | ||
| 12502 | (uri "https://codeload.github.com/bcgit/bc-java/tar.gz/refs/tags/r1rv78v1") | ||
| 12503 | (file-name "bc-java-1.78.1.tar.gz") | ||
| 12504 | (sha256 | ||
| 12505 | (base32 "09i973ypv1dhvp2m50jnr71wwqsxs64qdpinm62phib3hw4nhwvb")))) | ||
| 12506 | |||
| 12507 | (define (bc-java-1.78.1-package name jar-name build-target synopsis description) | ||
| 12508 | (package | ||
| 12509 | (name name) | ||
| 12510 | (version "1.78.1") | ||
| 12511 | (source bc-java-1.78.1-source) | ||
| 12512 | (build-system ant-build-system) | ||
| 12513 | (arguments | ||
| 12514 | (list | ||
| 12515 | #:jar-name (string-append jar-name ".jar") | ||
| 12516 | #:tests? #f | ||
| 12517 | #:phases | ||
| 12518 | #~(modify-phases %standard-phases | ||
| 12519 | (replace 'build | ||
| 12520 | (lambda _ | ||
| 12521 | (invoke "ant" "-f" "ant/jdk18+.xml" #$build-target))) | ||
| 12522 | (replace 'install | ||
| 12523 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 12524 | (let* ((out (assoc-ref outputs "out")) | ||
| 12525 | (share (string-append out "/share/java")) | ||
| 12526 | ;; bc-java appends version as 17801 (no dots) | ||
| 12527 | (src-jar (string-append "build/artifacts/jdk1.8/jars/" | ||
| 12528 | #$jar-name "-17801.jar")) | ||
| 12529 | (src-dir (string-append "build/artifacts/jdk1.8/" | ||
| 12530 | #$jar-name "-17801/src")) | ||
| 12531 | ;; MX_URLREWRITES expects bcprov-jdk18on.jar (no version) | ||
| 12532 | (dst-jar (string-append share "/" #$jar-name ".jar")) | ||
| 12533 | (dst-sources-jar (string-append share "/" #$jar-name "-sources.jar"))) | ||
| 12534 | (mkdir-p share) | ||
| 12535 | (copy-file src-jar dst-jar) | ||
| 12536 | ;; Create sources JAR from the source directory | ||
| 12537 | (invoke "jar" "cf" dst-sources-jar "-C" src-dir "."))))))) | ||
| 12538 | (native-inputs (list unzip java-junit java-native-access java-native-access-platform)) | ||
| 12539 | (home-page "https://www.bouncycastle.org") | ||
| 12540 | (synopsis synopsis) | ||
| 12541 | (description description) | ||
| 12542 | (license license:expat))) | ||
| 12543 | |||
| 12544 | ;;; These are separate packages because GraalPy's MX_URLREWRITES mechanism | ||
| 12545 | ;;; rewrites Maven artifact URLs to local paths. Maven artifacts are per-JAR, | ||
| 12546 | ;;; so each JAR needs its own Guix package to map to the expected path: | ||
| 12547 | ;;; org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1.jar | ||
| 12548 | ;;; org/bouncycastle/bcutil-jdk18on/1.78.1/bcutil-jdk18on-1.78.1.jar | ||
| 12549 | ;;; org/bouncycastle/bcpkix-jdk18on/1.78.1/bcpkix-jdk18on-1.78.1.jar | ||
| 12550 | ;;; A single combined package would not satisfy these individual URL rewrites. | ||
| 12551 | |||
| 12552 | (define-public java-bcprov-for-graalpy | ||
| 12553 | (bc-java-1.78.1-package | ||
| 12554 | "java-bcprov-for-graalpy" | ||
| 12555 | "bcprov-jdk18on" | ||
| 12556 | "build-provider" | ||
| 12557 | "Bouncy Castle provider for GraalPy" | ||
| 12558 | "Crypto provider from Bouncy Castle built for GraalPy.")) | ||
| 12559 | |||
| 12560 | (define-public java-bcutil-for-graalpy | ||
| 12561 | (bc-java-1.78.1-package | ||
| 12562 | "java-bcutil-for-graalpy" | ||
| 12563 | "bcutil-jdk18on" | ||
| 12564 | "build-util" | ||
| 12565 | "Bouncy Castle utility classes for GraalPy" | ||
| 12566 | "Utility support classes from Bouncy Castle for GraalPy.")) | ||
| 12567 | |||
| 12568 | (define-public java-bcpkix-for-graalpy | ||
| 12569 | (bc-java-1.78.1-package | ||
| 12570 | "java-bcpkix-for-graalpy" | ||
| 12571 | "bcpkix-jdk18on" | ||
| 12572 | "build-pkix" | ||
| 12573 | "Bouncy Castle PKIX/CMS for GraalPy" | ||
| 12574 | "PKIX and CMS support from Bouncy Castle for GraalPy.")) | ||
| 12575 | |||
| 11434 | (define-public java-lmax-disruptor | 12576 | (define-public java-lmax-disruptor |
| 11435 | (package | 12577 | (package |
| 11436 | (name "java-lmax-disruptor") | 12578 | (name "java-lmax-disruptor") |
| @@ -11618,6 +12760,7 @@ streams, etc.") | |||
| 11618 | `(#:jar-name "byte-buddy-dep.jar" | 12760 | `(#:jar-name "byte-buddy-dep.jar" |
| 11619 | #:source-dir "byte-buddy-dep/src/main/java" | 12761 | #:source-dir "byte-buddy-dep/src/main/java" |
| 11620 | #:test-dir "byte-buddy-dep/src/test" | 12762 | #:test-dir "byte-buddy-dep/src/test" |
| 12763 | #:jdk ,openjdk11 | ||
| 11621 | #:tests? #f; would build java files that are incompatible with current jdk | 12764 | #:tests? #f; would build java files that are incompatible with current jdk |
| 11622 | #:phases | 12765 | #:phases |
| 11623 | (modify-phases %standard-phases | 12766 | (modify-phases %standard-phases |
| @@ -11661,7 +12804,8 @@ and without the help of a compiler.") | |||
| 11661 | (arguments | 12804 | (arguments |
| 11662 | `(#:jar-name "java-powermock-reflect.jar" | 12805 | `(#:jar-name "java-powermock-reflect.jar" |
| 11663 | #:source-dir "powermock-reflect/src/main/java" | 12806 | #:source-dir "powermock-reflect/src/main/java" |
| 11664 | #:test-dir "powermock-reflect/src/test")) | 12807 | #:test-dir "powermock-reflect/src/test" |
| 12808 | #:jdk ,openjdk11)) | ||
| 11665 | (inputs | 12809 | (inputs |
| 11666 | (list java-asm-9 java-objenesis)) | 12810 | (list java-asm-9 java-objenesis)) |
| 11667 | (native-inputs | 12811 | (native-inputs |
| @@ -11685,7 +12829,7 @@ done to the IDE or continuous integration servers which simplifies adoption.") | |||
| 11685 | #:source-dir "powermock-core/src/main/java" | 12829 | #:source-dir "powermock-core/src/main/java" |
| 11686 | #:test-dir "powermock-core/src/test" | 12830 | #:test-dir "powermock-core/src/test" |
| 11687 | #:tests? #f; requires powermock-api | 12831 | #:tests? #f; requires powermock-api |
| 11688 | #:jdk ,icedtea-8 | 12832 | #:jdk ,openjdk11 |
| 11689 | #:phases | 12833 | #:phases |
| 11690 | (modify-phases %standard-phases | 12834 | (modify-phases %standard-phases |
| 11691 | (add-before 'build 'copy-resources | 12835 | (add-before 'build 'copy-resources |
| @@ -11708,7 +12852,7 @@ done to the IDE or continuous integration servers which simplifies adoption.") | |||
| 11708 | (build-system ant-build-system) | 12852 | (build-system ant-build-system) |
| 11709 | (arguments | 12853 | (arguments |
| 11710 | `(#:jar-name "java-powermock-api-support.jar" | 12854 | `(#:jar-name "java-powermock-api-support.jar" |
| 11711 | #:jdk ,icedtea-8 | 12855 | #:jdk ,openjdk11 |
| 11712 | #:source-dir "powermock-api/powermock-api-support/src/main/java" | 12856 | #:source-dir "powermock-api/powermock-api-support/src/main/java" |
| 11713 | #:tests? #f)); no tests | 12857 | #:tests? #f)); no tests |
| 11714 | (inputs | 12858 | (inputs |
| @@ -11721,7 +12865,7 @@ done to the IDE or continuous integration servers which simplifies adoption.") | |||
| 11721 | (build-system ant-build-system) | 12865 | (build-system ant-build-system) |
| 11722 | (arguments | 12866 | (arguments |
| 11723 | `(#:jar-name "java-powermock-modules-junit4-common.jar" | 12867 | `(#:jar-name "java-powermock-modules-junit4-common.jar" |
| 11724 | #:jdk ,icedtea-8 | 12868 | #:jdk ,openjdk11 |
| 11725 | #:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java" | 12869 | #:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java" |
| 11726 | #:test-dir "powermock-modules/powermock-module-junit4-common/src/test")) | 12870 | #:test-dir "powermock-modules/powermock-module-junit4-common/src/test")) |
| 11727 | (inputs | 12871 | (inputs |
| @@ -11739,6 +12883,7 @@ done to the IDE or continuous integration servers which simplifies adoption.") | |||
| 11739 | (arguments | 12883 | (arguments |
| 11740 | `(#:jar-name "java-powermock-modules-junit4.jar" | 12884 | `(#:jar-name "java-powermock-modules-junit4.jar" |
| 11741 | #:tests? #f; require easymock 4, which introduces a loop with testng | 12885 | #:tests? #f; require easymock 4, which introduces a loop with testng |
| 12886 | #:jdk ,openjdk11 | ||
| 11742 | #:source-dir "powermock-modules/powermock-module-junit4/src/main/java" | 12887 | #:source-dir "powermock-modules/powermock-module-junit4/src/main/java" |
| 11743 | #:test-dir "powermock-modules/powermock-module-junit4/src/test" | 12888 | #:test-dir "powermock-modules/powermock-module-junit4/src/test" |
| 11744 | #:phases | 12889 | #:phases |
| @@ -11768,7 +12913,7 @@ done to the IDE or continuous integration servers which simplifies adoption.") | |||
| 11768 | (build-system ant-build-system) | 12913 | (build-system ant-build-system) |
| 11769 | (arguments | 12914 | (arguments |
| 11770 | `(#:jar-name "java-powermock-api-easymock.jar" | 12915 | `(#:jar-name "java-powermock-api-easymock.jar" |
| 11771 | #:jdk ,icedtea-8 | 12916 | #:jdk ,openjdk11 |
| 11772 | #:source-dir "powermock-api/powermock-api-easymock/src/main/java" | 12917 | #:source-dir "powermock-api/powermock-api-easymock/src/main/java" |
| 11773 | #:tests? #f; no tests | 12918 | #:tests? #f; no tests |
| 11774 | #:phases | 12919 | #:phases |
| @@ -11958,21 +13103,9 @@ disk storage or off-heap memory.") | |||
| 11958 | #:jdk ,icedtea-8 | 13103 | #:jdk ,icedtea-8 |
| 11959 | #:source-dir "clients/src/main/java" | 13104 | #:source-dir "clients/src/main/java" |
| 11960 | #:test-dir "clients/src/test" | 13105 | #:test-dir "clients/src/test" |
| 11961 | #:test-exclude | 13106 | ;; Tests require powermock which uses ASM 9 compiled with Java 11, |
| 11962 | (list | 13107 | ;; creating class version incompatibility with icedtea-8. |
| 11963 | ;; This file does not contain a class | 13108 | #:tests? #f)) |
| 11964 | "**/IntegrationTest.java" | ||
| 11965 | ;; Requires network | ||
| 11966 | "**/ClientUtilsTest.java" | ||
| 11967 | ;; This test fails on i686 | ||
| 11968 | "**/SerializationTest.java" | ||
| 11969 | ;; "protocol is disabled or cipher suites are inappropriate" | ||
| 11970 | "**/SslTransportLayerTest.java" | ||
| 11971 | ;; End with errors that seem related to our powermock | ||
| 11972 | "**/KafkaProducerTest.java" | ||
| 11973 | "**/BufferPoolTest.java" | ||
| 11974 | ;; Undeterministic failure, seems to affect mostly ci | ||
| 11975 | "**/GarbageCollectedMemoryPoolTest.java"))) | ||
| 11976 | (inputs | 13109 | (inputs |
| 11977 | (list java-slf4j-api java-lz4)) | 13110 | (list java-slf4j-api java-lz4)) |
| 11978 | (native-inputs | 13111 | (native-inputs |
| @@ -12835,6 +13968,9 @@ features that bring it on par with the Z shell line editor.") | |||
| 12835 | "1c6qa26mf0viw8hg4jnv72s7i1qb1gh1l8rrzcdvqhqhx82rkdlf")))) | 13968 | "1c6qa26mf0viw8hg4jnv72s7i1qb1gh1l8rrzcdvqhqhx82rkdlf")))) |
| 12836 | (arguments | 13969 | (arguments |
| 12837 | `(#:jdk ,icedtea-8 | 13970 | `(#:jdk ,icedtea-8 |
| 13971 | ;; Tests require powermock which uses ASM 9 compiled with Java 11, | ||
| 13972 | ;; creating class version incompatibility with icedtea-8. | ||
| 13973 | #:tests? #f | ||
| 12838 | ,@(package-arguments java-jline))) | 13974 | ,@(package-arguments java-jline))) |
| 12839 | (inputs | 13975 | (inputs |
| 12840 | (list java-jansi-1 java-jansi-native)) | 13976 | (list java-jansi-1 java-jansi-native)) |
| @@ -12950,6 +14086,525 @@ find most of the command editing features of JLine to be familiar. | |||
| 12950 | This package includes the line reader.") | 14086 | This package includes the line reader.") |
| 12951 | (license license:bsd-3))) | 14087 | (license license:bsd-3))) |
| 12952 | 14088 | ||
| 14089 | (define-public java-juniversalchardet | ||
| 14090 | (package | ||
| 14091 | (name "java-juniversalchardet") | ||
| 14092 | (version "2.5.0") | ||
| 14093 | (source (origin | ||
| 14094 | (method git-fetch) | ||
| 14095 | (uri (git-reference | ||
| 14096 | (url "https://github.com/albfernandez/juniversalchardet") | ||
| 14097 | (commit (string-append "v" version)))) | ||
| 14098 | (file-name (git-file-name name version)) | ||
| 14099 | (sha256 | ||
| 14100 | (base32 | ||
| 14101 | "039v25hmaf89mc949jn3sg70gp68gn0vilq2v159aavyircza0w7")))) | ||
| 14102 | (build-system ant-build-system) | ||
| 14103 | (arguments | ||
| 14104 | `(#:jar-name "juniversalchardet.jar" | ||
| 14105 | #:jdk ,openjdk11 | ||
| 14106 | #:tests? #f | ||
| 14107 | #:source-dir "src/main/java")) | ||
| 14108 | (home-page "https://github.com/albfernandez/juniversalchardet") | ||
| 14109 | (synopsis "Character encoding detection library for Java") | ||
| 14110 | (description "JUniversalChardet is a Java port of universalchardet, | ||
| 14111 | a character encoding detection library.") | ||
| 14112 | (license license:mpl2.0))) | ||
| 14113 | |||
| 14114 | (define-public java-jline-native-for-graal-truffle | ||
| 14115 | (package | ||
| 14116 | (name "java-jline-native-for-graal-truffle") | ||
| 14117 | (version "3.28.0") | ||
| 14118 | (source (origin | ||
| 14119 | (method git-fetch) | ||
| 14120 | (uri (git-reference | ||
| 14121 | (url "https://github.com/jline/jline3") | ||
| 14122 | (commit (string-append "jline-" version)))) | ||
| 14123 | (file-name (git-file-name name version)) | ||
| 14124 | (sha256 | ||
| 14125 | (base32 | ||
| 14126 | "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj")))) | ||
| 14127 | (build-system ant-build-system) | ||
| 14128 | (arguments | ||
| 14129 | `(#:jar-name "jline-native.jar" | ||
| 14130 | #:tests? #f | ||
| 14131 | #:jdk ,openjdk25 | ||
| 14132 | #:source-dir "native/src/main/java" | ||
| 14133 | #:phases | ||
| 14134 | (modify-phases %standard-phases | ||
| 14135 | (add-after 'unpack 'remove-build-file | ||
| 14136 | (lambda _ | ||
| 14137 | (delete-file "build")))))) | ||
| 14138 | (home-page "https://github.com/jline/jline3") | ||
| 14139 | (synopsis "JLine native library support for GraalVM Truffle") | ||
| 14140 | (description "JLine native library module for GraalVM Truffle.") | ||
| 14141 | (license license:bsd-3))) | ||
| 14142 | |||
| 14143 | (define-public java-jline-terminal-for-graal-truffle | ||
| 14144 | (package | ||
| 14145 | (inherit java-jline-terminal) | ||
| 14146 | (name "java-jline-terminal-for-graal-truffle") | ||
| 14147 | (version "3.28.0") | ||
| 14148 | (source (origin | ||
| 14149 | (method git-fetch) | ||
| 14150 | (uri (git-reference | ||
| 14151 | (url "https://github.com/jline/jline3") | ||
| 14152 | (commit (string-append "jline-" version)))) | ||
| 14153 | (file-name (git-file-name name version)) | ||
| 14154 | (sha256 | ||
| 14155 | (base32 | ||
| 14156 | "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj")))) | ||
| 14157 | (arguments | ||
| 14158 | `(#:jar-name "jline-terminal.jar" | ||
| 14159 | #:tests? #f | ||
| 14160 | #:jdk ,openjdk25 | ||
| 14161 | #:source-dir "terminal/src/main/java" | ||
| 14162 | #:test-dir "terminal/src/test" | ||
| 14163 | #:phases | ||
| 14164 | (modify-phases %standard-phases | ||
| 14165 | (add-after 'unpack 'remove-build-file | ||
| 14166 | (lambda _ | ||
| 14167 | (delete-file "build"))) | ||
| 14168 | (add-after 'unpack 'patch-paths | ||
| 14169 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 14170 | (substitute* "terminal/src/main/java/org/jline/utils/OSUtils.java" | ||
| 14171 | (("= \"infocmp\"") | ||
| 14172 | (string-append "= \"" (assoc-ref inputs "ncurses") | ||
| 14173 | "/bin/infocmp\"")) | ||
| 14174 | (("= \"(s?tty)\"" _ cmd) | ||
| 14175 | (string-append "= \"" (assoc-ref inputs "coreutils") | ||
| 14176 | "/bin/" cmd "\""))))) | ||
| 14177 | (add-after 'build 'add-resources | ||
| 14178 | (lambda* (#:key jar-name source-dir #:allow-other-keys) | ||
| 14179 | (let ((build (string-append (getcwd) "/build"))) | ||
| 14180 | (with-directory-excursion | ||
| 14181 | (string-append source-dir "/../resources") | ||
| 14182 | (apply invoke "jar" "-uvf" | ||
| 14183 | (string-append build "/jar/" jar-name) | ||
| 14184 | (find-files ".")))))) | ||
| 14185 | (add-after 'add-resources 'create-sources-jar | ||
| 14186 | (lambda* (#:key source-dir #:allow-other-keys) | ||
| 14187 | ;; Create a sources JAR from the source files. | ||
| 14188 | ;; mx shading needs .java source files, not .class files. | ||
| 14189 | (let ((sources-jar (string-append (getcwd) "/build/jar/jline-terminal-sources.jar"))) | ||
| 14190 | (invoke "jar" "cf" sources-jar "-C" source-dir "org") | ||
| 14191 | ;; Also add resources to the sources JAR. | ||
| 14192 | (with-directory-excursion (string-append source-dir "/../resources") | ||
| 14193 | (apply invoke "jar" "-uvf" sources-jar (find-files ".")))))) | ||
| 14194 | (add-after 'install 'install-sources-jar | ||
| 14195 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14196 | (let* ((out (assoc-ref outputs "out")) | ||
| 14197 | (lib (string-append out "/share/java"))) | ||
| 14198 | (install-file "build/jar/jline-terminal-sources.jar" lib))))))) | ||
| 14199 | (inputs | ||
| 14200 | (list ncurses java-jline-native-for-graal-truffle)))) | ||
| 14201 | |||
| 14202 | (define-public java-jline-reader-for-graal-truffle | ||
| 14203 | (package | ||
| 14204 | (inherit java-jline-reader) | ||
| 14205 | (name "java-jline-reader-for-graal-truffle") | ||
| 14206 | (version "3.28.0") | ||
| 14207 | (source (origin | ||
| 14208 | (method git-fetch) | ||
| 14209 | (uri (git-reference | ||
| 14210 | (url "https://github.com/jline/jline3") | ||
| 14211 | (commit (string-append "jline-" version)))) | ||
| 14212 | (file-name (git-file-name name version)) | ||
| 14213 | (sha256 | ||
| 14214 | (base32 | ||
| 14215 | "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj")))) | ||
| 14216 | (arguments | ||
| 14217 | `(#:jar-name "jline-reader.jar" | ||
| 14218 | #:tests? #f | ||
| 14219 | #:jdk ,openjdk25 | ||
| 14220 | #:source-dir "reader/src/main/java" | ||
| 14221 | #:test-dir "reader/src/test" | ||
| 14222 | #:phases | ||
| 14223 | (modify-phases %standard-phases | ||
| 14224 | (add-before 'build 'remove-build-file | ||
| 14225 | (lambda _ | ||
| 14226 | (delete-file "build"))) | ||
| 14227 | (add-after 'build 'create-sources-jar | ||
| 14228 | (lambda* (#:key source-dir #:allow-other-keys) | ||
| 14229 | ;; Create a sources JAR from the source files. | ||
| 14230 | (invoke "jar" "cf" "build/jar/jline-reader-sources.jar" | ||
| 14231 | "-C" source-dir "org"))) | ||
| 14232 | (add-after 'install 'install-sources-jar | ||
| 14233 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14234 | (let* ((out (assoc-ref outputs "out")) | ||
| 14235 | (lib (string-append out "/share/java"))) | ||
| 14236 | (install-file "build/jar/jline-reader-sources.jar" lib))))))) | ||
| 14237 | (inputs | ||
| 14238 | (list java-jline-terminal-for-graal-truffle)))) | ||
| 14239 | |||
| 14240 | (define-public java-jline-builtins-for-graal-truffle | ||
| 14241 | (package | ||
| 14242 | (inherit java-jline-reader-for-graal-truffle) | ||
| 14243 | (name "java-jline-builtins-for-graal-truffle") | ||
| 14244 | (arguments | ||
| 14245 | `(#:jar-name "jline-builtins.jar" | ||
| 14246 | #:tests? #f | ||
| 14247 | #:jdk ,openjdk25 | ||
| 14248 | #:source-dir "builtins/src/main/java" | ||
| 14249 | #:test-dir "builtins/src/test" | ||
| 14250 | #:phases | ||
| 14251 | (modify-phases %standard-phases | ||
| 14252 | (add-before 'build 'remove-build-file | ||
| 14253 | (lambda _ | ||
| 14254 | (delete-file "build"))) | ||
| 14255 | (add-after 'build 'create-sources-jar | ||
| 14256 | (lambda* (#:key source-dir #:allow-other-keys) | ||
| 14257 | ;; Create a sources JAR from the source files. | ||
| 14258 | (invoke "jar" "cf" "build/jar/jline-builtins-sources.jar" | ||
| 14259 | "-C" source-dir "org"))) | ||
| 14260 | (add-after 'install 'install-sources-jar | ||
| 14261 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14262 | (let* ((out (assoc-ref outputs "out")) | ||
| 14263 | (lib (string-append out "/share/java"))) | ||
| 14264 | (install-file "build/jar/jline-builtins-sources.jar" lib))))))) | ||
| 14265 | (inputs | ||
| 14266 | (list java-jline-terminal-for-graal-truffle | ||
| 14267 | java-jline-reader-for-graal-truffle | ||
| 14268 | ;; Needed to compile Nano.java which imports UniversalDetector. | ||
| 14269 | ;; GraalVM's mx build patches this out during shading (in | ||
| 14270 | ;; org.graalvm.shadowed.org.jline) and adds a stub class, so mx | ||
| 14271 | ;; itself does not need juniversalchardet--only this Guix build does. | ||
| 14272 | java-juniversalchardet)) | ||
| 14273 | (synopsis "JLine builtins for GraalVM Truffle") | ||
| 14274 | (description "JLine builtins module for GraalVM Truffle."))) | ||
| 14275 | |||
| 14276 | (define-public java-jline-terminal-ffm-for-graal-truffle | ||
| 14277 | (package | ||
| 14278 | (inherit java-jline-reader-for-graal-truffle) | ||
| 14279 | (name "java-jline-terminal-ffm-for-graal-truffle") | ||
| 14280 | (arguments | ||
| 14281 | `(#:jar-name "jline-terminal-ffm.jar" | ||
| 14282 | #:tests? #f | ||
| 14283 | #:jdk ,openjdk25 | ||
| 14284 | #:source-dir "terminal-ffm/src/main/java" | ||
| 14285 | #:test-dir "terminal-ffm/src/test" | ||
| 14286 | #:phases | ||
| 14287 | (modify-phases %standard-phases | ||
| 14288 | (add-before 'build 'remove-build-file | ||
| 14289 | (lambda _ | ||
| 14290 | (delete-file "build"))) | ||
| 14291 | (add-after 'build 'create-sources-jar | ||
| 14292 | (lambda* (#:key source-dir #:allow-other-keys) | ||
| 14293 | ;; Create a sources JAR from the source files. | ||
| 14294 | (invoke "jar" "cf" "build/jar/jline-terminal-ffm-sources.jar" | ||
| 14295 | "-C" source-dir "org"))) | ||
| 14296 | (add-after 'install 'install-sources-jar | ||
| 14297 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14298 | (let* ((out (assoc-ref outputs "out")) | ||
| 14299 | (lib (string-append out "/share/java"))) | ||
| 14300 | (install-file "build/jar/jline-terminal-ffm-sources.jar" lib))))))) | ||
| 14301 | (inputs | ||
| 14302 | (list java-jline-terminal-for-graal-truffle | ||
| 14303 | java-jline-native-for-graal-truffle)) | ||
| 14304 | (synopsis "JLine terminal FFM for GraalVM Truffle") | ||
| 14305 | (description "JLine terminal FFM (Foreign Function Memory) module for GraalVM Truffle."))) | ||
| 14306 | |||
| 14307 | ;; org.json JSON library for GraalVM Truffle | ||
| 14308 | ;; GraalVM needs this for TRUFFLE_JSON which is used by TRUFFLE_PROFILER in tools. | ||
| 14309 | (define-public java-json-for-graal-truffle | ||
| 14310 | (package | ||
| 14311 | (name "java-json-for-graal-truffle") | ||
| 14312 | (version "20250517") | ||
| 14313 | (source (origin | ||
| 14314 | (method url-fetch) | ||
| 14315 | (uri (string-append "https://github.com/stleary/JSON-java/archive/refs/tags/" | ||
| 14316 | version ".tar.gz")) | ||
| 14317 | (file-name (string-append "java-json-" version ".tar.gz")) | ||
| 14318 | (sha256 | ||
| 14319 | (base32 "0291f9fkr9v8qh4vlxkv62vzs4dadpzhxrrcw5pbg69ml0pwq5wz")))) | ||
| 14320 | (build-system ant-build-system) | ||
| 14321 | (arguments | ||
| 14322 | `(#:jar-name "json.jar" | ||
| 14323 | #:source-dir "src/main/java" | ||
| 14324 | #:tests? #f ; No test source directory in release tarball | ||
| 14325 | #:phases | ||
| 14326 | (modify-phases %standard-phases | ||
| 14327 | (add-after 'build 'create-sources-jar | ||
| 14328 | (lambda _ | ||
| 14329 | ;; Create a sources JAR from the source files. | ||
| 14330 | ;; mx shading needs .java source files, not .class files. | ||
| 14331 | (invoke "jar" "cf" "json-sources.jar" | ||
| 14332 | "-C" "src/main/java" "org"))) | ||
| 14333 | (add-after 'install 'install-sources-jar | ||
| 14334 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14335 | (let ((share (string-append (assoc-ref outputs "out") | ||
| 14336 | "/share/java/"))) | ||
| 14337 | (install-file "json-sources.jar" share))))))) | ||
| 14338 | (home-page "https://github.com/stleary/JSON-java") | ||
| 14339 | (synopsis "JSON library for Java") | ||
| 14340 | (description "Reference implementation of a JSON parser in Java, used by | ||
| 14341 | GraalVM's TRUFFLE_JSON distribution.") | ||
| 14342 | (license license:public-domain))) | ||
| 14343 | |||
| 14344 | ;; JUnit 4.13.2 for GraalVM. | ||
| 14345 | (define-public java-junit-for-graal | ||
| 14346 | (package | ||
| 14347 | (inherit java-junit) | ||
| 14348 | (name "java-junit-for-graal") | ||
| 14349 | (version "4.13.2") | ||
| 14350 | (source (origin | ||
| 14351 | (method git-fetch) | ||
| 14352 | (uri (git-reference | ||
| 14353 | (url "https://github.com/junit-team/junit4") | ||
| 14354 | (commit (string-append "r" version)))) | ||
| 14355 | (file-name (git-file-name name version)) | ||
| 14356 | (sha256 | ||
| 14357 | (base32 "1r7k4zzscc8019np3is3bzfigw8fxd6s3259cbhzzh02q6d5p9h3")))) | ||
| 14358 | (arguments | ||
| 14359 | (list #:jar-name "junit.jar" | ||
| 14360 | #:source-dir "src/main/java" | ||
| 14361 | #:tests? #f ; Skip tests to avoid circular dependencies | ||
| 14362 | #:jdk openjdk17 | ||
| 14363 | #:phases | ||
| 14364 | #~(modify-phases %standard-phases | ||
| 14365 | (add-after 'build 'create-sources-jar | ||
| 14366 | (lambda _ | ||
| 14367 | (invoke "jar" "cf" "junit-sources.jar" | ||
| 14368 | "-C" "src/main/java" "."))) | ||
| 14369 | (add-after 'install 'install-sources-jar | ||
| 14370 | (lambda _ | ||
| 14371 | (install-file "junit-sources.jar" | ||
| 14372 | (string-append #$output "/share/java/"))))))) | ||
| 14373 | (propagated-inputs | ||
| 14374 | (list java-hamcrest-core-for-graal-truffle)) | ||
| 14375 | (native-inputs '()) | ||
| 14376 | (description "JUnit is a simple framework to write repeatable tests for Java | ||
| 14377 | projects. This version (4.13.2) is required by the GraalVM mx build system."))) | ||
| 14378 | |||
| 14379 | (define-public java-capnproto-runtime-for-graal-truffle | ||
| 14380 | (package | ||
| 14381 | (name "java-capnproto-runtime-for-graal-truffle") | ||
| 14382 | (version "0.1.16") | ||
| 14383 | (source (origin | ||
| 14384 | (method git-fetch) | ||
| 14385 | (uri (git-reference | ||
| 14386 | (url "https://github.com/capnproto/capnproto-java") | ||
| 14387 | (commit (string-append "v" version)))) | ||
| 14388 | (file-name (git-file-name name version)) | ||
| 14389 | (sha256 | ||
| 14390 | (base32 "0faq213kkrb2441k6bn7868yj5bdqvanq1xxsp2gc9mcf922vrpf")))) | ||
| 14391 | (build-system ant-build-system) | ||
| 14392 | (arguments | ||
| 14393 | `(#:jar-name "capnproto-runtime.jar" | ||
| 14394 | #:source-dir "runtime/src/main/java" | ||
| 14395 | #:test-dir "runtime/src/test" | ||
| 14396 | #:jdk ,openjdk17 | ||
| 14397 | #:phases | ||
| 14398 | (modify-phases %standard-phases | ||
| 14399 | (add-after 'build 'create-sources-jar | ||
| 14400 | (lambda _ | ||
| 14401 | (invoke "jar" "cf" "capnproto-runtime-sources.jar" | ||
| 14402 | "-C" "runtime/src/main/java" "org"))) | ||
| 14403 | (add-after 'install 'install-sources-jar | ||
| 14404 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 14405 | (let ((share (string-append (assoc-ref outputs "out") | ||
| 14406 | "/share/java/"))) | ||
| 14407 | (install-file "capnproto-runtime-sources.jar" share))))))) | ||
| 14408 | (native-inputs (list java-junit-for-graal)) | ||
| 14409 | (home-page "https://capnproto.org/") | ||
| 14410 | (synopsis "Cap'n Proto runtime library for Java") | ||
| 14411 | (description "Cap'n Proto is an extremely fast data interchange format | ||
| 14412 | and capability-based RPC system. This package provides the Java runtime | ||
| 14413 | library needed by GraalVM's SubstrateVM.") | ||
| 14414 | (license license:expat))) | ||
| 14415 | |||
| 14416 | ;; JCodings for GraalVM Truffle (character encoding library) | ||
| 14417 | (define-public java-jcodings-for-graal-truffle | ||
| 14418 | (package | ||
| 14419 | (name "java-jcodings-for-graal-truffle") | ||
| 14420 | (version "1.0.63") | ||
| 14421 | (source (origin | ||
| 14422 | (method git-fetch) | ||
| 14423 | (uri (git-reference | ||
| 14424 | (url "https://github.com/jruby/jcodings") | ||
| 14425 | (commit (string-append "jcodings-" version)))) | ||
| 14426 | (file-name (git-file-name name version)) | ||
| 14427 | (sha256 | ||
| 14428 | (base32 "1f0npcz93fsm4l7hik7gkxnf977jj660jyvgfkq1isr1aa6s90a8")))) | ||
| 14429 | (build-system ant-build-system) | ||
| 14430 | (arguments | ||
| 14431 | (list #:jar-name "jcodings.jar" | ||
| 14432 | #:source-dir "src" | ||
| 14433 | #:tests? #f | ||
| 14434 | #:jdk openjdk | ||
| 14435 | #:phases | ||
| 14436 | #~(modify-phases %standard-phases | ||
| 14437 | (add-after 'build 'create-sources-jar | ||
| 14438 | (lambda _ | ||
| 14439 | (invoke "jar" "cf" "jcodings-sources.jar" | ||
| 14440 | "-C" "src" "org"))) | ||
| 14441 | (add-after 'install 'install-sources-jar | ||
| 14442 | (lambda _ | ||
| 14443 | (install-file "jcodings-sources.jar" | ||
| 14444 | (string-append #$output "/share/java/"))))))) | ||
| 14445 | (home-page "https://github.com/jruby/jcodings") | ||
| 14446 | (synopsis "Java character encoding library for JRuby") | ||
| 14447 | (description "JCodings is a character encoding library used by JRuby. | ||
| 14448 | This version is built for GraalVM Truffle's string encoding support.") | ||
| 14449 | (license license:expat))) | ||
| 14450 | |||
| 14451 | ;; Guava for GraalVM Truffle (Google core libraries for Java) | ||
| 14452 | ;; GraalVM requires version 31.0.1 specifically | ||
| 14453 | (define-public java-guava-for-graal-truffle | ||
| 14454 | (package | ||
| 14455 | (inherit java-guava) | ||
| 14456 | (name "java-guava-for-graal-truffle") | ||
| 14457 | (version "31.0.1") | ||
| 14458 | (source (origin | ||
| 14459 | (method git-fetch) | ||
| 14460 | (uri (git-reference | ||
| 14461 | (url "https://github.com/google/guava") | ||
| 14462 | (commit (string-append "v" version)))) | ||
| 14463 | (file-name (git-file-name name version)) | ||
| 14464 | (sha256 | ||
| 14465 | (base32 "1lc5hrrm8q3dkxgkwgvkjd0lhajklch9cb5xmggb2iys3qymvx50")) | ||
| 14466 | (patches | ||
| 14467 | (search-patches "java-guava-remove-annotation-deps.patch")))))) | ||
| 14468 | |||
| 14469 | ;; JIMFS for GraalVM Truffle (in-memory file system) | ||
| 14470 | (define-public java-jimfs-for-graal-truffle | ||
| 14471 | (package | ||
| 14472 | (name "java-jimfs-for-graal-truffle") | ||
| 14473 | (version "1.2") | ||
| 14474 | (source (origin | ||
| 14475 | (method git-fetch) | ||
| 14476 | (uri (git-reference | ||
| 14477 | (url "https://github.com/google/jimfs") | ||
| 14478 | (commit (string-append "v" version)))) | ||
| 14479 | (file-name (git-file-name name version)) | ||
| 14480 | (sha256 | ||
| 14481 | (base32 "1wxdl9ljllwyzcyqgrkh7i9zqjdssz4qn9zmvbahz62vq2m9wg88")) | ||
| 14482 | (modules '((guix build utils))) | ||
| 14483 | (snippet | ||
| 14484 | '(for-each delete-file (find-files "." "\\.jar$"))))) | ||
| 14485 | (build-system ant-build-system) | ||
| 14486 | (arguments | ||
| 14487 | (list #:jar-name "jimfs.jar" | ||
| 14488 | #:source-dir "jimfs/src/main/java" | ||
| 14489 | #:tests? #f | ||
| 14490 | #:jdk openjdk | ||
| 14491 | #:phases | ||
| 14492 | #~(modify-phases %standard-phases | ||
| 14493 | (add-before 'build 'strip-annotations | ||
| 14494 | (lambda _ | ||
| 14495 | ;; Remove annotation imports and usages | ||
| 14496 | (for-each delete-file | ||
| 14497 | (find-files "jimfs/src/main/java" "package-info\\.java$")) | ||
| 14498 | (substitute* (find-files "jimfs/src/main/java" "\\.java$") | ||
| 14499 | (("import org\\.checkerframework\\..*;\n") "") | ||
| 14500 | (("import javax\\.annotation\\..*;\n") "") | ||
| 14501 | (("import com\\.google\\.auto\\..*;\n") "") | ||
| 14502 | (("import com\\.ibm\\.icu\\..*;\n") "") | ||
| 14503 | (("@AutoService.*\n") "") | ||
| 14504 | (("@ParametersAreNonnullByDefault") "") | ||
| 14505 | (("@NullableDecl") "")) | ||
| 14506 | ;; Remove ICU dependency - use simple ASCII normalization | ||
| 14507 | (substitute* "jimfs/src/main/java/com/google/common/jimfs/PathNormalization.java" | ||
| 14508 | (("import com\\.ibm\\.icu\\.lang\\.UCharacter;") "") | ||
| 14509 | (("UCharacter\\.foldCase\\(string, true\\)") "string.toLowerCase(java.util.Locale.ROOT)")))) | ||
| 14510 | (add-after 'build 'create-sources-jar | ||
| 14511 | (lambda _ | ||
| 14512 | (invoke "jar" "cf" "jimfs-sources.jar" | ||
| 14513 | "-C" "jimfs/src/main/java" "com"))) | ||
| 14514 | (add-after 'install 'install-sources-jar | ||
| 14515 | (lambda _ | ||
| 14516 | (install-file "jimfs-sources.jar" | ||
| 14517 | (string-append #$output "/share/java/"))))))) | ||
| 14518 | (inputs (list java-guava-for-graal-truffle)) | ||
| 14519 | (home-page "https://github.com/google/jimfs") | ||
| 14520 | (synopsis "In-memory file system for Java 7+") | ||
| 14521 | (description "Jimfs is an in-memory file system for Java 7+ that | ||
| 14522 | implements the java.nio.file.FileSystem API. Used by GraalVM Truffle | ||
| 14523 | for testing file system operations.") | ||
| 14524 | (license license:asl2.0))) | ||
| 14525 | |||
| 14526 | ;; VisualVM JFluid Heap for GraalVM Truffle (heap dump analysis) | ||
| 14527 | (define-public java-visualvm-jfluid-heap-for-graal-truffle | ||
| 14528 | (package | ||
| 14529 | (name "java-visualvm-jfluid-heap-for-graal-truffle") | ||
| 14530 | (version "2.1.4") | ||
| 14531 | (source (origin | ||
| 14532 | (method git-fetch) | ||
| 14533 | (uri (git-reference | ||
| 14534 | (url "https://github.com/oracle/visualvm") | ||
| 14535 | (commit version))) | ||
| 14536 | (file-name (git-file-name name version)) | ||
| 14537 | (sha256 | ||
| 14538 | (base32 "1s7h51vsbnn8kh7c58qgsmkw9ps29l4z07wk3pg80p7wf8kfl33z")) | ||
| 14539 | (modules '((guix build utils))) | ||
| 14540 | (snippet | ||
| 14541 | '(for-each delete-file (find-files "." "\\.jar$"))))) | ||
| 14542 | (build-system ant-build-system) | ||
| 14543 | (arguments | ||
| 14544 | (list #:jar-name "visualvm-lib-jfluid-heap.jar" | ||
| 14545 | #:source-dir "visualvm/libs.profiler/lib.profiler.heap/src" | ||
| 14546 | #:tests? #f | ||
| 14547 | #:jdk openjdk | ||
| 14548 | #:phases | ||
| 14549 | #~(modify-phases %standard-phases | ||
| 14550 | (add-after 'build 'create-sources-jar | ||
| 14551 | (lambda _ | ||
| 14552 | (invoke "jar" "cf" "visualvm-lib-jfluid-heap-sources.jar" | ||
| 14553 | "-C" "visualvm/libs.profiler/lib.profiler.heap/src" "org"))) | ||
| 14554 | (add-after 'install 'install-sources-jar | ||
| 14555 | (lambda _ | ||
| 14556 | (install-file "visualvm-lib-jfluid-heap-sources.jar" | ||
| 14557 | (string-append #$output "/share/java/"))))))) | ||
| 14558 | (home-page "https://visualvm.github.io/") | ||
| 14559 | (synopsis "VisualVM JFluid Heap library") | ||
| 14560 | (description "The JFluid Heap library from VisualVM provides heap dump | ||
| 14561 | analysis capabilities. Used by GraalVM Truffle for memory profiling.") | ||
| 14562 | (license license:gpl2))) | ||
| 14563 | |||
| 14564 | ;; Java Allocation Instrumenter for GraalVM (allocation tracking) | ||
| 14565 | (define-public java-allocation-instrumenter-for-graal-truffle | ||
| 14566 | (package | ||
| 14567 | (name "java-allocation-instrumenter-for-graal-truffle") | ||
| 14568 | (version "3.1.0") | ||
| 14569 | (source (origin | ||
| 14570 | (method git-fetch) | ||
| 14571 | (uri (git-reference | ||
| 14572 | (url "https://github.com/google/allocation-instrumenter") | ||
| 14573 | (commit (string-append "java-allocation-instrumenter-" version)))) | ||
| 14574 | (file-name (git-file-name name version)) | ||
| 14575 | (sha256 | ||
| 14576 | (base32 "1z96w3ai41za5dji7dz2xbscv6v1y082ni94qp7wzind1np2gssh")) | ||
| 14577 | (modules '((guix build utils))) | ||
| 14578 | (snippet | ||
| 14579 | '(for-each delete-file (find-files "." "\\.jar$"))))) | ||
| 14580 | (build-system ant-build-system) | ||
| 14581 | (arguments | ||
| 14582 | (list #:jar-name "java-allocation-instrumenter.jar" | ||
| 14583 | #:source-dir "src/main/java" | ||
| 14584 | #:tests? #f | ||
| 14585 | #:jdk openjdk | ||
| 14586 | #:phases | ||
| 14587 | #~(modify-phases %standard-phases | ||
| 14588 | (add-after 'build 'create-sources-jar | ||
| 14589 | (lambda _ | ||
| 14590 | (invoke "jar" "cf" "java-allocation-instrumenter-sources.jar" | ||
| 14591 | "-C" "src/main/java" "com"))) | ||
| 14592 | (add-after 'install 'install-sources-jar | ||
| 14593 | (lambda _ | ||
| 14594 | (install-file "java-allocation-instrumenter-sources.jar" | ||
| 14595 | (string-append #$output "/share/java/"))))))) | ||
| 14596 | (inputs (list java-asm-for-graal-truffle | ||
| 14597 | java-asm-commons-for-graal-truffle | ||
| 14598 | java-asm-analysis-for-graal-truffle | ||
| 14599 | java-asm-tree-for-graal-truffle | ||
| 14600 | java-guava-for-graal-truffle)) | ||
| 14601 | (home-page "https://github.com/google/allocation-instrumenter") | ||
| 14602 | (synopsis "Java agent for tracking allocations") | ||
| 14603 | (description "Java Allocation Instrumenter is a Java agent that rewrites | ||
| 14604 | bytecode to track object allocations. Used by the GraalVM compiler for | ||
| 14605 | allocation analysis during benchmarking.") | ||
| 14606 | (license license:asl2.0))) | ||
| 14607 | |||
| 12953 | (define-public java-xmlunit | 14608 | (define-public java-xmlunit |
| 12954 | (package | 14609 | (package |
| 12955 | (name "java-xmlunit") | 14610 | (name "java-xmlunit") |
| @@ -13586,6 +15241,72 @@ OSGi Service Registry is a goal of this project.") | |||
| 13586 | (install-pom-file "pom.xml"))))) | 15241 | (install-pom-file "pom.xml"))))) |
| 13587 | (propagated-inputs '()))) | 15242 | (propagated-inputs '()))) |
| 13588 | 15243 | ||
| 15244 | (define java-sisu-inject-parent-pom-0.9 | ||
| 15245 | (package | ||
| 15246 | (name "java-sisu-inject-parent-pom") | ||
| 15247 | (version "0.9.0.M3") | ||
| 15248 | (source (origin | ||
| 15249 | (method git-fetch) | ||
| 15250 | (uri (git-reference | ||
| 15251 | (url "https://github.com/eclipse/sisu.inject/") | ||
| 15252 | (commit (string-append "milestones/" version)))) | ||
| 15253 | (file-name (git-file-name "java-eclipse-sisu-inject" version)) | ||
| 15254 | (sha256 | ||
| 15255 | (base32 | ||
| 15256 | "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7")))) | ||
| 15257 | (build-system ant-build-system) | ||
| 15258 | (arguments | ||
| 15259 | `(#:tests? #f | ||
| 15260 | #:phases | ||
| 15261 | (modify-phases %standard-phases | ||
| 15262 | (delete 'configure) | ||
| 15263 | (delete 'build) | ||
| 15264 | (replace 'install | ||
| 15265 | (install-pom-file "pom.xml"))))) | ||
| 15266 | (propagated-inputs | ||
| 15267 | (list java-guice-5)) | ||
| 15268 | (home-page "https://eclipse.org/sisu") | ||
| 15269 | (synopsis "Parent POM for Eclipse Sisu") | ||
| 15270 | (description "Eclipse Sisu is a modular JSR330-based container that | ||
| 15271 | supports classpath scanning, auto-binding, and dynamic auto-wiring.") | ||
| 15272 | (license license:epl1.0))) | ||
| 15273 | |||
| 15274 | (define-public java-eclipse-sisu-inject-0.9 | ||
| 15275 | (package | ||
| 15276 | (inherit java-eclipse-sisu-inject) | ||
| 15277 | (version "0.9.0.M3") | ||
| 15278 | (source (origin | ||
| 15279 | (method git-fetch) | ||
| 15280 | (uri (git-reference | ||
| 15281 | (url "https://github.com/eclipse/sisu.inject/") | ||
| 15282 | (commit (string-append "milestones/" version)))) | ||
| 15283 | (file-name (git-file-name "java-eclipse-sisu-inject" version)) | ||
| 15284 | (sha256 | ||
| 15285 | (base32 | ||
| 15286 | "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7")) | ||
| 15287 | (modules '((guix build utils))) | ||
| 15288 | (snippet | ||
| 15289 | '(begin | ||
| 15290 | ;; Delete test jar files to prevent them from ending up on | ||
| 15291 | ;; the classpath (the ant-build-system scans all inputs for | ||
| 15292 | ;; jar files, including the source checkout). | ||
| 15293 | (for-each delete-file (find-files "." "\\.jar$")))))) | ||
| 15294 | (arguments | ||
| 15295 | (substitute-keyword-arguments (package-arguments java-eclipse-sisu-inject) | ||
| 15296 | ((#:source-dir _) | ||
| 15297 | "org.eclipse.sisu.inject/src/main/java") | ||
| 15298 | ((#:jdk _ #f) openjdk11) | ||
| 15299 | ((#:phases phases) | ||
| 15300 | `(modify-phases ,phases | ||
| 15301 | (add-after 'unpack 'delete-junit5-dependent-files | ||
| 15302 | (lambda _ | ||
| 15303 | ;; InjectedTest.java is a test utility in main sources that | ||
| 15304 | ;; requires JUnit 5, which we don't have. | ||
| 15305 | (delete-file "org.eclipse.sisu.inject/src/main/java/org/eclipse/sisu/launch/InjectedTest.java"))))))) | ||
| 15306 | ;; Use Guice 5 which includes ASM9 for Java 11+ class file parsing | ||
| 15307 | (propagated-inputs | ||
| 15308 | (list java-guice-5 java-sisu-inject-parent-pom-0.9)))) | ||
| 15309 | |||
| 13589 | (define-public java-eclipse-sisu-plexus | 15310 | (define-public java-eclipse-sisu-plexus |
| 13590 | (package | 15311 | (package |
| 13591 | (name "java-eclipse-sisu-plexus") | 15312 | (name "java-eclipse-sisu-plexus") |
| @@ -13617,8 +15338,11 @@ OSGi Service Registry is a goal of this project.") | |||
| 13617 | ;; meta-inf files. | 15338 | ;; meta-inf files. |
| 13618 | "**/PlexusLoggingTest.*" | 15339 | "**/PlexusLoggingTest.*" |
| 13619 | ;; FIXME: This test fails because of some injection error | 15340 | ;; FIXME: This test fails because of some injection error |
| 13620 | "**/PlexusRequirementTest.*") | 15341 | "**/PlexusRequirementTest.*" |
| 13621 | #:jdk ,icedtea-8 | 15342 | ;; FIXME: These tests fail with Java 11 |
| 15343 | "**/ComponentAnnotationTest.*" | ||
| 15344 | "**/ConfigurationAnnotationTest.*" | ||
| 15345 | "**/RequirementAnnotationTest.*") | ||
| 13622 | #:phases | 15346 | #:phases |
| 13623 | (modify-phases %standard-phases | 15347 | (modify-phases %standard-phases |
| 13624 | (add-before 'build 'copy-resources | 15348 | (add-before 'build 'copy-resources |
| @@ -13675,6 +15399,61 @@ classpath scanning, auto-binding, and dynamic auto-wiring. This package | |||
| 13675 | adds Plexus support to the Sisu-Inject container.") | 15399 | adds Plexus support to the Sisu-Inject container.") |
| 13676 | (license license:epl1.0))) | 15400 | (license license:epl1.0))) |
| 13677 | 15401 | ||
| 15402 | (define-public java-eclipse-sisu-plexus-0.9 | ||
| 15403 | (package | ||
| 15404 | (inherit java-eclipse-sisu-plexus) | ||
| 15405 | (version "0.9.0.M3") | ||
| 15406 | ;; Starting with 0.9.x, sisu.plexus was merged into the sisu.inject repo. | ||
| 15407 | (source (origin | ||
| 15408 | (method git-fetch) | ||
| 15409 | (uri (git-reference | ||
| 15410 | (url "https://github.com/eclipse/sisu.inject") | ||
| 15411 | (commit (string-append "milestones/" version)))) | ||
| 15412 | (file-name (git-file-name "java-eclipse-sisu-plexus" version)) | ||
| 15413 | (sha256 | ||
| 15414 | (base32 | ||
| 15415 | "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7")) | ||
| 15416 | (modules '((guix build utils))) | ||
| 15417 | (snippet | ||
| 15418 | '(begin | ||
| 15419 | ;; Delete jar files to prevent them from ending up on | ||
| 15420 | ;; the classpath. | ||
| 15421 | (for-each delete-file (find-files "." "\\.jar$")))))) | ||
| 15422 | (arguments | ||
| 15423 | (substitute-keyword-arguments (package-arguments java-eclipse-sisu-plexus) | ||
| 15424 | ((#:jdk _ #f) | ||
| 15425 | openjdk11) | ||
| 15426 | ((#:source-dir _ #f) | ||
| 15427 | "org.eclipse.sisu.plexus/src/main/java") | ||
| 15428 | ((#:test-dir _ #f) | ||
| 15429 | "org.eclipse.sisu.plexus/src/test") | ||
| 15430 | ;; Delete check phase - tests require additional dependencies not | ||
| 15431 | ;; yet available in Guix. | ||
| 15432 | ((#:tests? _ #f) | ||
| 15433 | #f) | ||
| 15434 | ((#:phases phases) | ||
| 15435 | `(modify-phases ,phases | ||
| 15436 | ;; Delete build-test-jar since we don't have JUnit 5 and the | ||
| 15437 | ;; directory structure is different in 0.9. | ||
| 15438 | (delete 'build-test-jar) | ||
| 15439 | ;; In 0.9.0.M3, there's no components.xml in main sources. | ||
| 15440 | ;; Instead, classes use @Named annotations. Generate Sisu index. | ||
| 15441 | (replace 'copy-resources | ||
| 15442 | (lambda _ | ||
| 15443 | (mkdir-p "build/classes/META-INF/sisu") | ||
| 15444 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" | ||
| 15445 | (lambda () | ||
| 15446 | (display "org.codehaus.plexus.component.configurator.BasicComponentConfigurator\n") | ||
| 15447 | (display "org.codehaus.plexus.component.configurator.MapOrientedComponentConfigurator\n"))))))))) | ||
| 15448 | (propagated-inputs | ||
| 15449 | (list java-jsr250 | ||
| 15450 | java-plexus-classworlds | ||
| 15451 | java-plexus-utils | ||
| 15452 | java-plexus-xml | ||
| 15453 | java-plexus-component-annotations | ||
| 15454 | java-cdi-api | ||
| 15455 | java-eclipse-sisu-inject-0.9)))) | ||
| 15456 | |||
| 13678 | (define java-sisu-plexus-parent-pom | 15457 | (define java-sisu-plexus-parent-pom |
| 13679 | (package | 15458 | (package |
| 13680 | (inherit java-eclipse-sisu-plexus) | 15459 | (inherit java-eclipse-sisu-plexus) |
