
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@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@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