Skip to content

ci: Bump channel to nixos-26.05#296

Open
maflcko wants to merge 3 commits into
bitcoin-core:masterfrom
maflcko:2606-ci-bump
Open

ci: Bump channel to nixos-26.05#296
maflcko wants to merge 3 commits into
bitcoin-core:masterfrom
maflcko:2606-ci-bump

Conversation

@maflcko

@maflcko maflcko commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Mostly to get more recent iwyu coverage (ref #294 (comment))

@DrahtBot

DrahtBot commented Jun 11, 2026

Copy link
Copy Markdown

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.
A summary of reviews will appear here.

@maflcko

maflcko commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

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 ...

@maflcko

maflcko commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

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

maflcko commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

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; }' -L

So I guess the alternative would be to pin olddeps to an older snapshot/channel, but this just seems tedious for little benefit.

@ryanofsky

ryanofsky commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the PR. The main change fa2c56e looks good but 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. 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.sh changes in 34f48d1 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

hebasto commented Jun 11, 2026

Copy link
Copy Markdown
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:

  1. Which policies affect the project?
  2. Which minimum Policy Version is required by the project?

All previous changes in this repository, including 06e1045, 6902bfd, and 729ff16, do not provide details in that regard.

@maflcko

maflcko commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

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 changes

Then, I can open a follow-up to remove the line again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants