Commit graph

214 commits

Author SHA1 Message Date
Hennadii Stepanov
97af652788
guix: Drop code for the unsupported i686-linux-gnu host
Now GUIX build for the `i686-linux-gnu` host is broken, and there are no
plans to re-add it.
2022-03-22 14:20:01 +01:00
fanquake
979271a5d9
macdeploy: remove unused detached-sig-apply
Signature application is now done with signapple.
2022-03-17 12:38:36 +00:00
Hennadii Stepanov
1f4801b6b1
doc, guix: Include arm64-apple-darwin into codesigned archs 2022-03-17 08:55:07 +01:00
fanquake
d6cb4e8ff0
Merge bitcoin/bitcoin#24549: guix: Use $HOST instead of generic osx{64} for macOS artifacts
53dd6165b8 guix: Use "win64" for Windows artifacts consistently (Hennadii Stepanov)
4b4b04a66d guix: Drop "-signed" suffix for signed macOS .dmg files (Hennadii Stepanov)
933a43018f guix: Use $HOST instead of generic osx{64} for macOS artifacts (Hennadii Stepanov)

Pull request description:

  On master (f94784f5bc) 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 53dd6165b8
  achow101:
    ACK 53dd6165b8

Tree-SHA512: 2a60d8b33608aa18b8bc4376eccca813e482571138524b9e3f8f7ab9a085df79faa1f05bc6e07bbfaf01ddd7a3d17172a6061162ab055fb51ea01e8ccf3e4422
2022-03-16 20:41:36 +00:00
Andrew Chow
3c74f775ac Update signapple for platform identifier fix 2022-03-16 09:10:50 -04:00
Hennadii Stepanov
53dd6165b8
guix: Use "win64" for Windows artifacts consistently 2022-03-16 12:03:22 +01:00
Hennadii Stepanov
4b4b04a66d
guix: Drop "-signed" suffix for signed macOS .dmg files
This change makes naming of the signed artifacts consistent across
different OSes, including Windows.
2022-03-16 07:37:35 +01:00
Hennadii Stepanov
933a43018f
guix: Use $HOST instead of generic osx{64} for macOS artifacts 2022-03-13 11:04:52 +01:00
fanquake
e8023100be
guix: only check for the macOS SDK once
If we are building for both macOS HOSTS, there's no need to check and
print that the SDK exists two times.
2022-03-10 11:14:26 +00:00
Andrew Chow
6e9308c6d4 guix: use latest signapple 2022-03-09 10:38:24 -05:00
fanquake
fe5fdbd687
Merge bitcoin/bitcoin#24495: guix: only use native GCC 7 toolchain for Linux builds
bb12870bac 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 bb12870bac
  hebasto:
    ACK bb12870bac, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 304d1e76b5e74e4f5a946ae29208d695f558891eca6e711c0cb528133896ceca2147f1cdc4c39e5155ef90652555c1e6de52efcb93f1124bf2dde8d9201b630d
2022-03-09 10:24:53 +00:00
fanquake
40894f6771
guix: use latest upstream signapple
This should improve support for signing for M1 binaries.
2022-03-08 16:09:24 +00:00
fanquake
cbc3f63f41
guix: use latest upstream python-certvalidator
This should also allow re-enabling previously failing tests.
2022-03-08 16:09:24 +00:00
fanquake
bb12870bac
guix: only use native GCC 7 toolchain for Linux builds
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.
2022-03-07 15:18:41 +00:00
laanwj
6833aceac9 build: Move guix time machine to prelude
This deduplicates some code, and enforces consistency of the time
machine configuration between scripts.
2022-03-07 11:08:46 +01:00
fanquake
29862bdd40
guix: use same commit for codesigning time-machine
The time machines should be updated in lockstep.
2022-03-06 10:18:22 +00:00
Jon Atack
48742693ac
Replace "can not" with "cannot" in docs, user messages, and tests 2022-02-21 19:07:29 +01:00
Hennadii Stepanov
b3617a99c1
build: Point Guix to recent commit on the master branch 2022-02-15 15:29:00 +02:00
Hennadii Stepanov
7f2f35fe20
build: Fix gcc-cross-x86_64-w64-mingw32-10.3.0 in Guix 2022-02-15 15:28:31 +02:00
fanquake
5a51815275
Merge bitcoin/bitcoin#24129: build: Fix xargs warnings for Guix builds
c73415bc10 build: Fix xargs warnings for Guix builds (Hennadii Stepanov)

