unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: dannym@scratchpost.org
To: 55751@debbugs.gnu.org
Cc: Danny Milosavljevic <dannym@scratchpost.org>
Subject: [bug#55751] [PATCH 3/8] gnu: openjdk11: Make more reproducible.
Date: Wed,  1 Jun 2022 15:00:06 +0200	[thread overview]
Message-ID: <20220601130011.9910-4-dannym@scratchpost.org> (raw)
In-Reply-To: <20220601125741.9898-1-dannym@scratchpost.org>

From: Danny Milosavljevic <dannym@scratchpost.org>

* gnu/packages/java.scm (openjdk11)[source]: Add patches.
[arguments]<#:phases>[remove-timestamping]: Add phase.
* gnu/packages/patches/openjdk-11-classlist-reproducibility.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         | 21 ++++++++++++++++++-
 ...openjdk-11-classlist-reproducibility.patch | 11 ++++++++++
 3 files changed, 32 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/openjdk-11-classlist-reproducibility.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0a81e0fe75..eaf0e306fb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1582,6 +1582,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-10-module-reproducibility.patch	\
   %D%/packages/patches/openjdk-10-module3-reproducibility.patch	\
   %D%/packages/patches/openjdk-10-module4-reproducibility.patch	\
+  %D%/packages/patches/openjdk-11-classlist-reproducibility.patch	\
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
   %D%/packages/patches/openssh-hurd.patch			\
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 37b310141e..5a1e45ca68 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1842,7 +1842,17 @@ (define-public openjdk11
               (snippet
                `(begin
                   (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
-                  #t))))
+                  #t))
+              (patches
+               (search-patches ;"openjdk-10-module-reproducibility.patch"
+                        "openjdk-10-module3-reproducibility.patch"
+                        "openjdk-10-module4-reproducibility.patch"
+                        "openjdk-10-char-reproducibility.patch"
+                        "openjdk-11-classlist-reproducibility.patch"
+                        ;"openjdk-10-corba-reproducibility.patch"
+                        ;"openjdk-10-idlj-reproducibility.patch"
+                        "openjdk-10-jar-reproducibility.patch"
+                        "openjdk-10-jtask-reproducibility.patch"))))
     (build-system gnu-build-system)
     (outputs '("out" "jdk" "doc"))
     (arguments
@@ -1869,6 +1879,10 @@ (define-public openjdk11
          "--with-libjpeg=system"
          "--with-libpng=system"
          "--with-version-pre="
+         ;; should be set by SOURCE_DATE_EPOCH handler, but
+         ;; isn't being set. So manually do it.
+         "--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="
                          (assoc-ref %build-inputs "freetype") "/include")
@@ -1883,6 +1897,11 @@ (define-public openjdk11
              (substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
                (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))
              #t))
+         (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 _
diff --git a/gnu/packages/patches/openjdk-11-classlist-reproducibility.patch b/gnu/packages/patches/openjdk-11-classlist-reproducibility.patch
new file mode 100644
index 0000000000..2ac7c2b664
--- /dev/null
+++ b/gnu/packages/patches/openjdk-11-classlist-reproducibility.patch
@@ -0,0 +1,11 @@
+--- jdk-11.0.13-ga/make/GenerateLinkOptData.gmk.orig	2022-04-04 17:18:56.801929954 +0200
++++ jdk-11.0.13-ga/make/GenerateLinkOptData.gmk	2022-04-04 17:19:14.962422622 +0200
+@@ -66,7 +66,7 @@
+ 	    -cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
+ 	    build.tools.classlist.HelloClasslist \
+ 	    $(LOG_DEBUG) 2>&1 > $(JLI_TRACE_FILE)
+-	$(GREP) -v HelloClasslist $@.raw > $@
++	$(GREP) -v HelloClasslist $@.raw |sort > $@
+ 
+ # The jli trace is created by the same recipe as classlist. By declaring these
+ # dependencies, make will correctly rebuild both jli trace and classlist
-- 
2.36.1





  parent reply	other threads:[~2022-06-01 13:01 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-01 12:57 [bug#55751] [PATCH 0/8] Towards reproducible openjdk dannym
2022-06-01 13:00 ` [bug#55751] [PATCH 1/8] gnu: openjdk9: Make build reproducible dannym
2022-06-01 13:12   ` Maxime Devos
2022-06-01 13:14   ` Maxime Devos
2022-06-01 13:18   ` Maxime Devos
2022-09-21 20:18     ` Danny Milosavljevic
2022-06-01 13:00 ` [bug#55751] [PATCH 2/8] gnu: openjdk10: Make more reproducible dannym
2022-06-01 13:00 ` dannym [this message]
2022-06-01 13:00 ` [bug#55751] [PATCH 4/8] gnu: openjdk12: Make reproducible dannym
2022-06-01 13:00 ` [bug#55751] [PATCH 5/8] gnu: openjdk13: " dannym
2022-06-01 13:00 ` [bug#55751] [PATCH 6/8] gnu: openjdk14: " dannym
2022-06-01 13:00 ` [bug#55751] [PATCH 7/8] gnu: openjdk15: " dannym
2022-06-01 13:00 ` [bug#55751] [PATCH 8/8] gnu: openjdk16: " dannym
2022-06-01 13:20 ` [bug#55751] [PATCH 0/8] Towards reproducible openjdk Maxime Devos
2023-07-31 18:09 ` [bug#55751] [PATCH v2 0/7] " Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 1/7] gnu: openjdk9: Make build reproducible Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 2/7] gnu: openjdk10: Make more reproducible Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 3/7] gnu: openjdk11: " Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 4/7] gnu: openjdk12: Make reproducible Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 5/7] gnu: openjdk13: " Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 6/7] gnu: openjdk14: " Danny Milosavljevic
2023-07-31 18:09   ` [bug#55751] [PATCH v2 7/7] gnu: openjdk15: " Danny Milosavljevic
2024-01-21  5:22     ` Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220601130011.9910-4-dannym@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=55751@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).