$SOURCE_DATE_EPOCH support for build date stamp
authorPhil Pennock <pdp@exim.org>
Thu, 13 Apr 2017 03:22:36 +0000 (23:22 -0400)
committerPhil Pennock <pdp@exim.org>
Thu, 13 Apr 2017 03:28:09 +0000 (23:28 -0400)
commit6e411084a29a7658f7bc88aa5a62ab9016c22c79
tree0198a45704bbc75e3cc13569ac9f8155b8561cac
parent78a3bbd585b7ee0961dee45163c36904a419388b
$SOURCE_DATE_EPOCH support for build date stamp

If, and _only_ if, $SOURCE_DATE_EPOCH is found in environ during build,
use it to set the timestamp embedded in the binary instead of using
__DATE__ and __TIME__ cpp directives.

This per <https://reproducible-builds.org/specs/source-date-epoch/>
spec.  It's sane and sensible, without removing date stamping which
matters.  The examples encourage packagers to use timestamps which
do change when they backport patches, so that the date remains useful
for distinguishing builds instead of claiming one date forever across
multiple patchlevels.

This change written so that the old behaviour and code is used if the
environment variable is not found, to better continue to support ancient
platforms with other variants of date(1).

Built with and without an override, on macOS.
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
src/scripts/reversion
src/src/version.c