Compare commits

...

10 Commits

Author SHA1 Message Date
Julien Lepiller
91bda669ab gnu: ant/java8: Rename to ant.
* gnu/packages/java.scm (ant): Rename to...
(ant/java7): ...this.
(ant/java8): Rename to...
(ant): ...this.
(java-qdox-1.12, java-jarjar, java-hamcrest-core, java-hamcrest-parent-pom)
(java-junit, java-org-ow2-parent-pom-1.3, java-asm-bootstrap): Rename
inputs accordingly.
* gnu/packages/axoloti.scm: Rename accordingly.
* gnu/packages/bioinformatics.scm: idem.
* gnu/packages/groovy.scm: idem.
* gnu/packages/java-maths.scm: idem.
* guix/build-system/ant.scm: idem.

Change-Id: I9d79ce8e351862747420fc2a58301b7f61212293
2026-04-20 08:31:21 +02:00
Mathieu Lirzin
f384e4f25a gnu: ant/java8: Wrap binary.
This ant package variant is meant to be used in profiles.

* gnu/packages/java.scm (ant/java8)[arguments]<fix-executable-paths>: New phase.

Change-Id: I06ea8a399576132f395bf1fea643a8af4ea206cd
2026-04-20 08:31:17 +02:00
Julien Lepiller
86330b7344 gnu: ant-junit: Deprecate.
* gnu/packages/bioinformatics (java-picard-1.113): Remove ant-junit
  dependency.
* gnu/packages/groovy.scm (groovy-ant): Remove ant-junit dependency.
* gnu/packages/java.scm (ant-junit): Deprecate in favor of ant/java8.

Change-Id: Ic877958cc559acd710ac38b7b9d4b271d3982c3f
2026-04-20 08:31:15 +02:00
Julien Lepiller
d3a0108415 gnu: ant/java8: Enable tests.
As a side-effect, this also builds ant-junit.

* gnu/packages/java.scm (ant/java8)[build-system]: Use ant-build-system.
[arguments]: Enable tests and build of ant-junit.
[native-inputs]: Remove.
[inputs]: Add junit and hamcrest.

Change-Id: Ia6fe325b11f4a50a2466c88befcdc1f56cef7c31
2026-04-20 08:31:13 +02:00
Julien Lepiller
1a7e8d47e3 gnu: java-junitparams: Disable failing tests.
gnu/packages/java.scm (java-junitparams)[arguments]: Disable failing tests.

Change-Id: Ibe4af6c58f590e87728792be5c57e37ed59dffd2
2026-04-20 08:31:10 +02:00
Julien Lepiller
927469313c gnu: java-junit: Update to 4.13.2.
* gnu/packages/java.scm (java-junit): Update to 4.13.2.

Change-Id: I82e7e3bb294375ddc3f81b66d741f8881adfd22d
2026-04-20 08:31:06 +02:00
Julien Lepiller
5043ec49c5 guix: ant: Use ant/java8 by default.
This is the latest version.

* guix/build-system/ant.scm (default-ant): Use ant/java8.

Change-Id: I3bd1cb9ff7520d2b44a1a4f8467e7df37b082f23
2026-04-20 08:31:04 +02:00
Julien Lepiller
5660474bfa gnu: ant: Do not inherit.
The derivation does not change, but drop inheritance so we can modify
the latest ant package independently.

* gnu/packages/java.scm (ant): Do not inherit.

Change-Id: I559103d2662f920bc77e0e0107e15fbb75117425
2026-04-20 08:30:59 +02:00
Julien Lepiller
5bef6564ba gnu: java-junit: Explicitely use the older ant.
Its dependencies need to use the same ant version.

* gnu/packages/java.scm (java-junit)[arguments]: Use ant.
(java-qdox-1.12, java-jarjar, java-hamcrest-core)
(java-hamcrest-parent-pom, java-org-ow2-parent-pom-1.3)
(java-asm-bootstrap)[arguments]: Use ant.

Change-Id: I522760227a450ac937ad0f4fc0ed27c7e3ec5348
2026-04-20 08:30:44 +02:00
Julien Lepiller
c781426226 gnu: ant: Simplify definition.
* gnu/packages/java.scm (ant)[arguments]: Clean up phases.

Change-Id: I9aac740918e1ac54a9c9333a8dace9a3075fb4d0
2026-04-20 08:30:27 +02:00
5 changed files with 141 additions and 175 deletions

View File

