Closes: #33576
These dependencies are both undocumented, and libmultiprocess has a relatively special requirement in that v6.0 and later are known to not work with v29.x of Bitcoin Core due to https://github.com/bitcoin-core/libmultiprocess/pull/160
Closes: #33576
These dependencies are both undocumented, and libmultiprocess has a relatively special requirement in that v6.0 and later are known to not work with v29.x of Bitcoin Core due to https://github.com/bitcoin-core/libmultiprocess/pull/160
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33623.
<!--021abf342d371248e50ceaed478a90ca-->
See the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
Concept ACK
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:
diff --git a/depends/packages/native_libmultiprocess.mk b/depends/packages/native_libmultiprocess.mk
index 4467dee76f50..a76304f9f050 100644
--- a/depends/packages/native_libmultiprocess.mk
+++ b/depends/packages/native_libmultiprocess.mk
@@ -1,8 +1,8 @@
package=native_libmultiprocess
-$(package)_version=1954f7f65661d49e700c344eae0fc8092decf975
+$(package)_version=v5.0
$(package)_download_path=https://github.com/bitcoin-core/libmultiprocess/archive
$(package)_file_name=$($(package)_version).tar.gz
-$(package)_sha256_hash=fc014bd74727c1d5d30b396813685012c965d079244dd07b53bc1c75c610a2cb
+$(package)_sha256_hash=401984715b271a3446e1910f21adf048ba390d31cc93cc3073742e70d56fa3ea
$(package)_dependencies=native_capnp
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.
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.
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)
Thanks, suggestions taken in 1d2251850dd
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.
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.
<!--9cd9c72976c961c55c7acef8f6ba82cd-->
| File | commit 2d6426c296ea43e62980d87d94fde0e94318a341<br>(29.x) | commit 1cf5154fc943d8a69de2e5fcf463920f05d8035b<br>(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... |
Concept ACK - @willcl-ark did you want to address any of the suggestions here?
Concept ACK - @willcl-ark did you want to address any of the suggestions here?
Sorry, PR updated now, taking @ryanofsky's suggestions.
@ryanofsky can you circle back here?
Code review 1d2251850dda2a2ae773029aeb32128b72c53f0b. Thanks for the update! This is mostly ok, but sorry my earlier suggestions were a little off, and I think this would be better to improve before merging. Would suggest:
--- a/doc/dependencies.md
+++ b/doc/dependencies.md
@@ -37,6 +37,6 @@ Bitcoin Core requires one of the following compilers.
| Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
| [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 |
| [capnproto](../depends/packages/capnp.mk) ([multiprocess](multiprocess.md)) | [link](https://capnproto.org/) | [1.2.0](https://github.com/bitcoin/bitcoin/pull/32760)| [0.7.0](https://github.com/bitcoin-core/libmultiprocess/pull/88) | No |
-| [libmultiprocess*](../depends/packages/libmultiprocess.mk) ([multiprocess](multiprocess.md)) | [link](https://github.com/bitcoin-core/libmultiprocess) | [5.0](https://github.com/bitcoin/bitcoin/pull/31740)| N/A | No |
+| [libmultiprocess](../depends/packages/libmultiprocess.mk) ([multiprocess](multiprocess.md)) | [link](https://github.com/bitcoin-core/libmultiprocess) | [5.0](https://github.com/bitcoin/bitcoin/pull/31945)| [v5.0-pre1](https://github.com/bitcoin/bitcoin/pull/31740)* | No |
-\* Libmultiprocess 6.0 and later versions are no longer compatible due to bitcoin-core/libmultiprocess#160.
+\* Libmultiprocess 5.x versions should be compatible, but 6.0 and later are not due to bitcoin-core/libmultiprocess#160.
To fix current version not linking to the right PR, minimum version not being specified, clarify the maximum version comment, and move asterisk where it's more directly relevant
These dependencies are both undocumented, and libmultiprocess has a
relatively special requirement in that v6.0 and later are known to not
work with v29.x of Bitcoin Core due to https://github.com/bitcoin-core/libmultiprocess/pull/160
Thanks @ryanofsky, I took your clarifying changes in 2cf352fd8e6a77003e38d954b6c879b20d4b960a
Code review ACK 2cf352fd8e6a77003e38d954b6c879b20d4b960a. Thanks for making all these changes and for opening the fix originally.