Skip to content

nix: repair flake for Nix 2.35 / macOS 26, modernize toolchain#1079

Merged
strub merged 1 commit into
mainfrom
nix-flake-repair
Jul 15, 2026
Merged

nix: repair flake for Nix 2.35 / macOS 26, modernize toolchain#1079
strub merged 1 commit into
mainfrom
nix-flake-repair

Conversation

@strub

@strub strub commented Jul 15, 2026

Copy link
Copy Markdown
Member

The flake had rotted against current toolchains:

  • nixpkgs declared both a URL and a follows; Nix >= 2.25 rejects
    the ambiguity (the follows was what the lock resolved all along).
  • The opam conf-git check had no git in its build environment; give
    it one via the overlay, like the existing conf-pkg-config fix.
  • opam-nix (2025-01) referenced darwin.apple_sdk, removed from
    nixpkgs, and its pinned nixpkgs shipped binaries that macOS 26's
    dyld rejects (duplicate LC_RPATH). Update opam-nix to 2026-06.
  • The pinned provers (z3 4.12.6, cvc4 1.8, cvc5 1.0.9) no longer
    compile with the clang 19 that comes with the newer nixpkgs. Take
    z3 (4.15.1) and cvc5 (1.3.0) directly from nixpkgs and drop cvc4
    (archived upstream), removing the source pins and the
    mkProverPackage machinery.

While at it, modernize the toolchain: OCaml 4.14.2 -> 5.4.1 and
Alt-Ergo 2.4.3 -> 2.6.3, with opam-repository advanced to 2026-07-14
(this also moves why3 to 1.8.2). Alt-Ergo 2.6.3's dune build invokes
codesign on macOS, so the overlay's darwin.sigtool fix is extended
to it.

ci: bump install-nix-action to v31 so CI exercises a current Nix
(v26's would not have caught the input conflict), cachix-action
to v17.

@strub
strub force-pushed the nix-flake-repair branch from 41cf466 to 3030011 Compare July 15, 2026 14:36
@strub strub changed the title nix: repair flake for Nix 2.35 / macOS 26, take provers from nixpkgs nix: repair flake for Nix 2.35 / macOS 26, modernize toolchain Jul 15, 2026
The flake had rotted against current toolchains:

- `nixpkgs` declared both a URL and a `follows`; Nix >= 2.25 rejects
  the ambiguity (the `follows` was what the lock resolved all along).
- The opam `conf-git` check had no git in its build environment; give
  it one via the overlay, like the existing `conf-pkg-config` fix.
- opam-nix (2025-01) referenced `darwin.apple_sdk`, removed from
  nixpkgs, and its pinned nixpkgs shipped binaries that macOS 26's
  dyld rejects (duplicate LC_RPATH). Update opam-nix to 2026-06.
- The pinned provers (z3 4.12.6, cvc4 1.8, cvc5 1.0.9) no longer
  compile with the clang 19 that comes with the newer nixpkgs. Take
  z3 (4.15.1) and cvc5 (1.3.0) directly from nixpkgs and drop cvc4
  (archived upstream), removing the source pins and the
  mkProverPackage machinery.

While at it, modernize the toolchain: OCaml 4.14.2 -> 5.4.1 and
Alt-Ergo 2.4.3 -> 2.6.3, with opam-repository advanced to 2026-07-14
(this also moves why3 to 1.8.2). Alt-Ergo 2.6.3's dune build invokes
codesign on macOS, so the overlay's darwin.sigtool fix is extended
to it.

ci: bump install-nix-action to v31 so CI exercises a current Nix
(v26's would not have caught the input conflict), cachix-action
to v17.
@strub
strub force-pushed the nix-flake-repair branch from 3030011 to 060becf Compare July 15, 2026 15:42
@strub
strub requested a review from bgregoir July 15, 2026 16:52
@strub
strub added this pull request to the merge queue Jul 15, 2026
@strub strub self-assigned this Jul 15, 2026
Merged via the queue into main with commit 19837f4 Jul 15, 2026
19 checks passed
@strub
strub deleted the nix-flake-repair branch July 15, 2026 18:20
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.

2 participants