Skip to content

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Dec 24, 2021

Our Guix build system sets the SOURCE_DATE_EPOCH and propagates it to the depends build subsystem. Its default value is the top commit timestamp.

After bumping Qt version up to 5.15.2, due to this change, every time they are going to make new Guix builds for another branch/commit they must ensure that the qt package will be rebuilt from scratch. Otherwise, Bitcoin Core GUI binaries will be non-deterministic.

Such behavior makes working with Guix builds suboptimal.

This PR fixes the described issue by patching Qt RCC and hardcoding last modified timestamps with 1.

It's worth to mention that this change is compatible with a possible future improvement which makes each dependency package reproducible.

A drawback of such an approach is not currently applied to our project, as it effectively makes QML cache files useless. I can't say it's a problem for the https://github.com/bitcoin-core/gui-qml project.


A note for thinkers: For now this change is enough as only Qt source contains SOURCE_DATE_EPOCH. But in general we should re-think about treating the SOURCE_DATE_EPOCH variable in the depends build subsystem. For instance, its default value could be the output of git log --format=%at -1 -- depends.

@hebasto
Copy link
Member Author

hebasto commented Dec 25, 2021

Guix builds:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
9c223cf0b3100210e571e57120b0d6a68ffbfd0a971ef449eac76cf4715f8b97  guix-build-52c9960f43f9/output/aarch64-linux-gnu/SHA256SUMS.part
43871e57485f1be7c7cd052b3baddbf575cd95370ae97d5e8912ab0918f72941  guix-build-52c9960f43f9/output/aarch64-linux-gnu/bitcoin-52c9960f43f9-aarch64-linux-gnu-debug.tar.gz
eef29e0d1f676fb5b00970ed50b3fb7b35b21f852d1fe8100bb61969a67822a2  guix-build-52c9960f43f9/output/aarch64-linux-gnu/bitcoin-52c9960f43f9-aarch64-linux-gnu.tar.gz
27b3a90cb0c463b7b1b85d3a0fb14d80c180311a51e0117924ea57b293f6a327  guix-build-52c9960f43f9/output/arm-linux-gnueabihf/SHA256SUMS.part
bb41392926a1508147f89ae534d192665e673f6996f0fe6154507436359e7fee  guix-build-52c9960f43f9/output/arm-linux-gnueabihf/bitcoin-52c9960f43f9-arm-linux-gnueabihf-debug.tar.gz
3a472899ed12c13948f531f9eb2ee882f5b433d127d9acabd1355a6471a3129f  guix-build-52c9960f43f9/output/arm-linux-gnueabihf/bitcoin-52c9960f43f9-arm-linux-gnueabihf.tar.gz
bf77ad1c98c01810f6fbe2fbb398c2ad05bfdf5c8b597c53020adac6dcde048a  guix-build-52c9960f43f9/output/dist-archive/bitcoin-52c9960f43f9.tar.gz
dbdd6b07e6421e287d88229dd54eed1f34b66bd51534a5ad1f5c353ef8eaac26  guix-build-52c9960f43f9/output/powerpc64-linux-gnu/SHA256SUMS.part
876d059887e33b095144d0606fbc86c4552a609318e231b762ab47a92447aff6  guix-build-52c9960f43f9/output/powerpc64-linux-gnu/bitcoin-52c9960f43f9-powerpc64-linux-gnu-debug.tar.gz
a3f9354c5a2ff7bb586e59e4b12273a5a9b1dc0a3c8ff97967ce18d5bc9ada75  guix-build-52c9960f43f9/output/powerpc64-linux-gnu/bitcoin-52c9960f43f9-powerpc64-linux-gnu.tar.gz
6d0f313e2a7b8f5d47f686995360d894785c4a95d2bb17e4a6a6ca686e5d9a61  guix-build-52c9960f43f9/output/powerpc64le-linux-gnu/SHA256SUMS.part
03bdaf3430c2706ad9f9211aea29f74d6d9debb53ad24ee9bb2840f8f20315b9  guix-build-52c9960f43f9/output/powerpc64le-linux-gnu/bitcoin-52c9960f43f9-powerpc64le-linux-gnu-debug.tar.gz
909c5252c5db6a211f91a747b2c9bb024b4e923bae41c7e119e947326e05a94b  guix-build-52c9960f43f9/output/powerpc64le-linux-gnu/bitcoin-52c9960f43f9-powerpc64le-linux-gnu.tar.gz
bdfc4cb914dde7c94f9540d9bbabe43c4ca9d092aab1b4d4a2741cf55409726f  guix-build-52c9960f43f9/output/riscv64-linux-gnu/SHA256SUMS.part
804d745ded719ae876c8b63c99485fdf5caff4ff67803e913d47683987e9bb44  guix-build-52c9960f43f9/output/riscv64-linux-gnu/bitcoin-52c9960f43f9-riscv64-linux-gnu-debug.tar.gz
f08e12c275a358609bc65f797e1d66461b3a716d7b62ddb097b095097ba97349  guix-build-52c9960f43f9/output/riscv64-linux-gnu/bitcoin-52c9960f43f9-riscv64-linux-gnu.tar.gz
4513031d98010ad7734e826046b7c886ce2e664c97674c488e7a05bd5f722533  guix-build-52c9960f43f9/output/x86_64-apple-darwin/SHA256SUMS.part
4d198675cdc95c26db09346babbcdfb76cdd33f5c3ad870875b8be3c21bffd58  guix-build-52c9960f43f9/output/x86_64-apple-darwin/bitcoin-52c9960f43f9-osx-unsigned.dmg
de34ced8857fb2775fb65ec93914e0bbe5b9d323fa34104420c4dadc774cfbe3  guix-build-52c9960f43f9/output/x86_64-apple-darwin/bitcoin-52c9960f43f9-osx-unsigned.tar.gz
14912631d093bb8eacc4fe19f3b8a4a2849646d343cd5031e1604a602b05c433  guix-build-52c9960f43f9/output/x86_64-apple-darwin/bitcoin-52c9960f43f9-osx64.tar.gz
a03f9418171cd1bca71d4395e5182282ecaf1111bbfa93b6f0e29bc9cf96f8f7  guix-build-52c9960f43f9/output/x86_64-linux-gnu/SHA256SUMS.part
6151bdbc12bfdbe8a3719285cc5c20fecd9ef9eb0b856ef9bed643bbab10b456  guix-build-52c9960f43f9/output/x86_64-linux-gnu/bitcoin-52c9960f43f9-x86_64-linux-gnu-debug.tar.gz
ebdc48b46966d3a9874168dfcf2e46328d561bfa1279a8ae200156d1f06b6a06  guix-build-52c9960f43f9/output/x86_64-linux-gnu/bitcoin-52c9960f43f9-x86_64-linux-gnu.tar.gz
12625a8235946fdbffc14ff6eadf33c7debc7a48dcc3b94107e4ff0a24250e3f  guix-build-52c9960f43f9/output/x86_64-w64-mingw32/SHA256SUMS.part
cb915437640b9d33f6a577290ee9e85c2c1dfb5a4e0ba0ff48585ac663940fe1  guix-build-52c9960f43f9/output/x86_64-w64-mingw32/bitcoin-52c9960f43f9-win-unsigned.tar.gz
5c65542595f57b279c3abc97fc554bb4c1aff58f784f2373fb5624ccf5df048e  guix-build-52c9960f43f9/output/x86_64-w64-mingw32/bitcoin-52c9960f43f9-win64-debug.zip
0684365fce15b95d8e6d7adc8ab3b8c4bdc81d30f64e47aae2e2c8ac928f5c99  guix-build-52c9960f43f9/output/x86_64-w64-mingw32/bitcoin-52c9960f43f9-win64-setup-unsigned.exe
9bade625b9669e9ad10d5e20d395669c1787d630ac913613d13f096246605939  guix-build-52c9960f43f9/output/x86_64-w64-mingw32/bitcoin-52c9960f43f9-win64.zip