Pull request description:

  On master (e3ce019667) 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
2022-01-31 14:07:43 +08:00
fanquake
0628815e95
guix: add arm64-apple-darwin triplet 2022-01-26 17:32:46 +08:00
fanquake
ca47f2e211
guix: use autoconf 2.71
This allows for building with newer targets, like arm64-apple-darwin, due to
having a newer bundled config.guess and config.sub.
2022-01-26 17:32:46 +08:00
fanquake
446e73cc0b
build: use macOS 11 SDK (Xcode 12.2)
This should be sufficient to support building for Apple ARM when
cross-compiling.
2022-01-26 17:28:16 +08:00
Hennadii Stepanov
c73415bc10
build: Fix xargs warnings for Guix builds 2022-01-22 23:18:41 +02:00
fanquake
8588591965
guix: ignore additioanl failing certvalidator test
======================================================================
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
2022-01-20 14:50:17 +08:00
fanquake
e8a6c888e4
build: point to latest commit on the master branch
The version-1.4.0 branch no-longer exists, and will be branched off
master again shortly.
2022-01-20 13:20:04 +08:00
Hennadii Stepanov
a229451590
build: Point Guix to the current top of the "version-1.4.0" branch 2022-01-11 19:21:05 +02:00
fanquake
84f9931cb4
guix: use upstream python-requests (2.26.0)
Upstream python requests is now modern enough to be used as a dependency for
signapple. Which requires requests>=2.25.1.
2022-01-05 10:32:24 +08:00
fanquake
187dc1ec0c
build: use python-asn1crypto from upstream
It is the exact same package definition.
2022-01-05 10:32:24 +08:00
fanquake
b1e8f0b96e
guix: use uptream nsis-x86_64
Our patch is now used upstream.
2022-01-05 10:32:24 +08:00
fanquake
3ccfba1c7f
guix: use GCC 10 (over GCC 8) to build releases
This currently points to the version-1.4.0 branch.
2022-01-05 10:32:19 +08:00
fanquake
e09773d20a
build: use a static .tiff for macOS .dmg over generating
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2022-01-02 15:38:19 +08:00
Hennadii Stepanov
1362d6173f
scripted-diff: Insert missed copyright headers
-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-
2021-12-30 19:46:41 +02:00
fanquake
1b76b18f8a
Merge bitcoin/bitcoin#23585: scripted-diff: Drop Darwin version for better maintainability
2f356a0ca8 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 2f356a0ca8
  promag:
    ACK 2f356a0ca8.
  fanquake:
    ACK 2f356a0ca8

Tree-SHA512: 374896ab0ba02b0d8b4b21431fe963bd213b0d09586e0898c13a4c5fa294c1b693f1b2c92880c245c4157c14217b4825b36522f461930477f4d2a727086ebb2a
2021-12-09 16:13:33 +08:00
Hennadii Stepanov
5202bd1dc0
test: Bump shellcheck version to 0.8.0 2021-11-30 21:15:40 +02:00
W. J. van der Laan
c5712d172e
Merge bitcoin/bitcoin#23506: test: Make more shell scripts verifiable by the shellcheck tool
a3f61676e8 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 4eccf063b2 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 a3f61676e8, this is a good robustness improvement for our shell scripts.
  jamesob:
    crACK a3f61676e8

