From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vagrant Cascadian Date: Wed, 30 Sep 2015 08:50:57 -0700 Subject: [U-Boot] [Reproducible-builds] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH In-Reply-To: <1443462170.2516.7.camel@collins> References: <1437929295-9642-1-git-send-email-contact@paulk.fr> <87oagriz0p.fsf@aikidev.net> <1443462170.2516.7.camel@collins> Message-ID: <87fv1vgb32.fsf@aikidev.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 2015-09-28, Paul Kocialkowski wrote: > Le jeudi 24 septembre 2015 ? 09:05 -0700, Vagrant Cascadian a ?crit : >> 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. This patch on top of 2015.10-rc4 seems to resolve the issue for me: Index: u-boot/tools/default_image.c =================================================================== --- u-boot.orig/tools/default_image.c +++ u-boot/tools/default_image.c @@ -108,8 +108,6 @@ static void image_set_header(void *ptr, fprintf(stderr, "%s: SOURCE_DATE_EPOCH is not valid\n", __func__); time = 0; - } else { - time = mktime(time_universal); } } else { time = sbuf->st_mtime; It still checks for the validity of SOURCE_DATE_EPOCH using gmtime, but doesn't call mktime at all, just re-uses the value set from SOURCE_DATE_EPOCH. live well, vagrant -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 818 bytes Desc: not available URL: