summary refs log tree commit diff
path: root/gnu/packages/patches/perl-reproducible-build-date.patch
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-10-01 15:20:08 +0200
committerLudovic Courtès <ludo@gnu.org>2016-10-01 15:20:08 +0200
commit5bde29685b89452d3f584a913b3df5dd41990757 (patch)
tree05212ca9a1491a25ff9dcbcf9554995403ef17a7 /gnu/packages/patches/perl-reproducible-build-date.patch
parent156c0810e936413ac554e2883343b3b40695cfdc (diff)
downloadguix-5bde29685b89452d3f584a913b3df5dd41990757.tar.gz
gnu: perl: Make builds reproducible again.
* gnu/packages/patches/perl-reproducible-build-date.patch: Add hunks to
set 'myuname', 'cf_time', and 'cf_by' in 'Configure'.
Diffstat (limited to 'gnu/packages/patches/perl-reproducible-build-date.patch')
-rw-r--r--gnu/packages/patches/perl-reproducible-build-date.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/gnu/packages/patches/perl-reproducible-build-date.patch b/gnu/packages/patches/perl-reproducible-build-date.patch
index d5bd25dbfb..bf0d4b8f6d 100644
--- a/gnu/packages/patches/perl-reproducible-build-date.patch
+++ b/gnu/packages/patches/perl-reproducible-build-date.patch
@@ -3,6 +3,14 @@ Don't encode the current timestamp.
 This affects the output of `perl -V`, specifically the message "Compiled
 at [...]".
 
+The 'cf_time' and 'cf_by' values show up in 'config.h' and
+in 'Config_heavy.pl'.
+
+Use the output of 'uname -s' instead of 'uname -a' to avoid recording
+the kernel version ('uname -o' leads to directory names like
+'x86_64-gnulinux' instead of 'x86_64-linux', which might cause breakage
+down the road.)
+
 diff --git a/perl.c b/perl.c
 index 228a0d8..ed38313 100644
 --- a/perl.c
@@ -15,3 +23,28 @@ index 228a0d8..ed38313 100644
  #ifndef PERL_BUILD_DATE
  #  ifdef __DATE__
  #    ifdef __TIME__
+
+--- a/Configure	1970-01-01 01:00:00.000000000 +0100
++++ b/Configure	2016-10-01 14:47:20.017319739 +0200
+@@ -3276,7 +3276,7 @@ $eunicefix tr
+ : Try to determine whether config.sh was made on this system
+ case "$config_sh" in
+ '')
+-myuname=`$uname -a 2>/dev/null`
++myuname=`$uname -s 2>/dev/null`
+ $test -z "$myuname" && myuname=`hostname 2>/dev/null`
+ # Downcase everything to avoid ambiguity.
+ # Remove slashes and single quotes so we can use parts of this in
+@@ -3845,10 +3845,10 @@
+ . ./posthint.sh
+ 
+ : who configured the system
+-cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
++cf_time="1970-01-01"
+ case "$cf_by" in
+ "")
+-	cf_by=`(logname) 2>/dev/null`
++	cf_by="guix"
+ 	case "$cf_by" in
+ 	"")
+ 		cf_by=`(whoami) 2>/dev/null`