doc: document capnproto and libmultiprocess deps in 29.x #33623

pull willcl-ark wants to merge 1 commits into bitcoin:29.x from willcl-ark:29.x-multiprocess changing 2 files +7 −2
  1. willcl-ark commented at 1:09 pm on October 14, 2025: member

    Closes: #33576

    These dependencies are both currently undocumented, and libmultiprocess has a relatively special requirement in that the documented version is the latest that will ever work with this version of Bitcoin Core.

  2. DrahtBot added the label Backport on Oct 14, 2025
  3. DrahtBot commented at 1:09 pm on October 14, 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/33623.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK ryanofsky
    Concept ACK sipa

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

  4. sipa commented at 1:20 pm on October 14, 2025: member
    Concept ACK
  5. fanquake added this to the milestone 29.3 on Oct 14, 2025
  6. in doc/dependencies.md:40 in ad73a8e254
    35@@ -36,3 +36,8 @@ Bitcoin Core requires one of the following compilers.
    36 | [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
    37 | Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
    38 | [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A | No |
    39+| [capnproto](../depends/packages/capnp.mk) ([multiprocess](multiprocess.md)) | [link](https://capnproto.org/) | [1.2.0](https://github.com/bitcoin/bitcoin/pull/32760)| N/A | No |
    40+| [libmultiprocess*](../depends/packages/libmultiprocess.mk) ([multiprocess](multiprocess.md)) | [link](https://github.com/bitcoin-core/libmultiprocess) | [1954f7f65661d49e700c344eae0fc8092decf975](https://github.com/bitcoin-core/libmultiprocess/tree/1954f7f65661d49e700c344eae0fc8092decf975)| N/A | No |
    


    ryanofsky commented at 8:29 pm on October 15, 2025:

    I went ahead and created a v5.0 tag pointing at this revision, as well as tags for versions used by other bitcoin core releases, described in https://github.com/bitcoin-core/libmultiprocess/pull/228.

    So it might make sense to replace 1954f7f65661d49e700c344eae0fc8092decf975 with 5.0 here, or maybe just add (5.0) after if we think it is important to specify the exact hash.

    It’d also be possible to update the depends file:

     0diff --git a/depends/packages/native_libmultiprocess.mk b/depends/packages/native_libmultiprocess.mk
     1index 4467dee76f50..a76304f9f050 100644
     2--- a/depends/packages/native_libmultiprocess.mk
     3+++ b/depends/packages/native_libmultiprocess.mk
     4@@ -1,8 +1,8 @@
     5 package=native_libmultiprocess
     6-$(package)_version=1954f7f65661d49e700c344eae0fc8092decf975
     7+$(package)_version=v5.0
     8 $(package)_download_path=https://github.com/bitcoin-core/libmultiprocess/archive
     9 $(package)_file_name=$($(package)_version).tar.gz
    10-$(package)_sha256_hash=fc014bd74727c1d5d30b396813685012c965d079244dd07b53bc1c75c610a2cb
    11+$(package)_sha256_hash=401984715b271a3446e1910f21adf048ba390d31cc93cc3073742e70d56fa3ea
    12 $(package)_dependencies=native_capnp
    13 
    14 define $(package)_config_cmds
    

    The sha256 hash nees to be updated there just because the tarball github generates has a different top-level directory name. Tested with:

    make -C depends MULTIPROCESS=1 native_libmultiprocess_fetched make -C depends MULTIPROCESS=1 native_libmultiprocess_built


    willcl-ark commented at 10:10 pm on October 15, 2025:

    Nice, thanks!

    I double-checked the tag points to the correct commit and tested a depends build using your package suggestion which all worked fine.

    Have therefore gone ahead with updating the depends package and dependencies.md in bf236d7a8af0826efc39a04113b79f96fe05f0c7 as you suggest.

  7. ryanofsky approved
  8. ryanofsky commented at 8:31 pm on October 15, 2025: contributor
    Code review ACK ad73a8e2540005f0d81310e10b61c4a61897b217. Thanks for the documentation! This change looks good as-is but i think it could also make sense to reference a version number instead of a commit hash so I left a suggestion below.
  9. DrahtBot requested review from sipa on Oct 15, 2025
  10. doc: document capnproto and libmultiprocess deps
    These dependencies are both undocumented, and libmultiprocess has a
    relatively special requirement in that the documented version is the
    **latest** that will ever work with this version of Bitcoin Core.
    bf236d7a8a
  11. willcl-ark force-pushed on Oct 15, 2025
  12. maflcko added the label DrahtBot Guix build requested on Oct 16, 2025
  13. in doc/dependencies.md:40 in bf236d7a8a
    35@@ -36,3 +36,8 @@ Bitcoin Core requires one of the following compilers.
    36 | [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
    37 | Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
    38 | [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A | No |
    39+| [capnproto](../depends/packages/capnp.mk) ([multiprocess](multiprocess.md)) | [link](https://capnproto.org/) | [1.2.0](https://github.com/bitcoin/bitcoin/pull/32760)| N/A | No |
    40+| [libmultiprocess*](../depends/packages/libmultiprocess.mk) ([multiprocess](multiprocess.md)) | [link](https://github.com/bitcoin-core/libmultiprocess) | [5.0](https://github.com/bitcoin-core/libmultiprocess/releases/tag/v5.0)| N/A | No |
    


    ryanofsky commented at 7:32 am on October 16, 2025:

    In commit “doc: document capnproto and libmultiprocess deps” (bf236d7a8af0826efc39a04113b79f96fe05f0c7)

    I think this could list 0.7.0 as minimum required version of Cap’n Proto linking to https://github.com/bitcoin-core/libmultiprocess/pull/88 (which dropped support for previous Cap’n Proto versions) and list 5.0 as minimum required version of libmultiprocess linking to #31740 (which added a dependency on the mp/type-*.h files that were introduced in v5)

  14. in doc/dependencies.md:43 in bf236d7a8a
    35@@ -36,3 +36,8 @@ Bitcoin Core requires one of the following compilers.
    36 | [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
    37 | Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
    38 | [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A | No |
    39+| [capnproto](../depends/packages/capnp.mk) ([multiprocess](multiprocess.md)) | [link](https://capnproto.org/) | [1.2.0](https://github.com/bitcoin/bitcoin/pull/32760)| N/A | No |
    40+| [libmultiprocess*](../depends/packages/libmultiprocess.mk) ([multiprocess](multiprocess.md)) | [link](https://github.com/bitcoin-core/libmultiprocess) | [5.0](https://github.com/bitcoin-core/libmultiprocess/releases/tag/v5.0)| N/A | No |
    41+
    42+\* Note that libmultiprocess v5.0 is the **latest** version that will work with Bitcoin Core v29.x due to numerous updates since [PR#164](https://github.com/bitcoin-core/libmultiprocess/pull/164) which will not be backported to this branch.
    43+Users providing libmultiprocess themselves (i.e. not via depends) should not build any later version or commit than this.
    


    ryanofsky commented at 7:41 am on October 16, 2025:

    In commit “doc: document capnproto and libmultiprocess deps” (bf236d7a8af0826efc39a04113b79f96fe05f0c7)

    I think I’d suggest dropping this paragraph because we can’t really say 5.0 is the latest version that will work. There is a v5 branch, so in theory if there were fixes or features we wanted to backport it would be possible to create 5.1, 5.2, etc versions that should be compatible with 5.0.

    Libmultiprocess doesn’t seem different than other dependencies like python and sqlite in this respect: we don’t know what future versions may be compatible with current code and don’t try to make promises or predictions about them here.

    I guess this could say something like “* Libmultiprocess 6.0 and later versions are no longer compatible due to https://github.com/bitcoin-core/libmultiprocess/pull/160" if that would be helpful, though. And maybe move the asterisk to the “Minimum required” column since this information would seem more relevant there.

  15. ryanofsky approved
  16. ryanofsky commented at 8:11 am on October 16, 2025: contributor
    Code review ACK bf236d7a8af0826efc39a04113b79f96fe05f0c7. Looks good but left some more suggestions below. I think I might also adjust PR description not to say documented version is the latest version that will ever work (see below). I think it would be more accurate just to say that later versions are known not to work.
  17. DrahtBot commented at 10:00 pm on October 16, 2025: contributor

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

    File commit 2d6426c296ea43e62980d87d94fde0e94318a341(29.x) commit 1cf5154fc943d8a69de2e5fcf463920f05d8035b(pull/33623/merge)
    *-aarch64-linux-gnu-debug.tar.gz 96516432706ff96f... f51ecb1d49631b1f...
    *-aarch64-linux-gnu.tar.gz 8ae92586c85ddae4... 30eb447664521fe0...
    *-arm-linux-gnueabihf-debug.tar.gz d0b350c3fe8269ab... d946427001fcefe9...
    *-arm-linux-gnueabihf.tar.gz 59291de1d652478e... afc681cb121901c3...
    *-arm64-apple-darwin-codesigning.tar.gz d1a3958c6aeda608... e989b9762a799260...
    *-arm64-apple-darwin-unsigned.tar.gz 714c316038b0008d... d16e3a5cffce05fb...
    *-arm64-apple-darwin-unsigned.zip 0d583dc9b74a5eb0... e5f3df734d8401c8...
    *-powerpc64-linux-gnu-debug.tar.gz cb982070b04cf512... 6c2b37a2a16e151d...
    *-powerpc64-linux-gnu.tar.gz 7f86d14a36dac434... 44f196d498612bb2...
    *-riscv64-linux-gnu-debug.tar.gz 5f339b0c50fcb287... 25c664a31aca53e3...
    *-riscv64-linux-gnu.tar.gz 24945de9afb73c00... 75c56c71591f95c2...
    *-x86_64-apple-darwin-codesigning.tar.gz 611b5c5ba9d76401... 341d04b2124566f4...
    *-x86_64-apple-darwin-unsigned.tar.gz 204288ba8a474669... 5c1bea47511187b9...
    *-x86_64-apple-darwin-unsigned.zip afe209add7f494d3... e6e46c5794312031...
    *-x86_64-linux-gnu-debug.tar.gz f26b8076a763c1d6... f367d1c80280d21d...
    *-x86_64-linux-gnu.tar.gz a1ecd6495585d0bc... f42765c6c3a03250...
    *.tar.gz 669c1316762ee729... 702740b26d349c87...
    SHA256SUMS.part e2760f9dcc1cda76... b7be6a1c64aa2c45...
    guix_build.log 57b0bb8387b07942... da4ea4b4624f3866...
    guix_build.log.diff 70fb353e7ca072e1...
  18. DrahtBot removed the label DrahtBot Guix build requested on Oct 16, 2025


willcl-ark DrahtBot sipa ryanofsky


sipa

Labels
Backport

Milestone
29.3


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-10-19 15:13 UTC

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