The environment variable SOURCE_DATE_EPOCH allows overriding the date that will be used inside the archives for guix-built binaries. This is an intentional feature, as documented in contrib/guix/README.md:
SOURCE_DATE_EPOCH
Override the reference UNIX timestamp used for bit-for-bit reproducibility, the variable name conforms to [standard][r12e/source-date-epoch].
(defaults to the output of
$(git log --format=%at -1))
However, some environments, as apparently Nix, set SOURCE_DATE_EPOCH by default. This can be extremely confusing, as it results in mismatches. i see three options:
- Show a big red warning when the Guix build scripts are called with an existing
SOURCE_DATE_EPOCH. Most likely it’s not what the user wanted, but they can continue if they wanted. - Disallow overriding
SOURCE_DATE_EPOCH- unset it at start. - Rename our
SOURCE_DATE_EPOCHto something non-standard that doesn’t conflict with Nix.
The first one has my preference.
See bitcoin-core/guix.sigs#1201 which prompted this.