Closes: #33576
These dependencies are both undocumented, and libmultiprocess has a relatively special requirement in that v6.0 and later are know to not work with v29.x of Bitcoin Core.
Closes: #33576
These dependencies are both undocumented, and libmultiprocess has a relatively special requirement in that v6.0 and later are know to not work with v29.x 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 copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.
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.
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.
Suggestions here also taken in 1d2251850dd.
I opted to keep the suggested sentence, as I feel like stating (somewhere) that v6.0+ is known to not work is useful.
| 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... |
These dependencies are both undocumented, and libmultiprocess has a
relatively special requirement in that v6.0 and later are know to not
work with v29.x of Bitcoin Core.
Concept ACK - @willcl-ark did you want to address any of the suggestions here?
Sorry, PR updated now, taking @ryanofsky’s suggestions.