@@ -341,7 +341,7 @@ runtime.")
("java-jgit" ,java-jgit-4.2)
("axoloti-runtime" ,axoloti-runtime)))
(native-inputs
(list ant zip ; for repacking the jar
(list ant/java7 zip ; for repacking the jar
unzip))
(description
"The Axoloti patcher offers a patcher environment similar to Pure Data
@@ -647,7 +647,7 @@ This package provides the runtime.")
("java-slf4j-api" ,java-slf4j-api)
("ksoloti-runtime" ,ksoloti-runtime)))
(native-inputs
(list ant zip ;for repacking the jar
(list ant/java7 zip ;for repacking the jar
unzip))
(description
"Ksoloti is an environment for generating and processing digital audio.

View File

@@ -9283,7 +9283,7 @@ VCF.")
;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
#:tests? #f
#:jdk ,icedtea-8
#:ant ,ant/java8
#:ant ,ant
;; This is only used for tests.
#:make-flags
(list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
@@ -9353,11 +9353,10 @@ VCF.")
(list java-snappy-1
java-commons-jexl-2
java-cofoja
ant/java8 ;for bzip2 support at runtime
ant ;for bzip2 support at runtime
zlib))
(native-inputs
`(("ant-apache-bcel" ,ant-apache-bcel)
("ant-junit" ,ant-junit)
("java-testng" ,java-testng)
("java-commons-bcel" ,java-commons-bcel)
("java-jcommander" ,java-jcommander)

View File

@@ -412,7 +412,7 @@ similar to javadoc."))))
(inherit base)
(arguments
`(;#:tests? #f;Requires spock-framework which is a circular dependency
#:ant ,ant/java8; ant is actually a dependency of this package, and we need 1.10
#:ant ,ant; ant is actually a dependency of this package, and we need 1.10
,@(substitute-keyword-arguments arguments
((#:phases phases)
`(modify-phases ,phases
@@ -431,8 +431,7 @@ similar to javadoc."))))
("java-asm-analysis" ,java-asm-analysis-8)
,@(package-inputs base)))
(native-inputs
`(("ant-junit" ,ant-junit)
("groovy-bootstrap" ,groovy-bootstrap)
`(("groovy-bootstrap" ,groovy-bootstrap)
("groovy-xml" ,groovy-xml)
("groovy-test" ,groovy-test)
("groovy-tests-bootstrap" ,groovy-tests-bootstrap)

View File

@@ -75,7 +75,7 @@
(inputs
(list openblas))
(native-inputs
`(("ant" ,ant)
`(("ant" ,ant/java7)
("ruby" ,ruby) ; for configure script
("gfortran" ,gfortran)
("jdk" ,icedtea "jdk")))

View File

@@ -1964,8 +1964,7 @@ OpenJDK.")
(home-page "https://www.jetbrains.com/")
(license license:gpl2+)))
(define-public ant/java8
(define-public ant
(package
(name "ant")
(version "1.10.15")
@@ -1980,15 +1979,12 @@ OpenJDK.")
(snippet
'(begin
(for-each delete-file
(find-files "lib/optional" "\\.jar$"))
#t))))
(build-system gnu-build-system)
(find-files "lib/optional" "\\.jar$"))))))
(build-system ant-build-system)
(arguments
(list
#:modules '((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ;no "check" target
#:ant ant/java7
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-scripts
@@ -1998,11 +1994,100 @@ OpenJDK.")
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))))
(add-after 'unpack 'link-test-dependencies
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (file)
(symlink file
(string-append "lib/optional/"
(basename file))))
(append
(find-files (assoc-ref inputs "java-hamcrest-core")
"\\.jar$")
(find-files (assoc-ref inputs "java-hamcrest-library")
"\\.jar$")
(find-files (assoc-ref inputs "java-junit")
"\\.jar$")))))
(add-before 'build 'fix-test-failures
(lambda _
;; Failure because the directory does not exist
(substitute* "src/etc/testcases/taskdefs/exec/exec-with-redirector.xml"
(("/usr/bin") (getcwd)))
;; Failure because it cannot read root's name in the build
;; container
(delete-file "src/tests/junit/org/apache/tools/ant/types/selectors/OwnedBySelectorTest.java")
;; Cause timestamp issue when trying to rollback time by a few
;; seconds.
(for-each (lambda (file) (utime file 5000))
(find-files "src/etc/testcases/taskdefs" "" #:directories? #t))))
(delete 'bootstrap)
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" #$output))))
(add-after 'build 'fix-executables-paths
(lambda* (#:key inputs #:allow-other-keys)
(wrap-script (string-append #$output "/bin/ant")
`("PATH" suffix
(,(dirname (search-input-file inputs "/bin/sed"))
,(dirname (search-input-file inputs "/bin/uname"))
,(dirname (search-input-file inputs "/bin/which")))))
(patch-shebang
(string-append #$output "/bin/complete-ant-cmd.pl")
(list (dirname (search-input-file inputs "/bin/perl"))))))
(delete 'install))))
(inputs
(list coreutils-minimal
guile-3.0/pinned
java-hamcrest-core
java-hamcrest-library
java-junit
perl
sed
which))
(home-page "https://ant.apache.org")
(synopsis "Build tool for Java")
(description
"Ant is a platform-independent build tool for Java. It is similar to
make but is implemented using the Java language, requires the Java platform,
and is best suited to building Java projects. Ant uses XML to describe the
build process and its dependencies, whereas Make uses Makefile format.")
(license license:asl2.0)))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8.
(define-public ant/java7
(package
(name "ant")
(version "1.9.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-after 'unpack 'remove-scripts
;; Remove bat / cmd scripts for DOS as well as the antRun and runant
;; wrappers.
(lambda _
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
;; Disable tests to avoid dependency on hamcrest-core, which needs
;; Ant to build. This is necessary in addition to disabling the
@@ -2011,9 +2096,10 @@ OpenJDK.")
(substitute* "build.xml"
(("depends=\"jars,test-jar") "depends=\"jars"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" #$output))))
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda _
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
@@ -2039,11 +2125,11 @@ OpenJDK.")
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append #$output "/lib")
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))))
(delete 'install))))
(native-inputs
`(("jdk" ,icedtea-8 "jdk")
`(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
("unzip" ,unzip)))
(home-page "https://ant.apache.org")
@@ -2055,131 +2141,12 @@ and is best suited to building Java projects. Ant uses XML to describe the
build process and its dependencies, whereas Make uses Makefile format.")
(license license:asl2.0)))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8.
(define-public ant
(package (inherit ant/java8)
(version "1.9.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
;; XXX: we do this to avoid a rebuild. This mess will be cleaned up
;; later.
(arguments
(substitute-keyword-arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'build 'define-java-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; First, set environment variables (eases debugging on -K).
(setenv "JAVA_HOME" (assoc-ref inputs "jamvm"))
(setenv "JAVACMD" (search-input-file inputs "/bin/jamvm"))
(setenv "JAVAC" (search-input-file inputs "/bin/jikes"))
(setenv "CLASSPATH" (search-input-file inputs "/lib/rt.jar"))))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Ant complains if this file doesn't exist.
(setenv "HOME" "/tmp")
(with-output-to-file "/tmp/.ant.properties"
(lambda _ (display "")))
;; Use jikes instead of javac for <javac ...> tags in build.xml
(setenv "ANT_OPTS" "-Dbuild.compiler=jikes")
;; jikes produces lots of warnings, but they are not very
;; interesting, so we silence them.
(setenv "$BOOTJAVAC_OPTS" "-nowarn")
;; Without these JamVM options the build may freeze.
(substitute* "bootstrap.sh"
(("^\"\\$\\{JAVACMD\\}\" " m)
,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((string-append m "-Xnocompact "))
`((string-append m "-Xnocompact -Xnoinlining ")))))
;; Disable tests because we are bootstrapping and thus don't have
;; any of the dependencies required to build and run the tests.
(substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
(with-directory-excursion dir
(invoke "unzip" jar))
(delete-file jar)
;; XXX: copied from (gnu build install)
(for-each (lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
;; It is important that the manifest appears first.
(with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t))
;; To ensure that the reference scanner can
;; detect all store references in the jars
;; we disable compression with the "-0" option.
(command (if (file-exists? manifest)
`("zip" "-0" "-X" ,jar ,manifest
,@files)
`("zip" "-0" "-X" ,jar ,@files))))
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))))
(delete 'install)))
((#:phases phases)
`(modify-phases ,phases
(delete 'define-java-environment-variables)
(add-after 'unpack 'remove-scripts
;; Remove bat / cmd scripts for DOS as well as the antRun and runant
;; wrappers.
(lambda _
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))
#t))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
;; Disable tests to avoid dependency on hamcrest-core, which needs
;; Ant to build. This is necessary in addition to disabling the
;; "check" phase, because the dependency on "test-jar" would always
;; result in the tests to be run.
(substitute* "build.xml"
(("depends=\"jars,test-jar") "depends=\"jars"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))))))
(native-inputs
`(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
("unzip" ,unzip)))))
(define-public ant-apache-bcel
(package
(inherit ant/java8)
(inherit ant)
(name "ant-apache-bcel")
(arguments
(substitute-keyword-arguments (package-arguments ant/java8)
(substitute-keyword-arguments (package-arguments ant)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'link-bcel
@@ -2200,37 +2167,11 @@ build process and its dependencies, whereas Make uses Makefile format.")
(delete-file-recursively bin)
(delete-file-recursively lib))))))))
(inputs
(modify-inputs (package-inputs ant/java8)
(modify-inputs (package-inputs ant)
(prepend java-commons-bcel)))))
(define-public ant-junit
(package
(inherit ant/java8)
(name "ant-junit")
(arguments
(substitute-keyword-arguments (package-arguments ant/java8)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'link-junit
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (file)
(symlink file
(string-append "lib/optional/"
(basename file))))
(find-files (assoc-ref inputs "java-junit")
"\\.jar$"))))
(add-after 'build 'install
(lambda _
(let ((share (string-append #$output "/share/java"))
(bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib")))
(mkdir-p share)
(install-file (string-append lib "/ant-junit.jar") share)
(delete-file-recursively bin)
(delete-file-recursively lib))))))))
(inputs
(modify-inputs (package-inputs ant/java8)
(prepend java-junit)))))
(define-deprecated-package ant-junit
ant)
(define-public libantlr3c
(package
@@ -3337,6 +3278,9 @@ is implemented.")
`(;; Tests require junit
#:tests? #f
#:jar-name "qdox.jar"
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(replace 'unpack
@@ -3445,6 +3389,9 @@ documentation tools.")
`(;; Tests require junit, which ultimately depends on this package.
#:tests? #f
#:build-target "jar"
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(add-before 'build 'do-not-use-bundled-asm
@@ -3543,6 +3490,9 @@ testing frameworks, mocking libraries and UI validation rules.")
(build-system ant-build-system)
(arguments
`(#:tests? #f ; Tests require junit
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:modules ((guix build ant-build-system)
(guix build java-utils)
(guix build utils)
@@ -3628,6 +3578,9 @@ testing frameworks, mocking libraries and UI validation rules.")
(native-inputs '())
(arguments
`(#:tests? #f
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(delete 'configure)
@@ -3669,7 +3622,7 @@ testing frameworks, mocking libraries and UI validation rules.")
(define-public java-junit
(package
(name "java-junit")
(version "4.12")
(version "4.13.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3678,7 +3631,7 @@ testing frameworks, mocking libraries and UI validation rules.")
(file-name (git-file-name name version))
(sha256
(base32
"1j8avi91px1z8rjc89cfikwrvfifdmmsarwiyrcnr59ynvpz0v8h"))
"1r7k4zzscc8019np3is3bzfigw8fxd6s3259cbhzzh02q6d5p9h3"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3690,6 +3643,9 @@ testing frameworks, mocking libraries and UI validation rules.")
`(#:jar-name "junit.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
;; Explicitely use an ant version that includes the junit tasks, so
;; we can run the tests.
#:ant ,ant/java7
#:test-exclude (list "**/SimpleTest.java" "**/StackTracesTest.java"
"**/RuleChainTest.java" "**/TestWatchmanTest.java")
#:phases
@@ -3730,7 +3686,13 @@ sharing common test data, and test runners for running tests.")
`(#:jar-name "junitparams.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:test-exclude (list "**/SuperclassTest.java")))
#:test-exclude (list
;; Abstract class: no tests
"**/SuperclassTest.java"
;; Incompatible tests with junit 4.13.2
"**/BeforeAfterClassTest.java"
"**/FilterableTest.java"
"**/RulesTest.java")))
(inputs
(list java-junit))
(native-inputs
@@ -5199,6 +5161,9 @@ complex transformations and code analysis tools.")
(build-system ant-build-system)
(arguments
`(#:tests? #f
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(delete 'unpack)
@@ -5220,6 +5185,9 @@ including java-asm.")
(properties '((hidden? . #t)))
(arguments
(substitute-keyword-arguments (package-arguments java-asm)
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
((#:ant _ ant/java7) ant/java7)
((#:tests? _) #f)))
(native-inputs `())))