bitcoin
bitcoin copied to clipboard
cmake: Add application manifests when cross-compiling for Windows
Windows application manifests provide several benefits—such as enhanced security settings, and the ability to set a process-wide code page (required for https://github.com/bitcoin/bitcoin/pull/32380), as well as granular control over supported Windows versions. Most of these benefits lie beyond the scope of this PR and will be evaluated separately.
On the current master branch @ fc6346dbc8dc3db40aad4079210332b5f8b332ed, the linker generates and embeds a manifest only when building with MSVC:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
However, this manifest fails validation:
> mt.exe -nologo -inputresource:build\bin\Release\bitcoind.exe -validate_manifest
mt.exe : general error 10100ba: The manifest is missing the definition identity.
This PR unifies manifest embedding for both native and cross-compilation builds.
Here is the change in the manifest on Windows:
--- bitcoind-master.manifest
+++ bitcoind-pr.manifest
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity type="win32" name="org.bitcoincore.bitcoind" version="29.99.0.0"></assemblyIdentity>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
which effectively resolves the "missing the definition identity" error.
Finally, “Get bitcoind manifest” steps have been added to the Windows CI jobs to ensure the manifest is embedded and validated.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32396.
Reviews
See the guideline for information on the review process.
| Type | Reviewers |
|---|---|
| ACK | sipsorcery, hodlinator, davidgumberg |
| Stale ACK | laanwj |
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #32380 ([PoC] Modernize use of UTF-8 in Windows code by hebasto)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
Concept ACK
My Guix build:
50de79d47cf8e15acd94d189a88423a89003e287c0e30978d45cb13a478a8a7c guix-build-665b2ba99955/output/dist-archive/bitcoin-665b2ba99955.tar.gz
edae04ce1b66195e3afb9fcdd399719e20085c0d42e55f30a17fd8d1b972b798 guix-build-665b2ba99955/output/x86_64-w64-mingw32/SHA256SUMS.part
33dfd8539f6dae306a7ee3f8ff2c6e4eafe8d7740a76629767fb4f4601c9c61c guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-codesigning.tar.gz
9acd0edc19836d7aeed0e776d69795b8d27f78df3c1282a615e074a31e46fd93 guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-debug.zip
daa1472c667d009835420e9d42edb09ee9d56e7912d622e29d20d641d0ce81b5 guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-setup-unsigned.exe
df4c74e83e6159e02e06934f21f67aabaddd2f3d449cffe5c4a4fe323ff984fe guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-unsigned.zip
Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]
| File | commit eba5f9c4b63fe46261fbb3e71b9a94832d105b23 (master) |
commit 03bf9426ca2d85a238edd479f0fca43b7d724347 (pull/32396/merge) |
|---|---|---|
| *-aarch64-linux-gnu-debug.tar.gz | dd18c4706ae0a247... |
22fd911cdca5f23f... |
| *-aarch64-linux-gnu.tar.gz | 4216933d26250c15... |
56d3516964cb838e... |
| *-arm-linux-gnueabihf-debug.tar.gz | f972e0bd2981ac67... |
b6bbdf3a12f4d3d1... |
| *-arm-linux-gnueabihf.tar.gz | 3ca06111b5a591e8... |
f23cd5718708fd92... |
| *-arm64-apple-darwin-codesigning.tar.gz | 8a9c416ffe2e3d36... |
4c35272ed40b015a... |
| *-arm64-apple-darwin-unsigned.tar.gz | 216c1a1f68356c92... |
3f081d62c74d64ab... |
| *-arm64-apple-darwin-unsigned.zip | 1f4d27d16e6c3eea... |
2248ccfb6a320e5b... |
| *-powerpc64-linux-gnu-debug.tar.gz | 8900b88ab21f9f48... |
22879bf8fc16e965... |
| *-powerpc64-linux-gnu.tar.gz | c7ed6137d21d3e52... |
0720ff99a9b101c7... |
| *-riscv64-linux-gnu-debug.tar.gz | aad7744d23e2a136... |
ff235a2fca38f416... |
| *-riscv64-linux-gnu.tar.gz | d49be6063aa6a124... |
a73b612d564072ad... |
| *-x86_64-apple-darwin-codesigning.tar.gz | c8973dacfc9e519c... |
2b838a9c81c72f9a... |
| *-x86_64-apple-darwin-unsigned.tar.gz | 9ca6afb860f0b246... |
0396b321579258d3... |
| *-x86_64-apple-darwin-unsigned.zip | a364bd58765172cc... |
bd56b96ce917e383... |
| *-x86_64-linux-gnu-debug.tar.gz | c11030172812a7c1... |
fd027bd4898a0824... |
| *-x86_64-linux-gnu.tar.gz | f288901ecf194ab8... |
ebe6647276375d7c... |
| *.tar.gz | 82d1cd8e8b352d6b... |
20f3b6dcebbb7510... |
| SHA256SUMS.part | a0c3bbbfdd25fd25... |
11507f51e80138ba... |
| guix_build.log | 61a3fea347bc8654... |
9c91effb71754bb2... |
| guix_build.log.diff | f9e5c44297d7a800... |
We might also want to add a check for correct manifests to the symbols / security checks in the guix build. No idea if LIEF makes this easy or not (will look into it).
i've added a check for the application manifest to the symbol checker here: https://github.com/laanwj/bitcoin/tree/2025-05-manifest-check, feel free to cherry-pick.
(not too important yet now as we're just adding some metadata, but when we add critical things in there like "use UTF-8 codepage" as in #32380, it's really important for them to be in the release too)
i've added a check for the application manifest to the symbol checker here: https://github.com/laanwj/bitcoin/tree/2025-05-manifest-check, feel free to cherry-pick.
(not too important yet now as we're just adding some metadata, but when we add critical things in there like "use UTF-8 codepage" as in #32380, it's really important for them to be in the release too)
Thanks! Cherry-picked.
@laanwj
https://cirrus-ci.com/task/6261972905230336:
[12:43:30.811] contrib/devtools/symbol-check.py:308: error: No overload variant of "int" matches argument type "RESOURCE_TYPES" [call-overload]
[12:43:30.811] contrib/devtools/symbol-check.py:308: note: Possible overload variants:
[12:43:30.811] contrib/devtools/symbol-check.py:308: note: def __new__(cls, str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc = ..., /) -> int
[12:43:30.811] contrib/devtools/symbol-check.py:308: note: def __new__(cls, str | bytes | bytearray, /, base: SupportsIndex) -> int
[12:43:34.351] Found 1 error in 1 file (checked 297 source files)
[12:43:34.386] ^---- ⚠️ Failure generated from lint-python.py
My Guix build:
164958d8c5292ef876e3454725888a488565a414af690a568caedae31215db6c guix-build-b074ae1b4f52/output/dist-archive/bitcoin-b074ae1b4f52.tar.gz
145be7d02fd3d967351ad5944ffe4ceb885e3f7bed6677be657b1c0aa125b40c guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/SHA256SUMS.part
2794ba8c24e64ca1068e04b73748e1406df51089a149a8b0a70637d0bf8e120a guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-codesigning.tar.gz
627119d12ba969849ed7727d105ec7d756e201415c999ab1d5419f8d4f75583b guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-debug.zip
281dc09b5614e0e7787173f345b2f2c766518c6fa0242a6b7ff67214b50f6f18 guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-setup-unsigned.exe
8d14726873fc6ebfae1cd102fc42ce7140903195cfdd519226dc03b04d572b55 guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-unsigned.zip
Same
find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
164958d8c5292ef876e3454725888a488565a414af690a568caedae31215db6c guix-build-b074ae1b4f52/output/dist-archive/bitcoin-b074ae1b4f52.tar.gz
145be7d02fd3d967351ad5944ffe4ceb885e3f7bed6677be657b1c0aa125b40c guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/SHA256SUMS.part
2794ba8c24e64ca1068e04b73748e1406df51089a149a8b0a70637d0bf8e120a guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-codesigning.tar.gz
627119d12ba969849ed7727d105ec7d756e201415c999ab1d5419f8d4f75583b guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-debug.zip
281dc09b5614e0e7787173f345b2f2c766518c6fa0242a6b7ff67214b50f6f18 guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-setup-unsigned.exe
8d14726873fc6ebfae1cd102fc42ce7140903195cfdd519226dc03b04d572b55 guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-unsigned.zip
Friendly ping @davidgumberg @hodlinator @sipsorcery :)
tACK b074ae1b4f52471a9d71e9431deebae5ec3d603e native Windows build.
c:\dev\github\bitcoin>mt.exe -nologo -inputresource:build\bin\Release\bitcoind.exe -validate_manifest
Parsing of manifest successful.
The feedback from @fanquake has been addressed.
🚧 At least one of the CI tasks failed.
Task lint: https://github.com/bitcoin/bitcoin/runs/41868521406
LLM reason (✨ experimental): The CI failure is due to a syntax error in contrib/devtools/symbol-check.py detected by a Python linter.
Hints
Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:
-
Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.
-
A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.
-
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
My Guix build:
aarch64
be6aa004944a606e9bbef9129b971960186a533f6572c5fb2e522fabc544c611 guix-build-477b69ad19d7/output/dist-archive/bitcoin-477b69ad19d7.tar.gz
e75f1ed645abf5d086f5e328107ce804e3ebec9ac5b2d0d8a9d037744e2e4859 guix-build-477b69ad19d7/output/x86_64-w64-mingw32/SHA256SUMS.part
526d76c4402086b1f8382d5b461162485efcaaf1ebf98a23dc9fd8b8f7bd62d8 guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-codesigning.tar.gz
11029fcb9a8f11c7df44b2dfbda58392d2293e72e688e545457062696736a973 guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-debug.zip
e9e9c2b4658a0c73b3ef1611b54e388a78a65b11048bb71c57687e324167eabb guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-setup-unsigned.exe
ab431fca3dc67f73f93fc6114806c3970c39c59490d37f07c5d40cda74e64bf6 guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-unsigned.zip
Rebased due to a conflict with the merged bitcoin/bitcoin#32458.
Friendly ping @laanwj @sipsorcery :)
re-tACK c0f41523973e33a8cd104a8ebf4906a4d99f3eed.
Guix Build:
bcf993e048118c80beae601700c50f8d707474b0e5f89359dfc8781a12efee81 guix-build-c0f41523973e/output/aarch64-linux-gnu/SHA256SUMS.part
a6cf6122393f86b8a34e036b8a237daa3153613d154eae2f8c66720c8bad0b52 guix-build-c0f41523973e/output/aarch64-linux-gnu/bitcoin-c0f41523973e-aarch64-linux-gnu-debug.tar.gz
3330a1a5848fa80f24b181f8fe22341dca8abe9a1934a8c75834f51b311ad780 guix-build-c0f41523973e/output/aarch64-linux-gnu/bitcoin-c0f41523973e-aarch64-linux-gnu.tar.gz
eb8ba4643c8b2774e924c45f691417f3aa37bf71c9528f21763bdb47bbb33fe6 guix-build-c0f41523973e/output/arm-linux-gnueabihf/SHA256SUMS.part
47cc0bdec05bc41bb937e5c0f77c1e5a4c3fd98c61675786e0a728542ffb15ee guix-build-c0f41523973e/output/arm-linux-gnueabihf/bitcoin-c0f41523973e-arm-linux-gnueabihf-debug.tar.gz
7fe7b9f9085a8cb80afcf068cff74caf4aa56b06a64ccffd5dd975c2af192447 guix-build-c0f41523973e/output/arm-linux-gnueabihf/bitcoin-c0f41523973e-arm-linux-gnueabihf.tar.gz
0b3398de2a918cef87dc3a8d385ea79c254dd363567d5bd6e87d765a238728b5 guix-build-c0f41523973e/output/arm64-apple-darwin/SHA256SUMS.part
068620b11ad97ef8adcc7ab8f8c6bc94608008e40f491b4fa0e69b19a2e4dd30 guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-codesigning.tar.gz
3a698a972be14c8a886b44e44206a1eacb4482443935a2487951d0cc7190f22a guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-unsigned.tar.gz
536927c6ff930e665bd00175a5cbb6d26af8ffcee3f5d82a0417c900d64b6c39 guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-unsigned.zip
cea669c6dc7dcaff3c59bbdb3478519474579f2023b2f7e3524841f8e3c88294 guix-build-c0f41523973e/output/dist-archive/bitcoin-c0f41523973e.tar.gz
8f05da30224c64bc5316bef9b03d8c8a8e9cade4284628cdd6ba2b42d3b19790 guix-build-c0f41523973e/output/powerpc64-linux-gnu/SHA256SUMS.part
c964fbef6e9356f8ee271dce1f22a3ff531b3bece20645a6370dccfa0921aa32 guix-build-c0f41523973e/output/powerpc64-linux-gnu/bitcoin-c0f41523973e-powerpc64-linux-gnu-debug.tar.gz
6d7ed07d0291e95e15f7827cee7c4d9c91405369b468ca06560f617ddfd77916 guix-build-c0f41523973e/output/powerpc64-linux-gnu/bitcoin-c0f41523973e-powerpc64-linux-gnu.tar.gz
2c7118bbdf023fb5725441fc6f36f1c6fb88a1b0344eaea88960bcaa6e9d3bee guix-build-c0f41523973e/output/riscv64-linux-gnu/SHA256SUMS.part
b8887b68c5fe32adb7ba611f501254b332799e8e54567a43daed5d1e0e9fed0f guix-build-c0f41523973e/output/riscv64-linux-gnu/bitcoin-c0f41523973e-riscv64-linux-gnu-debug.tar.gz
cf65e729d31e257438cadcf069a474cedd79fed452aba8e56d64d644857fab03 guix-build-c0f41523973e/output/riscv64-linux-gnu/bitcoin-c0f41523973e-riscv64-linux-gnu.tar.gz
4aab573f73b619cc33e8b3ec87876e3a454aa2630425c08f62f30a36faf3ef7b guix-build-c0f41523973e/output/x86_64-apple-darwin/SHA256SUMS.part
061bec1912d10bae9ea4e5567f61bbbc790d448a5e6bb3220eaa5afdf1e3a194 guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-codesigning.tar.gz
4d6633f18c2dc582ae457462031abc83bf714b51c2d065309c085f726307eed8 guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-unsigned.tar.gz
11c297eafeede6d60a0b6dde141fb6864084d6380b4d46f1a6bdab5db349abb3 guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-unsigned.zip
a2ac5f4a1ff7898fbab35c4c3b7a638f2fcf93d99afb95de30ba7c6885d35042 guix-build-c0f41523973e/output/x86_64-linux-gnu/SHA256SUMS.part
ba23ee2073b449125dd6845e4e68fa32caf57c8f9c506d690bb45674c8aaef59 guix-build-c0f41523973e/output/x86_64-linux-gnu/bitcoin-c0f41523973e-x86_64-linux-gnu-debug.tar.gz
805e3dde45ecdab4282d373d59f46269be84c1af9b59bd47bc0fd0774d30ba8f guix-build-c0f41523973e/output/x86_64-linux-gnu/bitcoin-c0f41523973e-x86_64-linux-gnu.tar.gz
f7feed1d7e0f32c9ae3a776863970688073a02c2f56acfa7020014dfd15c4c7a guix-build-c0f41523973e/output/x86_64-w64-mingw32/SHA256SUMS.part
88fdacba5d960cff0fd4e9cfc9b0800fe08b6df9cc7ab1a179f62097633bfd5b guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-codesigning.tar.gz
ee7b96d0eb376ad4659d4fe666d66761625cef66d4bc8e8c3a2202adc3c34618 guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-debug.zip
eb03ff48c38b1f9cafc2a3ea11a46a45210942451d824270e171a1deea20c78d guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-setup-unsigned.exe
83ee2ade04ed7fa58305bab8e022d88a4f6c69df111716e1f35af85c7120135e guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-unsigned.zip
This seems to be broken for mac cross builds:
make -C depends HOST=x86_64-w64-mingw32
cmake -B build --toolchain depends/x86_64-w64-mingw32/toolchain.cmake
<snip>
CMake Error at cmake/module/AddWindowsResources.cmake:9 (target_sources):
Cannot find source file:
/Users/xxx/bitcoin/src/bitcoin-util-manifest.rc
Call Stack (most recent call first):
cmake/module/AddWindowsResources.cmake:25 (add_windows_resources)
src/CMakeLists.txt:427 (add_windows_application_manifest)
CMake Error at cmake/module/AddWindowsResources.cmake:9 (target_sources):
Cannot find source file:
/Users/xxx/bitcoin/src/qt/bitcoin-qt-manifest.rc
Call Stack (most recent call first):
cmake/module/AddWindowsResources.cmake:25 (add_windows_resources)
src/qt/CMakeLists.txt:259 (add_windows_application_manifest)
-- Generating done (0.7s)
CMake Generate step failed. Build files cannot be regenerated correctly.
Updated c0f41523973e33a8cd104a8ebf4906a4d99f3eed -> 8f4fed7ec70093e2535423d63e9f9dd400c378ac (pr32396.08 -> pr32396.09, diff):
The feedback from @fanquake has been addressed. Thank you!
My Guix build:
aarch64
14f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
6bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
7565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9 guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
8454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4 guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
1f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1 guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
27f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
6716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
47899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
2a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
1f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
8fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
8512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
2afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
13e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
0284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
re-tACK 8f4fed7ec70093e2535423d63e9f9dd400c378ac.
re-ACK 8f4fed7ec70093e2535423d63e9f9dd400c378ac
Tested that corrected resource path worked when cross-building Linux->Windows:
ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1 guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
13e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
0284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
(Same hashes as hebastos: https://github.com/bitcoin/bitcoin/pull/32396#issuecomment-2884220162).
Reviewed and tested ACK https://github.com/bitcoin/bitcoin/commit/8f4fed7ec70093e2535423d63e9f9dd400c378ac
Checked that each executable has a manifest.
PS Z:\bitcoin-8f4fed7ec700> Get-ChildItem -Filter "bin\*.exe" | ForEach-Object {
>> echo "Checking $($_.Name)"
>> mt.exe -nologo -inputresource:$_.FullName -validate_manifest
>> }
Checking bitcoin-cli.exe
Parsing of manifest successful.
Checking bitcoin-qt.exe
Parsing of manifest successful.
Checking bitcoin-tx.exe
Parsing of manifest successful.
Checking bitcoin-util.exe
Parsing of manifest successful.
Checking bitcoin-wallet.exe
Parsing of manifest successful.
Checking bitcoind.exe
Parsing of manifest successful.
Checking test_bitcoin.exe
Parsing of manifest successful.
And checked that manifest contents are as expected.
And I checked that both CI tests added here catch an invalid manifest.
PS Z:\bitcoin-8f4fed7ec700> mt.exe -nologo -inputresource:.\bin\bitcoind.exe -out:bitcoind.manifest
PS Z:\bitcoin-8f4fed7ec700> Get-Content .\bitcoind.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="org.bitcoincore.bitcoind" version="29.99.0.0"></assemblyIdentity>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Two non-blocking nits: I think a more general solution should be used to visual-studio-ify the powershell prompt in windows-native-test so that mt.exe is in PATH (https://github.com/davidgumberg/bitcoin/commit/5957c2a8082d6b20e4d63f114b8ce20b7572733c) but the solution here is fine, and this topic would be more appropriate to discuss in #32513. I also think it would be an improvement to check all executables for manifests (https://github.com/davidgumberg/bitcoin/commit/1b9816052b1d8ad1d9c17945530e14ead79fce33), but this could be addressed in a follow-up.
Guix Hashes
(command from https://github.com/bitcoin/bitcoin/pull/31407#issuecomment-2701126873)
find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
14f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
6bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
7565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9 guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
8454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4 guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
1f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1 guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
27f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
6716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
47899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
2a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
1f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
8fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
8512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
2afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
13e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
0284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
Guix Build
14f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
6bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30 guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
7565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18 guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9 guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
8454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4 guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
1f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1 guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
27f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
6716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981 guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
47899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515 guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
2a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
1f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489 guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
8fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
8512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
2afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0 guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
13e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
0284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3 guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip