Skip to content

chore: update nix to 2.34.9 and NixOS to 26.05 - #43

Merged
raphaelcoeffic merged 3 commits into
mainfrom
chore/nixos-26.05
Oct 26, 2026
Merged

raphaelcoeffic merged 3 commits into
mainfrom
chore/nixos-26.05

Conversation

@raphaelcoeffic

@raphaelcoeffic raphaelcoeffic commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

NixOS 25.05 has been EOL since the start of 2026, so the base image packages have missed about 10 months of security updates.

Changes

  • NIXOS_VERSION: 25.05 → 26.05
  • NIX_VERSION: 2.28.3 → 2.34.9 (the stable Nix in nixpkgs 26.05). Its installer tarball layout works with install_nix / find_nix as before.
  • README nix.conf example updated.
  • pkg search / pkg install now use the 26.05 search index. Before, they used nixos-unstable while packages are built from the stable release (since feat: use stable NixOS release (24.11) #31), so listed versions could differ from the installed ones. Results are also collapsed to one per package, taken from the newest index generation. Before, latest-* matched every generation still served (4-5), so each package showed up several times.
  • The command-not-found program index now comes from the same release. The Makefile reads the channel from NIXOS_VERSION in src/lib.rs, instead of using nixos-unstable. The index file is named after its channel (src/assets/programs-26.05.sqlite), so bumping NIXOS_VERSION downloads the matching index; before, an existing programs.sqlite was never refreshed.
  • The eMudhra cacert blocklist from v0.2.4 stays: nixos-26.05 is still on NSS 3.126, which lacks the NSS 3.131.1 removals. Remove the blocklist once cacert ≥ 3.131.1 reaches the release branch.

Testing (x86_64, local)

  • Clean make base-image package=no against nixos-26.05: all BASE_PACKAGES build, no evaluation warnings.
  • Base image ships bash 5.3, curl 8.22.0 / OpenSSL 3.6.5, coreutils 9.11 and nix 2.34.9.
  • The base image tools tested (curl, jq, tcpdump, vim, hx, htop, strace, sngrep, dig, lsof, ip, nc) all run from the image. nix --version and nix eval work.
  • ca-bundle.crt (nss-cacert-3.126) still has the 3 emSign roots marked rejected for serverAuth. curl inside the image rejects dv-g3b-emudhra.we-have-a-problem.com and dv-g3b-aaa-emudhra.we-have-a-problem.com and reaches github.com / cache.nixos.org.
  • pkg cycle in a dive session against an Alpine Docker container (driven with the command mode from feat: execute a command instead of an interactive shell #44): pkg search, pkg install iftop / ripgrep (built against nixos-26.05), tools available from /nix/.env/bin, pkg list, pkg remove iftop (ripgrep kept), base tools unaffected.
  • With the search fix: each package appears once; pkg list reports ripgrep 15.1.0, matching the installed rg --version (it reported 15.2.0, from unstable, before); an unknown package name still fails cleanly.
  • Program index: generated from the nixos-26.05 channel (80k programs). It is sorted bytewise, which matches the early stop in find_program, and sample lookups (rg → ripgrep, tshark, bpftrace, …) resolve.
  • aarch64: base image builds in CI.

Note: 26.05 itself is supported until about the end of December 2026, so plan for a 26.11 bump.

NixOS 25.05 is EOL. Nix 2.34 is the stable Nix in nixpkgs 26.05.

The eMudhra cacert blocklist is kept: nixos-26.05 is still at NSS 3.126.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
raphaelcoeffic and others added 2 commits October 26, 2026 09:49
Packages are built from the stable release since #31, but pkg search
and pkg install still looked packages up in the nixos-unstable index:
listed versions could differ from the installed ones, and packages
missing from the release were found, then failed to build.

The index pattern also matches every index generation still served,
so each package appeared once per generation (4-5 times), crowding the
20 search results. Collapse hits to one per package, taken from the
newest generation, as older ones are no longer updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The command-not-found index came from nixos-unstable, while packages
are built from the stable release. Take the channel from NIXOS_VERSION
in src/lib.rs instead.

The index file is named after its channel, so changing NIXOS_VERSION
downloads the matching index: before, an existing src/assets/programs.sqlite
was kept forever.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@raphaelcoeffic
raphaelcoeffic merged commit afb4a37 into main Oct 26, 2026
2 checks passed
@raphaelcoeffic
raphaelcoeffic deleted the chore/nixos-26.05 branch October 26, 2026 09:00
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.

1 participant