Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Make dependency package archive timestamps deterministic #21995

Merged
merged 1 commit into from
Feb 7, 2023

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented May 19, 2021

This PR makes testing changes like #20641, #21593, #22142, #24279, #24285 as easy as comparing hashes.

With this PR:

$ make -C depends clean
$ make -C depends HOST=x86_64-w64-mingw32
$ find depends/built/x86_64-w64-mingw32 -name '*.hash' | sort | xargs cat
1f685a61cbf205f81977ecf88cba91fa1ccdfbe77ab4ec3405dcd33ceb778af4  bdb-4.8.30-ca950bd6d13.tar.gz
08a9acde276e6e5e5c8913e3ad07eeecda184a996882ae226b3ed056c7ec1b01  boost-1.80.0-b537c466dcb.tar.gz
144c6d92e4108fcc90740bee27007db58a88336a97be6367f9c8ba4cc208af27  libevent-2.1.12-stable-e13b2bdd8b8.tar.gz
e3c9c9609bf32bfd460432c6ab99a64e9f8750ed775a193925ff4f5aed363e4c  libnatpmp-07004b97cf691774efebe70404cf22201e4d330d-82255b84667.tar.gz
62c6a089a4b24a413eccd2f389bf4c8b0716423b0ace5e87e984069635da9f83  miniupnpc-2.2.2-c43fc4cf2f6.tar.gz
78762700066273e597698a78479a506b33532ea565d18ef561614b9fc3820cf5  qrencode-3.4.4-663de0dc628.tar.gz
5e2183faf91838510a48e6dbb4b65ae74a7d48ba1abc070b82767c4076582360  qt-5.15.5-986926343e2.tar.gz
9f8459f8d27fc3af9146712be6ba6577f15741429936504a950cc51c17da1ba8  sqlite-3380500-bec6a4d3299.tar.gz
0eca5d01d427de50be4bd57c8bb100ab69b017792c32b8733e2b20443f4c9c28  zeromq-4.3.4-8ae81bab6f4.tar.gz

As an example, here is an evidence that #24279 is a strict refactoring change:

$ git fetch origin pull/24279/head
$ git cherry-pick 706026838d917a3d853e03e83db040f1fd4aeb74
$ git cherry-pick 3f90ddea8a6a2061cfb347a1d77df2c0a6fa238c
$ make -C depends clean
$ make -C depends HOST=x86_64-w64-mingw32
$ find depends/built/x86_64-w64-mingw32 -name '*.hash' | sort | xargs cat
1f685a61cbf205f81977ecf88cba91fa1ccdfbe77ab4ec3405dcd33ceb778af4  bdb-4.8.30-c7faf31d5ca.tar.gz
08a9acde276e6e5e5c8913e3ad07eeecda184a996882ae226b3ed056c7ec1b01  boost-1.80.0-1af3dd1d99e.tar.gz
144c6d92e4108fcc90740bee27007db58a88336a97be6367f9c8ba4cc208af27  libevent-2.1.12-stable-6228a9f8534.tar.gz
e3c9c9609bf32bfd460432c6ab99a64e9f8750ed775a193925ff4f5aed363e4c  libnatpmp-07004b97cf691774efebe70404cf22201e4d330d-41aa6194ecc.tar.gz
62c6a089a4b24a413eccd2f389bf4c8b0716423b0ace5e87e984069635da9f83  miniupnpc-2.2.2-6a93027769c.tar.gz
78762700066273e597698a78479a506b33532ea565d18ef561614b9fc3820cf5  qrencode-3.4.4-d40cb2d45c9.tar.gz
5e2183faf91838510a48e6dbb4b65ae74a7d48ba1abc070b82767c4076582360  qt-5.15.5-120c3cb745d.tar.gz
9f8459f8d27fc3af9146712be6ba6577f15741429936504a950cc51c17da1ba8  sqlite-3380500-bbd4d813c69.tar.gz
0eca5d01d427de50be4bd57c8bb100ab69b017792c32b8733e2b20443f4c9c28  zeromq-4.3.4-df0858a19d2.tar.gz

depends/funcs.mk Outdated Show resolved Hide resolved
@hebasto
Copy link
Member Author

hebasto commented May 20, 2021

Updated 0dbda79 -> 9046de8 (pr21995.01 -> pr21995.02, diff):

  • addressed @fanquake's comment
  • reproducibility is limited to a certain environment only because we cannot expect the same environment among different systems that are used to build depends

@dongcarl
Copy link
Contributor

dongcarl commented Jun 9, 2021

Urgh BSD tar compatibility really makes things harder... I guess we can still supply --numeric-owner, but not --owner or --group

@hebasto
Copy link
Member Author

hebasto commented Jun 11, 2021

Updated 9046de8 -> acc7bf6 (pr21995.02 -> pr21995.03, diff):

@hebasto
Copy link
Member Author

hebasto commented Jun 11, 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
aefac889b57179426a8f7853449b0795c44d78aca7a8d96d8b5fa2d2fc7a96c8  guix-build-acc7bf694e26/output/aarch64-linux-gnu/bitcoin-acc7bf694e26-aarch64-linux-gnu-debug.tar.gz
70041c8816b0a917681eb343abc2530ac800a9f0d9c628d6014f6f722d9c8b2c  guix-build-acc7bf694e26/output/aarch64-linux-gnu/bitcoin-acc7bf694e26-aarch64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/aarch64-linux-gnu/inputs.SHA256SUMS
6b201e160ba7089ae30ac0052651d535f3ef91ec814385783eaf7832e3aa5991  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/bitcoin-acc7bf694e26-arm-linux-gnueabihf-debug.tar.gz
3abe0b4ef14d63cfcc173354bcb228e06b3c2ed9d77d5d2d5529b259fb7ef35f  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/bitcoin-acc7bf694e26-arm-linux-gnueabihf.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/inputs.SHA256SUMS
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  guix-build-acc7bf694e26/output/dist-archive/SKIPATTEST.TAG
b138a37ac451c2a0994d9bfd7774e97c7bf88fd235b1287321c865e8ff502cc1  guix-build-acc7bf694e26/output/dist-archive/bitcoin-acc7bf694e26.tar.gz
3ef198f483f417cd03986bc38ed153fb4602d3d073a36ac1be547193e3fd4579  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/bitcoin-acc7bf694e26-powerpc64-linux-gnu-debug.tar.gz
1e3bd653e6a24cdd9dcc6715205499fb1685c27e5ba4813f3498e9adefd87504  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/bitcoin-acc7bf694e26-powerpc64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/inputs.SHA256SUMS
af7eb0225a2ab4b6de481679e9c0479e393ca8e24ee23023eb4a552e6e99b961  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/bitcoin-acc7bf694e26-powerpc64le-linux-gnu-debug.tar.gz
002857d85b48cdca662be982dc3d7839cd85bb1f85bcce0347335b0eef7e1186  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/bitcoin-acc7bf694e26-powerpc64le-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/inputs.SHA256SUMS
381e2723934ddbda077ae97b52e7de0fd7b38e0a8b931ae6404a7404bc6f51bb  guix-build-acc7bf694e26/output/riscv64-linux-gnu/bitcoin-acc7bf694e26-riscv64-linux-gnu-debug.tar.gz
34e99f15879a7b261aa19b46c0c0bc435d0582fe13a0512f9d4e0c526434762a  guix-build-acc7bf694e26/output/riscv64-linux-gnu/bitcoin-acc7bf694e26-riscv64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/riscv64-linux-gnu/inputs.SHA256SUMS
c56b241e532dd4c08140c121db732a34d8a12de7d74167637509e988360e7662  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx-unsigned.dmg
12ed859b0b4d819b5a22218306d732b38ed9f263341517082860d0fdefa73d70  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx-unsigned.tar.gz
176a9ae72cac28d8c124e12e57711313a63f37284b8c310d24702b621eca952e  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx64.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/inputs.SHA256SUMS
932b80de57b0bced3126617acec057e0eae9f708c89b9cb81b7aac612ac6d86f  guix-build-acc7bf694e26/output/x86_64-linux-gnu/bitcoin-acc7bf694e26-x86_64-linux-gnu-debug.tar.gz
698e4d2acbb90714d1e792cf0c6d2fa241b1c614f4a326b1042c65667ce07211  guix-build-acc7bf694e26/output/x86_64-linux-gnu/bitcoin-acc7bf694e26-x86_64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-linux-gnu/inputs.SHA256SUMS
7e3e31eb327ba69c36b6e8beeeae5d0a7799e6dd19da6a140ee30132c9dece27  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win-unsigned.tar.gz
fe27db199fe5a8b4b17cc7eca04099fc5355157d0fe9604ee408fe9543543ae8  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64-debug.zip
3d56dcca0ad8798e1ad789a1cd2237751d59b5674e1b7c858da287c06a5ef3dc  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64-setup-unsigned.exe
2530a5f758f3d59ca3f7afabb1d7c89d5ec56bf979084907f17cad61188e1e55  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64.zip
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/inputs.SHA256SUMS