@prusnak
Copy link
Contributor

prusnak commented Dec 25, 2021

It might be good idea to set lastmod to 1 and not 0. Since there might be some codepaths that treat 0 as unset.

We learnt this the hard-way on NixOS, where lots of poorly written scripts treated SOURCE_DATE_EPOCH set to 0 as if the value was unset. There's a little backstory why SOURCE_DATE_EPOCH defaults to 1 and not 0 on NixOS. 😄

This change allows the already built qt package to be reused even with
the SOURCE_DATE_EPOCH variable set, e.g., for Guix builds.
@hebasto
Copy link
Member Author

hebasto commented Dec 25, 2021

Updated 52c9960 -> 11736db (pr23862.01 -> pr23862.02, diff):

@hebasto
Copy link
Member Author

hebasto commented Dec 26, 2021

Guix builds:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
bd9eff2b1257beb72d289da1d6b116b766818b90ba208be0e6de184f4c2b879d  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/SHA256SUMS.part
9950b058e97bc3b0f0262aa8fa5609d2b675caaf9966703ee5d4914599e55816  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu-debug.tar.gz
f12c58d958d23c1d6425f4841cbaeab635546639269a8a449fb8f665b3f35afa  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu.tar.gz
f02588bd85e5de7c48a794b5877e186d32add675b8b9bf44f12028b6d9928796  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/SHA256SUMS.part
62abc6da735ab56bddf5c3771581a198a033749c269c47ecdd7158f688a7ec12  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf-debug.tar.gz
021372c5844b0305d20503644085a072c374b5913789fbb953f37307c03169d6  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf.tar.gz
3a0e17796cc977ed098ec28c6e6d19e5d4f93a102feb6903a2efe4ebcaa59cda  guix-build-11736dbe3dbe/output/dist-archive/bitcoin-11736dbe3dbe.tar.gz
ff0c30e507ea2e7bc45be0cf12e4d2d0e55636b79a4d2c7dc1b7193a41baff96  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/SHA256SUMS.part
165ba8aac6db5e36bc68f456b5216ee5e9fa14abaa999ebcf97da60779fc1ed3  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu-debug.tar.gz
e46ad50a76703c01434cee9e6c48ff856adddad16e1dab9e7e23565ab64e21d9  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu.tar.gz
c2950e2bda24768afd8395580011e5f2cd2bd6b57e1b7a83d52664c61dcee312  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/SHA256SUMS.part
ccadb9f6b0a1129f2bd1959a01946bf73f10ecca94c2de846ae3ec10d91182db  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu-debug.tar.gz
42a4dcb700694cfc04b73c2b01353a381c59536a3a3eb87db52c388dd78ac9d5  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu.tar.gz
f4045b97af8c77f5434119b7f6bea00d2106dc9d34291949641ebffc1790bf0f  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/SHA256SUMS.part
bbe088d99d56fd4eeef0b0a512e65fe3878f6c1b1a7ee728604eaa132a069e05  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu-debug.tar.gz
80682bea8480c745d951c87d702956d5478ab863f41014ec9e77e0033dc186af  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu.tar.gz
9ce48d2bf5d3331cd7848f374d88ef013fb62b63d70fb82a72bb37e48118e202  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/SHA256SUMS.part
4d18cad661bd4e205f6a0b52bacdd076fe86902d3c7cfad1b365d485ba90a035  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.dmg
e7eb2a9dc672c927dd1bbae92ecf00d16291480d4635e92dcd9a35433462851b  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.tar.gz
726ca6143424781d39697fea531107f347755e7923b26fb5056ecca1a559f9be  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx64.tar.gz
db755da0f9512e6f8db089a6ead9d4472ff0bfcc9fd3e9dd1615624e2bc6683f  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/SHA256SUMS.part
75dfe92fa7d063a4db5fa7258f02402f7026f132774d3c00870d1ce419052f07  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu-debug.tar.gz
f35fafa985d803f78d5d92872ce881839c3e3e42ae56d38a68186d4164575fea  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu.tar.gz
f22056664a74ffba317885d1eff9b402957500a6e8097119b52d1bcbdc115cdc  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/SHA256SUMS.part
bc5afb1f660640df7c39a9e72d769e7b64d01489dd3a3ee9f5ec10fab03db519  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win-unsigned.tar.gz
8c738b0b46664228154b9e2407c9a89786ec3b5a2527e2be80ccdd512221b2d6  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-debug.zip
63411a35e4980d2ffda3c55d8a299c64adbea23c5dd819faa752a28c9322edb9  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-setup-unsigned.exe
443ebe2885012430f418d9edeccf31bef302898b4ac56249e45b8a3554c2d490  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64.zip