Tree-SHA512: 6703f5369d9c04c1a174491f381afa5ec2cc4d37321c1b93615abcdde4dfd3caae82868b699c25b72132d8c8c6f2e9cf24d38eb180ed4d0f0584d8c282e58935
2021-11-30 20:05:44 +01:00
Hennadii Stepanov
a3f61676e8
test: Make more shell scripts verifiable by the shellcheck tool 2021-11-28 14:08:54 +02:00
Hennadii Stepanov
2f356a0ca8
scripted-diff: Drop Darwin version for better maintainability
-BEGIN VERIFY SCRIPT-
sed -i 's/darwin19/darwin/g' $(git grep --files-with-matches 'darwin19')
-END VERIFY SCRIPT-
2021-11-25 01:12:46 +02:00
fanquake
dbfca4a815
build: require glibc 2.18+ for release builds
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
2021-11-16 07:51:24 +08:00
fanquake
a7f28af437
Merge bitcoin/bitcoin#22646: build: tighter Univalue integration, remove --with-system-univalue
0f95247246 Integrate univalue into our buildsystem (Cory Fields)
9b49ed656f 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"](a886811721/configure.ac (L1430)) and ["NOT SUPPORTED"](a886811721/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 0f95247246. Thanks fanquake for keeping this going.

Tree-SHA512: a7f2e41ee7cba06ae72388638e86b264eca1b9a8b81c15d1d7b45df960c88c3b91578b4ade020f8cc61d75cf8d16914575f9a78fa4cef9c12be63504ed804b99
2021-10-20 11:01:38 +08:00
Carl Dong
b96adcbfae guix: Fix powerpc64(le) dynamic linker name
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
2021-10-13 08:38:40 -04:00
Cory Fields
0f95247246
Integrate univalue into our buildsystem
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>
2021-10-11 20:46:25 +08:00
fanquake
8f022a59b8
Merge bitcoin/bitcoin#22993: build: set OSX_MIN_VERSION to 10.15
a43b8e9555 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 a43b8e9555
  jarolrod:
    ACK a43b8e9

Tree-SHA512: 9ac77be7cb56c068578860a3b2b8b7487c9e18b71b14aedd77a9c663f5d4bb19756d551770c02ddd12f1797beea5757b261588e7b67fb53509bb998ee8022369
2021-09-21 15:37:12 +08:00
Jeremy Rand
9bdda50151
Enable TLS in links in documentation 2021-09-16 22:00:20 +00:00
fanquake
a43b8e9555
build: set OSX_MIN_VERSION to 10.15
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.
2021-09-16 17:50:19 +08:00
Carl Dong
96cc6bb04f guix/prelude: Override VERSION with FORCE_VERSION
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 7be143a960

3. Aug 30th, sometime before POSIX time 1630315907: With his worktree
   still on 7be143a960, 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
   (7be143a960), 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.
2021-08-31 10:57:04 -04:00
Andrew Chow
fb17c99e35 guix: Don't include directory name in SHA256SUMS
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>
2021-08-18 20:07:32 -04:00
fanquake
8193294cab
Merge bitcoin/bitcoin#22642: release: Release with separate SHA256SUMS and sig files
90b3e482e9 release: Release with separate SHA256SUMS and sig files (Carl Dong)

Pull request description:

  This allows us to:
  - remove the rfc4880 EOL hacks, and
  - release with a SHA256SUMS.asc file that's a combination of all signer signatures

ACKs for top commit:
  achow101:
    ACK 90b3e482e9
  laanwj:
    Concept and code review ACK 90b3e482e9

Tree-SHA512: 5d5086063d303aa0cbd590e5fdf2ae8f555e25f4e43bf67545e33384449b990e94834c711622530ad0eb3dcc83f52746884a5081dadb0acff8dd799cfadafac7
2021-08-09 16:19:49 +08:00
Carl Dong
d451b60d22 guix-verify: Non-zero exit code when anything fails
Previously, if verification fails, the correct message will be printed,
but the exit code would still be 0.
2021-08-05 19:05:16 -04:00
Carl Dong
90b3e482e9 release: Release with separate SHA256SUMS and sig files
This allows us to remove the rfc4880 EOL hacks and release with a
SHA256SUMS.asc file that's a combination of all signer signatures.
2021-08-05 16:58:54 -04:00