[U-Boot] [PATCH v3] Makefile: fix SOURCE_DATE_EPOCH for *BSD host

Andreas Bießmann
2015-09-02T07:41:05Z

On 09/01/2015 07:03 PM, Paul Kocialkowski wrote:
> Le vendredi 28 ao?t 2015 ? 10:29 +0200, Andreas Bie?mann a ?crit :
>> The SOURCE_DATE_EPOCH mechanism for reproducible builds require some date(1)
>> with -d switch to print the relevant date and time strings of another point of
>> time.
>>
>> In other words it requires some date(1) that behaves like the GNU date(1) [1].
>> The BSD date(1) [2] on the other hand has the same switch but with a different
>> meaning.
>>
>> Respect this and check the date(1) abilities before usage, error on non
>> working version. Use the well known pre- and suffixes for the GNU variant of
>> a tool on *BSD hosts to search for a working date(1) version.
>
> Looks good to me! Have you actually tried setting SOURCE_DATE_EPOCH to a
> fixed value, building U-Boot twice and checking that the produced file
> is the very same?

It works:

---8<---
andreas at imac % shasum /tmp/u-boot.img.1441178617 u-boot.img
/tmp/u-boot.bin.1441178617 u-boot.bin /tmp/boot.bin.1441178617 boot.bin
1a779ba79efa1874a5b307650392737d861005bb /tmp/u-boot.img.1441178617
1a779ba79efa1874a5b307650392737d861005bb u-boot.img
dbe56f02e510ee251a2e5f9f8b6ce430884557bb /tmp/u-boot.bin.1441178617
dbe56f02e510ee251a2e5f9f8b6ce430884557bb u-boot.bin
4aa9b3ba9641febae0bfdbb374c54c287b463ac0 /tmp/boot.bin.1441178617
4aa9b3ba9641febae0bfdbb374c54c287b463ac0 boot.bin
andreas at imac % uname -a
Darwin imac 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT
2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
andreas@imac % git describe
v2015.10-rc2-304-gb7e84c9
--->8---

Both are fresh builds with the same SOURCE_DATE_EPOCH set. However using
the time stamp from timestamp_autogenerated.h does _not_ work due to the
wrong TZ (+0200 for me, UTC with SOURCE_DATE_EPOCH). But I guess this is
a known problem.

Andreas