@dongcarl
Copy link
Contributor

dongcarl commented Jun 16, 2021

Code Review ACK acc7bf6

@DrahtBot
Copy link
Contributor

DrahtBot commented Jun 20, 2021

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK TheCharlatan
Stale ACK dongcarl, jarolrod, josibake

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

Copy link
Member

@jarolrod jarolrod left a comment

Choose a reason for hiding this comment

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

ACK acc7bf6

The example provided in the PR description is a good example of a use-case for this. A question is: What is the cost of maintaining this in comparison to how often it will be used?

Tested on Ubuntu 20.04. Checked that the PR does what it says it will do by comparing hashes of qt and with the example provided in the PR description:

This PR Branch

cat ./built/x86_64-w64-mingw32/qt/qt-5.12.10-006a988092a.tar.gz.hash 
66b9de9a51be36fe6cce13b9a9c1c26c4789a6efad869d8f10ae74e35e3c4c22  qt-5.12.10-006a988092a.tar.gz

This PR Branch + Revert 21593

cat ./built/x86_64-w64-mingw32/qt/qt-5.12.10-976a9eea696.tar.gz.hash 
66b9de9a51be36fe6cce13b9a9c1c26c4789a6efad869d8f10ae74e35e3c4c22  qt-5.12.10-976a9eea696.tar.gz

It should be noted that trying to reproduce from different directories seems to affect the hash:

PR

$ cat ./comparison-a/bitcoin/depends/built/x86_64-w64-mingw32/qt/qt-5.12.10-006a988092a.tar.gz.hash 
41847652ec2e05a3fb990111bbb29ccb5a94f83d09032b65d54d213496d1e116  qt-5.12.10-006a988092a.tar.gz

PR + Revert in another directory

$ cat ./comparison-b/bitcoin/depends/built/x86_64-w64-mingw32/qt/qt-5.12.10-976a9eea696.tar.gz.hash 
9d4e30d3838aead074caf2cdb1d0da5d1306bef5ed8758902fa65fb12241ecf0  qt-5.12.10-976a9eea696.tar.gz

fanquake added a commit that referenced this pull request Jul 18, 2021
1155978 build, qt: Do not install *.prl files (Hennadii Stepanov)
763793b build, qt: Fix wrong cross-compiling detection on macOS (Hennadii Stepanov)
3098272 build, qt: Force bootstrap while building linguist tools (Hennadii Stepanov)
689320e build, qt: Drop translations.pro hack (Hennadii Stepanov)
6a1f98f build, qt: Drop lrelease dependency patch (Hennadii Stepanov)
39e561e build, qt: Add linguist_tools list (Hennadii Stepanov)
27d3def build: Use Qt top-level build facilities (Hennadii Stepanov)

