Skip to content

[POC] guix: cross-architecture reproducibility (x86_64 & aarch64)#24569

Closed
fanquake wants to merge 2 commits intobitcoin:masterfrom
fanquake:cross_arch_reproducibility
Closed

[POC] guix: cross-architecture reproducibility (x86_64 & aarch64)#24569
fanquake wants to merge 2 commits intobitcoin:masterfrom
fanquake:cross_arch_reproducibility

Conversation

@fanquake
Copy link
Member

@fanquake fanquake commented Mar 15, 2022

With this change, I'm now seeing cross-architecture reproducibility from our Guix build (release) process. Given the same code, doing a Guix build on x86_64 and aarch64 (arm64 Apple M1) hardware now gives the exact same binaries.

The code change to our build script is a bit yuck (hence draft), and generating the correct store paths is a multi-phase process, as modifying glibc to insert the debug-prefix option for the native compiler, changes the store path hashes of the then-rebuilt GCC 10 toolchain, however once we have them, they should be stable for a given commit in our Guix time-machine.

Given that glibc startup code ends up in our binaries, we also need to patch out any /gnu/store/* paths that may end up in the debug info for it's objects/libs i.e:

 The Directory Table (offset 0xff5619):
  1	/gnu/store/2d2r6jcsdjf6i3nzbrmf13psxmpwz55w-gcc-cross-sans-libc-x86_64-linux-gnu-7.5.0-lib/lib/gcc/x86_64-linux-gnu/7.5.0/include

 The File Name Table (offset 0xff569c):
  Entry	Dir	Time	Size	Name
  1	0	0	0	elf-init.c
  2	1	0	0	stddef.h

Two points on that:

  • We currently use a GCC 7 native compiler, which is why -fdebug-prefix-map is used instead of -ffile-prefix-map=. The later is only supported by GCC 8 and older.
  • Newer glibcs have actually introduced an option (--with-nonshared-cflags=) to make it easier to:

Use additional compiler flags cflags to build the parts of the library which are always statically linked into applications and libraries even with shared linking.

which means in future we could potentially use this, as an additional glibc configure option, rather than patching a glibc Makefile.

Related to #21194.

Guix build on x86_64:

uname -a
Linux 1ab0f609970a 5.13.0-1017-aws #19~20.04.1-Ubuntu SMP Mon Mar 7 12:53:12 UTC 2022 x86_64 Linux
e3bb0544efc5e3d377cee5714e0e8bbe048ebedcb8981ae738055fd61e2422e1  guix-build-9cf6d7d89390/output/dist-archive/bitcoin-9cf6d7d89390.tar.gz
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
3990edfa2fa4d29acc332f61ad95996c7760ec77563130fe3daafd222eb393d3  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/README.md
1b797c31235c1034d2df2729e0c68d7de600131727e3c9a42521d48a1a24f3c7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli
11d01327ef0c87296c01f46f2ef3843b4895091341f41c5e6635fba7b105941d  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli.dbg
73569b03799c50ffc92c80489b935d9643165786e0e7724844ee8638d49e7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt
41ec7c787a7ddac8214970b7b32e87b00b069b8a274871b724f6d3ed0a4e7a90  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt.dbg
f905cdb727cce29166502ea70d1917a284143d2bb1297895f074aec0fcf13e5f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx
86ebbc36d64bf8d94a1761e5fac3f6edd63e59f0022c2cbd9ed8995b0b14f294  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx.dbg
eb49cd79f143bf574eabfba8f7112323eb85a0f2fddea1d28357f02af7739ed0  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util
40d4a822e6a7dfd75a2a86c0a4685fec7cf56480f962917bc7f7ecd193cc5af4  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util.dbg
a87b7b4220379e6ef6c9b8744c0de1d5cadaf48f41dce6a3cd4057b12f6127f7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet
24d79d1c0920335f944bcb180d126150151d80d6375c8a5a1020bf5d238ac291  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet.dbg
175a1ec3e721e457bcec95791beb8cfc5573621a5ddd78e9c9f65d43c8332899  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind
35d6a79bfcc6f7591eed887bd4e6a3f89d6f874704d27ef63083dc70ae123eaa  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind.dbg
3d97a53717c9ca9460a6f1ea6802f64a3bf9bcdfc3977b6beca5d462df9dc89f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin
86073797f1c5a9df4e72a20f008c6deae159fb5c70c5c76e825e1d38bd06a411  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin.dbg
36127300d74413c6e0e16bc3a1331598128ff93b103cd033ad4ade3cdeeadbec  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/include/bitcoinconsensus.h
cb0ade6c79774358efb502fadaef7d02894e43d96110cd914a61a659f81c7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0
1101b54af2d1ed9110227d782614cf687329404ff04e95d6b5556df8d328010a  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0.dbg
6722c631147686338875b2384ef9cdaf976b5df9f0d79eb03a8d2ec8218005f6  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-cli.1
4c8e6a876222d5451574abefaeb716fd1735e2001cb0dbd40c98a296eec763b1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-qt.1
f59c03e2dc314adbded43bfb94fb5d3f94b64064ec409683ef1a4bae3ebd9be1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-tx.1
5356bea504330cd7c07e9598d45e689d8531d72eb82460536604b878a5d44954  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-util.1
c6a810006423b2923b9d13d5c6e5ae24f5c93ce2527041d2dda88fd779fadb9e  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-wallet.1
00537e3fb6e839c0f29a7d3b989d8908d6a390cf9a87831f815401346e4f7878  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoind.1

Guix build on arm64 (Debian in Docker on Apple M1)

uname -a 
Linux 3b26b9608b88 5.10.104-linuxkit #1 SMP PREEMPT Wed Mar 9 19:01:25 UTC 2022 aarch64 GNU/Linux
e3bb0544efc5e3d377cee5714e0e8bbe048ebedcb8981ae738055fd61e2422e1  guix-build-9cf6d7d89390/output/dist-archive/bitcoin-9cf6d7d89390.tar.gz
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
3990edfa2fa4d29acc332f61ad95996c7760ec77563130fe3daafd222eb393d3  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/README.md
1b797c31235c1034d2df2729e0c68d7de600131727e3c9a42521d48a1a24f3c7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli
11d01327ef0c87296c01f46f2ef3843b4895091341f41c5e6635fba7b105941d  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli.dbg
73569b03799c50ffc92c80489b935d9643165786e0e7724844ee8638d49e7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt
41ec7c787a7ddac8214970b7b32e87b00b069b8a274871b724f6d3ed0a4e7a90  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt.dbg
f905cdb727cce29166502ea70d1917a284143d2bb1297895f074aec0fcf13e5f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx
86ebbc36d64bf8d94a1761e5fac3f6edd63e59f0022c2cbd9ed8995b0b14f294  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx.dbg
eb49cd79f143bf574eabfba8f7112323eb85a0f2fddea1d28357f02af7739ed0  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util
40d4a822e6a7dfd75a2a86c0a4685fec7cf56480f962917bc7f7ecd193cc5af4  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util.dbg
a87b7b4220379e6ef6c9b8744c0de1d5cadaf48f41dce6a3cd4057b12f6127f7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet
24d79d1c0920335f944bcb180d126150151d80d6375c8a5a1020bf5d238ac291  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet.dbg
175a1ec3e721e457bcec95791beb8cfc5573621a5ddd78e9c9f65d43c8332899  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind
35d6a79bfcc6f7591eed887bd4e6a3f89d6f874704d27ef63083dc70ae123eaa  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind.dbg
3d97a53717c9ca9460a6f1ea6802f64a3bf9bcdfc3977b6beca5d462df9dc89f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin
86073797f1c5a9df4e72a20f008c6deae159fb5c70c5c76e825e1d38bd06a411  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin.dbg
36127300d74413c6e0e16bc3a1331598128ff93b103cd033ad4ade3cdeeadbec  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/include/bitcoinconsensus.h
cb0ade6c79774358efb502fadaef7d02894e43d96110cd914a61a659f81c7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0
1101b54af2d1ed9110227d782614cf687329404ff04e95d6b5556df8d328010a  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0.dbg
6722c631147686338875b2384ef9cdaf976b5df9f0d79eb03a8d2ec8218005f6  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-cli.1
4c8e6a876222d5451574abefaeb716fd1735e2001cb0dbd40c98a296eec763b1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-qt.1
f59c03e2dc314adbded43bfb94fb5d3f94b64064ec409683ef1a4bae3ebd9be1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-tx.1
5356bea504330cd7c07e9598d45e689d8531d72eb82460536604b878a5d44954  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-util.1
c6a810006423b2923b9d13d5c6e5ae24f5c93ce2527041d2dda88fd779fadb9e  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-wallet.1
00537e3fb6e839c0f29a7d3b989d8908d6a390cf9a87831f815401346e4f7878  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoind.1

…n startup code (csu)

When we are building against a glibc newer than 2.24 we may be able to use newer
options, like --with-rtld-early-cflags or --with-nonshared-cflags.
This is kinda yuck, but should achieve cross-arch build reproducibility for
atleast the non-qt binaries.
@hebasto
Copy link
Member

hebasto commented Mar 15, 2022

Concept ACK.

@hebasto
Copy link
Member

hebasto commented Mar 16, 2022

Guix builds on x86_64:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
748066fcbf082476ef027f0ad4660c543ce7bc2363b2a54567c9c78548d8daf3  guix-build-9cf6d7d89390/output/aarch64-linux-gnu/SHA256SUMS.part
63b9669b5e46293566c6b24e7768a6b092d9ec2e24398495acf89a90705296e5  guix-build-9cf6d7d89390/output/aarch64-linux-gnu/bitcoin-9cf6d7d89390-aarch64-linux-gnu-debug.tar.gz
5659c0380ed1c66f64c8230638c71731f29fb058a93cd058173dfbd0882bcf3b  guix-build-9cf6d7d89390/output/aarch64-linux-gnu/bitcoin-9cf6d7d89390-aarch64-linux-gnu.tar.gz
26d24ac413fd598bce1c8d6e7909e592d65eaa27ee22516a6d4cb164fec5d929  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/SHA256SUMS.part
9ce2ef3d0ea8b40fcf3736eb23eb0350dbc8a394cd1906f560cb94a0650e7b5b  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/bitcoin-9cf6d7d89390-arm-linux-gnueabihf-debug.tar.gz
669caa7e52dc607b025311b3453e7b6490d17626864c6af9e6c7752c28289946  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/bitcoin-9cf6d7d89390-arm-linux-gnueabihf.tar.gz
e7a2dc58f06c26dfa5f1eb59f3601d6cf1e8088f67f05d94209efd02730ffe7d  guix-build-9cf6d7d89390/output/arm64-apple-darwin/SHA256SUMS.part
128d8ba45201038af142aa3dc23996d1aceadc8bdfa5e49b5022b053432b127f  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-arm64-apple-darwin.tar.gz
52296858d6ca2e52bb7b75fe777f8c5c919c2f156817f42e3360f1b67ac2fc1b  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.dmg
f00d05c3c753f02358a7902da8049742e2e9e3e5bc4a8095201ad964822a009c  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.tar.gz
e3bb0544efc5e3d377cee5714e0e8bbe048ebedcb8981ae738055fd61e2422e1  guix-build-9cf6d7d89390/output/dist-archive/bitcoin-9cf6d7d89390.tar.gz
2c3009fdca276e677675136bb19785359ac994afba72bd65b4ec214f3992651c  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/SHA256SUMS.part
68720ed3231fbf82389caf829226094651f77bd86e1d32eafd8e9e82bd0f50c1  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/bitcoin-9cf6d7d89390-powerpc64-linux-gnu-debug.tar.gz
0b67e5b93819ddb6c7a091339eb082b60a7b700d67b0c5d3b12d16e4c49117d0  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/bitcoin-9cf6d7d89390-powerpc64-linux-gnu.tar.gz
2452583ebbe65ab44d3c65c82cf4c774ac32e446ccb6e4e78625512fb459ddba  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/SHA256SUMS.part
945537ae8ffc2f8bbca52e39d87c57a9ed8f680ccfeda826acaf025f7195593a  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/bitcoin-9cf6d7d89390-powerpc64le-linux-gnu-debug.tar.gz
206362adb8d8367f8ba1be9b254c791111127c00b60395d1ac04269a3a2671b9  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/bitcoin-9cf6d7d89390-powerpc64le-linux-gnu.tar.gz
ad48da04ed4947d45a48fc8046831f1db25df4dd47aa575f1edb118b8da9e7d2  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/SHA256SUMS.part
be972747a61bad5b958f0c130885761d2d06b052a6216cfa86ba66b9d60afbbe  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/bitcoin-9cf6d7d89390-riscv64-linux-gnu-debug.tar.gz
07b3fb44f714d921d3cbd8d7b556caaf49f0a671195b1d03a8540ae6bcae162c  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/bitcoin-9cf6d7d89390-riscv64-linux-gnu.tar.gz
b9e02833aca8358cf93b0c40c8db4f14c0d308a6a8fb690526cfb5dbf733095f  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/SHA256SUMS.part
9cca66b426dd6d9a563cb75cd17473d2673bf3384fb8379ea3a1cc2637947003  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.dmg
ed91197a0307abcbbaa98df86d8ad0a081c11ae8ce4487f0244ea223562d5c0f  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.tar.gz
44b431a056c9947130370841bb120f0a9ed58b5200d23efa88bf5820c6d08ef3  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx64.tar.gz
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
4816ee45b38064ba1569edf6f2f32b441a6c7aed362240725c0d5635161c7c2a  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/SHA256SUMS.part
7f0804ce411e0c59e05840edb996918843e5a20a5ff999cdd05fa1f72291f5ee  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win-unsigned.tar.gz
5e167562f7ffb3d44c802cd2fe402c126213d97f629d0fc9f51e6d1aed83ee81  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64-debug.zip
996372a82a2f708bfa9a8cbfe85a45ef9f86434593b8d03bc11043940b7059ad  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64-setup-unsigned.exe
9392ff9c78191e60c2b9761e431b9096df27faab66d8fdc3931761611ecdd930  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64.zip

Unpacked archives for x86_64-linux-gnu:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/x86_64-linux-gnu/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
3990edfa2fa4d29acc332f61ad95996c7760ec77563130fe3daafd222eb393d3  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/README.md
1b797c31235c1034d2df2729e0c68d7de600131727e3c9a42521d48a1a24f3c7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli
11d01327ef0c87296c01f46f2ef3843b4895091341f41c5e6635fba7b105941d  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli.dbg
73569b03799c50ffc92c80489b935d9643165786e0e7724844ee8638d49e7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt
41ec7c787a7ddac8214970b7b32e87b00b069b8a274871b724f6d3ed0a4e7a90  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt.dbg
f905cdb727cce29166502ea70d1917a284143d2bb1297895f074aec0fcf13e5f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx
86ebbc36d64bf8d94a1761e5fac3f6edd63e59f0022c2cbd9ed8995b0b14f294  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx.dbg
eb49cd79f143bf574eabfba8f7112323eb85a0f2fddea1d28357f02af7739ed0  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util
40d4a822e6a7dfd75a2a86c0a4685fec7cf56480f962917bc7f7ecd193cc5af4  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util.dbg
a87b7b4220379e6ef6c9b8744c0de1d5cadaf48f41dce6a3cd4057b12f6127f7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet
24d79d1c0920335f944bcb180d126150151d80d6375c8a5a1020bf5d238ac291  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet.dbg
175a1ec3e721e457bcec95791beb8cfc5573621a5ddd78e9c9f65d43c8332899  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind
35d6a79bfcc6f7591eed887bd4e6a3f89d6f874704d27ef63083dc70ae123eaa  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind.dbg
3d97a53717c9ca9460a6f1ea6802f64a3bf9bcdfc3977b6beca5d462df9dc89f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin
86073797f1c5a9df4e72a20f008c6deae159fb5c70c5c76e825e1d38bd06a411  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin.dbg
36127300d74413c6e0e16bc3a1331598128ff93b103cd033ad4ade3cdeeadbec  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/include/bitcoinconsensus.h
cb0ade6c79774358efb502fadaef7d02894e43d96110cd914a61a659f81c7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0
1101b54af2d1ed9110227d782614cf687329404ff04e95d6b5556df8d328010a  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0.dbg
6722c631147686338875b2384ef9cdaf976b5df9f0d79eb03a8d2ec8218005f6  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-cli.1
4c8e6a876222d5451574abefaeb716fd1735e2001cb0dbd40c98a296eec763b1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-qt.1
f59c03e2dc314adbded43bfb94fb5d3f94b64064ec409683ef1a4bae3ebd9be1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-tx.1
5356bea504330cd7c07e9598d45e689d8531d72eb82460536604b878a5d44954  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-util.1
c6a810006423b2923b9d13d5c6e5ae24f5c93ce2527041d2dda88fd779fadb9e  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-wallet.1
00537e3fb6e839c0f29a7d3b989d8908d6a390cf9a87831f815401346e4f7878  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoind.1

@hebasto
Copy link
Member

hebasto commented Mar 16, 2022

On Apple M1:

# uname -m
aarch64
# ./contrib/guix/guix-build
...
builder for `/gnu/store/y6nh8sg3qfgzdg49faad0yab8gky5jpj-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv' failed with exit code 1
build of /gnu/store/y6nh8sg3qfgzdg49faad0yab8gky5jpj-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv failed
View build log at '/var/log/guix/drvs/y6/nh8sg3qfgzdg49faad0yab8gky5jpj-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv.bz2'.
cannot build derivation `/gnu/store/b5paqwrj6h81irz5x0sq4y9y3x512z2m-glibc-cross-aarch64-linux-gnu-2.24.drv': 1 dependencies couldn't be built
guix environment: error: build of `/gnu/store/b5paqwrj6h81irz5x0sq4y9y3x512z2m-glibc-cross-aarch64-linux-gnu-2.24.drv' failed
# bunzip2 < /var/log/guix/drvs/y6/nh8sg3qfgzdg49faad0yab8gky5jpj-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv.bz2
...
The directory that should contain system headers does not exist:
  /usr/include
make[3]: *** [Makefile:3009: stmp-fixinc] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv-0/build/gcc'
make[2]: *** [Makefile:4492: all-stage1-gcc] Error 2
make[2]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv-0/build'
make[1]: *** [Makefile:17230: stage1-bubble] Error 2
make[1]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0.drv-0/build'
make: *** [Makefile:881: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "7" "CFLAGS=-g0 -O2") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `build' failed after 169.7 seconds
command "make" "-j" "7" "CFLAGS=-g0 -O2" failed with status 2

@fanquake
Copy link
Member Author

On Apple M1:
gcc-cross-sans-libc-aarch64-linux-gnu-7.5.0

It looks like your trying to build for aarch64 on aarch64. That doesn't currently work, see #22458.

@hebasto
Copy link
Member

hebasto commented Mar 16, 2022

Guix builds on arm64:

# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
8bd7066069fd84a89e7bfbfe7369db86d8b85be55da9eb1a7759d23bc848c5ed  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/SHA256SUMS.part
20e5dad2be5d05085233440b627f7dd59694676096eb14e4095978ee594efb16  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/bitcoin-9cf6d7d89390-arm-linux-gnueabihf-debug.tar.gz
461e9afb5503abd2708b85a527cee3b797eab29537d656be217c4fa0f0511c92  guix-build-9cf6d7d89390/output/arm-linux-gnueabihf/bitcoin-9cf6d7d89390-arm-linux-gnueabihf.tar.gz
3730d52ded15d36dddc9ad1fd608aba343d2ce57587ee6805f0e3f27aedd690a  guix-build-9cf6d7d89390/output/arm64-apple-darwin/SHA256SUMS.part
7114b5d33f37777182b5d361fff0990a0592233d16603561e03a2780da74574e  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-arm64-apple-darwin.tar.gz
ff1831a73eef0e34b675ef8da2ae666abb61f03aabf3a5551f7070099c9d6aa6  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.dmg
1aa20031866a4a36cbdf7ebdf6393935382b8c8ecebf1ca873ab6f45083d0d07  guix-build-9cf6d7d89390/output/arm64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.tar.gz
e3bb0544efc5e3d377cee5714e0e8bbe048ebedcb8981ae738055fd61e2422e1  guix-build-9cf6d7d89390/output/dist-archive/bitcoin-9cf6d7d89390.tar.gz
66a0f2616704bf4bf6da8bc0e9edf9e5d115bff9fbed21d3f4d45ca0d376cf4b  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/SHA256SUMS.part
ab9ff5a96f83993abfd871529d0463e49eb989f94e77e247188821bf331a3160  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/bitcoin-9cf6d7d89390-powerpc64-linux-gnu-debug.tar.gz
3bf2047211c57f12b08f2c49a9191bf2f282bf5053b2db78253faddea83aa308  guix-build-9cf6d7d89390/output/powerpc64-linux-gnu/bitcoin-9cf6d7d89390-powerpc64-linux-gnu.tar.gz
0fc92e3caaa15dfeaf61352b8c2ac22e7ff61e62df08c9860c7dfcfb307e63a5  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/SHA256SUMS.part
06b6c38ded64bd9144534ce36a185986dc6d000370821305859b05c01dd1646a  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/bitcoin-9cf6d7d89390-powerpc64le-linux-gnu-debug.tar.gz
79581a29f206b32d1a23e15e9ccfd1cc9c2d64806f4b3de801f473ea3bdb5c2c  guix-build-9cf6d7d89390/output/powerpc64le-linux-gnu/bitcoin-9cf6d7d89390-powerpc64le-linux-gnu.tar.gz
14e4eb60b08dcd2f13a99811d9b3102f33090195cb9b90a96e2ccf997a94ff7d  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/SHA256SUMS.part
30138c9c4e166ec55feea77f639539ed69af127891b4fdfef86ac2d18a341099  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/bitcoin-9cf6d7d89390-riscv64-linux-gnu-debug.tar.gz
51821ffd107abf6a6b13a987fce59fda2ab11de870e58bce69bbe90521f57f7b  guix-build-9cf6d7d89390/output/riscv64-linux-gnu/bitcoin-9cf6d7d89390-riscv64-linux-gnu.tar.gz
53f9e316855b0b9ea8f484712dfbd35b7eee064df940fe33d28beb062aa67f96  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/SHA256SUMS.part
9cca66b426dd6d9a563cb75cd17473d2673bf3384fb8379ea3a1cc2637947003  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.dmg
08297c9547817c83483af1440302e61bcb90a3de1640e40c5b6ef24345a53e5d  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx-unsigned.tar.gz
44b431a056c9947130370841bb120f0a9ed58b5200d23efa88bf5820c6d08ef3  guix-build-9cf6d7d89390/output/x86_64-apple-darwin/bitcoin-9cf6d7d89390-osx64.tar.gz
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
fd58de6d95a5527041fce3ee4cea76c9470f27a01e37438af8ea5cf3b8cface3  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/SHA256SUMS.part
7f0804ce411e0c59e05840edb996918843e5a20a5ff999cdd05fa1f72291f5ee  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win-unsigned.tar.gz
3dfb810f091b3a1263420eb3a40ddcdbd8c96eba3891d6af4915ee385c0b29ac  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64-debug.zip
996372a82a2f708bfa9a8cbfe85a45ef9f86434593b8d03bc11043940b7059ad  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64-setup-unsigned.exe
e6470bd4d263d6ad6db66a59033727e56b9ce87232ad411bd713071887750bd7  guix-build-9cf6d7d89390/output/x86_64-w64-mingw32/bitcoin-9cf6d7d89390-win64.zip

Unpacked archives for x86_64-linux-gnu:

# find guix-build-$(git rev-parse --short=12 HEAD)/output/x86_64-linux-gnu/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
aa994b2edfbca77269e71e5a8d3464d3429ceb252cb3939bc301e1194636e566  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/SHA256SUMS.part
3f53813e74c11c528a677f454873e17a873fc2c2dedcc11c3ee3e7db64355da5  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu-debug.tar.gz
9ada6333aa20f0a7124ca08471a02759951d017e6af12a5554693e8efb4f15bd  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390-x86_64-linux-gnu.tar.gz
3990edfa2fa4d29acc332f61ad95996c7760ec77563130fe3daafd222eb393d3  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/README.md
1b797c31235c1034d2df2729e0c68d7de600131727e3c9a42521d48a1a24f3c7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli
11d01327ef0c87296c01f46f2ef3843b4895091341f41c5e6635fba7b105941d  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-cli.dbg
73569b03799c50ffc92c80489b935d9643165786e0e7724844ee8638d49e7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt
41ec7c787a7ddac8214970b7b32e87b00b069b8a274871b724f6d3ed0a4e7a90  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-qt.dbg
f905cdb727cce29166502ea70d1917a284143d2bb1297895f074aec0fcf13e5f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx
86ebbc36d64bf8d94a1761e5fac3f6edd63e59f0022c2cbd9ed8995b0b14f294  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-tx.dbg
eb49cd79f143bf574eabfba8f7112323eb85a0f2fddea1d28357f02af7739ed0  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util
40d4a822e6a7dfd75a2a86c0a4685fec7cf56480f962917bc7f7ecd193cc5af4  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-util.dbg
a87b7b4220379e6ef6c9b8744c0de1d5cadaf48f41dce6a3cd4057b12f6127f7  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet
24d79d1c0920335f944bcb180d126150151d80d6375c8a5a1020bf5d238ac291  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoin-wallet.dbg
175a1ec3e721e457bcec95791beb8cfc5573621a5ddd78e9c9f65d43c8332899  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind
35d6a79bfcc6f7591eed887bd4e6a3f89d6f874704d27ef63083dc70ae123eaa  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/bitcoind.dbg
3d97a53717c9ca9460a6f1ea6802f64a3bf9bcdfc3977b6beca5d462df9dc89f  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin
86073797f1c5a9df4e72a20f008c6deae159fb5c70c5c76e825e1d38bd06a411  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/bin/test_bitcoin.dbg
36127300d74413c6e0e16bc3a1331598128ff93b103cd033ad4ade3cdeeadbec  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/include/bitcoinconsensus.h
cb0ade6c79774358efb502fadaef7d02894e43d96110cd914a61a659f81c7f95  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0
1101b54af2d1ed9110227d782614cf687329404ff04e95d6b5556df8d328010a  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/lib/libbitcoinconsensus.so.0.0.0.dbg
6722c631147686338875b2384ef9cdaf976b5df9f0d79eb03a8d2ec8218005f6  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-cli.1
4c8e6a876222d5451574abefaeb716fd1735e2001cb0dbd40c98a296eec763b1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-qt.1
f59c03e2dc314adbded43bfb94fb5d3f94b64064ec409683ef1a4bae3ebd9be1  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-tx.1
5356bea504330cd7c07e9598d45e689d8531d72eb82460536604b878a5d44954  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-util.1
c6a810006423b2923b9d13d5c6e5ae24f5c93ce2527041d2dda88fd779fadb9e  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoin-wallet.1
00537e3fb6e839c0f29a7d3b989d8908d6a390cf9a87831f815401346e4f7878  guix-build-9cf6d7d89390/output/x86_64-linux-gnu/bitcoin-9cf6d7d89390/share/man/man1/bitcoind.1

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

9cf6d7d

This is kinda yuck, but should achieve cross-arch build reproducibility for
atleast the non-qt binaries.

At least for x86_64-linux-gnu, cross-arch reproducibility works for bitcoin-qt as well.

@fanquake
Don't you mind posting your GUIX hashes for archived output files?

@fanquake
Copy link
Member Author

Don't you mind posting your GUIX hashes for archived output files?

Do you mean for the other HOSTS? They wont be reproducible until I've addedd additional /gun/store/* paths for the other cross-compilers. I'll do that, and push up an updated change, along with new hashes for all HOSTS.

@achow101
Copy link
Member

Does guix not have a way for us to get the store paths programatically rather than hard coding them?

@DrahtBot
Copy link
Contributor

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

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #24615 (guix: Map guix store prefixes to /usr for cross-architecture reproducibility of linux binaries by achow101)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@fanquake
Copy link
Member Author

Lets continue in #24615.

@fanquake fanquake closed this Mar 19, 2022
@fanquake fanquake deleted the cross_arch_reproducibility branch July 19, 2022 16:44
@bitcoin bitcoin locked and limited conversation to collaborators Jul 19, 2023
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.

4 participants