[U-Boot] [PATCH v3 2/2] Makefile: Add SOURCE_DATE_TZ

Paul Kocialkowski
2015-08-25T12:09:16Z

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 <judge.packham@gmail.com>
> ---
> 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: <http://lists.denx.de/pipermail/u-boot/attachments/20150825/e66d5b0a/attachment.sig>