# HG changeset patch # User Bernhard M. Wiedemann # Date 1502609999 -7200 # Sun Aug 13 09:39:59 2017 +0200 # Node ID a98e00eed893f62dd8349fc2894abca3aff4b33a # Parent 41ce01b7d413b3654211da0147857e7d6a1495de Facilitate reproducible builds by allowing to externally hold constant the build date and time. See https://reproducible-builds.org/specs/source-date-epoch/ Backport asap. diff -r 41ce01b7d413 -r a98e00eed893 NEWS --- a/NEWS Sun Aug 13 09:39:56 2017 +0200 +++ b/NEWS Sun Aug 13 09:39:59 2017 +0200 @@ -48,6 +48,12 @@ https://github.com/akrzemi1/Optional where only "optional.hpp" is needed. +- The environment variable SOURCE_DATE_EPOCH overrides the build + timestamp as recorded by the signatures. See + https://reproducible-builds.org/specs/source-date-epoch/ + for details. + + * Version 4.2 "Compressor Road" diff -r 41ce01b7d413 -r a98e00eed893 src/DefaultSig.pm --- a/src/DefaultSig.pm Sun Aug 13 09:39:56 2017 +0200 +++ b/src/DefaultSig.pm Sun Aug 13 09:39:59 2017 +0200 @@ -109,9 +109,10 @@ sub update_date_and_time { my $self = shift; + my $now = $ENV{SOURCE_DATE_EPOCH} || time; my ($second, $minute, $hour, $day_of_month, $month, $year, - $day_of_week) = $self->is_using_gmt() ? gmtime : localtime; + $day_of_week) = $self->is_using_gmt() ? gmtime($now) : localtime($now); $self->{DATE} = $self->format_date($day_of_month, $month, $year + 1900, $day_of_week, $self->weekdays->[$day_of_week],