From: Paul Kocialkowski <contact@paulk.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH
Date: Mon, 28 Sep 2015 19:42:50 +0200 [thread overview]
Message-ID: <1443462170.2516.7.camel@collins> (raw)
In-Reply-To: <87oagriz0p.fsf@aikidev.net>
Le jeudi 24 septembre 2015 ? 09:05 -0700, Vagrant Cascadian a ?crit :
> On 2015-07-26, 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.
> ...
> > However, some other devices might need some more tweaks, especially regarding
> > the image generation tools.
>
> With this patch, there is still variation based on timezone in any of
> the u-boot.img and u-boot-sunxi-with-spl.bin produced in the Debian
> packages:
>
> https://reproducible.debian.net/rb-pkg/unstable/armhf/u-boot.html
Thanks for reporting this!
> The good news is that all the u-boot.bin targets are produced
> reproducibly, so here's to progress!
Good, that's a nice first step forward.
> I think the use of "time = mktime(time_universal);" is where the problem
> lies:
[?]
> According to the mktime manpage:
>
> The mktime() function converts a broken-down time structure,
> expressed as local time, to calendar time representation.
>
> So my interpetation is that it's taking the UTC time and converts it
> into local time using the configured timezone... not sure what would be
> a viable alternative to mktime.
That seems to make sense. Come to think of it, it probably was not
necessary to call gmtime in the first place: if SOURCE_DATE_EPOCH is
always in UTC, we should be able to stick that as-is in the time
variable. At best, gmtime + mktime (assuming mktime working in UTC)
would give us back the same timestamp.
What do you think? Please let me know if I'm wrong.
> Running with the TZ=UTC environment variable exported works around the
> problem; not sure if it would be appropriate to always run with TZ=UTC
> when SOURCE_DATE_EPOCH is set...
Well that's too much of a workaround to be a reliable solution for the
long term, IMHO.
--
Paul Kocialkowski, Replicant developer
Replicant is a fully free Android distribution running on several
devices, a free software mobile operating system putting the emphasis on
freedom and privacy/security.
Website: https://www.replicant.us/
Blog: https://blog.replicant.us/
Wiki/tracker/forums: https://redmine.replicant.us/
-------------- 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/20150928/b0842d2c/attachment.sig>
next prev parent reply other threads:[~2015-09-28 17:42 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-26 16:48 [U-Boot] [PATCH v2] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH Paul Kocialkowski
2015-07-28 15:00 ` [U-Boot] [U-Boot, " Tom Rini
2015-07-31 2:54 ` Bin Meng
2015-07-31 5:25 ` Chris Packham
2015-07-31 10:04 ` [U-Boot] [PATCH] Makefile: Use correct timezone for U_BOOT_TZ Chris Packham
2015-07-31 12:14 ` Bin Meng
2015-07-31 17:05 ` Paul Kocialkowski
2015-08-01 9:40 ` Chris Packham
2015-08-01 9:43 ` [U-Boot] [PATCH v2] " Chris Packham
2015-08-10 10:49 ` Chris Packham
2015-07-31 10:19 ` [U-Boot] [Reproducible-builds] [U-Boot, v2] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH Ximin Luo
2015-08-01 10:32 ` [U-Boot] [RFC PATCH] Makefile: Add SOURCE_DATE_TZ Chris Packham
2015-08-01 18:47 ` Paul Kocialkowski
2015-08-01 22:02 ` Ximin Luo
2015-08-01 22:04 ` Ximin Luo
2015-08-12 16:40 ` [U-Boot] [U-Boot,RFC] " Tom Rini
2015-08-13 5:57 ` Chris Packham
2015-08-25 10:08 ` [U-Boot] [U-Boot, v2] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH Fabio Estevam
2015-08-25 8:49 ` Andreas Bießmann
2015-08-25 9:55 ` [U-Boot] [Reproducible-builds] " Vagrant Cascadian
2015-08-25 10:20 ` Andreas Bießmann
2015-08-25 12:12 ` Paul Kocialkowski
2015-08-25 11:20 ` [U-Boot] SOURCE_DATE_EPOCH must not be linux only... (was Re: [Reproducible-builds] [U-Boot, v2] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH) Holger Levsen
2015-08-27 8:13 ` [U-Boot] [RFC PATCH] Makefile: search for GNU date Andreas Bießmann
2015-08-27 8:28 ` Marek Vasut
2015-08-27 9:01 ` Andreas Bießmann
2015-08-27 10:28 ` Marek Vasut
2015-08-27 8:32 ` Paul Kocialkowski
2015-08-27 8:56 ` Andreas Bießmann
2015-08-27 9:30 ` [U-Boot] [RFC PATCH v2] " Andreas Bießmann
2015-08-27 13:03 ` Paul Kocialkowski
2015-08-27 13:52 ` Andreas Bießmann
2015-08-27 14:23 ` Paul Kocialkowski
2015-08-28 8:29 ` [U-Boot] [PATCH v3] Makefile: fix SOURCE_DATE_EPOCH for *BSD host Andreas Bießmann
2015-08-28 21:04 ` [U-Boot] [U-Boot, " Tom Rini
2015-08-28 21:22 ` Holger Levsen
2015-09-01 17:03 ` [U-Boot] [PATCH " Paul Kocialkowski
2015-09-02 7:41 ` Andreas Bießmann
2015-09-24 16:05 ` [U-Boot] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH Vagrant Cascadian
2015-09-28 17:42 ` Paul Kocialkowski [this message]
2015-09-30 15:50 ` [U-Boot] [Reproducible-builds] " Vagrant Cascadian
2015-10-02 10:19 ` Paul Kocialkowski
2015-09-28 18:59 ` [U-Boot] " Siarhei Siamashka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1443462170.2516.7.camel@collins \
--to=contact@paulk.fr \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox