From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Date: Sat, 01 Aug 2015 20:47:29 +0200 Subject: [U-Boot] [RFC PATCH] Makefile: Add SOURCE_DATE_TZ In-Reply-To: <1438425169-13978-1-git-send-email-judge.packham@gmail.com> References: <55BB4BA6.8090400@pwned.gg> <1438425169-13978-1-git-send-email-judge.packham@gmail.com> Message-ID: <1438454849.3534.5.camel@collins> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Le samedi 01 ao?t 2015 ? 22:32 +1200, Chris Packham a ?crit : > Along with SOURCE_DATE_EPOCH SOURCE_DATE_TZ can be used to recreate a > build with a specific date timestamp. This allows the verification of > source supplied with a pre-compiled binary. > > If SOURCE_DATE_EPOCH is supplied SOURCE_DATE_TZ can be used to specify > what will appear in the output of the version command. If SOURCE_DATE_TZ > is not specified UTC will be used. SOURCE_DATE_TZ on it's own will not > have an affect. Well, I worked with the assumption that SOURCE_DATE_EPOCH would always be provided in UTC, but I see no harm in providing SOURCE_DATE_TZ as well, provided that it falls back to UTC when not set, as is the current behaviour of tour patch. Looks good to me! > Signed-off-by: Chris Packham > --- > This is a quick proof of concept that allows some control of how the > timezone is displayed. > > Makefile | 7 ++++--- > README | 9 ++++++--- > 2 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/Makefile b/Makefile > index f75c730..5102a9c 100644 > --- a/Makefile > +++ b/Makefile > @@ -1232,9 +1232,10 @@ endef > define filechk_timestamp.h > (if test -n "$${SOURCE_DATE_EPOCH}"; then \ > SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \ > - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \ > - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \ > - LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \ > + SOURCE_TZ="$${SOURCE_DATE_TZ:-UTC}"; \ > + TZ="$${SOURCE_TZ}" LC_ALL=C date -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \ > + TZ="$${SOURCE_TZ}" LC_ALL=C date -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \ > + TZ="$${SOURCE_TZ}" LC_ALL=C date -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \ > else \ > LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \ > LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \ > diff --git a/README b/README > index 1bcb63c..d2e3e94 100644 > --- a/README > +++ b/README > @@ -5087,11 +5087,14 @@ Reproducible builds > In order to achieve reproducible builds, timestamps used in the U-Boot build > process have to be set to a fixed value. > > -This is done using the SOURCE_DATE_EPOCH environment variable. > -SOURCE_DATE_EPOCH is to be set on the build host's shell, not as a configuration > -option for U-Boot or an environment variable in U-Boot. > +This is done using the SOURCE_DATE_EPOCH and SOURCE_DATE_TZ environment > +variables. These are to be set on the build host's shell, not as a > +configuration option for U-Boot or an environment variable in U-Boot. > > SOURCE_DATE_EPOCH should be set to a number of seconds since the epoch, in UTC. > +SOURCE_DATE_TZ will default to UTC but can be set to another timezone and is > +used to determine how the date is displayed (tzselect(1) can be used to > +determine an appropriate value). > > Building the Software: > ====================== -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part URL: