summaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2023-07-31 20:09:15 +0200
committerLudovic Courtès <ludo@gnu.org>2024-08-31 10:44:39 +0200
commitedf8fc9a485298e9bdb3793221c75d0a4a18177d (patch)
treeb5f66c94b7b923285a2bc5261b13ba635f4bbf2b /gnu/packages/java.scm
parent48ea1a2b3b8bc4c8b2247972401ab5a6f7f4ecc7 (diff)
gnu: openjdk11: Make more reproducible.
* gnu/packages/java.scm (openjdk11)[source]: Add patch. [arguments]<#:phases>[remove-timestamping]: Add phase. * gnu/packages/patches/openjdk-11-classlist-reproducibility.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I67f1b7746a2c7016aec32c438b94d24a16bc77b2
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm21
1 files changed, 18 insertions, 3 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 91ab61ad13..4188285a07 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1303,8 +1303,14 @@ new Date();"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))
- (patches (search-patches
- "openjdk-currency-time-bomb2.patch"))))
+ (patches
+ (search-patches "openjdk-10-module3-reproducibility.patch"
+ "openjdk-10-module4-reproducibility.patch"
+ "openjdk-10-char-reproducibility.patch"
+ "openjdk-11-classlist-reproducibility.patch"
+ "openjdk-10-jar-reproducibility.patch"
+ "openjdk-10-jtask-reproducibility.patch"
+ "openjdk-currency-time-bomb2.patch"))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
@@ -1338,6 +1344,10 @@ new Date();"))
"--with-libjpeg=system"
"--with-libpng=system"
"--with-version-pre="
+ ;; Should be set by SOURCE_DATE_EPOCH handler, but isn't being
+ ;; set; do it manually.
+ "--with-hotspot-build-time=1970-01-01T00:00:01"
+ "--enable-reproducible-build" ; to be sure
;; Allow the build system to locate the system freetype.
(string-append "--with-freetype-include="
#$(this-package-input "freetype") "/include")
@@ -1351,6 +1361,11 @@ new Date();"))
;; this exact first line.
(substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))
+ (add-after 'unpack 'remove-timestamping
+ (lambda _
+ (substitute* "src/hotspot/share/runtime/abstract_vm_version.cpp"
+ (("__DATE__") "")
+ (("__TIME__") ""))))
(add-after 'unpack 'patch-jni-libs
;; Hardcode dynamically loaded libraries.
(lambda _
@@ -1551,7 +1566,7 @@ new Date();"))
libxtst))
(native-inputs
(list autoconf
- bash ; not bash-minimal, needs ulimit
+ bash ; not bash-minimal, needs ulimit
openjdk10
`(,openjdk10 "jdk")
gnu-make-4.2