Mostly to get more recent iwyu coverage (ref #294 (comment))
ci: Bump channel to nixos-26.05 #296
pull maflcko wants to merge 3 commits into bitcoin-core:master from maflcko:2606-ci-bump changing 5 files +5 −15-
maflcko commented at 5:31 AM on June 11, 2026: contributor
-
Set cmake_minimum_required(VERSION 3.22) 34f48d1e8f
-
ci: Bump channel to nixos-26.05 fa2c56ec27
-
DrahtBot commented at 5:31 AM on June 11, 2026: none
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--021abf342d371248e50ceaed478a90ca-->
Reviews
See the guideline for information on the review process. A summary of reviews will appear here.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #288 (Create
supportbranch for CI scripts, documentation, and examples by ryanofsky) - #287 (Split repository into
master(library source) andsupport(CI, docs, examples) branches. by ryanofsky) - #274 (Add nonunix platform support by ryanofsky)
- #212 (ci: add newdeps job testing newer versions of cmake and capnproto by ryanofsky)
- #209 (cmake: Increase cmake policy version by ryanofsky)
- #163 (build: set cmake policy version to 3.31 by purpleKarrot)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
- #288 (Create
-
maflcko commented at 5:41 AM on June 11, 2026: contributor
Some bumps:
- gcc 14 -> 15
- llvm 20 -> 22 (albeit shell.nix pins it to 21)
- cmake 3 -> 4
- capn 1.1 -> 1.4
I wonder if it makes sense to have an llvm-olddeps check here as well (mostly for capn 1.1), to check the full range, but this can be done in a follow-up. Looks loke olddeps fails anyway ...
-
Merge commit '34f48d1e8f85dcd471c16a14b0bae01c1f2d561d' into 2606-ci-bump 4cc9ff7b97
-
maflcko commented at 6:19 AM on June 11, 2026: contributor
I am at a loss on reproducing and fixing the cmake 3.12 compile failure. Also, I don't see the point on wasting more time with ancient cmake versions that are only used by a single person, when #175 can be done, so I've included that here, to get the CI green.
-
maflcko commented at 7:23 AM on June 11, 2026: contributor
Ok, the failure seems to be:
4206-/nix/var/nix/builds/nix-37473-276334059/cmake-3.12.4/Utilities/cmcurl/lib/hostip.c: In function 'Curl_resolv_timeout': 4207:/nix/var/nix/builds/nix-37473-276334059/cmake-3.12.4/Utilities/cmcurl/lib/hostip.c:721:23: error: assignment to '__sighandler_t' {aka 'void (*)(int)'} from incompatible pointer type 'int (*) (int)' [-Wincompatible-pointer-types] 4208- 721 | sigact.sa_handler = alarmfunc; 4209- | ^ 4210-/nix/var/nix/builds/nix-37473-276334059/cmake-3.12.4/Utilities/cmcurl/lib/hostip.c:623:12: note: 'alarmfunc' declared here 4211- 623 | RETSIGTYPE alarmfunc(int sig) 4212- | ^~~~~~~~~ 4213-In file included from /nix/var/nix/builds/nix-37473-276334059/cmake-3.12.4/Utilities/cmcurl/lib/hostip.c:46: 4214-/nix/store/15h9askp4k1lx44d9871wid23j2a8ijp-glibc-2.42-61-dev/include/signal.h:72:16: note: '__sighandler_t' declared here 4215- 72 | typedef void (*__sighandler_t) (int); 4216- | ^~~~~~~~~~~~~~I used
NIX_PATH='nixpkgs=https://github.com/NixOS/nixpkgs/archive/bd0ff2d3eac24699c3664d5966b9ef36f388e2ca.tar.gz' nix --extra-experimental-features 'nix-command flakes' build --impure --expr 'let pkgs = import <nixpkgs> {}; in (pkgs.cmake.overrideAttrs (old: { version = "3.12.4"; src = pkgs.fetchurl { url = "https://cmake.org/files/v3.12/cmake-3.12.4.tar.gz"; hash = "sha256-UlVYS/0EPrcXViz/iULUcvHA5GecSUHYS6raqbKOMZQ="; }; patches = []; })).override { isMinimalBuild = true; }' -LSo I guess the alternative would be to pin olddeps to an older snapshot/channel, but this just seems tedious for little benefit.
-
ryanofsky commented at 11:20 AM on June 11, 2026: collaborator
Thanks for the PR. The main change fa2c56ec27f21eac9a102afadd49a073f74504f2 looks good but as discussed previously I don't think 34f48d1e8f85dcd471c16a14b0bae01c1f2d561d is a good change because it is changing the cmake policy version and minimum version at the same time. These are two different concepts that have different effects and should not be coupled together, especially without even mentioning the policy changes in the commit message or PR description.
If you believe it's important to trigger a fatal error that says cmake 3.22 is required (even though it is not required), I think you should do that without changing the policy version. Or you might consider just showing a warning that versions <= 3.22 are not supported. Or you might consider dropping the cmake change from this PR and leaving it for a dedicated PR.
I also don't think the
ci.shchanges in 34f48d1e8f85dcd471c16a14b0bae01c1f2d561d are good and would prefer to expand CI coverage (#212) rather than reduce it. But if there isn't a simpler / better way to fix the nixpkg error #296 (comment) maybe those changes would be worth it. Would want to investigate a little more. -
hebasto commented at 11:58 AM on June 11, 2026: member
... as discussed previously I don't think 34f48d1 is a good change because it is changing the cmake policy version and minimum version at the same time.
I think the discussion about CMake policies would benefit from starting with a few basic questions:
- Which policies affect the project?
- Which minimum Policy Version is required by the project?
All previous changes in this repository, including 06e1045baba09fc1fb876b6cb48d93d4b41b101b, 6902bfd40e33a0007f75bce8af0fc0b10a147e86, and 729ff16d559c7727e883850c6ed245ec48d11954, do not provide details in that regard.
-
maflcko commented at 12:49 PM on June 11, 2026: contributor
I don't think there is a policy in 3.12->3.22 that affects libmul.
However, if you want me to push something like this to #175, then I am happy to do that.
cmake_minimum_required(VERSION 3.22) cmake_policy(VERSION 3.12) # Set older policy than minimum, after minimum was bumped. This line has no effect on this project, but was done to minimize and de-tangle changesThen, I can open a follow-up to remove the line again.