cmake: Add application manifests when cross-compiling for Windows #32396

pull hebasto wants to merge 3 commits into bitcoin:master from hebasto:250501-app-manifest changing 8 files +74 −2
  1. hebasto commented at 3:28 pm on May 1, 2025: member

    Windows application manifests provide several benefits—such as enhanced security settings, and the ability to set a process-wide code page (required for #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:

    0<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    1<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    2  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    3    <security>
    4      <requestedPrivileges>
    5        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
    6      </requestedPrivileges>
    7    </security>
    8  </trustInfo>
    9</assembly>
    

    However, this manifest fails validation:

    0> mt.exe -nologo -inputresource:build\bin\Release\bitcoind.exe -validate_manifest
    1
    2mt.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:

    0--- bitcoind-master.manifest
    1+++ bitcoind-pr.manifest
    2@@ -1,5 +1,6 @@
    3 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    4 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    5+  <assemblyIdentity type="win32" name="org.bitcoincore.bitcoind" version="29.99.0.0"></assemblyIdentity>
    6   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    7     <security>
    8       <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.

  2. hebasto added the label Windows on May 1, 2025
  3. hebasto added the label Build system on May 1, 2025
  4. DrahtBot commented at 3:28 pm on May 1, 2025: contributor

    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.

  5. laanwj commented at 7:35 pm on May 2, 2025: member
    Concept ACK
  6. hebasto commented at 8:05 pm on May 2, 2025: member

    My Guix build:

    050de79d47cf8e15acd94d189a88423a89003e287c0e30978d45cb13a478a8a7c  guix-build-665b2ba99955/output/dist-archive/bitcoin-665b2ba99955.tar.gz
    1edae04ce1b66195e3afb9fcdd399719e20085c0d42e55f30a17fd8d1b972b798  guix-build-665b2ba99955/output/x86_64-w64-mingw32/SHA256SUMS.part
    233dfd8539f6dae306a7ee3f8ff2c6e4eafe8d7740a76629767fb4f4601c9c61c  guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-codesigning.tar.gz
    39acd0edc19836d7aeed0e776d69795b8d27f78df3c1282a615e074a31e46fd93  guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-debug.zip
    4daa1472c667d009835420e9d42edb09ee9d56e7912d622e29d20d641d0ce81b5  guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-setup-unsigned.exe
    5df4c74e83e6159e02e06934f21f67aabaddd2f3d449cffe5c4a4fe323ff984fe  guix-build-665b2ba99955/output/x86_64-w64-mingw32/bitcoin-665b2ba99955-win64-unsigned.zip
    
  7. maflcko added the label DrahtBot Guix build requested on May 4, 2025
  8. DrahtBot commented at 11:01 pm on May 4, 2025: contributor

    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...
  9. DrahtBot removed the label DrahtBot Guix build requested on May 4, 2025
  10. in .github/workflows/ci.yml:244 in 665b2ba999 outdated
    236@@ -237,6 +237,15 @@ jobs:
    237         run: |
    238           cmake --build . -j $NUMBER_OF_PROCESSORS --config Release
    239 
    240+      - name: Get bitcoind manifest
    241+        if: matrix.job-type == 'standard'
    242+        working-directory: build
    243+        run: |
    244+          mt.exe -nologo -inputresource:bin/Release/bitcoind.exe -out:bitcoind.manifest
    


    laanwj commented at 10:39 am on May 5, 2025:
    Should it be checking all the manifests or is just checking bitcoind.exe’s enough?

    hebasto commented at 11:48 am on May 5, 2025:
    Since we use the same CMake function to embed the manifest for all executables, I believe checking just one of them in CI is sufficient.

    laanwj commented at 12:12 pm on May 5, 2025:
    FWIW: It looks like bitcoin_test.exe, which is shipped as part of the distribution, does not get a manifest.

    hebasto commented at 12:41 pm on May 5, 2025:
    Thanks! Added.

    davidgumberg commented at 11:36 pm on May 15, 2025:

    Agreed that checking just one is sufficient to verify that the function works for every exe the cmake function is invoked on, but it seems reasonable to me to glob check each executable in the bin folder, to enforce that e.g. new executables get the manifest embedded and existing ones don’t silently lose them:

    0Get-ChildItem -Filter "bin\*.exe" | ForEach-Object {
    1  echo "Checking $($_.Name)"
    2  mt.exe -nologo -inputresource:$_.FullName -validate_manifest
    3}
    
  11. laanwj commented at 10:40 am on May 5, 2025: member
    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).
  12. laanwj commented at 12:16 pm on May 5, 2025: member

    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)

  13. hebasto force-pushed on May 5, 2025
  14. hebasto commented at 12:42 pm on May 5, 2025: member

    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.

  15. hebasto commented at 12:55 pm on May 5, 2025: member

    @laanwj

    https://cirrus-ci.com/task/6261972905230336:

    0[12:43:30.811] contrib/devtools/symbol-check.py:308: error: No overload variant of "int" matches argument type "RESOURCE_TYPES"  [call-overload]
    1[12:43:30.811] contrib/devtools/symbol-check.py:308: note: Possible overload variants:
    2[12:43:30.811] contrib/devtools/symbol-check.py:308: note:     def __new__(cls, str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc = ..., /) -> int
    3[12:43:30.811] contrib/devtools/symbol-check.py:308: note:     def __new__(cls, str | bytes | bytearray, /, base: SupportsIndex) -> int
    4[12:43:34.351] Found 1 error in 1 file (checked 297 source files)
    5[12:43:34.386] ^---- ⚠️ Failure generated from lint-python.py
    
  16. hebasto force-pushed on May 5, 2025
  17. hebasto marked this as a draft on May 5, 2025
  18. in contrib/devtools/symbol-check.py:308 in 3f311c496f outdated
    303+        return False
    304+
    305+    # Find MANIFEST type in resource root.
    306+    root = binary.resources
    307+    try:
    308+        manifest_node = next(i for i in root.childs if i.id == lief.PE.RESOURCE_TYPES.MANIFEST)
    


    laanwj commented at 1:28 pm on May 5, 2025:
    Without the int() this doesn’t work at all (it never matches). Maybe just hardcode 24.

    laanwj commented at 1:34 pm on May 5, 2025:
    Also mind that newer verions of LIEF completely reorganize these constants (it’s called lief.PE.ResourcesManager.TYPE.MANIFEST now). Had to figure out what it was called for this version then it didn’t even work as-is.
  19. hebasto force-pushed on May 5, 2025
  20. hebasto commented at 3:18 pm on May 5, 2025: member

    My Guix build:

    0164958d8c5292ef876e3454725888a488565a414af690a568caedae31215db6c  guix-build-b074ae1b4f52/output/dist-archive/bitcoin-b074ae1b4f52.tar.gz
    1145be7d02fd3d967351ad5944ffe4ceb885e3f7bed6677be657b1c0aa125b40c  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/SHA256SUMS.part
    22794ba8c24e64ca1068e04b73748e1406df51089a149a8b0a70637d0bf8e120a  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-codesigning.tar.gz
    3627119d12ba969849ed7727d105ec7d756e201415c999ab1d5419f8d4f75583b  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-debug.zip
    4281dc09b5614e0e7787173f345b2f2c766518c6fa0242a6b7ff67214b50f6f18  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-setup-unsigned.exe
    58d14726873fc6ebfae1cd102fc42ce7140903195cfdd519226dc03b04d572b55  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-unsigned.zip
    
  21. hebasto marked this as ready for review on May 5, 2025
  22. laanwj commented at 5:43 pm on May 5, 2025: member

    Same

    0find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    1164958d8c5292ef876e3454725888a488565a414af690a568caedae31215db6c  guix-build-b074ae1b4f52/output/dist-archive/bitcoin-b074ae1b4f52.tar.gz
    2145be7d02fd3d967351ad5944ffe4ceb885e3f7bed6677be657b1c0aa125b40c  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/SHA256SUMS.part
    32794ba8c24e64ca1068e04b73748e1406df51089a149a8b0a70637d0bf8e120a  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-codesigning.tar.gz
    4627119d12ba969849ed7727d105ec7d756e201415c999ab1d5419f8d4f75583b  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-debug.zip
    5281dc09b5614e0e7787173f345b2f2c766518c6fa0242a6b7ff67214b50f6f18  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-setup-unsigned.exe
    68d14726873fc6ebfae1cd102fc42ce7140903195cfdd519226dc03b04d572b55  guix-build-b074ae1b4f52/output/x86_64-w64-mingw32/bitcoin-b074ae1b4f52-win64-unsigned.zip
    
  23. laanwj approved
  24. laanwj commented at 6:53 pm on May 5, 2025: member
    ACK b074ae1b4f52471a9d71e9431deebae5ec3d603e Have only tested building with guix (where the symbol-check verifies that the manifests are correctly added), not the native Windows build.
  25. hebasto commented at 6:55 pm on May 5, 2025: member
  26. sipsorcery commented at 9:43 am on May 7, 2025: contributor

    tACK b074ae1b4f52471a9d71e9431deebae5ec3d603e native Windows build.

    0c:\dev\github\bitcoin>mt.exe -nologo -inputresource:build\bin\Release\bitcoind.exe -validate_manifest
    1Parsing of manifest successful.
    
  27. in .github/workflows/ci.yml:353 in b074ae1b4f outdated
    347@@ -339,6 +348,12 @@ jobs:
    348       - name: Checkout
    349         uses: actions/checkout@v4
    350 
    351+      - name: Configure Developer Command Prompt for Microsoft Visual C++
    352+        # Using microsoft/setup-msbuild is not enough.
    353+        uses: ilammy/msvc-dev-cmd@v1
    


    fanquake commented at 9:45 am on May 7, 2025:
    Why do we need to use a third-party repository, that runs some Javascript, to configure a Windows Command Prompt?

    hebasto commented at 12:33 pm on May 7, 2025:

    What alternatives are you suggesting for configuring the Developer Command Prompt?

    FWIW, we’ve been using this action since #28173.


    fanquake commented at 12:45 pm on May 7, 2025:

    What alternatives are you suggesting for configuring the Developer Command Prompt?

    Directly running the command that somebody who owns a Windows computer would run, that doesn’t require installing NPM, and then executing somebody else’s JavaScript.


    hebasto commented at 12:53 pm on May 7, 2025:
    Since this action isn’t new to our codebase, could we continue this discussion elsewhere—in another issue or pull request—while leaving this PR as it stands?

    fanquake commented at 2:07 pm on May 7, 2025:
    I’m not confident anyone is going to followup with this, and don’t see the rush to merge this PR. The fact that this code is already being used, doesn’t warrent adding more of it. Also, # Using microsoft/setup-msbuild is not enough. doesn’t explain anything, so at a minimum, that should be rewritten to explain why we are doing this.

    hebasto commented at 12:07 pm on May 8, 2025:

    What alternatives are you suggesting for configuring the Developer Command Prompt?

    Directly running the command that somebody who owns a Windows computer would run, that doesn’t require installing NPM, and then executing somebody else’s JavaScript.

    Thanks. Reworked.


    fanquake commented at 11:09 am on May 15, 2025:
    Opened #32508 to follow up with the CI.
  28. in contrib/devtools/symbol-check.py:282 in b074ae1b4f outdated
    278@@ -278,6 +279,38 @@ def check_PE_subsystem_version(binary) -> bool:
    279         return True
    280     return False
    281 
    282+MANIFEST_TEMPLATE = ('^' + re.escape("""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    


    fanquake commented at 9:49 am on May 7, 2025:
    Why do we need this check? Regex over a copy-pasted blob of XML is pretty meh. We aren’t really checking anything important here either?

    laanwj commented at 9:54 am on May 7, 2025:

    Currently, no, but after #32380 it becomes critical because it determines the process code page.

    (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)

    This is a quick and dirty check that the manifest is added and is what we expect (which may break any time with mingw changes etc), feel free to add detailed XML parsing.


    laanwj commented at 9:56 am on May 7, 2025:
    It also already found one bug in this PR: the manifest was not added to test_bitcoin.exe .

    fanquake commented at 9:57 am on May 7, 2025:
    I think for now we could just assert binary.resources_manager.has_manifest, if we care that this is being added? Could save anything else for if/when it’s actually being used?

    laanwj commented at 10:00 am on May 7, 2025:

    i don’t see the problem with having it right now like this, but okay.

    The resource compiler isn’t supposed to change it at all, so i’m not sure what say, looking for specific XML instead of doing a full match would improve in the check.


    laanwj commented at 10:23 am on May 7, 2025:
    One thing i did think about is using the input file (cmake/windows-app.manifest.in) as template instead of hardcoding it here, but having the check depend on files scattered throughout the repository is probably not that great, either.

    hebasto commented at 12:06 pm on May 8, 2025:

    I think for now we could just assert binary.resources_manager.has_manifest, if we care that this is being added? Could save anything else for if/when it’s actually being used?

    Thanks! Reworked.

  29. hebasto force-pushed on May 8, 2025
  30. hebasto commented at 12:06 pm on May 8, 2025: member
    The feedback from @fanquake has been addressed.
  31. hebasto force-pushed on May 8, 2025
  32. DrahtBot added the label CI failed on May 8, 2025
  33. DrahtBot commented at 12:08 pm on May 8, 2025: contributor

    🚧 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.

    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.

  34. hebasto force-pushed on May 8, 2025
  35. hebasto commented at 12:35 pm on May 8, 2025: member

    My Guix build:

    0aarch64
    1be6aa004944a606e9bbef9129b971960186a533f6572c5fb2e522fabc544c611  guix-build-477b69ad19d7/output/dist-archive/bitcoin-477b69ad19d7.tar.gz
    2e75f1ed645abf5d086f5e328107ce804e3ebec9ac5b2d0d8a9d037744e2e4859  guix-build-477b69ad19d7/output/x86_64-w64-mingw32/SHA256SUMS.part
    3526d76c4402086b1f8382d5b461162485efcaaf1ebf98a23dc9fd8b8f7bd62d8  guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-codesigning.tar.gz
    411029fcb9a8f11c7df44b2dfbda58392d2293e72e688e545457062696736a973  guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-debug.zip
    5e9e9c2b4658a0c73b3ef1611b54e388a78a65b11048bb71c57687e324167eabb  guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-setup-unsigned.exe
    6ab431fca3dc67f73f93fc6114806c3970c39c59490d37f07c5d40cda74e64bf6  guix-build-477b69ad19d7/output/x86_64-w64-mingw32/bitcoin-477b69ad19d7-win64-unsigned.zip
    
  36. DrahtBot removed the label CI failed on May 8, 2025
  37. hodlinator approved
  38. hodlinator commented at 10:06 pm on May 8, 2025: contributor

    ACK 477b69ad19d7fe37de9ca23926bcf007b309876d

    Concept

    Paves the way for more intentional Windows manifest usage. Linked documentation confirms that it can be used to control codepage and specify supported Windows versions.

    Approach

    Not something I could have easily written from scratch but makes logical sense in how the new CMake function add_windows_application_manifest generates a manifest file for the given target and adds it as a resource.

    Good to see symbol-check.py updated to be able to sanity check this binary format.

    Noticed the bench_bitcoin and fuzz CMake targets don’t get add_windows_application_manifest. They don’t have add_windows_resources either like the others (test_bitcoin excepted). Realized that was intentional as bench and fuzz aren’t included in the Windows installer (https://github.com/bitcoin/bitcoin/pull/32396#discussion_r2073326725). We’ll see whether we’ll want to set codepages etc through manifests for them anyway eventually.

    Testing

    Guix SHA256 sums

    Got same hashes as hebasto.

    validate_manifest

    Before PR, running on random earlier cross-built install:

    0> mt -nologo -inputresource:bitcoind.exe -validate_manifest
    1
    2mt : general error c101008c: Failed to read the manifest from the resource of file "bitcoind.exe". The specified resource type cannot be found in the image file.
    

    After installing Guix build produced under NixOS on PR tip:

    0> mt -nologo -inputresource:bitcoind.exe -validate_manifest
    1Parsing of manifest successful.
    

    Also succeeds on Windows-native build on PR tip:

    0> mt -nologo -inputresource:C:\Users\hodlinator\bitcoin\build\bin\Release\bitcoind.exe -validate_manifest
    1Parsing of manifest successful.
    

    Before PR, running on some native Windows build, confirming error in PR description:

    0> mt -nologo -inputresource:C:\Users\hodlinator\bitcoin\b\bin\Release\bitcoind.exe -validate_manifest
    1
    2mt : general error 10100ba: The manifest is missing the definition identity.
    

    <assemblyIdentity/>

    Confirmed difference in <assemblyIdentity/>-tag documented in PR description through extracting the manifest from old/new native built binaries:

    0> mt -nologo -inputresource:<path>\bitcoind.exe -out:(old|new).manifest
    

    Misc

    Briefly ran the Guix cross-built bitcoin-qt.exe without issues.

    Curiously, the Windows-native build of bitcoind.exe is under 8 MiB, while the cross-build is 13.5 MiB. When I install a Guix build based off 0440c406eedbc16fa1ce6c77a802b7ea60a79057, I get a size of 14.6 MiB, so we seem to be going in the right direction. I recall some stripping being added.


    Credits to @sipsorcery (https://github.com/bitcoin/bitcoin/pull/32396#issuecomment-2857899480) and @hebasto’s CI script in figuring out ways to test this.

  39. DrahtBot requested review from laanwj on May 8, 2025
  40. DrahtBot added the label Needs rebase on May 12, 2025
  41. hebasto force-pushed on May 13, 2025
  42. hebasto commented at 10:24 am on May 13, 2025: member
    Rebased due to a conflict with the merged bitcoin/bitcoin#32458.
  43. DrahtBot removed the label Needs rebase on May 13, 2025
  44. hodlinator approved
  45. hodlinator commented at 1:27 pm on May 13, 2025: contributor

    re-ACK c0f41523973e33a8cd104a8ebf4906a4d99f3eed

    Changes since initial ACK:

    • Rebased to handle file move: contrib/devtools/symbol-check.py -> contrib/guix/symbol-check.py
  46. hebasto commented at 2:25 pm on May 13, 2025: member
    Friendly ping @laanwj @sipsorcery :)
  47. laanwj approved
  48. laanwj commented at 12:15 pm on May 14, 2025: member
    re-ACK c0f41523973e33a8cd104a8ebf4906a4d99f3eed
  49. sipsorcery commented at 8:58 am on May 15, 2025: contributor
    re-tACK c0f41523973e33a8cd104a8ebf4906a4d99f3eed.
  50. fanquake commented at 11:03 am on May 15, 2025: member

    Guix Build:

     0bcf993e048118c80beae601700c50f8d707474b0e5f89359dfc8781a12efee81  guix-build-c0f41523973e/output/aarch64-linux-gnu/SHA256SUMS.part
     1a6cf6122393f86b8a34e036b8a237daa3153613d154eae2f8c66720c8bad0b52  guix-build-c0f41523973e/output/aarch64-linux-gnu/bitcoin-c0f41523973e-aarch64-linux-gnu-debug.tar.gz
     23330a1a5848fa80f24b181f8fe22341dca8abe9a1934a8c75834f51b311ad780  guix-build-c0f41523973e/output/aarch64-linux-gnu/bitcoin-c0f41523973e-aarch64-linux-gnu.tar.gz
     3eb8ba4643c8b2774e924c45f691417f3aa37bf71c9528f21763bdb47bbb33fe6  guix-build-c0f41523973e/output/arm-linux-gnueabihf/SHA256SUMS.part
     447cc0bdec05bc41bb937e5c0f77c1e5a4c3fd98c61675786e0a728542ffb15ee  guix-build-c0f41523973e/output/arm-linux-gnueabihf/bitcoin-c0f41523973e-arm-linux-gnueabihf-debug.tar.gz
     57fe7b9f9085a8cb80afcf068cff74caf4aa56b06a64ccffd5dd975c2af192447  guix-build-c0f41523973e/output/arm-linux-gnueabihf/bitcoin-c0f41523973e-arm-linux-gnueabihf.tar.gz
     60b3398de2a918cef87dc3a8d385ea79c254dd363567d5bd6e87d765a238728b5  guix-build-c0f41523973e/output/arm64-apple-darwin/SHA256SUMS.part
     7068620b11ad97ef8adcc7ab8f8c6bc94608008e40f491b4fa0e69b19a2e4dd30  guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-codesigning.tar.gz
     83a698a972be14c8a886b44e44206a1eacb4482443935a2487951d0cc7190f22a  guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-unsigned.tar.gz
     9536927c6ff930e665bd00175a5cbb6d26af8ffcee3f5d82a0417c900d64b6c39  guix-build-c0f41523973e/output/arm64-apple-darwin/bitcoin-c0f41523973e-arm64-apple-darwin-unsigned.zip
    10cea669c6dc7dcaff3c59bbdb3478519474579f2023b2f7e3524841f8e3c88294  guix-build-c0f41523973e/output/dist-archive/bitcoin-c0f41523973e.tar.gz
    118f05da30224c64bc5316bef9b03d8c8a8e9cade4284628cdd6ba2b42d3b19790  guix-build-c0f41523973e/output/powerpc64-linux-gnu/SHA256SUMS.part
    12c964fbef6e9356f8ee271dce1f22a3ff531b3bece20645a6370dccfa0921aa32  guix-build-c0f41523973e/output/powerpc64-linux-gnu/bitcoin-c0f41523973e-powerpc64-linux-gnu-debug.tar.gz
    136d7ed07d0291e95e15f7827cee7c4d9c91405369b468ca06560f617ddfd77916  guix-build-c0f41523973e/output/powerpc64-linux-gnu/bitcoin-c0f41523973e-powerpc64-linux-gnu.tar.gz
    142c7118bbdf023fb5725441fc6f36f1c6fb88a1b0344eaea88960bcaa6e9d3bee  guix-build-c0f41523973e/output/riscv64-linux-gnu/SHA256SUMS.part
    15b8887b68c5fe32adb7ba611f501254b332799e8e54567a43daed5d1e0e9fed0f  guix-build-c0f41523973e/output/riscv64-linux-gnu/bitcoin-c0f41523973e-riscv64-linux-gnu-debug.tar.gz
    16cf65e729d31e257438cadcf069a474cedd79fed452aba8e56d64d644857fab03  guix-build-c0f41523973e/output/riscv64-linux-gnu/bitcoin-c0f41523973e-riscv64-linux-gnu.tar.gz
    174aab573f73b619cc33e8b3ec87876e3a454aa2630425c08f62f30a36faf3ef7b  guix-build-c0f41523973e/output/x86_64-apple-darwin/SHA256SUMS.part
    18061bec1912d10bae9ea4e5567f61bbbc790d448a5e6bb3220eaa5afdf1e3a194  guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-codesigning.tar.gz
    194d6633f18c2dc582ae457462031abc83bf714b51c2d065309c085f726307eed8  guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-unsigned.tar.gz
    2011c297eafeede6d60a0b6dde141fb6864084d6380b4d46f1a6bdab5db349abb3  guix-build-c0f41523973e/output/x86_64-apple-darwin/bitcoin-c0f41523973e-x86_64-apple-darwin-unsigned.zip
    21a2ac5f4a1ff7898fbab35c4c3b7a638f2fcf93d99afb95de30ba7c6885d35042  guix-build-c0f41523973e/output/x86_64-linux-gnu/SHA256SUMS.part
    22ba23ee2073b449125dd6845e4e68fa32caf57c8f9c506d690bb45674c8aaef59  guix-build-c0f41523973e/output/x86_64-linux-gnu/bitcoin-c0f41523973e-x86_64-linux-gnu-debug.tar.gz
    23805e3dde45ecdab4282d373d59f46269be84c1af9b59bd47bc0fd0774d30ba8f  guix-build-c0f41523973e/output/x86_64-linux-gnu/bitcoin-c0f41523973e-x86_64-linux-gnu.tar.gz
    24f7feed1d7e0f32c9ae3a776863970688073a02c2f56acfa7020014dfd15c4c7a  guix-build-c0f41523973e/output/x86_64-w64-mingw32/SHA256SUMS.part
    2588fdacba5d960cff0fd4e9cfc9b0800fe08b6df9cc7ab1a179f62097633bfd5b  guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-codesigning.tar.gz
    26ee7b96d0eb376ad4659d4fe666d66761625cef66d4bc8e8c3a2202adc3c34618  guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-debug.zip
    27eb03ff48c38b1f9cafc2a3ea11a46a45210942451d824270e171a1deea20c78d  guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-setup-unsigned.exe
    2883ee2ade04ed7fa58305bab8e022d88a4f6c69df111716e1f35af85c7120135e  guix-build-c0f41523973e/output/x86_64-w64-mingw32/bitcoin-c0f41523973e-win64-unsigned.zip
    
  51. fanquake commented at 11:30 am on May 15, 2025: member

    This seems to be broken for mac cross builds:

     0make -C depends HOST=x86_64-w64-mingw32
     1cmake -B build --toolchain depends/x86_64-w64-mingw32/toolchain.cmake
     2<snip>
     3CMake Error at cmake/module/AddWindowsResources.cmake:9 (target_sources):
     4  Cannot find source file:
     5
     6    /Users/xxx/bitcoin/src/bitcoin-util-manifest.rc
     7Call Stack (most recent call first):
     8  cmake/module/AddWindowsResources.cmake:25 (add_windows_resources)
     9  src/CMakeLists.txt:427 (add_windows_application_manifest)
    10
    11CMake Error at cmake/module/AddWindowsResources.cmake:9 (target_sources):
    12  Cannot find source file:
    13
    14    /Users/xxx/bitcoin/src/qt/bitcoin-qt-manifest.rc
    15Call Stack (most recent call first):
    16  cmake/module/AddWindowsResources.cmake:25 (add_windows_resources)
    17  src/qt/CMakeLists.txt:259 (add_windows_application_manifest)
    18
    19-- Generating done (0.7s)
    20CMake Generate step failed.  Build files cannot be regenerated correctly.
    
  52. cmake: Add application manifests when cross-compiling for Windows
    Windows application manifests provide several benefits. However, on the
    master branch, the linker generates and embeds manifests only when
    building with MSVC.
    
    This change unifies manifest embedding for both native and
    cross-compilation.
    282b4913c7
  53. ci: Add "Get bitcoind manifest" steps to Windows CI jobs
    This change makes it easy to verify any changes in the application
    manifests.
    2bb6ab8f1b
  54. symbol-check: Add check for application manifest in Windows binaries
    Check that the application manifest is present in all binaries.
    
    Co-authored-by: laanwj <126646+laanwj@users.noreply.github.com>
    8f4fed7ec7
  55. hebasto force-pushed on May 15, 2025
  56. hebasto commented at 1:02 pm on May 15, 2025: member

    Updated c0f41523973e33a8cd104a8ebf4906a4d99f3eed -> 8f4fed7ec70093e2535423d63e9f9dd400c378ac (pr32396.08 -> pr32396.09, diff):

    The feedback from @fanquake has been addressed. Thank you!

  57. hebasto commented at 3:20 pm on May 15, 2025: member

    My Guix build:

     0aarch64
     114f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
     2793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
     36bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
     4e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
     5ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
     67565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
     7feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9  guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
     88454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
     9a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
    101f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
    11ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1  guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
    12f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
    1327f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
    146716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
    15b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
    16a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
    1747899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
    18a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
    19fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
    202a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
    211f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
    228fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
    238512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
    242afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
    2513e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
    26d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
    27546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
    280284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
    29efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
    
  58. sipsorcery commented at 7:42 pm on May 15, 2025: contributor
    re-tACK 8f4fed7ec70093e2535423d63e9f9dd400c378ac.
  59. DrahtBot requested review from hodlinator on May 15, 2025
  60. DrahtBot requested review from laanwj on May 15, 2025
  61. hodlinator commented at 8:39 pm on May 15, 2025: contributor

    re-ACK 8f4fed7ec70093e2535423d63e9f9dd400c378ac

    Tested that corrected resource path worked when cross-building Linux->Windows:

    0ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1  guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
    113e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
    2d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
    3546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
    40284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
    5efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
    

    (Same hashes as hebastos: #32396 (comment)).

  62. in .github/workflows/ci.yml:372 in 2bb6ab8f1b outdated
    367+        shell: pwsh
    368+        run: |
    369+          & $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -out:bitcoind.manifest
    370+          Get-Content bitcoind.manifest
    371+          & $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -validate_manifest
    372+
    


    davidgumberg commented at 10:09 pm on May 15, 2025:
    Question: Why is it necessary to search for mt.exe here, but not in the windows-native-dll job above?

    davidgumberg commented at 11:00 pm on May 15, 2025:

    Ah, I see, this is related to the discussion above. (https://github.com/bitcoin/bitcoin/pull/32396#discussion_r2077252899).

    This job’s prompt is not configured as a visual studio prompt, so it doesn’t have the visual studio sdk executables in it’s path, unlike the job above.


    davidgumberg commented at 11:40 pm on May 15, 2025:
    I think a more general approach as described here: https://github.com/microsoft/vswhere/wiki/Start-Developer-Command-Prompt#using-powershell would be better, but I think this question is better suited for #32513.
  63. davidgumberg commented at 0:29 am on May 16, 2025: contributor

    Reviewed and tested ACK https://github.com/bitcoin/bitcoin/commit/8f4fed7ec70093e2535423d63e9f9dd400c378ac

     0PS Z:\bitcoin-8f4fed7ec700> Get-ChildItem -Filter "bin\*.exe" | ForEach-Object {
     1>>   echo "Checking $($_.Name)"
     2>>   mt.exe -nologo -inputresource:$_.FullName -validate_manifest
     3>> }
     4Checking bitcoin-cli.exe
     5Parsing of manifest successful.
     6Checking bitcoin-qt.exe
     7Parsing of manifest successful.
     8Checking bitcoin-tx.exe
     9Parsing of manifest successful.
    10Checking bitcoin-util.exe
    11Parsing of manifest successful.
    12Checking bitcoin-wallet.exe
    13Parsing of manifest successful.
    14Checking bitcoind.exe
    15Parsing of manifest successful.
    16Checking test_bitcoin.exe
    17Parsing of manifest successful.
    

    And I checked that both CI tests added here catch an invalid manifest.

     0PS Z:\bitcoin-8f4fed7ec700>  mt.exe -nologo -inputresource:.\bin\bitcoind.exe -out:bitcoind.manifest
     1PS Z:\bitcoin-8f4fed7ec700> Get-Content .\bitcoind.manifest
     2<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
     3<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     4  <assemblyIdentity type="win32" name="org.bitcoincore.bitcoind" version="29.99.0.0"></assemblyIdentity>
     5  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     6    <security>
     7      <requestedPrivileges>
     8        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
     9      </requestedPrivileges>
    10    </security>
    11  </trustInfo>
    12</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 #31407 (comment))

    0find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    
     014f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
     1793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
     26bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
     3e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
     4ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
     57565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
     6feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9  guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
     78454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
     8a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
     91f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
    10ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1  guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
    11f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
    1227f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
    136716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
    14b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
    15a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
    1647899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
    17a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
    18fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
    192a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
    201f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
    218fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
    228512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
    232afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
    2413e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
    25d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
    26546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
    270284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
    28efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
    
  64. fanquake merged this on May 16, 2025
  65. fanquake closed this on May 16, 2025

  66. fanquake commented at 8:52 am on May 16, 2025: member

    Guix Build

     014f6c52455cfd4f871e97271938e906137d0a0eac8adb381cf22775e71e9662a  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/SHA256SUMS.part
     1793ebdb24d8956a0829c59074e3a5748b0914aa34f076956a6d0b4ef09274187  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu-debug.tar.gz
     26bc3f991fce9e2f3dbd9e8aafd3f5a3957f92fdef478c1b95af2e5badfaddc30  guix-build-8f4fed7ec700/output/aarch64-linux-gnu/bitcoin-8f4fed7ec700-aarch64-linux-gnu.tar.gz
     3e475ede22a88ba1caa842ae526b5cb9b4ed5508b0b48a3125b3e3852f0c23688  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/SHA256SUMS.part
     4ac98da0554700b3d3b0328b9154fb2f9c9b9df49ed9d0605e802ff757be779e3  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf-debug.tar.gz
     57565295609b83c267cc2d7b06508235a753ea17700b54416bc7d26e217f4ae18  guix-build-8f4fed7ec700/output/arm-linux-gnueabihf/bitcoin-8f4fed7ec700-arm-linux-gnueabihf.tar.gz
     6feb1de97afa454b2a75f9e8e55e63159ac2726823ddbee92f841e77807f166b9  guix-build-8f4fed7ec700/output/arm64-apple-darwin/SHA256SUMS.part
     78454d56baca0eb80b5443b625b3130f2481d0c543164cd76077afc440718d6d4  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-codesigning.tar.gz
     8a4d7f0a26b288faabb13f072a1b0f06870a6428481d722a0959e5632d9c3292f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.tar.gz
     91f9c22896493ce2b4564a5d4c18a5962526b194fc70bd6bc9d9eedded517fc8f  guix-build-8f4fed7ec700/output/arm64-apple-darwin/bitcoin-8f4fed7ec700-arm64-apple-darwin-unsigned.zip
    10ef128525ed9307b7fefd7b9581e20c8b2c5dd4e4a81b3b97f54ec4c4d26fcbc1  guix-build-8f4fed7ec700/output/dist-archive/bitcoin-8f4fed7ec700.tar.gz
    11f65f78065a65654f9bb2a4748c477deb54028344674f4c65a1a2805cde64ab79  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/SHA256SUMS.part
    1227f50c432ad6caab5ae6890e96ca7b000370ffba755e6d72cf817425b45fc72c  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu-debug.tar.gz
    136716a08b1ce61d606b9dd3658d750e19d4afe271f1e088842b9db9ac95272981  guix-build-8f4fed7ec700/output/powerpc64-linux-gnu/bitcoin-8f4fed7ec700-powerpc64-linux-gnu.tar.gz
    14b2ac59a49c7b827fa190b061340f828e42002c3fb865fbaabed759faec611bc9  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/SHA256SUMS.part
    15a74da87cc09756f30af878d70704f492e8d4cf3e1aa9cb0a81ffab9b0915794b  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu-debug.tar.gz
    1647899f0b331639484d76f4c950b54a9e07fcb52677d9ffef9b3704a1b1bb7515  guix-build-8f4fed7ec700/output/riscv64-linux-gnu/bitcoin-8f4fed7ec700-riscv64-linux-gnu.tar.gz
    17a0f31342d90c1931844d4e6423b7854b52c2fa9ad103f2542218a53217e592ba  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/SHA256SUMS.part
    18fa8ca58c1a624519ccd66a0163e11b25e6dff0d3fac5e660826961d4129e1f69  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-codesigning.tar.gz
    192a2fc089dd32f711089682cd7d07b3584d47eeb590321ce47bd3fdafdbf1518d  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.tar.gz
    201f6f1e696f2c3757584a7d08b9d326f0991aa0e1517bac453625559d3d116489  guix-build-8f4fed7ec700/output/x86_64-apple-darwin/bitcoin-8f4fed7ec700-x86_64-apple-darwin-unsigned.zip
    218fddf78aab581a90786792b2f7aae7d5c8c89f403a69797f65badb40920d9d51  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/SHA256SUMS.part
    228512589bb8c8d0f2ba2d49b5e4f994854143cef5bf6e4c6084e735ee16c49dba  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu-debug.tar.gz
    232afd0627f49b74c947a1ae0f717e72b8afd77555b727f997a16ac046da13e5b0  guix-build-8f4fed7ec700/output/x86_64-linux-gnu/bitcoin-8f4fed7ec700-x86_64-linux-gnu.tar.gz
    2413e21b0584d6cba7a5fd829f654c15862347f12e8ba5eb7a66d9a2e7df53b35e  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/SHA256SUMS.part
    25d55509ab2ac5b1d4dce7a7b10d4cd6a3a33c7fe63511bb233ea1d8a38cfa44e2  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-codesigning.tar.gz
    26546e8218b4dac81fd5c992eaf06bf1f88b6132cb28c43c37c68e5ed3be451f00  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-debug.zip
    270284490e874f74cb8d7e7c6817c673be77698d3bcdd88ad3c9841f2e05d30bb3  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-setup-unsigned.exe
    28efb81e9228565a592e40ded28db5b87cb67fb0d37e0cdb6481b1305f4352fdca  guix-build-8f4fed7ec700/output/x86_64-w64-mingw32/bitcoin-8f4fed7ec700-win64-unsigned.zip
    
  67. hebasto deleted the branch on May 16, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-05-26 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me