On Fri, Jul 31, 2015 at 2:54 PM, Bin Meng <bmeng...@gmail.com> wrote:
> Hi,
> On Tue, Jul 28, 2015 at 11:00 PM, Tom Rini <tr...@konsulko.com> wrote:
>> On Sun, Jul 26, 2015 at 06:48:15PM +0200, Paul Kocialkowski wrote:
>>> In order to achieve reproducible builds in U-Boot, timestamps that are 
>>> defined
>>> at build-time have to be somewhat eliminated. The SOURCE_DATE_EPOCH 
>>> environment
>>> variable allows setting a fixed value for those timestamps.
>>> Simply by setting SOURCE_DATE_EPOCH to a fixed value, a number of targets 
>>> can be
>>> built reproducibly. This is the case for e.g. sunxi devices.
>>> However, some other devices might need some more tweaks, especially 
>>> regarding
>>> the image generation tools.
>>> Signed-off-by: Paul Kocialkowski <cont...@paulk.fr>
>> Applied to u-boot/master, thanks!
>> --
> This commit breaks the following commit:
> commit f3f431a712729a1af94d01bd1bfde17a252ff02c
> Author: Chris Packham <judge.pack...@gmail.com>
> Date:   Sun May 10 21:02:09 2015 +1200
>     Makefile: Add U_BOOT_TZ and include in version
>     Define U_BOOT_TZ alongside U_BOOT_TIME and U_BOOT_DATE and use it to
>     include the timezone in the version output.
>     Acked-by: Simon Glass <s...@chromium.org>
>     Signed-off-by: Chris Packham <judge.pack...@gmail.com>
> Before this commit I have:
> U-Boot 2015.07-00345-g9c57487 (Jul 31 2015 - 10:49:31 +0800)
> After this commit I have:
> U-Boot 2015.07-00346-gf3f431a (Jul 31 2015 - 02:50:54 +0000)
> As you see: the timezone information is missing, and U-Boot's
> timestamp is now GMT+0 (the correct one should be GMT+8)
> Is this intended behavior? Or if not, please fix it.
> Regards,
> Bin

The problem is that date -u implies UTC. So +0000 is right if you do
want the time to be displayed in UTC (for me living at +12/+13 UTC
makes my head hurt because all the dates are yesterday).

The intent of f3f431a7 was to reflect the timezone that the build
machine was set to. Dropping the -u would probably be sufficient but
perhaps it would be better to make whole lot conditional on
SOURCE_DATE_EPOCH being set. Something like this (untested, apologies
gmail web interface)

define filechk_timestamp.h
       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"' )
define filechk_timestamp.h
       (LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
       LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
       LC_ALL=C date +'#define U_BOOT_TZ "%z"')

Reproducible-builds mailing list

Reply via email to