-
Notifications
You must be signed in to change notification settings - Fork 38.7k
guix: Notarize MacOS app bundle and codesign all MacOS and Windows binaries #31407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31407. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. |
27cf5a3 to
ba67aa6
Compare
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
|
It's unclear to me whether the standalone binaries need to be notarized too. This is currently not implemented, but should not be that much more complicated to do. |
Are they being codesigned already? I was getting the v28 binaries from bitcoincore.org instantly killed in Sonoma 14.6.1 when trying to run them in the terminal today. Took me a while to understand what was happening because the processes are killed without a security message or anything like the "nice" gatekeeper popup. Codesigning each on my own solved the issue. |
This PR codesigns them. |
Do you mean the binaries in |
Sjors
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In order to properly test this, you would have to provide the detached signatures and staple for this PR.
Reviewers then need to download it from some website. If you obtain the file via SSH from your own guix machine, macOS tries to be smart about it (at least my Intel mac used to do that).
HOSTS="x86_64-w64-mingw32 x86_64-apple-darwin arm64-apple-darwin" ./contrib/guix/guix-build
...
find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sumGuix hashes for macOS and Windows, before code-sign:
arm_64
e1d50cc856902e31e966f0e0d50ac732a6d8c7c080e9f9d50ab229d7503bd601 guix-build-ba67aa681e9b/output/arm64-apple-darwin/SHA256SUMS.part
462617a5476e946e10be8624d73b531041c8abf4628a35038d65b80534de768a guix-build-ba67aa681e9b/output/arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-codesigning.tar.gz
2583965a7ecbcf48946bcb7676cf6b39a04cee44b34c6292d81cbb825f0d35df guix-build-ba67aa681e9b/output/arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-unsigned.tar.gz
96f25391136c5e3f77b6dfb4e027aa1f43ccc91edf0237b9ec0c7b01a64b32f3 guix-build-ba67aa681e9b/output/arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-unsigned.zip
74d95312c8a33c65a1ea55c1d8392c58d77f78251af551926d4e913f12b45cac guix-build-ba67aa681e9b/output/dist-archive/bitcoin-ba67aa681e9b.tar.gz
1f457247d24466bc7f8faeb7f8faec80cadfed66ef68354c77a36ceba1127799 guix-build-ba67aa681e9b/output/x86_64-apple-darwin/SHA256SUMS.part
eafb67c89ed27e1dd216e2d300829c5bb22fbe6999839189441e3d64080b65f5 guix-build-ba67aa681e9b/output/x86_64-apple-darwin/bitcoin-ba67aa681e9b-x86_64-apple-darwin-codesigning.tar.gz
0d9f7d7ef1f71b4c3072a0af44b374caf0a4646f4ba143f5440bbcf52c8fe614 guix-build-ba67aa681e9b/output/x86_64-apple-darwin/bitcoin-ba67aa681e9b-x86_64-apple-darwin-unsigned.tar.gz
a0337d08f8145ed4c8548086752b8c32766db1a0483573b44f95134cba9f3913 guix-build-ba67aa681e9b/output/x86_64-apple-darwin/bitcoin-ba67aa681e9b-x86_64-apple-darwin-unsigned.zip
635b1e00cd6792faae60085f4d0ec71bb010756caa40f7241b05e1e3ef6aa18a guix-build-ba67aa681e9b/output/x86_64-w64-mingw32/SHA256SUMS.part
96326f5755ee14d74b74addc740e8e89c49ee65e4f56746a018e3aba39025642 guix-build-ba67aa681e9b/output/x86_64-w64-mingw32/bitcoin-ba67aa681e9b-win64-codesigning.tar.gz
0d1f7d39c4fcee02d763d85c7f14fe28233f4fe357192e54a227cb54843a8a0b guix-build-ba67aa681e9b/output/x86_64-w64-mingw32/bitcoin-ba67aa681e9b-win64-debug.zip
b3531bbeccd65d52cb73be3edc38f3aa4b1abe6373ad4e153e4c036a78f29b18 guix-build-ba67aa681e9b/output/x86_64-w64-mingw32/bitcoin-ba67aa681e9b-win64-setup-unsigned.exe
e0a39aad96ac6fa7bf0957119bfca2a527e66f9991a71e84cc5c90864a9c833d guix-build-ba67aa681e9b/output/x86_64-w64-mingw32/bitcoin-ba67aa681e9b-win64-unsigned.zip
contrib/guix/guix-codesign
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
912377a: maybe call it -maintainers to reduce confusion with -unsigned?
A more generic term might also be handy in the future if e.g. we want to include an OTS timestamp that commits to the (pre codesigning, pgp signed?) guix hashes (with all architectures).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The codesigners are not necessarily maintainers. I don't think it's useful to make this broad when it has been extremely specific for codesigning for more than a decade.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that seems something to consider when and if we cross that bridge. Currently an .ots is already generated for the final SHA256SUMS at release time, not sure to move that to another phase in the process.
|
@fanquake @pinheadmz Can one of you please do a build and make detached sigs for this PR for testing? |
| || ( rm -f "${OUTDIR}/${DISTNAME}-win64-codesigning.tar.gz" && exit 1 ) | ||
| ) | ||
| ;; | ||
| *darwin*) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In commit "build: Include all MacOS binaries for codesigning"
What is the effect of moving this code down? Will it pick up more artifacts that have been produced in between?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this makes it include the directory containing the binaries in the codesigning tarball.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm hitting an error with guix-codesign. I am just focusing on HOSTS=arm64-apple-darwin, guix build of: ba67aa681e9b28a9992636fec4e06b26b3c3422e
SHASUMS.part:
462617a5476e946e10be8624d73b531041c8abf4628a35038d65b80534de768a arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-codesigning.tar.gz
2583965a7ecbcf48946bcb7676cf6b39a04cee44b34c6292d81cbb825f0d35df arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-unsigned.tar.gz
96f25391136c5e3f77b6dfb4e027aa1f43ccc91edf0237b9ec0c7b01a64b32f3 arm64-apple-darwin/bitcoin-ba67aa681e9b-arm64-apple-darwin-unsigned.zip
74d95312c8a33c65a1ea55c1d8392c58d77f78251af551926d4e913f12b45cac dist-archive/bitcoin-ba67aa681e9b.tar.gz
Detached code signatures (maybe):
signature-osx-executable.tar.gz
However, attaching them is an issue:
zip@zip:~/bitcoin$ DETACHED_SIGS_REPO=../bitcoin-detached-sigs HOSTS=arm64-apple-darwin ./contrib/guix/guix-codesign
Checking that we can connect to the guix-daemon...
Hint: If this hangs, you may want to try turning your guix-daemon off and on
again.
INFO: Codesigning ba67aa681e9b for platform triple arm64-apple-darwin:
...using reference timestamp: 1733177891
...from worktree directory: '/home/zip/bitcoin'
...bind-mounted in container to: '/bitcoin'
...in build directory: '/home/zip/bitcoin/guix-build-ba67aa681e9b/distsrc-ba67aa681e9b-arm64-apple-darwin-codesigned'
...bind-mounted in container to: '/distsrc-base/distsrc-ba67aa681e9b-arm64-apple-darwin-codesigned'
...outputting in: '/home/zip/bitcoin/guix-build-ba67aa681e9b/output/arm64-apple-darwin-codesigned'
...bind-mounted in container to: '/outdir-base/arm64-apple-darwin-codesigned'
...using detached signatures in: '../bitcoin-detached-sigs'
...bind-mounted in container to: '/detached-sigs'
guix shell: error: symlink: No such file or directory: "/home/zip/bitcoin/guix-build-ba67aa681e9b/var/profiles/arm64-apple-darwin-codesigned"
Do I need to have bitcoin-detached-sigs checked out on a branch name that matches the build version?
|
I got one step further by creating the directory its looking for in the last error:
this broke somewhere new... |
ba67aa6 to
46e44a3
Compare
|
Pushed a fix for the wrong architecture detection. |
|
Guix hashes for macOS and Windows, before code-sign: |
hebasto
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK 46e44a35b85830a60cf622e039db19ccf1989008.
I have reviewed the code and it looks OK. However, I am not entirely confident in 8400ada306063f1412ef3ace57e255783db879ef due to my lack of familiarity with the signapple tool.
Additionally, I did not review the changes to the signapple tool itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 46e44a35b85830a60cf622e039db19ccf1989008
Tested on arm64/macos, but did not review code or test other platforms. This updated process closes the referenced issues and successfully creates signed binaries for bitcoind, bitcoin-cli and all other utilities including Bitcoin-Qt.
Detached sigs (tar xf and commit locally in bitcoin-detached-sigs to test):
Attestations:
all.SHA256SUMS
504b22387c634bcf78846830b8f53359e54d526b2f0e976631a0bbd293f0353c bitcoin-46e44a35b858-arm64-apple-darwin.tar.gz
787fd1bd670ce5b903d174ee715a532365c8cc426278020877ef1616c8befa57 bitcoin-46e44a35b858-arm64-apple-darwin.zip
3a911d1a009222c042a84864dccd58462ce3167ea5f407830bf98d370fa356e4 bitcoin-46e44a35b858-arm64-apple-darwin-codesigning.tar.gz
2b1c4d096f27ae2a650ce3fe954304c53bb51b7ddac5dd533cabcc862a75f684 bitcoin-46e44a35b858-arm64-apple-darwin-unsigned.tar.gz
18c4fe6b004b0b9685671d1a60b146ce00bafe47591ff337ad3af08d8ea55e42 bitcoin-46e44a35b858-arm64-apple-darwin-unsigned.zip
7f92d478c82e193da4578c19e37fa7bebed7b23eb9745ace8679f1503a2d25ed bitcoin-46e44a35b858-codesignatures-001c1794ae89.tar.gz
e920044a3cf85974b337a5a7e13c35cf8633d5083cb9ab8ba46c3b0f24019a1c bitcoin-46e44a35b858.tar.gz
noncodesigned.SHA256SUMS
3a911d1a009222c042a84864dccd58462ce3167ea5f407830bf98d370fa356e4 bitcoin-46e44a35b858-arm64-apple-darwin-codesigning.tar.gz
2b1c4d096f27ae2a650ce3fe954304c53bb51b7ddac5dd533cabcc862a75f684 bitcoin-46e44a35b858-arm64-apple-darwin-unsigned.tar.gz
18c4fe6b004b0b9685671d1a60b146ce00bafe47591ff337ad3af08d8ea55e42 bitcoin-46e44a35b858-arm64-apple-darwin-unsigned.zip
e920044a3cf85974b337a5a7e13c35cf8633d5083cb9ab8ba46c3b0f24019a1c bitcoin-46e44a35b858.tar.gz
Show Signature
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
ACK 46e44a35b85830a60cf622e039db19ccf1989008
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEE5hdzzW4BBA4vG9eM5+KYS2KJyToFAmervD4ACgkQ5+KYS2KJ
yTqW+w//XZDjfkldmMEbEOs8fpwv38eHly9Uha8hVscixHgG6L1QkTfMimomONzD
m0N3cOT13sEXJkuyp1ztnZoklQ2FfDcceKiN8Kb455esPtYsNrR5SyMDx3O+HYTF
2WxSO7ktfjU7G+ZaXgHB/+xGUrXQIWNkP4b1Z+QuHtu3Sc+3TnZS2mtjvpXc1go+
m8Rnz/hqYn1F1ePn25AMsixfdt99QUw2Z/oti3HDfiG136lHpZt0MbixCk1gDnXs
NDSloElhUgTLyosBfdU+5KLbjsB1DKz+N2dsQ8rHTpuXcau7HPm5IAdPheSIhS5Z
OC1z/h9/EhgOYSlAbyURovTYa0Cpz/faGNhWWIw6v+t6UBFX1Sn4fPt7X3S8k0d+
oya7oDFTyo2NZVyM8l9+dssZaJByUOdJKYloF00g26fRA+ELaX3PxXIB/cFWNiss
UgPc5C/pfvjq/Cr7Zwb0XdHP8U0lTbu8Aqk93xxfcKx5MVdjTnlI2JF8nbn0/eYQ
C1GjVdHCwLR/nM6aHatEFy04WFUUeK3r7pUPRY39B/fPS31N29q5UpbvvAqihZLQ
nVqHCCxCNrL2Ph+PwjqQsvXchz97gizQu6OKbX3DcRWstg6EwRQ3K2CG/k7MAvtw
NnEtOMWHeXO8qW3MQkZj4IDCjTKU/OKab+jf+F0reSkZ1Oc1E54=
=NUrf
-----END PGP SIGNATURE-----
pinheadmz's public key is on keybase
|
Bonus verbose code sign verification of |
|
Windows code signature: It looks like I have a mismatch. Could someone else do a codesigned build so we can compare? @pinheadmz @fanquake Could one of you also make a x86_64 MacOS codesignature? |
The tarballs used for codesigning are more than merely unsigned, they also contain scripts and other data for codesigning. Rename them to codesigning.tar.gz to distinguish from tarballs containing actually just the unsigned binaries.
The MacOS binaries are unsigned and therefore also unusable on MacOS. Indicate as such by naming the tarball "unsigned".
|
I've opened something (not-yet-fully-tested) here #32563 for |
The tarballs used for codesigning are more than merely unsigned, they also contain scripts and other data for codesigning. Rename them to codesigning.tar.gz to distinguish from tarballs containing actually just the unsigned binaries. Github-Pull: bitcoin#31407 Rebased-From: c214e52
The MacOS binaries are unsigned and therefore also unusable on MacOS. Indicate as such by naming the tarball "unsigned". Github-Pull: bitcoin#31407 Rebased-From: d9d49cd
As codesigned binaries will be published, the unsigned ones should be clearly marked as such. Github-Pull: bitcoin#31407 Rebased-From: 4e5c9ce
Github-Pull: bitcoin#31407 Rebased-From: dd4ec84
Github-Pull: bitcoin#31407 Rebased-From: e8b3c44
Github-Pull: bitcoin#31407 Rebased-From: 710d5b5
Signapple has been updated to sign individual binaries, and notarize app bundles and binaries. When codesigning, all individual binaries will be codesigned, and both the app bundle and individual binaries will be notarized. Github-Pull: bitcoin#31407 Rebased-From: 31d3254
Github-Pull: bitcoin#31407 Rebased-From: aafbd23
Github-Pull: bitcoin#31407 Rebased-From: e181bda
Followup to bitcoin#31407. Github-Pull: bitcoin#32003 Rebased-From: c873ab6
b1f694f doc: update release-notes.md (fanquake) 52f0963 doc: remove note about macOS self-signing (fanquake) 744b1c8 guix: Apply all codesignatures to Windows binaries (Ava Chow) 812cade guix: Apply codesignatures to all MacOS binaries (Ava Chow) c60055c contrib: Sign and notarize all MacOS binaries (Ava Chow) 0bd5cb7 guix: Update signapple (Ava Chow) 2b279a2 build: Include all Windows binaries for codesigning (Ava Chow) ac2b608 build: Include all MacOS binaries for codesigning (Ava Chow) 2c21db6 guix: Rename Windows unsigned binaries to unsigned.zip (Ava Chow) 9f0ee1c guix: Rename MacOS binaries to unsigned.tar.gz (Ava Chow) 00b401c guix: Rename unsigned.tar.gz to codesigning.tar.gz (Ava Chow) Pull request description: Backports #31407 + #32003. ACKs for top commit: pinheadmz: ACK b1f694f Tree-SHA512: f0ca9427eb367039b4eb0c8740e66c72520413ed43f66a0ffa60d44c36426f8a31f45a1b974b5e6a591b8bf9d9e125140934d9e0ce3a8f5aaaf01c12d7fd62bd
Github-Pull: bitcoin#31407 Rebased-From: 3656b82
Since bitcoin#31407 guix builds are signed and notarized. This was backported to v28, so bump the version.
4bb4c86 test: document HOST for get_previous_releases.py (Sjors Provoost) 609203d test: stop signing previous releases >= v28.2 (Sjors Provoost) c6dc2c2 test: replace v28.0 with notarized v28.2 (Sjors Provoost) 5bd73d9 test: fix macOS detection (Sjors Provoost) Pull request description: Since #31407 macOS guix builds are signed and notarized. This was included in v29 and backported to 28.x. This PR bumps the v28.0 previous release binary to v28.2 and adjusts the test that uses it. Additionally it no longer manually code signs binaries >= v28.2. While testing on an M4 mac and redownloading all the binaries, I noticed that `platform == "arm64-apple-darwin"` doesn't actually work. This initially used `args.platform` in #26694, but that was changed to just `platform` in #32219. So the first commit switches this to use `args.host`. I manually tested on Intel macOS 13.7.6 that code-signing still isn't needed there (when downloading using a script). Also documented that you can set `HOST`. ACKs for top commit: m3dwards: ACK 4bb4c86 maflcko: review ACK 4bb4c86 🚏 Tree-SHA512: b4803d39a21cb622fd2388a0528b76d2b502956e2505385d3da201143b0afcf6f9d71c8c28937f27b70d2588fb6da677da058bdcd67b90fb53617acc3a727818
…91a69ee00 5991a69ee00 kernel: Add pure kernel bitcoin-chainstate 05b7d136684 kernel: Add functions to get the block hash from a block f18c792d843 kernel: Add block index utility functions to C header 89f5bf04673 kernel: Add function to read block undo data from disk to C header b4f71fc64e7 kernel: Add functions to read block from disk to C header 41306f081ad kernel: Add function for copying block data to C header 9385d9fc87e kernel: Add functions for the block validation state to C header 0bd9a710358 kernel: Add validation interface to C header 432710f3fc3 kernel: Add interrupt function to C header cb164ae1eb2 kernel: Add import blocks function to C header abd67fd93d0 kernel: Add chainstate load options for in-memory dbs in C header b98c2748e94 kernel: Add options for reindexing in C header 9d0efe1fc86 kernel: Add block validation to C header 87e364fc1ec kernel: Add chainstate loading when instantiating a ChainstateManager df1599b2d2a kernel: Add chainstate manager option for setting worker threads fb767002e97 kernel: Add chainstate manager object to C header 10b0fad2fd3 kernel: Add notifications context option to C header 39e7ad8d0dc kernel: Add chain params context option to C header 6285c353b89 kernel: Add kernel library context object 98d10160b6a kernel: Add logging to kernel library C header 4d663446de1 kernel: Introduce initial kernel C header API 698f86964c6 Merge bitcoin/bitcoin#31961: Require sqlite when building the wallet f4b3a5858ae Merge bitcoin/bitcoin#32064: build: Remove manpages when making MacOS app 92f553eaa92 Merge bitcoin/bitcoin#32038: depends: remove `NO_HARDEN` option 80b5e7f2cb7 build: Remove manpages when making MacOS app 1b251f6b679 Merge bitcoin/bitcoin#31649: consensus: Remove checkpoints (take 2) 5c2f04413e4 Merge bitcoin/bitcoin#32049: contrib: Fix `gen-bitcoin-conf.sh` 5d96c2eab9f Merge bitcoin/bitcoin#31907: qa: clarify and document one assumeutxo test case with malleated snapshot 57d611e53b3 Merge bitcoin/bitcoin#31757: wallet: fix crash on double block disconnection 199d47d9629 Merge bitcoin/bitcoin#32056: doc: Adjust path in comment de1ada079bf doc: Adjust path in comment 72c150dfe76 Merge bitcoin/bitcoin#32055: contrib: Fix deterministic-unittest-coverage tool path 3c5d1a46819 Remove checkpoints 632ae47372d update comment on MinimumChainWork check 893ca545850 contrib: Fix deterministic-unittest-coverage tool path c20a5ce106b Merge bitcoin/bitcoin#31901: contrib: Add deterministic-unittest-coverage a50af6e4c49 Merge bitcoin/bitcoin#32044: ci: Revert "Temporary workaround for old CCACHE_DIR cirrus env" a5a582d852e Merge bitcoin/bitcoin#31998: depends: patch around PlacementNew issue in capnp a24419f8bed contrib: Fix `gen-bitcoin-conf.sh`. eb9730ab658 Merge bitcoin/bitcoin#31987: wallet: Replace "non-0" with "non-zero" in translatable error message f347d7980e8 Merge bitcoin/bitcoin#31283: Add waitNext() to BlockTemplate interface fa21597064b ci: Revert "Temporary workaround for old CCACHE_DIR cirrus env" aa68ed27b89 Merge bitcoin/bitcoin#32041: build: bump CLIENT_VERSION_MAJOR to 29 a3f0e9a4336 [build] bump CLIENT_VERSION_MAJOR to 29 36b6f36ac47 build: require sqlite when building the wallet 5dfef6b9b37 depends: remove NO_HARDEN option 8cb6ab0b971 Merge bitcoin/bitcoin#32025: validation, fix: Use wtxid instead of txid in `CheckEphemeralSpends` 7bb4c82d8ba Merge bitcoin/bitcoin#32021: qa: Enable feature_init.py on Windows 1ef22ce3351 depends: patch around PlacementNew issue in capnp 502d47203e7 Merge bitcoin/bitcoin#31161: cmake: Set top-level target output locations e38f09b776c Merge bitcoin/bitcoin#31955: test: Fix authproxy named args debug logging 1d0a1a60e83 Merge bitcoin/bitcoin#32004: qt: 29.0 translations update 91328249470 qt: 29.0 translations update e637dc2c01c refactor: Replace uint256 type with Wtxid in PackageMempoolAcceptResult struct a3baead7cb8 validation: use wtxid instead of txid in CheckEphemeralSpends dbc89b604c4 Merge bitcoin/bitcoin#31960: seeds: add signet/testnet4, update makeseeds regex, minblocks, fixed seeds 45719390a14 Merge bitcoin/bitcoin#32011: Docs: fix typos in documentation files 4637cb1eec4 Merge bitcoin/bitcoin#32002: doc: add note to Windows build about stripping bins 5f732089d67 Merge bitcoin/bitcoin#32017: doc: warn against having qt6 installed on macOS a1aea3ea742 Merge bitcoin/bitcoin#31996: doc: link to benchcoin over bitcoinperf 5601bab4f8b Docs: fix typos in documentation files 59c4930394c qa: Enable feature_init.py on Windows c94195c077f doc: add note to windows build about stripping bin ee68b05f3d6 Merge bitcoin/bitcoin#32014: ci: Do not try to install for fuzz builds 093c757d7cf Merge bitcoin/bitcoin#32000: Update minisketch subtree to d1e6bb8bbf8ef104b9dd002cab14a71b91061177 a3c3f37e71e ci: Do not try to install for fuzz builds d79dab0fa99 doc: warn against having qt6 installed on macOS f0b659716bd seeds: update .gitignore with signet and testnet4 48f07ac9da4 chainparams: remove hardcoded signet seeds d4ab1150c40 chainparams: add signet fixed seeds if default network 49f155efbfb seeds: update fixed dns seeds 236687083fb makeseeds: regex improvements 98f84d6c233 generate-seeds: update and add signet c4ed23e5398 seeds: add testnet4 seeds 60f17dd8167 seeds: add signet seeds 2bcccaa4107 makeseeds: align I2P column header 94e21aa5fc5 makeseeds: update MIN_BLOCKS, add reminder to README 6ae7a3bc4e7 makeseeds: update user agent regex 9b0d2e50946 makeseeds: fix incorrect regex a9a2b669f3e Merge bitcoin/bitcoin#32003: doc: remove note about macOS self-signing c7d216ac946 Merge bitcoin/bitcoin#31993: ci: use LLVM 20.1.0 for MSAN 9f3dcacef73 Merge bitcoin/bitcoin#31978: kernel: pre-29.x chainparams and headerssync update c873ab6f23e doc: remove note about macOS self-signing bd0ee07310c Merge bitcoin/bitcoin#31407: guix: Notarize MacOS app bundle and codesign all MacOS and Windows binaries 11f8ab140fe test: wallet, coverage for crash on dup block disconnection during unclean shutdown 4fde88bc469 Update minisketch subtree to latest master f5d8b66a8cf Squashed 'src/minisketch/' changes from eb37a9b8e7..d1e6bb8bbf 0391d7e4c24 Merge bitcoin/bitcoin#31848: test, tracing: don't use problematic `bpf_usdt_readarg_p()` 36d4bd7fe32 Merge bitcoin/bitcoin#31997: doc: update location of minisketch repository 0c0a2717bc3 Merge bitcoin/bitcoin#31954: doc: update fuzz instructions when on macOS a2ab2faf4a8 Merge bitcoin/bitcoin#31982: scripted-diff: rename libmultiprocess repository 972b604dc42 doc: update location of minisketch repository 611999e0977 doc: link to benchcoin over bitcoinperf d76647eb8f1 ci: use LLVM 20.1.0 for MSAN c2341ebb5bb Merge bitcoin/bitcoin#31983: build: don't show ccache summary with MSVC 88debb3e429 Merge bitcoin/bitcoin#31940: Add assumeutxo chainparams to release-process.md c8dcb61172e Merge bitcoin/bitcoin#31985: doc: Bring reduce-memory.md up to date 11a2d3a63e9 [headerssync] update headerssync config for v29 dd23c532581 [kernel] update chainTxData for v29 80926af8c26 [kernel] update assumevalid and minimumChainWork for v29 0683b8ebf33 [kernel] update assumed blockchain and chainstate sizes for v29 e13c18f6ce5 Merge bitcoin/bitcoin#31969: Add mainnet assumeutxo param at height 880,000 e5ff4e416ec qa: use a clearer and documented amount error in malleated snapshot b34fdb5ade0 test: introduce output amount (de)compression routines 18e83534ace wallet: Replace "non-0" with "non-zero" in translatable error message a7911ed101f test: introduce VARINT (de)serialization routines c718bffc361 build: don't use ccache with MSVC fff4f93dff8 doc: Bring reduce-memory.md up to date 75486c8ed87 doc: update fuzz instructions when on macOS 18749efb072 scripted-diff: rename libmultiprocess repository 02fae336351 doc: add assumeutxo chainparams to release proc 15717f0ef39 Merge bitcoin/bitcoin#31916: init: Handle dropped UPnP support more gracefully afde95b4601 Merge bitcoin/bitcoin#31976: delete release note fragments for v29 ae92bd8e1b2 delete release note fragments for v29 79bbb381a1f Merge bitcoin/bitcoin#30901: cmake: Revamp handling of data files 14f16748557 chainparams: add mainnet assumeutxo param at height 880_000 3c1f72a3670 Merge bitcoin/bitcoin#31930: doc: Update translation generation instructions 75d5d235a6b doc: Update translation generation instructions 6876e5076ec Merge bitcoin/bitcoin#31943: test: add coverage for abandoning unconfirmed transaction 44041ae0eca init: Handle dropped UPnP support more gracefully fac1dd9dffb test: Fix authproxy named args debug logging 0bb8a01810e Merge bitcoin/bitcoin#31880: cmake: Add optional sources to `minisketch` library directly 3bb679e5de2 Merge bitcoin/bitcoin#31952: chore: remove redundant word d9ba427f9d0 chore: remove redundant word c12a2528ce6 Merge bitcoin/bitcoin#31415: test: fix TestShell initialization and reset() ba0a4391ff3 Merge bitcoin/bitcoin#31945: depends: Update libmultiprocess library to fix CI failures fa99c3b544b test: Exclude SeedStartup from coverage counts fa579d663d7 contrib: Add deterministic-unittest-coverage fa3940b1cbc contrib: deterministic-fuzz-coverage fixups faf905b9b69 doc: Remove unused -fPIC 073a017016e test: add coverage for abandoning unconfirmed transaction e486597f9a5 Merge bitcoin/bitcoin#31918: fuzz: add basic TxOrphanage::EraseForBlock cov 01f77157660 depends: Update libmultiprocess library to fix CI failure 279ab20bbd3 Merge bitcoin/bitcoin#31925: contrib: update `utxo_to_sqlite` tool documentation and comment f0ac24846f1 Merge bitcoin/bitcoin#31928: ci: Fix filtering out Qt-generated files from `compile_commands.json` 44bd3159244 Merge bitcoin/bitcoin#31676: fuzz: add targets for PCP and NAT-PMP port mapping requests d82dc104152 ci: Fix filtering out Qt generated files from `compile_commands.json` e747ed989eb contrib: fix read metadata related comment d3095ac35a8 contrib: update `dumptxoutset` command in utxo_to_sqlite doc ecf54a32ed2 cmake: Add support for builtin `codegen` target a8c78a0574d cmake: Revamp handling of data files 5b8fd7c3a6b Merge bitcoin-core/gui#854: qt: Update `src/qt/locale/bitcoin_en.xlf` after string freeze 568fcdddaec scripted-diff: Adjust documentation per top-level target output location 026bb226e96 cmake: Set top-level target output locations db63bfbe7cf Merge bitcoin/bitcoin#31580: test: Remove non-portable IPv6 test da3ed8b970a Merge bitcoin/bitcoin#31662: cmake: Do not modify `CMAKE_TRY_COMPILE_TARGET_TYPE` globally 9d7672bbcae Merge bitcoin/bitcoin#31742: contrib: fix BUILDDIR in gen-bitcoin-conf script and gen-manpages.py 77bf99012ae Merge bitcoin/bitcoin#30302: doc: clarify loadwallet path loading for wallets 8400b742fa6 fuzz: add basic TxOrphanage::EraseForBlock cov 46a9c73083e Merge bitcoin/bitcoin#31906: ci: Switch to gcr.io mirror to avoid rate limits 7267ed05182 qt: Update `src/qt/locale/bitcoin_en.xlf` after string freeze 2c4b229c906 cmake: Introduce `FUZZ_LIBS` ea929c0848e scripted-diff: Rename CMake helper module 8d238c1dfde cmake: Delete `check_cxx_source_links*` macros 71bf8294a98 cmake: Convert `check_cxx_source_compiles_with_flags` to a function 88ee6800c96 cmake: Delete `check_cxx_source_links_with_flags` macro 09e8fd25b1a build: Don't override CMake's default try_compile target 303f8cca056 test: fix TestShell initialization and reset() e181bda061c guix: Apply all codesignatures to Windows binaries aafbd23fd97 guix: Apply codesignatures to all MacOS binaries 3656b828dc2 contrib: Sign all Windows binaries too 31d325464d0 contrib: Sign and notarize all MacOS binaries cadbd4137d8 miner: have waitNext return after 20 min on testnet d4020f502a6 Add waitNext() to BlockTemplate interface fa8de4706a0 ci: Switch to gcr.io mirror to avoid rate limits 9ef429b6ae6 wallet: fix crash on double block disconnection ca6aa0b9bee doc: loadwallet loads from relative walletdir 710d5b5149d guix: Update signapple fa1e0a72281 gitignore: target/ 9919e92022b cmake: Add optional sources to `minisketch` library directly c73b59d47f1 fuzz: implement targets for PCP and NAT-PMP port mapping requests 1695c8ab5bd fuzz: in FuzzedSock::GetSockName(), return a random-length name 0d472c19533 fuzz: never return an uninitialized sockaddr in FuzzedSock::GetSockName 39b7e2b5905 fuzz: add steady clock mocking to FuzzedSock 6fe1c35c05b pcp: make NAT-PMP error codes uint16_t 01906ce912e pcp: make the ToString method const a0b66b4bffa Revert "test: Disable known broken USDT test for now" ec47ba349d0 contrib: don't use bpf_usdt_readarg_p 35ae6ff60f6 test: don't use bpf_usdt_readarg_p e8b3c44da6e build: Include all Windows binaries for codesigning dd4ec840eeb build: Include all MacOS binaries for codesigning 4e5c9ceb9dd guix: Rename Windows unsigned binaries to unsigned.zip d9d49cd533b guix: Rename MacOS binaries to unsigned.tar.gz c214e5268fa guix: Rename unsigned.tar.gz to codesigning.tar.gz 63a8791e15c contrib: fix BUILDDIR in gen-bitcoin-conf script and gen-manpages.py d871d778251 test: Remove non-portable IPv6 test REVERT: 29513955891 kernel: Add pure kernel bitcoin-chainstate REVERT: 9c40433bd4a kernel: Add functions to get the block hash from a block REVERT: 942df8f287f kernel: Add block index utility functions to C header REVERT: 87102db87ac kernel: Add function to read block undo data from disk to C header REVERT: 12b8c9442ad kernel: Add functions to read block from disk to C header REVERT: d977db3feb2 kernel: Add function for copying block data to C header REVERT: 8ae33627743 kernel: Add functions for the block validation state to C header REVERT: 0565a0bbc01 kernel: Add validation interface to C header REVERT: 837e5a0f536 kernel: Add interrupt function to C header REVERT: a80b7bfe3de kernel: Add import blocks function to C header REVERT: 54d1a1231ec kernel: Add chainstate load options for in-memory dbs in C header REVERT: 659efa9969c kernel: Add options for reindexing in C header REVERT: 2179127c079 kernel: Add block validation to C header REVERT: 26143992693 kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 82d2bebbe54 kernel: Add chainstate manager option for setting worker threads REVERT: e875f520851 kernel: Add chainstate manager object to C header REVERT: 4e486059178 kernel: Add notifications context option to C header REVERT: a5eb699b978 kernel: Add chain params context option to C header REVERT: 0818b8d2c07 kernel: Add kernel library context object REVERT: 71c24c95b31 kernel: Add logging to kernel library C header REVERT: 0cc810386f7 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 5991a69ee0000de551955846d7d21733c326a748
I have updated signapple to notarize MacOS app bundles without adding any additional dependencies. Further, it can also sign and apply detached signatures to standalone binaries.
As such, we can use signapple to perform the notarization and stapling steps so that MacOS will run the app bundle after it is installed.
detached-sig-create.shis updated to have a notarization step and to download the ticket which will be included in the detached signatures. The workflow is largely unchanged for the MacOS codesigners except for the additional requirement of having an App Store Connect API key and Team UUID, instructions for which can be found at https://github.com/achow101/signapple/blob/master/docs/notarization.md. For guix builders, the workflow is unchanged.Additionally, the standalone binaries packaged in the MacOS
.tar.gzand Windows.zipwill now be codesigned.detached-sig-create.shwas updated to handle these, so the workflow for both MacOS and Windows codesigners remains unchanged. For guix builders, the workflow is also unchanged.Because those binaries will how have codesigned and unsigned versions, the build command is modified to output
-unsigned.{tar.gz,zip}archives containing the binaries. Since this happens to conflict with the tarball used for codesigning, the codesigning tarball was renamed to-codesigning.tar.gz. Both MacOS and Windows codesigners will need to adjust their workflows to account for the new name.Fixes #15774 and #29749