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.
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.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33623.
See the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
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 |
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
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.
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.
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 |
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)
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.
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.
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... |