@jarolrod
Copy link
Member

guix hashes, mine match @hebasto:

find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum

bd9eff2b1257beb72d289da1d6b116b766818b90ba208be0e6de184f4c2b879d  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/SHA256SUMS.part
9950b058e97bc3b0f0262aa8fa5609d2b675caaf9966703ee5d4914599e55816  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu-debug.tar.gz
f12c58d958d23c1d6425f4841cbaeab635546639269a8a449fb8f665b3f35afa  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu.tar.gz
f02588bd85e5de7c48a794b5877e186d32add675b8b9bf44f12028b6d9928796  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/SHA256SUMS.part
62abc6da735ab56bddf5c3771581a198a033749c269c47ecdd7158f688a7ec12  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf-debug.tar.gz
021372c5844b0305d20503644085a072c374b5913789fbb953f37307c03169d6  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf.tar.gz
3a0e17796cc977ed098ec28c6e6d19e5d4f93a102feb6903a2efe4ebcaa59cda  guix-build-11736dbe3dbe/output/dist-archive/bitcoin-11736dbe3dbe.tar.gz
ff0c30e507ea2e7bc45be0cf12e4d2d0e55636b79a4d2c7dc1b7193a41baff96  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/SHA256SUMS.part
165ba8aac6db5e36bc68f456b5216ee5e9fa14abaa999ebcf97da60779fc1ed3  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu-debug.tar.gz
e46ad50a76703c01434cee9e6c48ff856adddad16e1dab9e7e23565ab64e21d9  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu.tar.gz
c2950e2bda24768afd8395580011e5f2cd2bd6b57e1b7a83d52664c61dcee312  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/SHA256SUMS.part
ccadb9f6b0a1129f2bd1959a01946bf73f10ecca94c2de846ae3ec10d91182db  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu-debug.tar.gz
42a4dcb700694cfc04b73c2b01353a381c59536a3a3eb87db52c388dd78ac9d5  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu.tar.gz
f4045b97af8c77f5434119b7f6bea00d2106dc9d34291949641ebffc1790bf0f  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/SHA256SUMS.part
bbe088d99d56fd4eeef0b0a512e65fe3878f6c1b1a7ee728604eaa132a069e05  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu-debug.tar.gz
80682bea8480c745d951c87d702956d5478ab863f41014ec9e77e0033dc186af  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu.tar.gz
9ce48d2bf5d3331cd7848f374d88ef013fb62b63d70fb82a72bb37e48118e202  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/SHA256SUMS.part
4d18cad661bd4e205f6a0b52bacdd076fe86902d3c7cfad1b365d485ba90a035  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.dmg
e7eb2a9dc672c927dd1bbae92ecf00d16291480d4635e92dcd9a35433462851b  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.tar.gz
726ca6143424781d39697fea531107f347755e7923b26fb5056ecca1a559f9be  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx64.tar.gz
db755da0f9512e6f8db089a6ead9d4472ff0bfcc9fd3e9dd1615624e2bc6683f  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/SHA256SUMS.part
75dfe92fa7d063a4db5fa7258f02402f7026f132774d3c00870d1ce419052f07  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu-debug.tar.gz
f35fafa985d803f78d5d92872ce881839c3e3e42ae56d38a68186d4164575fea  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu.tar.gz
f22056664a74ffba317885d1eff9b402957500a6e8097119b52d1bcbdc115cdc  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/SHA256SUMS.part
bc5afb1f660640df7c39a9e72d769e7b64d01489dd3a3ee9f5ec10fab03db519  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win-unsigned.tar.gz
8c738b0b46664228154b9e2407c9a89786ec3b5a2527e2be80ccdd512221b2d6  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-debug.zip
63411a35e4980d2ffda3c55d8a299c64adbea23c5dd819faa752a28c9322edb9  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-setup-unsigned.exe
443ebe2885012430f418d9edeccf31bef302898b4ac56249e45b8a3554c2d490  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64.zip

