From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Date: Tue, 25 Aug 2015 14:09:16 +0200 Subject: [U-Boot] [PATCH v3 2/2] Makefile: Add SOURCE_DATE_TZ In-Reply-To: <1439446108-6547-2-git-send-email-judge.packham@gmail.com> References: <1439446108-6547-1-git-send-email-judge.packham@gmail.com> <1439446108-6547-2-git-send-email-judge.packham@gmail.com> Message-ID: <1440504556.9743.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 jeudi 13 ao?t 2015 ? 18:08 +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. I advise against merging this patch given Ximin Luo's comments on v1, at least until this has been properly discussed with the reproducible team and a precise meaning for it has been agreed on. > Signed-off-by: Chris Packham > --- > This is a quick proof of concept that allows some control of how the > timezone is displayed. Now you can do something like > > make SOURCE_DATE_EPOCH=12345678 SOURCE_DATE_TZ=America/Los_Angeles > > > Changes in v3: > - Drop RFC > > Changes in v2: None > > Makefile | 7 ++++--- > README | 9 ++++++--- > 2 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/Makefile b/Makefile > index 3ff063a..609b595 100644 > --- a/Makefile > +++ b/Makefile > @@ -1281,9 +1281,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: