summaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm50
1 files changed, 46 insertions, 4 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index b4b1eedd2e..5216b84abd 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -212,7 +212,13 @@ JNI.")
"1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no "check" target
+ `(#:imported-modules ((guix build syscalls)
+ ,@%gnu-build-system-modules)
+ #:modules ((srfi srfi-1)
+ (guix build gnu-build-system)
+ (guix build utils)
+ (guix build syscalls))
+ #:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
@@ -254,10 +260,42 @@ JNI.")
(zero? (system* "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$"))
+ #t))
(delete 'install))))
(native-inputs
`(("jikes" ,jikes)
- ("jamvm" ,jamvm-1-bootstrap)))
+ ("jamvm" ,jamvm-1-bootstrap)
+ ("unzip" ,unzip)
+ ("zip", zip)))
(home-page "http://ant.apache.org")
(synopsis "Build tool for Java")
(description
@@ -1649,7 +1687,9 @@ new Date();"))
(string-append "-Ddist.dir="
(assoc-ref outputs "out"))))))))))
(native-inputs
- `(("jdk" ,icedtea-8 "jdk")))))
+ `(("jdk" ,icedtea-8 "jdk")
+ ("zip" ,zip)
+ ("unzip" ,unzip)))))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8.
@@ -1664,7 +1704,9 @@ new Date();"))
(base32
"1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
(native-inputs
- `(("jdk" ,icedtea-7 "jdk")))))
+ `(("jdk" ,icedtea-7 "jdk")
+ ("zip" ,zip)
+ ("unzip" ,unzip)))))
(define-public ant-apache-bcel
(package