Pull request description:

  This PR:
  - uses Qt top-level build facilities without the need to download all-in-one archive
  - is based on **BlockMechanic**'s [idea](#20600), and is an alternative to #20600
  - makes it easy to integrate [new modules](#16883) into static builds
  - has the minimal diff
  - makes the qt package build process streamlined by dropping some patches and hacks (an alternative to  #21420 and #20642)

  Fixes #18536 (a non-intrusive alternative to #21589 and #19785).

  Fixes #14648.

  Fixes #21588 (a non-intrusive alternative to #21591).

  Required for adding [Wayland support](#19950) on Linux.

  ---

  **Note for reviewers**: With 9046de8 from #21995 it is easy to verify that there are no changes in the resulted `qt` package archive on the per commit basis. For example, for `HOST=i686-pc-linux-gnu` no commit in this PR introduces any changes.

ACKs for top commit:
  fanquake:
    ACK 1155978

Tree-SHA512: 667b06b72cb7ff26d68b9b88e8dddb51084783ca9e3d80b3392710794c1dc7fd77bbcc3ccf4ccece9919d33b9bf8fce13c5059502bd228021dc7c93fdb87ca7a
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jul 23, 2021
1155978 build, qt: Do not install *.prl files (Hennadii Stepanov)
763793b build, qt: Fix wrong cross-compiling detection on macOS (Hennadii Stepanov)
3098272 build, qt: Force bootstrap while building linguist tools (Hennadii Stepanov)
689320e build, qt: Drop translations.pro hack (Hennadii Stepanov)
6a1f98f build, qt: Drop lrelease dependency patch (Hennadii Stepanov)
39e561e build, qt: Add linguist_tools list (Hennadii Stepanov)
27d3def build: Use Qt top-level build facilities (Hennadii Stepanov)

Pull request description:

  This PR:
  - uses Qt top-level build facilities without the need to download all-in-one archive
  - is based on **BlockMechanic**'s [idea](bitcoin#20600), and is an alternative to bitcoin#20600
  - makes it easy to integrate [new modules](bitcoin#16883) into static builds
  - has the minimal diff
  - makes the qt package build process streamlined by dropping some patches and hacks (an alternative to  bitcoin#21420 and bitcoin#20642)

  Fixes bitcoin#18536 (a non-intrusive alternative to bitcoin#21589 and bitcoin#19785).

  Fixes bitcoin#14648.

  Fixes bitcoin#21588 (a non-intrusive alternative to bitcoin#21591).

  Required for adding [Wayland support](bitcoin#19950) on Linux.

  ---

  **Note for reviewers**: With 9046de8 from bitcoin#21995 it is easy to verify that there are no changes in the resulted `qt` package archive on the per commit basis. For example, for `HOST=i686-pc-linux-gnu` no commit in this PR introduces any changes.

ACKs for top commit:
  fanquake:
    ACK 1155978

Tree-SHA512: 667b06b72cb7ff26d68b9b88e8dddb51084783ca9e3d80b3392710794c1dc7fd77bbcc3ccf4ccece9919d33b9bf8fce13c5059502bd228021dc7c93fdb87ca7a
@jarolrod
Copy link
Member

GUIX hashes, mine do not match @hebasto, i have collisions on all platforms except macOS:

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

892d5b4745c5411113e98d19d6647409dc0b0e314b5600fa42910b3669f7cb44  guix-build-acc7bf694e26/output/aarch64-linux-gnu/bitcoin-acc7bf694e26-aarch64-linux-gnu-debug.tar.gz
5f67e0f5c0b5aedacff10edc522b010766c234e4d700ab94c0384411765ca331  guix-build-acc7bf694e26/output/aarch64-linux-gnu/bitcoin-acc7bf694e26-aarch64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/aarch64-linux-gnu/inputs.SHA256SUMS
cda022140af23242ff4bbb8a42af90a828e1817443cce0db35f03753caf04dae  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/bitcoin-acc7bf694e26-arm-linux-gnueabihf-debug.tar.gz
91277591652b2fcf4e8d21d5c3bfa6551c11a0186cc21de9ad1a43ccee263016  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/bitcoin-acc7bf694e26-arm-linux-gnueabihf.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/arm-linux-gnueabihf/inputs.SHA256SUMS
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  guix-build-acc7bf694e26/output/dist-archive/SKIPATTEST.TAG
b138a37ac451c2a0994d9bfd7774e97c7bf88fd235b1287321c865e8ff502cc1  guix-build-acc7bf694e26/output/dist-archive/bitcoin-acc7bf694e26.tar.gz
dd41998aa4ca6510b524b5f524b98b61429db069b02c865cef828e38cffd9174  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/bitcoin-acc7bf694e26-powerpc64-linux-gnu-debug.tar.gz
ace12c491d0119f9bf6cf055405ce3a35abb93f478b00502109df9e06edfeadd  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/bitcoin-acc7bf694e26-powerpc64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/powerpc64-linux-gnu/inputs.SHA256SUMS
25d18d4bf9d3abe22f9a8a708f517de048fbc632b6915bc0972c1f1d4233a3e8  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/bitcoin-acc7bf694e26-powerpc64le-linux-gnu-debug.tar.gz
b94285e488cd532b9172f689e7ba40df376565dac4500429496e197572c5b612  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/bitcoin-acc7bf694e26-powerpc64le-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/powerpc64le-linux-gnu/inputs.SHA256SUMS
e6c2e8c84701799738e42b11f7cea32a969585828665cdd60d1057d010b67962  guix-build-acc7bf694e26/output/riscv64-linux-gnu/bitcoin-acc7bf694e26-riscv64-linux-gnu-debug.tar.gz
527fc25a37728995f9a510ec9e1092283a9df0a4670aa6b8329df4b6487a1e9f  guix-build-acc7bf694e26/output/riscv64-linux-gnu/bitcoin-acc7bf694e26-riscv64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/riscv64-linux-gnu/inputs.SHA256SUMS
c56b241e532dd4c08140c121db732a34d8a12de7d74167637509e988360e7662  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx-unsigned.dmg
12ed859b0b4d819b5a22218306d732b38ed9f263341517082860d0fdefa73d70  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx-unsigned.tar.gz
176a9ae72cac28d8c124e12e57711313a63f37284b8c310d24702b621eca952e  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/bitcoin-acc7bf694e26-osx64.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-apple-darwin18/inputs.SHA256SUMS
674cb60bb97fc1da1320cec9e74dbfa63afae6e201ee456106fa7ae890234aef  guix-build-acc7bf694e26/output/x86_64-linux-gnu/bitcoin-acc7bf694e26-x86_64-linux-gnu-debug.tar.gz
e4605e3d406f9ec3809fab1b653078f016695ce4ccedd726b6caf40a2f38f099  guix-build-acc7bf694e26/output/x86_64-linux-gnu/bitcoin-acc7bf694e26-x86_64-linux-gnu.tar.gz
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-linux-gnu/inputs.SHA256SUMS
2960cc5cc084ca163059d94b49521358cf2652067028daad79653f540fad14f0  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win-unsigned.tar.gz
e588c1a3bedb72512c4a7c89a3d78b036ea2da4697103e78eb69baaced4e4aaf  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64-debug.zip
36e0f295e1fc0d83349fb996c617dcdc3c37314d5b1c994fa88f291342f93c66  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64-setup-unsigned.exe
a884ba56d2b3cc7288d60c1a10b8d6fa5d6717517df5cd45768694e641b3773b  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/bitcoin-acc7bf694e26-win64.zip
e44962b3313d5afe1109a5cbfeb6a386d23b7b2df1b00ae07947ed869ec42d78  guix-build-acc7bf694e26/output/x86_64-w64-mingw32/inputs.SHA256SUMS

@hebasto
Copy link
Member Author

hebasto commented Aug 19, 2021

@jarolrod

GUIX hashes, mine do not match @hebasto, i have collisions on all platforms except macOS:

Could you post your bitcoin-acc7bf694e26-x86_64-linux-gnu.tar.gz somewhere to let me apply diffoscope?

@jarolrod
Copy link
Member

@hebasto

Could you post your bitcoin-acc7bf694e26-x86_64-linux-gnu.tar.gz somewhere to let me apply diffoscope?

Done here: https://github.com/jarolrod/guix-build-artifacts/blob/master/bitcoin-acc7bf694e26-x86_64-linux-gnu.tar.gz

@hebasto
Copy link
Member Author

hebasto commented Aug 25, 2021

GUIX hashes, mine do not match @hebasto, i have collisions on all platforms except macOS:

Rebased acc7bf6 -> a88dbc7 (pr21995.03 -> pr21995.04) on top of the recent Guix code (see ee88320 etc).

@hebasto
Copy link
Member Author

hebasto commented Aug 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
f7afb880ffd5d5734df58be5abe08a4cf7d154dbb9ac0f3ae225a386fa2b7759  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/SHA256SUMS.part
415b2d9c862abebb7943518a47555a8f24a6f00b53aea9ba18bc49263d8168d6  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/bitcoin-a88dbc7d6989-aarch64-linux-gnu-debug.tar.gz
fb92e2da657454af73fde2b56a9310ab6d4214f80c4609a26c5e247b9b9f3b36  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/bitcoin-a88dbc7d6989-aarch64-linux-gnu.tar.gz
8e0ab87b1bae884dcc29494324e7e107bfb05cb800d0033c4ca32f16df4502f0  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/SHA256SUMS.part
52a30fdc4647f7cf46ac6232e77c018433d16830fa9137c79815eb50e9f8cd1f  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/bitcoin-a88dbc7d6989-arm-linux-gnueabihf-debug.tar.gz
4681bca60866ceb771b13c437da33ada70d002bc07df9f58ee2f0ba417ad3c63  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/bitcoin-a88dbc7d6989-arm-linux-gnueabihf.tar.gz
dff8a27d4561037fccd11770b936a27fef6b24495f5c07518795cd64515649d2  guix-build-a88dbc7d6989/output/dist-archive/bitcoin-a88dbc7d6989.tar.gz
64860d5aae43a67f1d7e7b26296552e66ede504080ea11970717badc0ab8b7a8  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/SHA256SUMS.part
aa12784026a60d416e63ca56ed41161bddde1ea4b624e1733e3e6d682f2f2b0a  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/bitcoin-a88dbc7d6989-powerpc64-linux-gnu-debug.tar.gz
fff0c71319f2e73917e3fed227c963719505d7159506d2d57bcb772d979ef031  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/bitcoin-a88dbc7d6989-powerpc64-linux-gnu.tar.gz
f491fc07dbc9c2314f762a601d3c32aaff35f438f3bc68ef1e38a87994f0acea  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/SHA256SUMS.part
c061e86d9b71df76d836db4accb3b3944976cad581a7a0c403d454b6c61b88eb  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/bitcoin-a88dbc7d6989-powerpc64le-linux-gnu-debug.tar.gz
2865dc7237985dc2ba4f25ee097e984e986e5f05ca73310cb63e325008de84af  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/bitcoin-a88dbc7d6989-powerpc64le-linux-gnu.tar.gz
f876ed009ef73fb786b65bf4b0777dcbab85bac1f735912a4ab915afde7dec1f  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/SHA256SUMS.part
07a280d59cdb6a7103273b1bee67788cf66788ede3cd956afb544b65a319fdab  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/bitcoin-a88dbc7d6989-riscv64-linux-gnu-debug.tar.gz
08045b458fde91fdf35e766368eb357a925aaf32be441c1c19b828cefe00ca97  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/bitcoin-a88dbc7d6989-riscv64-linux-gnu.tar.gz
1c6e5dd67d43e0401fb56425f68aa7ceab52a2aa0b4674b84fa465dee174540f  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/SHA256SUMS.part
c7db4dc05ab31e3f57d6f9fcd75e5d1c402ccae07b8a71a223a068d6b7bf1c79  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx-unsigned.dmg
bfca1e9b1bd248970d1e84f6008433f420dcb3af5a8325df507084b7eed9808c  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx-unsigned.tar.gz
c5ba0cc5c75df4d2855491ccdf8efb880701118f34fe8cab6db8cea60cb54ad2  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx64.tar.gz
1b3ff07e6d8cfae23fc8682b08cee0035873ebbfdb7c44d26f6c4140c267437c  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/SHA256SUMS.part
620fe58f1f8a85037d763cbf200ee25bf3a15ebf1e0b8aff77f2b97861c3961d  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/bitcoin-a88dbc7d6989-x86_64-linux-gnu-debug.tar.gz
1bcd70c41dda0aaf1ef2cc538ad1aa2a3065533c834d6e7b7d23995445e1a539  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/bitcoin-a88dbc7d6989-x86_64-linux-gnu.tar.gz
d8b7b516f578f14ed2cb43f149b3281da02eb4c431843ba6072ce6e9316aac11  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/SHA256SUMS.part
a54ac28a5c053ab041fed5a5e5c54e8ee41edcc1835cc797b91ac2a9052dc0b9  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win-unsigned.tar.gz
de651fc5c27f587022215c838222df37e0317b73a2e428b5d3cb768c0d5b2ec6  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win64-debug.zip
c21ec82b512d5b621c29e166df93d6f83cca6091a58b7732404c1101dff6cfb4  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win64-setup-unsigned.exe
f5e0cbc879c824529b015e9052cb8934a965ce4b06de2203dbf75a3c35f15878  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-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

f7afb880ffd5d5734df58be5abe08a4cf7d154dbb9ac0f3ae225a386fa2b7759  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/SHA256SUMS.part
415b2d9c862abebb7943518a47555a8f24a6f00b53aea9ba18bc49263d8168d6  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/bitcoin-a88dbc7d6989-aarch64-linux-gnu-debug.tar.gz
fb92e2da657454af73fde2b56a9310ab6d4214f80c4609a26c5e247b9b9f3b36  guix-build-a88dbc7d6989/output/aarch64-linux-gnu/bitcoin-a88dbc7d6989-aarch64-linux-gnu.tar.gz
8e0ab87b1bae884dcc29494324e7e107bfb05cb800d0033c4ca32f16df4502f0  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/SHA256SUMS.part
52a30fdc4647f7cf46ac6232e77c018433d16830fa9137c79815eb50e9f8cd1f  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/bitcoin-a88dbc7d6989-arm-linux-gnueabihf-debug.tar.gz
4681bca60866ceb771b13c437da33ada70d002bc07df9f58ee2f0ba417ad3c63  guix-build-a88dbc7d6989/output/arm-linux-gnueabihf/bitcoin-a88dbc7d6989-arm-linux-gnueabihf.tar.gz
dff8a27d4561037fccd11770b936a27fef6b24495f5c07518795cd64515649d2  guix-build-a88dbc7d6989/output/dist-archive/bitcoin-a88dbc7d6989.tar.gz
64860d5aae43a67f1d7e7b26296552e66ede504080ea11970717badc0ab8b7a8  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/SHA256SUMS.part
aa12784026a60d416e63ca56ed41161bddde1ea4b624e1733e3e6d682f2f2b0a  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/bitcoin-a88dbc7d6989-powerpc64-linux-gnu-debug.tar.gz
fff0c71319f2e73917e3fed227c963719505d7159506d2d57bcb772d979ef031  guix-build-a88dbc7d6989/output/powerpc64-linux-gnu/bitcoin-a88dbc7d6989-powerpc64-linux-gnu.tar.gz
f491fc07dbc9c2314f762a601d3c32aaff35f438f3bc68ef1e38a87994f0acea  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/SHA256SUMS.part
c061e86d9b71df76d836db4accb3b3944976cad581a7a0c403d454b6c61b88eb  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/bitcoin-a88dbc7d6989-powerpc64le-linux-gnu-debug.tar.gz
2865dc7237985dc2ba4f25ee097e984e986e5f05ca73310cb63e325008de84af  guix-build-a88dbc7d6989/output/powerpc64le-linux-gnu/bitcoin-a88dbc7d6989-powerpc64le-linux-gnu.tar.gz
f876ed009ef73fb786b65bf4b0777dcbab85bac1f735912a4ab915afde7dec1f  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/SHA256SUMS.part
07a280d59cdb6a7103273b1bee67788cf66788ede3cd956afb544b65a319fdab  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/bitcoin-a88dbc7d6989-riscv64-linux-gnu-debug.tar.gz
08045b458fde91fdf35e766368eb357a925aaf32be441c1c19b828cefe00ca97  guix-build-a88dbc7d6989/output/riscv64-linux-gnu/bitcoin-a88dbc7d6989-riscv64-linux-gnu.tar.gz
1c6e5dd67d43e0401fb56425f68aa7ceab52a2aa0b4674b84fa465dee174540f  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/SHA256SUMS.part
c7db4dc05ab31e3f57d6f9fcd75e5d1c402ccae07b8a71a223a068d6b7bf1c79  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx-unsigned.dmg
bfca1e9b1bd248970d1e84f6008433f420dcb3af5a8325df507084b7eed9808c  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx-unsigned.tar.gz
c5ba0cc5c75df4d2855491ccdf8efb880701118f34fe8cab6db8cea60cb54ad2  guix-build-a88dbc7d6989/output/x86_64-apple-darwin18/bitcoin-a88dbc7d6989-osx64.tar.gz
1b3ff07e6d8cfae23fc8682b08cee0035873ebbfdb7c44d26f6c4140c267437c  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/SHA256SUMS.part
620fe58f1f8a85037d763cbf200ee25bf3a15ebf1e0b8aff77f2b97861c3961d  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/bitcoin-a88dbc7d6989-x86_64-linux-gnu-debug.tar.gz
1bcd70c41dda0aaf1ef2cc538ad1aa2a3065533c834d6e7b7d23995445e1a539  guix-build-a88dbc7d6989/output/x86_64-linux-gnu/bitcoin-a88dbc7d6989-x86_64-linux-gnu.tar.gz
d8b7b516f578f14ed2cb43f149b3281da02eb4c431843ba6072ce6e9316aac11  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/SHA256SUMS.part
a54ac28a5c053ab041fed5a5e5c54e8ee41edcc1835cc797b91ac2a9052dc0b9  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win-unsigned.tar.gz
de651fc5c27f587022215c838222df37e0317b73a2e428b5d3cb768c0d5b2ec6  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win64-debug.zip
c21ec82b512d5b621c29e166df93d6f83cca6091a58b7732404c1101dff6cfb4  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win64-setup-unsigned.exe
f5e0cbc879c824529b015e9052cb8934a965ce4b06de2203dbf75a3c35f15878  guix-build-a88dbc7d6989/output/x86_64-w64-mingw32/bitcoin-a88dbc7d6989-win64.zip

@hebasto
Copy link
Member Author

hebasto commented Dec 18, 2021

Rebased a88dbc7 -> 061b6ef (pr21995.04 -> pr21995.05) due to the conflict with #22283.

@hebasto
Copy link
Member Author

hebasto commented Dec 18, 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
bf9b35f1517f6ac55849ff21db2809581996866e70f31734b0ef50866142ffb2  guix-build-061b6efb5ae1/output/aarch64-linux-gnu/SHA256SUMS.part
2184e180ab45a50bc72d880c68876be8a07e50d8c3ef56bd885f1f4ec50d6d1b  guix-build-061b6efb5ae1/output/aarch64-linux-gnu/bitcoin-061b6efb5ae1-aarch64-linux-gnu-debug.tar.gz
d874fc9fadcd5af1cb9efa1214bfbed0b19e8e83798ad61d5bc20554928b5fdc  guix-build-061b6efb5ae1/output/aarch64-linux-gnu/bitcoin-061b6efb5ae1-aarch64-linux-gnu.tar.gz
c7a807a4ebdfd28647a3cff626297da07d90cfaef81d4a4ef9bc6e180726dc70  guix-build-061b6efb5ae1/output/arm-linux-gnueabihf/SHA256SUMS.part
c4b013abe82b012f2d767a96bd74a33389efb9bfcd054af9f691df2d4e8209c7  guix-build-061b6efb5ae1/output/arm-linux-gnueabihf/bitcoin-061b6efb5ae1-arm-linux-gnueabihf-debug.tar.gz
14fdf006582f0942bebc53d01d416306bab36d5a282b1ad65a47b57a63aa7938  guix-build-061b6efb5ae1/output/arm-linux-gnueabihf/bitcoin-061b6efb5ae1-arm-linux-gnueabihf.tar.gz
efd0451386fc4e19b455b00ff5238ef7cae3bc7f74e0d17d60e08ec26c467b3d  guix-build-061b6efb5ae1/output/dist-archive/bitcoin-061b6efb5ae1.tar.gz
100b6c6dca6534d40ac8c6bcc3e940158dd4e71cb16a43928ca0a386367d1dc0  guix-build-061b6efb5ae1/output/powerpc64-linux-gnu/SHA256SUMS.part
ff03235299b19cbfa1df9f93ae5fb91e8dc6f9dd0c59b533e515f66c66548144  guix-build-061b6efb5ae1/output/powerpc64-linux-gnu/bitcoin-061b6efb5ae1-powerpc64-linux-gnu-debug.tar.gz
8f91d40aeaba26de104d101a759e8af4b990f91518d838f7506b4b6f10affd46  guix-build-061b6efb5ae1/output/powerpc64-linux-gnu/bitcoin-061b6efb5ae1-powerpc64-linux-gnu.tar.gz
c014b8c2ecb82ed4e8a0085cdcea4f39b41f17577eaba021fcbea76988033830  guix-build-061b6efb5ae1/output/powerpc64le-linux-gnu/SHA256SUMS.part
7ae39346f08b41b53bd5d38ee36cb61d3c797b5ad910fa9ff70efe3ba1558e5d  guix-build-061b6efb5ae1/output/powerpc64le-linux-gnu/bitcoin-061b6efb5ae1-powerpc64le-linux-gnu-debug.tar.gz
d30eb2071e41c81ab4c25443fc6832326629a5190c4a4050f19d0e2c59ac232f  guix-build-061b6efb5ae1/output/powerpc64le-linux-gnu/bitcoin-061b6efb5ae1-powerpc64le-linux-gnu.tar.gz
16b3038d0cc7f5b6a9a9127bc1e19370f0333ea4cf75342fd0c8d2f6e70db3d2  guix-build-061b6efb5ae1/output/riscv64-linux-gnu/SHA256SUMS.part
e48377a07760c26cf6ab719a8059ccfe67a81101236369467f23a47163dc97f7  guix-build-061b6efb5ae1/output/riscv64-linux-gnu/bitcoin-061b6efb5ae1-riscv64-linux-gnu-debug.tar.gz
4e1c92c89a875b7987c255e10b80de5160b655a2369d59041f8096fb7f729f28  guix-build-061b6efb5ae1/output/riscv64-linux-gnu/bitcoin-061b6efb5ae1-riscv64-linux-gnu.tar.gz
dc02c45d958eb9592a240526baddeca00eb6dca851c7a04e48ffe71723a3c0d5  guix-build-061b6efb5ae1/output/x86_64-apple-darwin/SHA256SUMS.part
4c4a2bbc22c0cfc6f9384e049478f791fbc77d619e39e45306f00491d8577fc8  guix-build-061b6efb5ae1/output/x86_64-apple-darwin/bitcoin-061b6efb5ae1-osx-unsigned.dmg
e338a4e1538549468b12e21cae3e2537686be57a07a58ba44db82963bdf014a7  guix-build-061b6efb5ae1/output/x86_64-apple-darwin/bitcoin-061b6efb5ae1-osx-unsigned.tar.gz
0e60351cc83aeac81d93cbe72cbb9f3c69b523a724a075de674e39ae24b7dd45  guix-build-061b6efb5ae1/output/x86_64-apple-darwin/bitcoin-061b6efb5ae1-osx64.tar.gz
1f649b5f446c4dc4ef8cb8b0e9ae8aa76427928622e90b32c2c4fed8fef19791  guix-build-061b6efb5ae1/output/x86_64-linux-gnu/SHA256SUMS.part
7adf951a8eb30741977789928bdf625bc78a70dba83aaa50b98bad2489fd6751  guix-build-061b6efb5ae1/output/x86_64-linux-gnu/bitcoin-061b6efb5ae1-x86_64-linux-gnu-debug.tar.gz
668784d63a50d89a2df54762ab70973f6652687bfb4c00508dbc085648e7b3b2  guix-build-061b6efb5ae1/output/x86_64-linux-gnu/bitcoin-061b6efb5ae1-x86_64-linux-gnu.tar.gz
cc98e870e781b494f2dd5703d7cd42af3e15e2c6e44ab94e3664eee95a1e3863  guix-build-061b6efb5ae1/output/x86_64-w64-mingw32/SHA256SUMS.part
0c6331eacde7d2a8992c7915853bdd1e29f51f786705c69ca0d3dddbf5c6534c  guix-build-061b6efb5ae1/output/x86_64-w64-mingw32/bitcoin-061b6efb5ae1-win-unsigned.tar.gz
ee43d76883cd2c997736de6ef05716fb01357ace30de00920605bf06d7609963  guix-build-061b6efb5ae1/output/x86_64-w64-mingw32/bitcoin-061b6efb5ae1-win64-debug.zip
71164999c4ae166d0337811da38cca5e5c30b8c86f09b34ce4ca895341991baf  guix-build-061b6efb5ae1/output/x86_64-w64-mingw32/bitcoin-061b6efb5ae1-win64-setup-unsigned.exe
4bff75051a9f794d14336fa150a8c3d5ccaae7771a374d2cad5321c694b2c1ea  guix-build-061b6efb5ae1/output/x86_64-w64-mingw32/bitcoin-061b6efb5ae1-win64.zip

@hebasto
Copy link
Member Author

hebasto commented Dec 18, 2021

friendly ping @dongcarl @fanquake @laanwj

@hebasto
Copy link
Member Author

hebasto commented Mar 27, 2022

Also this approach won't work, at least for the qt package, when building with DEBUG=1 because of hardcoding of the source file paths.

Nevertheless, I believe the benefit of this PR is still valuable.

laanwj added a commit that referenced this pull request Apr 13, 2022
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Apr 14, 2022
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/bitcoin#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
@jarolrod
Copy link
Member

jarolrod commented Nov 21, 2022

guix hashes

x86:

e63c8d489878b8d8be3abad48719808dadb55c59cf2c869cbaa695de4713d820  guix-build-6ebe57622cb7/output/aarch64-linux-gnu/SHA256SUMS.part
94d9532d1d9c5442ac34ca4d28328224844f8705a67de9e0bc2738e5350cd42a  guix-build-6ebe57622cb7/output/aarch64-linux-gnu/bitcoin-6ebe57622cb7-aarch64-linux-gnu-debug.tar.gz
d1c851b613abca0a22bd3dafb3b51696a57c10ce30608cf0e013de043bc1ecb8  guix-build-6ebe57622cb7/output/aarch64-linux-gnu/bitcoin-6ebe57622cb7-aarch64-linux-gnu.tar.gz
0443ea035f9bb169619cebf85b5564c9261c6e1174a7cdf23e3fca54be52ad54  guix-build-6ebe57622cb7/output/arm-linux-gnueabihf/SHA256SUMS.part
10b9b962f6e22f8d2a44907ec12fb3b7c129dcc5760a7cf8e4a9304d4d82f8ff  guix-build-6ebe57622cb7/output/arm-linux-gnueabihf/bitcoin-6ebe57622cb7-arm-linux-gnueabihf-debug.tar.gz
2c6ec801458da088c1fbdc1d017cb5d352f19f12c2903874f9c06ddac7e044fe  guix-build-6ebe57622cb7/output/arm-linux-gnueabihf/bitcoin-6ebe57622cb7-arm-linux-gnueabihf.tar.gz
b4a7cb5524e33dfa0942f4cad5d79ed2b428379ecb4307961ab259a8fa69770b  guix-build-6ebe57622cb7/output/arm64-apple-darwin/SHA256SUMS.part
ca6f9d6bd8b77762577598502b86dca6598008adc26e77e77030235f753582eb  guix-build-6ebe57622cb7/output/arm64-apple-darwin/bitcoin-6ebe57622cb7-arm64-apple-darwin-unsigned.dmg
653bb532b8950537876bf081bf0d346648fd460e6b916d4cf415c4c851dc0e05  guix-build-6ebe57622cb7/output/arm64-apple-darwin/bitcoin-6ebe57622cb7-arm64-apple-darwin-unsigned.tar.gz
18180a23df669fe4d090cc3c23970171b7613db3d85b0ba32329b79b32e8edb8  guix-build-6ebe57622cb7/output/arm64-apple-darwin/bitcoin-6ebe57622cb7-arm64-apple-darwin.tar.gz
04a18782740acf220214f2da9d7c51ea8dd73d6624927e32a184641638b9873a  guix-build-6ebe57622cb7/output/dist-archive/bitcoin-6ebe57622cb7.tar.gz
c2100cc02420f1c2f26a14639f5568dcb1fcf316013ead79c4f0ed91f994c452  guix-build-6ebe57622cb7/output/powerpc64-linux-gnu/SHA256SUMS.part
7132aeb97450d7921fca096989e1ac0ef723eb05d728c91a0d1cb0dc1570cd79  guix-build-6ebe57622cb7/output/powerpc64-linux-gnu/bitcoin-6ebe57622cb7-powerpc64-linux-gnu-debug.tar.gz
49a16c787ddad3fb2449af8fcf82cc6aa1f4dea1f525afb5811be3e8eb2d6a9c  guix-build-6ebe57622cb7/output/powerpc64-linux-gnu/bitcoin-6ebe57622cb7-powerpc64-linux-gnu.tar.gz
c4b39d081d5a4ccca0a539b518b0f48361962b0c1b34392279c36e61b3527bf4  guix-build-6ebe57622cb7/output/powerpc64le-linux-gnu/SHA256SUMS.part
c47b69b2aec815513ac2a660974abd88f67d10a9aa18dc3595e7794756ed634d  guix-build-6ebe57622cb7/output/powerpc64le-linux-gnu/bitcoin-6ebe57622cb7-powerpc64le-linux-gnu-debug.tar.gz
64fb5f914aacd7c3c0a8226f287488f47510b3409b5188bca5480f5353056d32  guix-build-6ebe57622cb7/output/powerpc64le-linux-gnu/bitcoin-6ebe57622cb7-powerpc64le-linux-gnu.tar.gz
cac64611b92659bc13a187bac9146b4434ae5e00185785a6e268cce98efa8be2  guix-build-6ebe57622cb7/output/riscv64-linux-gnu/SHA256SUMS.part
bb13e3724f5dc190edd4efa514aa67ba75b233f34e9cfa2945e473edb316ebc1  guix-build-6ebe57622cb7/output/riscv64-linux-gnu/bitcoin-6ebe57622cb7-riscv64-linux-gnu-debug.tar.gz
a4f48b45b78657f9d6c99b8274cee65eea42f0fcb96e9d5d674f1d892a882fcb  guix-build-6ebe57622cb7/output/riscv64-linux-gnu/bitcoin-6ebe57622cb7-riscv64-linux-gnu.tar.gz
c700d3ce6fd4a299ff2fb9d663f7a7f4ffd6426b160c6677783c7a768a3eefcc  guix-build-6ebe57622cb7/output/x86_64-apple-darwin/SHA256SUMS.part
6eb79f13dab205ce81c2ed98099bb49e12be1d5d30e4ab9841ae1c1ce58591e9  guix-build-6ebe57622cb7/output/x86_64-apple-darwin/bitcoin-6ebe57622cb7-x86_64-apple-darwin-unsigned.dmg
883fe41f0097459d314c951fcb5b1399f3997db3192f413a6105100893632b52  guix-build-6ebe57622cb7/output/x86_64-apple-darwin/bitcoin-6ebe57622cb7-x86_64-apple-darwin-unsigned.tar.gz
a46950474d42687793b6463a05bc26f6db20db27417d53698afc49b63cfc82af  guix-build-6ebe57622cb7/output/x86_64-apple-darwin/bitcoin-6ebe57622cb7-x86_64-apple-darwin.tar.gz
41368849c8114b6562cfa2e820af131076a69a7ceea3418f1aae030e7c2beff8  guix-build-6ebe57622cb7/output/x86_64-linux-gnu/SHA256SUMS.part
7e3afa625c761aba2f6c4f9eef1b3a54315b95e21ae7913831f5e7e14f94cb30  guix-build-6ebe57622cb7/output/x86_64-linux-gnu/bitcoin-6ebe57622cb7-x86_64-linux-gnu-debug.tar.gz
4b2024464656af3ab6e3cb2b24a34d5d9029530424e8b07b9a62d57b6c78a6be  guix-build-6ebe57622cb7/output/x86_64-linux-gnu/bitcoin-6ebe57622cb7-x86_64-linux-gnu.tar.gz
e3ecf3d0d435fb6527cbe0c18acc925de20507508303e4612d3f2bb126475f82  guix-build-6ebe57622cb7/output/x86_64-w64-mingw32/SHA256SUMS.part
1651e7f1fb0ad091e2a4fbf4c8c2ab740bb0db7337e155d4da86206d78b276a0  guix-build-6ebe57622cb7/output/x86_64-w64-mingw32/bitcoin-6ebe57622cb7-win64-debug.zip
800ccfb09b9c02e0d629fd9b564694285a0a5b1423b7b69e0360650402596a47  guix-build-6ebe57622cb7/output/x86_64-w64-mingw32/bitcoin-6ebe57622cb7-win64-setup-unsigned.exe
8bf69c6b0ecaac4df9a9ba80c267e78d728c58dac4af68eada7cb943ade8ecdd  guix-build-6ebe57622cb7/output/x86_64-w64-mingw32/bitcoin-6ebe57622cb7-win64-unsigned.tar.gz
0b7a0fa6bea6c3c056f7f3e19a5626a9e362354fd5b19bed72fd5b06bf2f76e7  guix-build-6ebe57622cb7/output/x86_64-w64-mingw32/bitcoin-6ebe57622cb7-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.

This is broken when using BusyBox tar (i.e building on Alpine):

Caching libevent...
cd /bitcoin/depends/work/staging/aarch64-unknown-linux-musl/libevent/2.1.12-stable-714086d0d4d//bitcoin/depends/aarch64-unknown-linux-musl; find . ! -name '.stamp_postprocessed' -print0 | TZ=UTC xargs -0r touch -h -m -t 200001011200; find . ! -name '.stamp_postprocessed' -print0 | LC_ALL=C sort -z | tar --create --numeric-owner --no-recursion --null -T - | gzip -9n > /bitcoin/depends/work/staging/aarch64-unknown-linux-musl/libevent/2.1.12-stable-714086d0d4d/libevent-2.1.12-stable-714086d0d4d.tar.gz
tar: unrecognized option: null
BusyBox v1.35.0 (2022-11-19 10:13:10 UTC) multi-call binary.

Usage: tar c|x|t [-ZzJjahmvokO] [-f TARFILE] [-C DIR] [-T FILE] [-X FILE] [LONGOPT]... [FILE]...

Create, extract, or list files from a tar file

	c	Create
	x	Extract
	t	List
	-f FILE	Name of TARFILE ('-' for stdin/out)
	-C DIR	Change to DIR before operation
	-v	Verbose
	-O	Extract to stdout
	-m	Don't restore mtime
	-o	Don't restore user:group
	-k	Don't replace existing files
	-Z	(De)compress using compress
	-z	(De)compress using gzip
	-J	(De)compress using xz
	-j	(De)compress using bzip2
	--lzma	(De)compress using lzma
	-a	(De)compress based on extension
	-h	Follow symlinks
	-T FILE	File with names to include
	-X FILE	File with glob patterns to exclude
	--exclude PATTERN	Glob pattern to exclude
	--overwrite		Replace existing files
	--strip-components NUM	NUM of leading components to strip
	--no-recursion		Don't descend in directories
	--numeric-owner		Use numeric user:group
	--no-same-permissions	Don't restore access permissions

@hebasto
Copy link
Member Author

hebasto commented Dec 2, 2022

This is broken when using BusyBox tar (i.e building on Alpine)

Calling tar with no null-terminated string usage now, as it is currently on the master branch.

@hebasto
Copy link
Member Author

hebasto commented Dec 2, 2022

The PR description has been updated with a contemporary example.

@DrahtBot
Copy link
Contributor

Guix builds

File commit aef8b4f
(master)
commit cefe209
(master and this pull)
SHA256SUMS.part 8e2a32cb2653705c... 014bb69d0f453d97...
*-aarch64-linux-gnu-debug.tar.gz cc6c2ff9efed14a9... d4d69b78e6e82c9d...
*-aarch64-linux-gnu.tar.gz 60fdbe550d7771dc... 7d51e245816b7c7a...
*-arm-linux-gnueabihf-debug.tar.gz 456d01e608a3419a... c7195004245c89c8...
*-arm-linux-gnueabihf.tar.gz d3bbefd7ee49fa42... 4e9129cd121a9c62...
*-arm64-apple-darwin-unsigned.dmg df2baed3375b41d9... b491ef5aa932fc3d...
*-arm64-apple-darwin-unsigned.tar.gz f90fcf59bc5122f8... f5ee104ab3633c51...
*-arm64-apple-darwin.tar.gz 3edcf12e9e51084b... af23e955904d3ca1...
*-powerpc64-linux-gnu-debug.tar.gz ff2f98e44c058b34... bb8c84abd22775ae...
*-powerpc64-linux-gnu.tar.gz ab199d6e6776a410... 40286683d05a1ba8...
*-powerpc64le-linux-gnu-debug.tar.gz ff79fced932a7257... e495e619f7306e7b...
*-powerpc64le-linux-gnu.tar.gz 70be4a099942e325... f34cb198e28ba871...
*-riscv64-linux-gnu-debug.tar.gz 1205a96c1e2f592f... b9f9ca86c854cef2...
*-riscv64-linux-gnu.tar.gz f4c85cbd4e8c58a2... 268ee2649266da95...
*-win64-debug.zip a480a08b367f61a2... 6f700f3992e9b806...
*-win64-setup-unsigned.exe b480905a5cc766de... a8b9959d8d8a7aac...
*-win64-unsigned.tar.gz 8f379351c648e8c5... 859ea8567bc3cbbc...
*-win64.zip 51d168c9b957a7ad... f92b9114794927a5...
*-x86_64-apple-darwin-unsigned.dmg d97f134d4143e54e... 20afed4062c59262...
*-x86_64-apple-darwin-unsigned.tar.gz 7a9fe68447b787ef... b6a3b313b4ab2c1c...
*-x86_64-apple-darwin.tar.gz fc496f50c8b45ee0... 67959574a415709b...
*-x86_64-linux-gnu-debug.tar.gz 76de89c139841ff2... cb6a0db3174c1058...
*-x86_64-linux-gnu.tar.gz 854194e4a1c80a9d... cac70dffe1503275...
*.tar.gz 712192185c7fa0d9... 4b289bcb835c6936...
guix_build.log 1d35c7eb2d9707af... ad97894a9534d78a...
guix_build.log.diff b735b209ec03500d...

Copy link
Contributor

@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

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

Code review ACK 6ebe576

I can confirm the findings of others that this indeed removes major factors of nondeterminism. I varied some of the introduced commands and parameters and can confirm that each plays a part in eliminating the nondeterminism.

@maflcko maflcko requested a review from fanquake February 7, 2023 08:41
@fanquake fanquake merged commit ab5b26f into bitcoin:master Feb 7, 2023
@hebasto hebasto deleted the 210519-repro branch February 7, 2023 12:26
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Feb 7, 2023
…s deterministic

6ebe576 build: Make dependency package archive timestamps deterministic (Hennadii Stepanov)

Pull request description:

  This PR makes testing changes like bitcoin#20641, bitcoin#21593, bitcoin#22142, bitcoin#24279, bitcoin#24285 as easy as comparing hashes.

  With this PR:
  ```
  $ make -C depends clean
  $ make -C depends HOST=x86_64-w64-mingw32
  $ find depends/built/x86_64-w64-mingw32 -name '*.hash' | sort | xargs cat
  1f685a61cbf205f81977ecf88cba91fa1ccdfbe77ab4ec3405dcd33ceb778af4  bdb-4.8.30-ca950bd6d13.tar.gz
  08a9acde276e6e5e5c8913e3ad07eeecda184a996882ae226b3ed056c7ec1b01  boost-1.80.0-b537c466dcb.tar.gz
  144c6d92e4108fcc90740bee27007db58a88336a97be6367f9c8ba4cc208af27  libevent-2.1.12-stable-e13b2bdd8b8.tar.gz
  e3c9c9609bf32bfd460432c6ab99a64e9f8750ed775a193925ff4f5aed363e4c  libnatpmp-07004b97cf691774efebe70404cf22201e4d330d-82255b84667.tar.gz
  62c6a089a4b24a413eccd2f389bf4c8b0716423b0ace5e87e984069635da9f83  miniupnpc-2.2.2-c43fc4cf2f6.tar.gz
  78762700066273e597698a78479a506b33532ea565d18ef561614b9fc3820cf5  qrencode-3.4.4-663de0dc628.tar.gz
  5e2183faf91838510a48e6dbb4b65ae74a7d48ba1abc070b82767c4076582360  qt-5.15.5-986926343e2.tar.gz
  9f8459f8d27fc3af9146712be6ba6577f15741429936504a950cc51c17da1ba8  sqlite-3380500-bec6a4d3299.tar.gz
  0eca5d01d427de50be4bd57c8bb100ab69b017792c32b8733e2b20443f4c9c28  zeromq-4.3.4-8ae81bab6f4.tar.gz
  ```

  As an example, here is an evidence that bitcoin#24279 is a strict refactoring change:
  ```
  $ git fetch origin pull/24279/head
  $ git cherry-pick 7060268
  $ git cherry-pick 3f90dde
  $ make -C depends clean
  $ make -C depends HOST=x86_64-w64-mingw32
  $ find depends/built/x86_64-w64-mingw32 -name '*.hash' | sort | xargs cat
  1f685a61cbf205f81977ecf88cba91fa1ccdfbe77ab4ec3405dcd33ceb778af4  bdb-4.8.30-c7faf31d5ca.tar.gz
  08a9acde276e6e5e5c8913e3ad07eeecda184a996882ae226b3ed056c7ec1b01  boost-1.80.0-1af3dd1d99e.tar.gz
  144c6d92e4108fcc90740bee27007db58a88336a97be6367f9c8ba4cc208af27  libevent-2.1.12-stable-6228a9f8534.tar.gz
  e3c9c9609bf32bfd460432c6ab99a64e9f8750ed775a193925ff4f5aed363e4c  libnatpmp-07004b97cf691774efebe70404cf22201e4d330d-41aa6194ecc.tar.gz
  62c6a089a4b24a413eccd2f389bf4c8b0716423b0ace5e87e984069635da9f83  miniupnpc-2.2.2-6a93027769c.tar.gz
  78762700066273e597698a78479a506b33532ea565d18ef561614b9fc3820cf5  qrencode-3.4.4-d40cb2d45c9.tar.gz
  5e2183faf91838510a48e6dbb4b65ae74a7d48ba1abc070b82767c4076582360  qt-5.15.5-120c3cb745d.tar.gz
  9f8459f8d27fc3af9146712be6ba6577f15741429936504a950cc51c17da1ba8  sqlite-3380500-bbd4d813c69.tar.gz
  0eca5d01d427de50be4bd57c8bb100ab69b017792c32b8733e2b20443f4c9c28  zeromq-4.3.4-df0858a19d2.tar.gz
  ```

ACKs for top commit:
  TheCharlatan:
    Code review ACK 6ebe576

Tree-SHA512: 20e0222781f5dcb50126c11677d0671bcdd7be144b2e528c75a02983acc494206552fb35039697ccd094de27a21b3fb439e9965c34feb8a6d74627fa20a9a5e7
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 2, 2024
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/bitcoin#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 2, 2024
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/bitcoin#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 2, 2024
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/bitcoin#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 2, 2024
e644591 build, refactor: Drop useless `call` Make function (Hennadii Stepanov)

Pull request description:

  Using the [`call`](https://www.gnu.org/software/make/manual/html_node/Call-Function.html) function with `$(package)_*_cmds` is effectively noop because the latter, which could be found in `<package>.mk` files, do not use temporary `$(1)` variable at all.

  This PR removes useless calls of the `call` function, and makes code more readable and easier to reason about.

  No change in resulted dependency binaries could be easy verified with bitcoin/bitcoin/bitcoin#21995.

ACKs for top commit:
  laanwj:
    Code review ACK e644591
  shaavan:
    Code review ACK e644591

Tree-SHA512: 8481fa0dc5bbf7dd6a180f7fae5a2ccc07f85b50c7a966bceb2d7e010e07e5f211ee3f74f8ac79bc5acfde5f0764264d599d959ff3ebb8511b1b4a33f79509bd
@bitcoin bitcoin locked and limited conversation to collaborators Feb 7, 2024
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.

8 participants