From 4187fe750f128f934bd6030912133d13d19baafd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 Dec 2015 11:25:24 +0100 Subject: gnu: perl: Build deterministically, and make byproducts deterministic. With this, a --rounds=2 build passes, and timestamps in POD files can be controlled with 'SOURCE_DATE_EPOCH'. * gnu/packages/patches/perl-deterministic-ordering.patch, gnu/packages/patches/perl-no-build-time.patch, gnu/packages/patches/perl-source-date-epoch.patch: New files. * gnu/packages/perl.scm (perl)[source]: Use them. * gnu-system.am (dist_patch_DATA): Add them. --- gnu/packages/patches/perl-no-build-time.patch | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 gnu/packages/patches/perl-no-build-time.patch (limited to 'gnu/packages/patches/perl-no-build-time.patch') diff --git a/gnu/packages/patches/perl-no-build-time.patch b/gnu/packages/patches/perl-no-build-time.patch new file mode 100644 index 0000000000..5d78e8f462 --- /dev/null +++ b/gnu/packages/patches/perl-no-build-time.patch @@ -0,0 +1,26 @@ +Do not record the configuration and build time so that builds can be +reproduced bit-for-bit. + +--- perl-5.22.0/Configure 1970-01-01 01:00:00.000000000 +0100 ++++ perl-5.22.0/Configure 2015-12-13 00:14:43.148165080 +0100 +@@ -3834,6 +3817,7 @@ esac + + : who configured the system + cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1` ++cf_time='Thu Jan 1 00:00:01 UTC 1970' + case "$cf_by" in + "") + cf_by=`(logname) 2>/dev/null` + +--- perl-5.22.0/perl.c 2015-12-13 00:25:30.269156627 +0100 ++++ perl-5.22.0/perl.c 2015-12-13 00:25:38.265218175 +0100 +@@ -1795,7 +1795,7 @@ S_Internals_V(pTHX_ CV *cv) + PUSHs(Perl_newSVpvn_flags(aTHX_ non_bincompat_options, + sizeof(non_bincompat_options) - 1, SVs_TEMP)); + +-#ifdef __DATE__ ++#if 0 + # ifdef __TIME__ + PUSHs(Perl_newSVpvn_flags(aTHX_ + STR_WITH_LEN("Compiled at " __DATE__ " " __TIME__), + -- cgit v1.2.3