Copy link
Member

@fanquake fanquake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 11736db
Guix build:

bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
bd9eff2b1257beb72d289da1d6b116b766818b90ba208be0e6de184f4c2b879d  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/SHA256SUMS.part
9950b058e97bc3b0f0262aa8fa5609d2b675caaf9966703ee5d4914599e55816  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu-debug.tar.gz
f12c58d958d23c1d6425f4841cbaeab635546639269a8a449fb8f665b3f35afa  guix-build-11736dbe3dbe/output/aarch64-linux-gnu/bitcoin-11736dbe3dbe-aarch64-linux-gnu.tar.gz
f02588bd85e5de7c48a794b5877e186d32add675b8b9bf44f12028b6d9928796  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/SHA256SUMS.part
62abc6da735ab56bddf5c3771581a198a033749c269c47ecdd7158f688a7ec12  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf-debug.tar.gz
021372c5844b0305d20503644085a072c374b5913789fbb953f37307c03169d6  guix-build-11736dbe3dbe/output/arm-linux-gnueabihf/bitcoin-11736dbe3dbe-arm-linux-gnueabihf.tar.gz
3a0e17796cc977ed098ec28c6e6d19e5d4f93a102feb6903a2efe4ebcaa59cda  guix-build-11736dbe3dbe/output/dist-archive/bitcoin-11736dbe3dbe.tar.gz
ff0c30e507ea2e7bc45be0cf12e4d2d0e55636b79a4d2c7dc1b7193a41baff96  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/SHA256SUMS.part
165ba8aac6db5e36bc68f456b5216ee5e9fa14abaa999ebcf97da60779fc1ed3  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu-debug.tar.gz
e46ad50a76703c01434cee9e6c48ff856adddad16e1dab9e7e23565ab64e21d9  guix-build-11736dbe3dbe/output/powerpc64-linux-gnu/bitcoin-11736dbe3dbe-powerpc64-linux-gnu.tar.gz
c2950e2bda24768afd8395580011e5f2cd2bd6b57e1b7a83d52664c61dcee312  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/SHA256SUMS.part
ccadb9f6b0a1129f2bd1959a01946bf73f10ecca94c2de846ae3ec10d91182db  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu-debug.tar.gz
42a4dcb700694cfc04b73c2b01353a381c59536a3a3eb87db52c388dd78ac9d5  guix-build-11736dbe3dbe/output/powerpc64le-linux-gnu/bitcoin-11736dbe3dbe-powerpc64le-linux-gnu.tar.gz
f4045b97af8c77f5434119b7f6bea00d2106dc9d34291949641ebffc1790bf0f  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/SHA256SUMS.part
bbe088d99d56fd4eeef0b0a512e65fe3878f6c1b1a7ee728604eaa132a069e05  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu-debug.tar.gz
80682bea8480c745d951c87d702956d5478ab863f41014ec9e77e0033dc186af  guix-build-11736dbe3dbe/output/riscv64-linux-gnu/bitcoin-11736dbe3dbe-riscv64-linux-gnu.tar.gz
9ce48d2bf5d3331cd7848f374d88ef013fb62b63d70fb82a72bb37e48118e202  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/SHA256SUMS.part
4d18cad661bd4e205f6a0b52bacdd076fe86902d3c7cfad1b365d485ba90a035  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.dmg
e7eb2a9dc672c927dd1bbae92ecf00d16291480d4635e92dcd9a35433462851b  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx-unsigned.tar.gz
726ca6143424781d39697fea531107f347755e7923b26fb5056ecca1a559f9be  guix-build-11736dbe3dbe/output/x86_64-apple-darwin/bitcoin-11736dbe3dbe-osx64.tar.gz
db755da0f9512e6f8db089a6ead9d4472ff0bfcc9fd3e9dd1615624e2bc6683f  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/SHA256SUMS.part
75dfe92fa7d063a4db5fa7258f02402f7026f132774d3c00870d1ce419052f07  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu-debug.tar.gz
f35fafa985d803f78d5d92872ce881839c3e3e42ae56d38a68186d4164575fea  guix-build-11736dbe3dbe/output/x86_64-linux-gnu/bitcoin-11736dbe3dbe-x86_64-linux-gnu.tar.gz
f22056664a74ffba317885d1eff9b402957500a6e8097119b52d1bcbdc115cdc  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/SHA256SUMS.part
bc5afb1f660640df7c39a9e72d769e7b64d01489dd3a3ee9f5ec10fab03db519  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win-unsigned.tar.gz
8c738b0b46664228154b9e2407c9a89786ec3b5a2527e2be80ccdd512221b2d6  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-debug.zip
63411a35e4980d2ffda3c55d8a299c64adbea23c5dd819faa752a28c9322edb9  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64-setup-unsigned.exe
443ebe2885012430f418d9edeccf31bef302898b4ac56249e45b8a3554c2d490  guix-build-11736dbe3dbe/output/x86_64-w64-mingw32/bitcoin-11736dbe3dbe-win64.zip

