depends: Bump boost to 1.88.0 and use new CMake buildsystem #32665

pull fanquake wants to merge 1 commits into bitcoin:master from fanquake:boost_shrink changing 2 files +161 −6
  1. fanquake commented at 4:46 pm on June 2, 2025: member

    Originally #30434.

    This has a few advantages over the old method of simply copying headers:

    • Installs proper CMake files which can be picked up by our buildsystem
    • Only installs necessary headers, not all of Boost

    Pulls in upstreamed https://github.com/boostorg/test/pull/445.

  2. depends: Bump boost to 1.88.0 and use new CMake buildsystem
    This has a few advantages over the old method of simply copying headers:
    - Installs proper cmake files which can be picked up by our buildsystem
    - Only installs necessary headers, not all of boost
    
    Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
    3a350c8a1b
  3. DrahtBot commented at 4:46 pm on June 2, 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/32665.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK hebasto, willcl-ark
    Concept ACK i-am-yuvi

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

  4. DrahtBot added the label Build system on Jun 2, 2025
  5. fanquake added the label DrahtBot Guix build requested on Jun 2, 2025
  6. hebasto commented at 4:48 pm on June 2, 2025: member
    Concept ACK.
  7. theuni commented at 7:27 pm on June 2, 2025: member
    Nice! Good work, @hebasto :)
  8. in depends/packages/boost.mk:12 in 3a350c8a1b
    11+$(package)_build_subdir = build
    12+
    13+define $(package)_set_vars
    14+  $(package)_config_opts = -DBOOST_INCLUDE_LIBRARIES="multi_index;signals2;test"
    15+  $(package)_config_opts += -DBOOST_TEST_HEADERS_ONLY=ON
    16+  $(package)_config_opts += -DBOOST_ENABLE_MPI=OFF
    


    theuni commented at 7:28 pm on June 2, 2025:
    Do these defines actually do anything in our case, or are they just here for the sake of being explicit?

    hebasto commented at 8:41 pm on June 2, 2025:
    The latter.
  9. hebasto approved
  10. hebasto commented at 8:23 pm on June 2, 2025: member

    My Guix build:

     0aarch64
     132f567efe7c9d428083d9eab15e9fb215e2860132b3a31a60f288d21d3ed3644  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/SHA256SUMS.part
     213bfeec126cef80d97a7b90f9cec32962cce8b3bbf445006f1233e1b45a74d43  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/bitcoin-3a350c8a1b51-aarch64-linux-gnu-debug.tar.gz
     322b967a5fdcc39fb999e9e30ac74b18509048f8918ddf08ab8a1de47bd587565  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/bitcoin-3a350c8a1b51-aarch64-linux-gnu.tar.gz
     43ce046806a4590d3b8f0b552e66b40e35bb863d91c71315a2298abc9c83ebc63  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/SHA256SUMS.part
     564a30da6f4adfb545a3a8494c41b9e9a8a9c67d1ccee10fe271e30cd9da4570a  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/bitcoin-3a350c8a1b51-arm-linux-gnueabihf-debug.tar.gz
     61389706705bf07a52d6dbaf4b3815c2ab8a5e176f4e0444055a972276c82e349  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/bitcoin-3a350c8a1b51-arm-linux-gnueabihf.tar.gz
     78e41056973a93c499909cff874f43f09a655c6de76f7819763c40284b7e98135  guix-build-3a350c8a1b51/output/arm64-apple-darwin/SHA256SUMS.part
     804cc76b71e5739a9bf68c4ee55d007c27b3fdbf6be9148a12cbc66ded4a69dfd  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-codesigning.tar.gz
     92f989cd1c681670c95d60cdb911d229d9f6f3041ee2ae8f329e383a3de518023  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-unsigned.tar.gz
    10b24133186d97073d48b45337389fc1f01baf5cdd10468decef693244cc4ec08b  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-unsigned.zip
    11d9f039b22b2f453652b7e8f6442fb884b9a03e0130dda6dd313dcf0d65ebcf04  guix-build-3a350c8a1b51/output/dist-archive/bitcoin-3a350c8a1b51.tar.gz
    12f3278d72bf43d088b2a8234e9f26d33e14fbe6ef372777d58fc61b81826d40d1  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/SHA256SUMS.part
    1309167e1eb66f133e626811c9511892af2bc639b475c1dcf198fe914ddf74a6a2  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/bitcoin-3a350c8a1b51-powerpc64-linux-gnu-debug.tar.gz
    146c39e3b9b0cf0bd5a77f72d4fa1049caeb72317e9d1a351159be79fcc531ec55  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/bitcoin-3a350c8a1b51-powerpc64-linux-gnu.tar.gz
    15852c17d334284a44fbb51080e3aa02108025a1fc21121ee450287d99885d4063  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/SHA256SUMS.part
    1645f8d6be242775ffecbdb1629ed01064ac52b5840051922672b925d8a34d89a5  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/bitcoin-3a350c8a1b51-riscv64-linux-gnu-debug.tar.gz
    1792e83f8986e72029bd2516f47ccce1767afabd55e052103f3110634a89bf400a  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/bitcoin-3a350c8a1b51-riscv64-linux-gnu.tar.gz
    180ee78ec8edf3c8a5e25b46c7664735ccfeb7d1f97ff547193058eb29f222f2c0  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/SHA256SUMS.part
    191e107c772bd8dcebe4baad8171f9897b854d09a7c00c8e05cc1ca3c2f3f44b26  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-codesigning.tar.gz
    203ee342696262d82f9afa2e9d386c37b909323b83414e1190c8ecf43646cf1918  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-unsigned.tar.gz
    21ce5518781ee1b441d5474dca2b65976d23ede28bb6d5e12cb4065650faffc672  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-unsigned.zip
    2233f01de944f7d07fe170be6332ec5639caa94ef6d77648c92e9b3d48aee16d83  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/SHA256SUMS.part
    237ca28c6e18ced70ae24f29e6faa167df684c3aa3dc348890248db5f04434cffa  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/bitcoin-3a350c8a1b51-x86_64-linux-gnu-debug.tar.gz
    24afaedff91f66938e856c7a61e4bf992234cb9c68fbd2e9045ea0fd70c48938b9  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/bitcoin-3a350c8a1b51-x86_64-linux-gnu.tar.gz
    25bac68896acc74695d57cff927b022da6871e3ece6ca8c3b520b967932993f775  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/SHA256SUMS.part
    261c96c852396554215df480dce868b208801f52da9dfd1a6df5642ce570351d19  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-codesigning.tar.gz
    274219ec869d94e8648f90d1831c50f350a2d39075b6e8ab7483320b69b6c26c75  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-debug.zip
    284cfa30516dd9afbdf4e8c7b62625dcc8afcfe4d7071aac0bad28274993df0cf6  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-setup-unsigned.exe
    29c95fe8d71ae65658a62bbc3e23bfcf86957222f84be2948fe1907302c2303284  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-unsigned.zip
    
  11. willcl-ark commented at 8:53 pm on June 2, 2025: member
    Would we not want to bump the boost version in AddBoostIfNeeded.cmake too?
  12. in depends/packages/boost.mk:10 in 3a350c8a1b
     9+$(package)_sha256_hash = dcea50f40ba1ecfc448fdf886c0165cf3e525fef2c9e3e080b9804e8117b9694
    10+$(package)_patches = skip_compiled_targets.patch
    11+$(package)_build_subdir = build
    12+
    13+define $(package)_set_vars
    14+  $(package)_config_opts = -DBOOST_INCLUDE_LIBRARIES="multi_index;signals2;test"
    


    hebasto commented at 10:07 pm on June 2, 2025:

    theuni commented at 11:06 pm on June 2, 2025:
    multi_index drags in a ton of header-only libs, CMake takes care of installing its dependencies. Is tuple a problem for some reason?

    theuni commented at 11:10 pm on June 2, 2025:
    That include should be perfectly safe to remove, btw. It’s included by (at least) boost/multi_index/sequenced_index.hpp.

    fanquake commented at 7:30 am on June 3, 2025:

    multi_index drags in a ton of header-only libs,

    Yea. We still end up with a huge amount of libraries. I’m guessing these some changes we could upstream to try and cut down the dependency graph.

  13. hebasto commented at 10:33 pm on June 2, 2025: member

    Would we not want to bump the boost version in AddBoostIfNeeded.cmake too?

    The minimum supported Boost version is a separate concern from the Boost version used in depends.

    It warrants its own PR, including an analysis of available packages on supported systems.

  14. fanquake commented at 7:30 am on June 3, 2025: member

    Would we not want to bump the boost version in AddBoostIfNeeded.cmake too?

    Sure, we can look at doing that too, while making other related changes.

  15. DrahtBot commented at 7:38 am on June 3, 2025: contributor

    Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]

    File commit 2d819fa4dff977fe3f57ddacc28719c7247c7d6f(master) commit 672627567d520cf10ec7415b0ce378b394f93faa(pull/32665/merge)
    *-aarch64-linux-gnu-debug.tar.gz 2aab5228fb09cac1... 0c690cb0ebab33b5...
    *-aarch64-linux-gnu.tar.gz ae04251340ab8b4d... 88ec6128462b5c34...
    *-arm-linux-gnueabihf-debug.tar.gz c7050ab4c3586f04... e2b8986960de57e1...
    *-arm-linux-gnueabihf.tar.gz 0970edde785d59ab... 109236c76ef76176...
    *-arm64-apple-darwin-codesigning.tar.gz b46384036ec92d9a... 117858eacb124d99...
    *-arm64-apple-darwin-unsigned.tar.gz c8c39cbb9838fad0... df465dfb6e931c98...
    *-arm64-apple-darwin-unsigned.zip 86e6781fc3a2db20... 83ab68e381833325...
    *-powerpc64-linux-gnu-debug.tar.gz fba4df5398cb8b5f... 34045d48e7ff6968...
    *-powerpc64-linux-gnu.tar.gz eab51da1676dc87f... 3d25bd3362887a77...
    *-riscv64-linux-gnu-debug.tar.gz 6e72285b5a8b93c3... dc1c2db7a302989b...
    *-riscv64-linux-gnu.tar.gz ae83088a81eaa56d... 04c0072922bcc12c...
    *-x86_64-apple-darwin-codesigning.tar.gz 9aa55dcb66514cde... 378208dd21add050...
    *-x86_64-apple-darwin-unsigned.tar.gz d122b5473f497ba1... f9de94f6cd9fdece...
    *-x86_64-apple-darwin-unsigned.zip 5361ab85e4bd61a6... fb5703693ce01a1f...
    *-x86_64-linux-gnu-debug.tar.gz 94480edb5c34dc88... 55275ba50f553dc9...
    *-x86_64-linux-gnu.tar.gz 4b78257576c959d2... 39a893b51bcd14c7...
    *.tar.gz 6070851b67ef9063... e05316bd374ffe8c...
    SHA256SUMS.part 058e34ba7960a953... 4d76f82ce4a3555d...
    guix_build.log db0d49019c5a01ff... d85efaaa3218ddcb...
    guix_build.log.diff 1082f73cdedd8b29...
  16. DrahtBot removed the label DrahtBot Guix build requested on Jun 3, 2025
  17. hebasto approved
  18. hebasto commented at 8:05 am on June 3, 2025: member
    ACK 3a350c8a1b51e140e2689e10dca338470e8deef2.
  19. i-am-yuvi commented at 12:21 pm on June 3, 2025: contributor
    Concept ACK
  20. willcl-ark approved
  21. willcl-ark commented at 1:02 pm on June 3, 2025: member

    ACK 3a350c8a1b51e140e2689e10dca338470e8deef2

    Tested that this works. I additionally tested rebasing #32595 on it, where it also works well.

  22. willcl-ark commented at 1:03 pm on June 3, 2025: member

    guix hashes:

     0src/core/bitcoin on  pr-32665 [$] via △ v3.31.6 via 🐍 v3.12.10 via ❄️  impure (nix-shell-env) took 50m49s
     1❯ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     232f567efe7c9d428083d9eab15e9fb215e2860132b3a31a60f288d21d3ed3644  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/SHA256SUMS.part
     313bfeec126cef80d97a7b90f9cec32962cce8b3bbf445006f1233e1b45a74d43  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/bitcoin-3a350c8a1b51-aarch64-linux-gnu-debug.tar.gz
     422b967a5fdcc39fb999e9e30ac74b18509048f8918ddf08ab8a1de47bd587565  guix-build-3a350c8a1b51/output/aarch64-linux-gnu/bitcoin-3a350c8a1b51-aarch64-linux-gnu.tar.gz
     53ce046806a4590d3b8f0b552e66b40e35bb863d91c71315a2298abc9c83ebc63  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/SHA256SUMS.part
     664a30da6f4adfb545a3a8494c41b9e9a8a9c67d1ccee10fe271e30cd9da4570a  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/bitcoin-3a350c8a1b51-arm-linux-gnueabihf-debug.tar.gz
     71389706705bf07a52d6dbaf4b3815c2ab8a5e176f4e0444055a972276c82e349  guix-build-3a350c8a1b51/output/arm-linux-gnueabihf/bitcoin-3a350c8a1b51-arm-linux-gnueabihf.tar.gz
     88e41056973a93c499909cff874f43f09a655c6de76f7819763c40284b7e98135  guix-build-3a350c8a1b51/output/arm64-apple-darwin/SHA256SUMS.part
     904cc76b71e5739a9bf68c4ee55d007c27b3fdbf6be9148a12cbc66ded4a69dfd  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-codesigning.tar.gz
    102f989cd1c681670c95d60cdb911d229d9f6f3041ee2ae8f329e383a3de518023  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-unsigned.tar.gz
    11b24133186d97073d48b45337389fc1f01baf5cdd10468decef693244cc4ec08b  guix-build-3a350c8a1b51/output/arm64-apple-darwin/bitcoin-3a350c8a1b51-arm64-apple-darwin-unsigned.zip
    12d9f039b22b2f453652b7e8f6442fb884b9a03e0130dda6dd313dcf0d65ebcf04  guix-build-3a350c8a1b51/output/dist-archive/bitcoin-3a350c8a1b51.tar.gz
    13f3278d72bf43d088b2a8234e9f26d33e14fbe6ef372777d58fc61b81826d40d1  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/SHA256SUMS.part
    1409167e1eb66f133e626811c9511892af2bc639b475c1dcf198fe914ddf74a6a2  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/bitcoin-3a350c8a1b51-powerpc64-linux-gnu-debug.tar.gz
    156c39e3b9b0cf0bd5a77f72d4fa1049caeb72317e9d1a351159be79fcc531ec55  guix-build-3a350c8a1b51/output/powerpc64-linux-gnu/bitcoin-3a350c8a1b51-powerpc64-linux-gnu.tar.gz
    16852c17d334284a44fbb51080e3aa02108025a1fc21121ee450287d99885d4063  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/SHA256SUMS.part
    1745f8d6be242775ffecbdb1629ed01064ac52b5840051922672b925d8a34d89a5  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/bitcoin-3a350c8a1b51-riscv64-linux-gnu-debug.tar.gz
    1892e83f8986e72029bd2516f47ccce1767afabd55e052103f3110634a89bf400a  guix-build-3a350c8a1b51/output/riscv64-linux-gnu/bitcoin-3a350c8a1b51-riscv64-linux-gnu.tar.gz
    190ee78ec8edf3c8a5e25b46c7664735ccfeb7d1f97ff547193058eb29f222f2c0  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/SHA256SUMS.part
    201e107c772bd8dcebe4baad8171f9897b854d09a7c00c8e05cc1ca3c2f3f44b26  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-codesigning.tar.gz
    213ee342696262d82f9afa2e9d386c37b909323b83414e1190c8ecf43646cf1918  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-unsigned.tar.gz
    22ce5518781ee1b441d5474dca2b65976d23ede28bb6d5e12cb4065650faffc672  guix-build-3a350c8a1b51/output/x86_64-apple-darwin/bitcoin-3a350c8a1b51-x86_64-apple-darwin-unsigned.zip
    2333f01de944f7d07fe170be6332ec5639caa94ef6d77648c92e9b3d48aee16d83  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/SHA256SUMS.part
    247ca28c6e18ced70ae24f29e6faa167df684c3aa3dc348890248db5f04434cffa  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/bitcoin-3a350c8a1b51-x86_64-linux-gnu-debug.tar.gz
    25afaedff91f66938e856c7a61e4bf992234cb9c68fbd2e9045ea0fd70c48938b9  guix-build-3a350c8a1b51/output/x86_64-linux-gnu/bitcoin-3a350c8a1b51-x86_64-linux-gnu.tar.gz
    26bac68896acc74695d57cff927b022da6871e3ece6ca8c3b520b967932993f775  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/SHA256SUMS.part
    271c96c852396554215df480dce868b208801f52da9dfd1a6df5642ce570351d19  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-codesigning.tar.gz
    284219ec869d94e8648f90d1831c50f350a2d39075b6e8ab7483320b69b6c26c75  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-debug.zip
    294cfa30516dd9afbdf4e8c7b62625dcc8afcfe4d7071aac0bad28274993df0cf6  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-setup-unsigned.exe
    30c95fe8d71ae65658a62bbc3e23bfcf86957222f84be2948fe1907302c2303284  guix-build-3a350c8a1b51/output/x86_64-w64-mingw32/bitcoin-3a350c8a1b51-win64-unsigned.zip
    

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-06-09 06:13 UTC

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