Age | Commit message (Collapse) | Author |
|
Signature application is now done with signapple.
|
|
This reverts commit 7f2f35fe20c7706d547fa22a62521fe926f9c12b.
|
|
|
|
|
|
macOS artifacts
53dd6165b8994301d638298906b006032e0bbe48 guix: Use "win64" for Windows artifacts consistently (Hennadii Stepanov)
4b4b04a66d8f088f6aa9ec6398db49d40481910f guix: Drop "-signed" suffix for signed macOS .dmg files (Hennadii Stepanov)
933a43018f0f1c0b72acbfa9de5e0f84bf49d0a2 guix: Use $HOST instead of generic osx{64} for macOS artifacts (Hennadii Stepanov)
Pull request description:
On master (f94784f5bcfd0adf5d20f9631cde454348b4ff71) and 23.x branches some GUIX artifacts for `x86_64` and `arm64` macOS have indistinguishable names:
```
d34646cbaf05e03195eb1e426f72fb471fe2d87ab18c9a656600089597703a38 bitcoin-23.0rc2-arm64-apple-darwin.tar.gz
968767b39442e179e5976b948112a0904374eb4cfb9cba22863408a70a1d99f9 bitcoin-23.0rc2-osx-unsigned.dmg
d8a7037d5bb845a214e45a52abcf9119bfbe72a76d6370e9560c18fda74a70db bitcoin-23.0rc2-osx-unsigned.tar.gz
71092f37985d556bdd25d33fb8571e13664eacadda90efcf21eaa1ba8a32eabd bitcoin-23.0rc2-osx-unsigned.dmg
cb10c49b486085b89393955a7a168c32e2f2a4911f2b8d44494bd8f2bd0acf2f bitcoin-23.0rc2-osx-unsigned.tar.gz
6d4c44726cd45711c4cb7257c6b46731be1446fc85e79ac86f2def19be45ced3 bitcoin-23.0rc2-osx64.tar.gz
```
With this PR:
```
$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
054c3765381b6d59c6ad8e5e3cbbdd23e330bd579f88b399f78f296d1a4536d0 guix-build-53dd6165b899/output/arm64-apple-darwin/SHA256SUMS.part
18750c1ff71d014fe5f976da738bfa04a4cd02af6b0d575def8d83160552de2d guix-build-53dd6165b899/output/arm64-apple-darwin/bitcoin-53dd6165b899-arm64-apple-darwin-unsigned.dmg
fa2b16684060202d1918c658b446909ee10999a8b9a85018ca2f6a09eaa11c8e guix-build-53dd6165b899/output/arm64-apple-darwin/bitcoin-53dd6165b899-arm64-apple-darwin-unsigned.tar.gz
b865000eb4b291a51d1920eec63dcbc9b47dedb1cc7fda0af3ab9b321db36b82 guix-build-53dd6165b899/output/arm64-apple-darwin/bitcoin-53dd6165b899-arm64-apple-darwin.tar.gz
dd88ce6660754987abf95fc2c4d09f6d2248f12ecee4ef2c03f4fa74bbd8e3ae guix-build-53dd6165b899/output/dist-archive/bitcoin-53dd6165b899.tar.gz
fb1871c134e079aa970c5317cad258540e2642cc7ff60a794c85651c85fc6fc4 guix-build-53dd6165b899/output/x86_64-apple-darwin/SHA256SUMS.part
b1f4c04f7dbd85798ed7cd76fd7948299dfb5653c6c68df0b0839be1c1b295dd guix-build-53dd6165b899/output/x86_64-apple-darwin/bitcoin-53dd6165b899-x86_64-apple-darwin-unsigned.dmg
f1f8b2774ba3028d6cdde509076614067a6affc0fa176fdbb03829109ae47022 guix-build-53dd6165b899/output/x86_64-apple-darwin/bitcoin-53dd6165b899-x86_64-apple-darwin-unsigned.tar.gz
20b9386a81e70f848db7c4f14bcb6cf2fbc1dc17aad1b9a2e6f04ac6fa86a4c9 guix-build-53dd6165b899/output/x86_64-apple-darwin/bitcoin-53dd6165b899-x86_64-apple-darwin.tar.gz
6f764a8fe876359d3c377fd934eb6595cc06d746980e07320565566abe9409f9 guix-build-53dd6165b899/output/x86_64-w64-mingw32/SHA256SUMS.part
446b24b2e01608d3dc09db29545db2cdb716c161b19356f4fae930d3ebb299f8 guix-build-53dd6165b899/output/x86_64-w64-mingw32/bitcoin-53dd6165b899-win64-debug.zip
d1660e6839a1358ae2d164958b551b81338cca9b740b3dc314397a35b17ba2a6 guix-build-53dd6165b899/output/x86_64-w64-mingw32/bitcoin-53dd6165b899-win64-setup-unsigned.exe
4ab0d948f3864f0d5d220c570b57a02e040f936a8f6b9dba3b4688c80667def9 guix-build-53dd6165b899/output/x86_64-w64-mingw32/bitcoin-53dd6165b899-win64-unsigned.tar.gz
481177329998fcbb71ab1fc9542a6ffcea623cebddf567981cfa76a7320ec115 guix-build-53dd6165b899/output/x86_64-w64-mingw32/bitcoin-53dd6165b899-win64.zip
```
Also naming of Windows artifacts has been improved.
ACKs for top commit:
gruve-p:
ACK https://github.com/bitcoin/bitcoin/pull/24549/commits/53dd6165b8994301d638298906b006032e0bbe48
achow101:
ACK 53dd6165b8994301d638298906b006032e0bbe48
Tree-SHA512: 2a60d8b33608aa18b8bc4376eccca813e482571138524b9e3f8f7ab9a085df79faa1f05bc6e07bbfaf01ddd7a3d17172a6061162ab055fb51ea01e8ccf3e4422
|
|
|
|
|
|
This change makes naming of the signed artifacts consistent across
different OSes, including Windows.
|
|
For example on Qubes OS one might want to use qubes-gpg-client-wrapper instead
|
|
|
|
If we are building for both macOS HOSTS, there's no need to check and
print that the SDK exists two times.
|
|
|
|
builds
bb12870bac230960bbe2df35f579570e465d8ea4 guix: only use native GCC 7 toolchain for Linux builds (fanquake)
Pull request description:
The macOS and Windows builds do not require a GCC 7 toolchain, and this
is actually causing build issues, i.e #24211. So switch to using a GCC
10 native toolchain for both. We can't switch to using a GCC 7+ native
toolchain for Linux without patching around glibc build issues (something
to look at for a future change).
Fixes #24211.
Guix Builds (on x86_64):
```bash
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
6fece1c8ed69bd724c76dfd768f03b1d43c9dfb1767f0fad743fb3e068ce8f7f guix-build-bb12870bac23/output/aarch64-linux-gnu/SHA256SUMS.part
555c1245581eff3013a2b56a3c7acb2923de9117dd5d108d4b7954e22f386dd1 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu-debug.tar.gz
e8f10a3791a4245566dab8253b76dcac3354bdfad9b9575743e937b52e364494 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu.tar.gz
c4339db89259e5a8e5666fc807c198a49162d500c2143f8a1dc86e6e7ca32bbc guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
6123682411cbb16bfa41d31cb4a9673744ad8c09b6f8586a4dfda08bc5f7a682 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
3dcd70f65dd3dfd7385ac6715244fb6c696257e622220310abae7279cbd2a3a4 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
47c5235cce1e3e2e88a461e48e54a29dffb7ac0d8b57955f4e6977273af113f3 guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
3584eec693b82b1b4e81094132a9a5e3ebf4a72a3c3cfe9914f24da62c2e2014 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
4a6e561abfc3f69e57a05fc278d75b6f58f82dec50b9b3acbf9745706be91d60 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
36a88bc090927493ed31635e1412dc01a81fb034d612c21ebb8b8602b7529ad2 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
b676ae5d37fdac267c82bcc57d76e25694f2ee2292f4d012648a0e496104f48d guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
00cad11e137030b1165437a91d4e9f2827b1abe54b5ff14709abeab0a33711b8 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
e715686469924452e1d35b93a64aa1fe1a85f5592757e8c24feda03db821fc48 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
20547e405ab88d84a228563ec7aaa965515b2714f65cc16f3288f8c885fe39db guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
707d2f14a7b73cc73710297d4d8f1773864c27a5e44ef45a97c0437ce4b291e0 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
6930ddbb6d5aebfd901ec30ad68749338265d43b73ad11015a320af37620d6e9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
2af7a3a50622ed1b2b271b655b8319f1b34f605f97381a66ee4625c1864cc3e2 guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
0e9e0878e446af7cd33782cf6d8a0cfb163b1ade7c87d5a6c6d7c315436bbb31 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
6c8994f11fadbfda8fc9c57deeaf67568b8368084c7959a56aabde89c99033d1 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
5214d7276030ea9721b2f8ed715308d2e3bf46158ddc030c7aa6f40098e3bc9b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
3a26d5e127fd2a723601fe14855b49cdb39c6fe6f407ca0d84a833eac6e4f47d guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
056a78e9f0aaed10aa7d734746d3adb27bb8ea0856829e7fedd2cb02f1234c62 guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
77a493b1e5409d422b2006d46bf9de1e151485fc65680e4d4dd07c28a0264c51 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
ccef5699e8a6153dbf35deb35f9d63439a5ef19234b9923840fe23780d41a983 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
0d64b0f1797f2b25eb7be65045f25b0297409250e8cc298a711a790b69534066 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
be7af6c54a52b58f696a9cabda21ec9c9748150b5874b21d4377199db7d70b7b guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
43a038525f2383fdb9ed7f0d0d709d7f353933f3bf066779bc27503282acc0c5 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
```
Guix Builds (on arm64 [skipping aarch64 HOST](https://github.com/bitcoin/bitcoin/issues/22458)):
```bash
root@3b26b9608b88:/bitcoin# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
9da540efe1e32ea74c1da5b9d17436d4de75f5d2b370d09cfdb06b044b3c816a guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
ade319778d571de3727600d2bbbccbdb35cdaa138f2a941e0be58d94899b2ce5 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
1bd1790c002a40b6db1378f5344e7e34df0cd0fd7f29dbe98db5397b52b9dde9 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
e457b5f6a30d713faa521969d2f8b56e3176f63c3e116c4d149b63f9fa0de80f guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
13f1b769c6af61ee4ef057f36715d63390c42ae29fae301f6cf65bdf644c6adf guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
278c0c1134aed42e575d8af2c328a26e88765f0b0686e06cea1c884bd821cd28 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
6b5602fe63b9fb546ba0897bf5563714fad83e4c3a0cb285ed4961ec1a5e488d guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
0292906278db266a67f5c780af12a2c91ec62007c6a72e6c8b37463701d838cb guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
83362d3d84b00674359df9300729e1a2b3cf14cf2b9b71b9bb46fe9610ab0e6d guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
3d5a538d28ccb97a239da358d1390add1d20e4c4d89e873a29aed3f92728e532 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
8eb7194b2019b5ddb12f88fee8a76d8923bd0883de817c3bf396ea16e5b0543e guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
3ec4a6cff3c974a1603276e5d75bc398522d543b6f9770a74c9a7acf6dc79c82 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
5b5eeb539362d6664a007d4856b5779a55ab714a96134749b5cfe870a4b5a7f9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
3201f796777a9fc029dddc085489afcf14b68cf77b0511d3b52cc336fb58baad guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
a46286b4d94de7189c93682d37c8bd3910f5ca2f612fc939b6e8ff3e56a4feff guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
e88fd7b312879fd7dc254674532535a05efaeb7167145541440289d45ec9ba17 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
31659aa39146ad25631cc2030b415bec6892fa9cffebfd8c6da2d9b0c552773b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
7a75daff1427fa8839f35ce84fda19c95a6c82365937dc67f988bc8853fc1948 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
bbc0c2fc3b142191ea5403095b9da1691073375b178e06eea68736c3a4b8477f guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
121fc43297b045af7fbe3904a1df94ff55e4908344eb97d48e50091216ecfdc2 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
b2fbab5153a52f82390c67e6a14187eb791a3f052cedca0183b81e939932618f guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
4ffca23b6d93ed888b7ac5a54eb1c06bd04f304f336361655033796f3117d145 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
b226fe0f139bc2c4773e67784fc928874cba2ec0322d5da9a60fe5e6fd440f95 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
a435f9e1637281a8c6b174ec5dbc729ae35cca64928a42e435d57fb3292b9f3f guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
```
ACKs for top commit:
dongcarl:
Code Review ACK bb12870bac230960bbe2df35f579570e465d8ea4
hebasto:
ACK bb12870bac230960bbe2df35f579570e465d8ea4, I have reviewed the code and it looks OK, I agree it can be merged.
Tree-SHA512: 304d1e76b5e74e4f5a946ae29208d695f558891eca6e711c0cb528133896ceca2147f1cdc4c39e5155ef90652555c1e6de52efcb93f1124bf2dde8d9201b630d
|
|
|
|
This should improve support for signing for M1 binaries.
|
|
This should also allow re-enabling previously failing tests.
|
|
The macOS and Windows builds do not require a GCC 7 toolchain, and this
is actually causing build issues, i.e #24211. So switch to using a GCC
10 native toolchain for both.
|
|
This deduplicates some code, and enforces consistency of the time
machine configuration between scripts.
|
|
The time machines should be updated in lockstep.
|
|
|
|
|
|
|
|
c73415bc10c1baa7988e1c55a0e9201df73a6c22 build: Fix xargs warnings for Guix builds (Hennadii Stepanov)
Pull request description:
On master (e3ce019667fba2ec50a59814a26566fb67fa9125) there are warnings in `./contrib/guix/guix-build` logs:
```
xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value
```
This PR fixes such warnings.
ACKs for top commit:
prusnak:
utACK c73415b
Tree-SHA512: a7b55f59afbb19b78f795cea64acacf29903cfcd5fd7c37a771b073c1f2ff54555a26f3d00c1c73a8ef588396217ddf598e32b2ae961559042cc051b0aad162a
|
|
|
|
This allows for building with newer targets, like arm64-apple-darwin, due to
having a newer bundled config.guess and config.sub.
|
|
This should be sufficient to support building for Apple ARM when
cross-compiling.
|
|
|
|
======================================================================
ERROR: test_revocation_mode_soft (tests.test_validate.ValidateTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/test_validate.py", line 85, in test_revocation_mode_soft
validate_path(context, path)
File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 50, in validate_path
return _validate_path(validation_context, path)
File "/tmp/guix-build-python-certvalidator-0.1-1.e5bdb4b.drv-0/source/tests/../certvalidator/validate.py", line 358, in _validate_path
raise PathValidationError(pretty_message(
certvalidator.errors.PathValidationError: The path could not be validated because the end-entity certificate expired 2022-01-14 12:00:00Z
|
|
The version-1.4.0 branch no-longer exists, and will be branched off
master again shortly.
|
|
|
|
Upstream python requests is now modern enough to be used as a dependency for
signapple. Which requires requests>=2.25.1.
|
|
It is the exact same package definition.
|
|
Our patch is now used upstream.
|
|
This currently points to the version-1.4.0 branch.
|
|
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
|
|
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py insert contrib/guix/libexec/build.sh
./contrib/devtools/copyright_header.py insert contrib/guix/libexec/codesign.sh
./contrib/devtools/copyright_header.py insert contrib/tracing/log_raw_p2p_msgs.py
./contrib/devtools/copyright_header.py insert contrib/tracing/log_utxocache_flush.py
./contrib/devtools/copyright_header.py insert contrib/tracing/p2p_monitor.py
./contrib/devtools/copyright_header.py insert test/lint/lint-files.sh
-END VERIFY SCRIPT-
|
|
maintainability
2f356a0ca8b080c860c8924d201b98f1f9fa0ad5 scripted-diff: Drop Darwin version for better maintainability (Hennadii Stepanov)
Pull request description:
After this PR, any macOS tools version bumping in the future will touch fewer files in the repo.
Pointing a Darwin version for the `--host` system does not matter for the following reasons:
- in terms of the resulted binaries, we should only care about the minimum supported macOS version which is a separated parameter in our build system.
- in terms of the build system itself, the usage of the `$(host)` variable is self-consistent enough. Btw `$(host_os)` value already has the version dropped:
```
$ make -C depends --no-print-directory print-host_os HOST=x86_64-apple-darwin19
host_os=darwin
```
ACKs for top commit:
gruve-p:
ACK https://github.com/bitcoin/bitcoin/pull/23585/commits/2f356a0ca8b080c860c8924d201b98f1f9fa0ad5
promag:
ACK 2f356a0ca8b080c860c8924d201b98f1f9fa0ad5.
fanquake:
ACK 2f356a0ca8b080c860c8924d201b98f1f9fa0ad5
Tree-SHA512: 374896ab0ba02b0d8b4b21431fe963bd213b0d09586e0898c13a4c5fa294c1b693f1b2c92880c245c4157c14217b4825b36522f461930477f4d2a727086ebb2a
|
|
|
|
`shellcheck` tool
a3f61676e83e908da67664c6163db61d1d11c5d2 test: Make more shell scripts verifiable by the `shellcheck` tool (Hennadii Stepanov)
Pull request description:
Some shell scripts from `contrib/guix` and `contrib/shell` are not verifiable by the `shellcheck` tool for the following reasons:
- they have no extension (see https://github.com/bitcoin/bitcoin/pull/21375/commits/4eccf063b252bfe256cf72d363a24cf0183e926e from bitcoin/bitcoin#21375)
- they have the `.bash` extension while `.sh` is expected
This PR adds these scripts to the input for the `shellcheck` tool, and it fixes discovered `shellcheck` warnings.
ACKs for top commit:
dongcarl:
Code Review ACK a3f61676e83e908da67664c6163db61d1d11c5d2, this is a good robustness improvement for our shell scripts.
jamesob:
crACK https://github.com/bitcoin/bitcoin/pull/23506/commits/a3f61676e83e908da67664c6163db61d1d11c5d2
Tree-SHA512: 6703f5369d9c04c1a174491f381afa5ec2cc4d37321c1b93615abcdde4dfd3caae82868b699c25b72132d8c8c6f2e9cf24d38eb180ed4d0f0584d8c282e58935
|
|
|
|
-BEGIN VERIFY SCRIPT-
sed -i 's/darwin19/darwin/g' $(git grep --files-with-matches 'darwin19')
-END VERIFY SCRIPT-
|
|
From what I can see the only platform this drops support for is CentOS
7. CentOS 7 reached the end of it's "full update" support at the end of
2020. It does receive maintenance updates until 2024, however I don't
think supporting glibc 2.17 until 2024 is realistic. Note that anyone
wanting to self-compile and target a glibc 2.17 runtime could build with
--disable-threadlocal.
glibc 2.18 was released in August 2013.
https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html
|
|
`--with-system-univalue`
0f95247246344510c9a51810c14c633abb382e95 Integrate univalue into our buildsystem (Cory Fields)
9b49ed656fb2b687fbbe8a3236d18285957eee16 Squashed 'src/univalue/' changes from 98fadc0909..a44caf65fe (fanquake)
Pull request description:
This PR more tightly integrates building Univalue into our build system. This follows the same approach we use for [LevelDB](https://github.com/bitcoin-core/leveldb/), ([`Makefile.leveldb.include`](https://github.com/bitcoin/bitcoin/blob/master/src/Makefile.leveldb.include)), and [CRC32C](https://github.com/bitcoin-core/crc32c) ([`Makefile.crc32c.include`](https://github.com/bitcoin/bitcoin/blob/master/src/Makefile.crc32c.include)), and will be the same approach we use for [minisketch](https://github.com/sipa/minisketch); see #23114.
This approach yields a number of benefits, including:
* Faster configuration due to one less subconfigure being run during `./configure` i.e 22s with this PR vs 26s
* Faster autoconf i.e 13s with this PR vs 17s
* Improved caching
* No more issues with compiler flags i.e https://github.com/bitcoin/bitcoin/pull/12467
* More direct control means we can build exactly the objects we want
There might be one argument against making this change, which is that builders should have the option to use "proper shared/system libraries". However, I think that falls down for a few reasons. The first being that we already don't support building with a number of system libraries (secp256k1, leveldb, crc32c); some for good reason. Univalue is really the odd one out at the moment.
Note that the only fork of Core I'm aware of, that actively patches in support for using system libs, also explicitly marks them as ["DANGEROUS"](https://github.com/bitcoinknots/bitcoin/blob/a886811721ce66eb586871706b3f5dd27518ac3e/configure.ac#L1430) and ["NOT SUPPORTED"](https://github.com/bitcoinknots/bitcoin/blob/a886811721ce66eb586871706b3f5dd27518ac3e/configure.ac#L1312). So it would seem they exist more to satisfy a distro requirement, as opposed to something that anyone should, or would actually use in practice.
PRs like #22412 highlight the "issue" with us operating with our own Univalue fork, where we actively fix bugs, and make improvements, when upstream (https://github.com/jgarzik/univalue) may not be taking those improvements, and by all accounts, is not currently actively maintained. Bitcoin Core should not be hamstrung into not being able to fix bugs in a library, and/or have to litter our source with "workarounds", i.e #22412, for bugs we've already fixed, based on the fact that an upstream project is not actively being maintained. Allowing builders to use system libs is really only exacerbating this problem, with little benefit to our project. Bitcoin Core is not quite like your average piece of distro packaged software.
There is the potential for us to give the same treatment to libsecp256k1, however it seems doing that is currently less straightforward.
ACKs for top commit:
dongcarl:
ACK 0f95247246 less my comment above, always nice to have an include-able `sources.mk` which makes integration easier.
theuni:
ACK 0f95247246344510c9a51810c14c633abb382e95. Thanks fanquake for keeping this going.
Tree-SHA512: a7f2e41ee7cba06ae72388638e86b264eca1b9a8b81c15d1d7b45df960c88c3b91578b4ade020f8cc61d75cf8d16914575f9a78fa4cef9c12be63504ed804b99
|
|
I used Guix's values for the powerpc64(le) dynamic linkers, and the
/lib-prefix seems to be a Guix-ism rather than standard. The standard
path for the linker-loaders start with /lib64.
I've taken the new loader values from SYSDEP_KNOWN_INTERPRETER_NAMES in
glibc's sysdeps/unix/sysv/linux/powerpc/ldconfig.h file.
For future reference, loader path values can also be found on glibc's
website: https://sourceware.org/glibc/wiki/ABIList?action=recall&rev=16
|
|
This addresses issues like the one in #12467, where some of our compiler flags
end up being dropped during the subconfigure of Univalue. Specifically, we're
still using the compiler-default c++ version rather than forcing c++17.
We can drop the need subconfigure completely in favor of a tighter build
integration, where the sources are listed separately from the build recipes,
so that they may be included directly by upstream projects. This is
similar to the way leveldb build integration works in Core.
Core benefits of this approach include:
- Better caching (for ex. ccache and autoconf)
- No need for a slow subconfigure
- Faster autoconf
- No more missing compile flags
- Compile only the objects needed
There are no benefits to Univalue itself that I can think of. These changes
should be a no-op there, and to downstreams as well until they take advantage
of the new sources.mk.
This also removes the option to use an external univalue to avoid similar ABI
issues with mystery binaries.
Co-authored-by: fanquake <fanquake@gmail.com>
|
|
a43b8e955558483d8893996cc3a67bc74cbaf358 build: set OSX_MIN_VERSION to 10.15 (fanquake)
Pull request description:
Taken out of #20744, as splitting up some of the build changes was mentioned [here](https://github.com/bitcoin/bitcoin/pull/22937#discussion_r707303172).
This is required to use `std::filesystem` on macOS, as support for it only landed in the libc++.dylib shipped with 10.15. So if we want to move to using `std::filesystem` for `23.0`, this bump is required.
See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes
> Clang now supports the C++17 \<filesystem\> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
macOS 10.15 was released in October 2019. macOS OS's seem to have a life of about 3 years, so it's possible that 10.14 will become officially unsupported by the end of 2021 and prior to the release of 23.0.
Guix builds:
```bash
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
abc8b749be65f1339dcdf44bd1ed6ade2533b8e3b5030ad1dde0ae0cede78136 guix-build-a43b8e955558/output/dist-archive/bitcoin-a43b8e955558.tar.gz
1edcc301eb4c02f3baa379beb8d4c78e661abc24a293813bc9d900cf7255b790 guix-build-a43b8e955558/output/x86_64-apple-darwin19/SHA256SUMS.part
e9dbb5594a664519da778dde9ed861c3f0f631525672e17a67eeda599f16ff44 guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.dmg
11b23a17c630dddc7594c25625eea3de42db50f355733b9ce9ade2d8eba3a8f3 guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.tar.gz
257ba64a327927f94d9aa0a68da3a2695cf880b3ed1a0113c5a966dcc426eb5e guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx64.tar.gz
```
ACKs for top commit:
hebasto:
ACK a43b8e955558483d8893996cc3a67bc74cbaf358
jarolrod:
ACK a43b8e9
Tree-SHA512: 9ac77be7cb56c068578860a3b2b8b7487c9e18b71b14aedd77a9c663f5d4bb19756d551770c02ddd12f1797beea5757b261588e7b67fb53509bb998ee8022369
|
|
|
|
This is required to use std::filesystem on macOS as support for it only
landed in the libc++ dylib shipped with 10.15.
See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes
Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
|
|
Previously, if the builder exported $VERSION in their environment (as
past Gitian-building docs told them to), but their HEAD does not
actually point to v$VERSION, their build outputs will differ from those
of other builders.
This is because the contrib/guix/guix-* scripts only ever act on the
current git worktree, and does not try to check out $VERSION if $VERSION
is set in the environment.
Setting $VERSION only makes the scripts pretend like the current
worktree is $VERSION.
This problem was seen in jonatack's attestation for all.SHA256SUMS,
where only his bitcoin-22.0rc3-osx-signed.dmg differed from everyone
else's.
Here is my deduced sequence of events:
1. Aug 27th: He guix-builds 22.0rc3 and uploads his attestations up to
guix.sigs
2. Aug 30th, sometime after POSIX time 1630310848: he pulls the latest
changes from master in the same worktree where he guix-built 22.0rc3
and ends up at 7be143a960e2
3. Aug 30th, sometime before POSIX time 1630315907: With his worktree
still on 7be143a960e2, he guix-codesigns. Normally, this would result
in outputs going in guix-build-7be143a960e2, but he had
VERSION=22.0rc3 in his environment, so the guix-* scripts pretended
like he was building 22.0rc3, and used 22.0rc3's guix-build directory
to locate un-codesigned outputs and dump codesigned ones.
However, our SOURCE_DATE_EPOCH defaults to the POSIX time of HEAD
(7be143a960e2), which made all timestamps in the resulting codesigned
DMG 1630310848, 7be143a960e2's POSIX timestamp. This differs from the
POSIX timestamp of 22.0rc3, which is 1630348517. Note that the
windows codesigning procedure does not consider SOURCE_DATE_EPOCH.
We resolve this by only allowing VERSION overrides via the FORCE_VERSION
environment variable.
|
|
The SHA256SUMS file can be used in a sha256sum -c command to verify
downloaded binaries. However users are likely to download just a single
file and not place this file in the correct directory relative to the
SHA256SUMS file for the simple verification command to work. By not
including the directory name in the SHA256SUMS file, it will be easier
for users to verify downloaded binaries.
Co-authored-by: Carl Dong <contact@carldong.me>
|