@fanquake fanquake merged commit 09ac6c8 into bitcoin:master Dec 27, 2021
@hebasto hebasto deleted the 211224-rcc branch December 27, 2021 08:43
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Dec 28, 2021
…t RCC

11736db build, qt: Hardcode last modified timestamp in Qt RCC (Hennadii Stepanov)

Pull request description:

  Our Guix build system sets the [`SOURCE_DATE_EPOCH`](https://reproducible-builds.org/specs/source-date-epoch/) and propagates it to the depends build subsystem. Its [default value](https://github.com/bitcoin/bitcoin/blob/master/contrib/guix/README.md#recognized-environment-variables) is the top commit timestamp.

  After bumping Qt version up to 5.15.2, due to [this](qt/qtbase@1ffcca4) change, every time they are going to make new Guix builds for another branch/commit they must ensure that the `qt` package will be rebuilt from scratch. Otherwise, Bitcoin Core GUI binaries will be non-deterministic.

  Such behavior makes working with Guix builds suboptimal.

  This PR fixes the described issue by patching Qt RCC and hardcoding last modified timestamps with `1`.

  It's worth to mention that this change is compatible with a possible future [improvement](bitcoin#21995) which makes each dependency package reproducible.

  A drawback of such an approach is not currently applied to our project, as it effectively makes [QML cache files](https://bugreports.qt.io/browse/QTBUG-57182) useless. I can't say it's a problem for the https://github.com/bitcoin-core/gui-qml project.

  ---

  **A note for thinkers:** For now this change is enough as only Qt source contains `SOURCE_DATE_EPOCH`. But in general we should re-think about treating the `SOURCE_DATE_EPOCH` variable in the depends build subsystem. For instance, its default value could be the output of `git log --format=%at -1 -- depends`.

ACKs for top commit:
  fanquake:
    ACK 11736db

Tree-SHA512: 31f104010a0a78d217aafcc5bc4606351f9060fc2a827277935b85fc8ced9f3d90a31d812c7db8c2711fb6daccd279cf0945dc1d7a7199e0eb0ade451cdbcd5d
@bitcoin bitcoin locked and limited conversation to collaborators Dec 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants