Source: libmarpa-r2-perl
Version: 2.086000~dfsg-5
Severity: wishlist
Tags: patch upstream
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that libmarpa-r2-perl could not be built reproducibly.
It embeds the current build date into Version.pm.

The attached patch makes it honour SOURCE_DATE_EPOCH, if it is
available, to get a deterministic timestamp.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/patches/reproducible_build.patch b/debian/patches/reproducible_build.patch
new file mode 100644
index 0000000..7d80ba7
--- /dev/null
+++ b/debian/patches/reproducible_build.patch
@@ -0,0 +1,22 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Honour SOURCE_DATE_EPOCH for embedded timestamp, if it is set
+
+--- a/inc/Marpa/R2/Build_Me.pm
++++ b/inc/Marpa/R2/Build_Me.pm
+@@ -83,7 +83,7 @@
+ 
+ ##no critic(ValuesAndExpressions::RequireInterpolationOfMetachars)
+     $text .= q{use vars qw($TIMESTAMP)} . qq{;\n};
+-    $text .= q{$TIMESTAMP='} . localtime()->datetime . qq{';\n};
++    $text .= q{$TIMESTAMP='} . (gmtime($ENV{SOURCE_DATE_EPOCH}) || localtime())->datetime . qq{';\n};
+ ##use critic
+ 
+     for my $package (@use_packages) {
+@@ -105,6 +105,7 @@
+ ##no critic(ValuesAndExpressions::RequireInterpolationOfMetachars)
+     $text .= q{use vars qw($TIMESTAMP)} . qq{;\n};
+     $text .= q{$TIMESTAMP='} . localtime()->datetime . qq{';\n};
++    $text .= q{$TIMESTAMP='} . (gmtime($ENV{SOURCE_DATE_EPOCH}) || localtime())->datetime . qq{';\n};
+ ##use critic
+ 
+     for my $package (@use_packages) {
diff --git a/debian/patches/series b/debian/patches/series
index f8d2256..b4a3780 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 1001_xs_boot_workaround.patch
 2001_libmarpa_external_linkage.patch
+reproducible_build.patch
_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to