Release 3.21.2 (2026-06-18)
- Based on upstream Nix 2.34.7.
Performance improvements
nix store optimise is now multi-threaded. This makes it much faster (e.g. from 301s to 111s on one particular store) since hashing can be done in parallel. PR: DeterminateSystems/nix-src#492
Copying of sources to the Nix store is now cached better in the evaluator. PR: DeterminateSystems/nix-src#507
Improved error messages
When a user isn't allowed to connect to the Nix daemon, previously they would get the unhelpful error message:
error: cannot open connection to remote store 'daemon': error: read of 32768 bytes: Connection reset by peer
Now they get:
error: cannot open connection to remote store 'daemon': access denied by the Nix daemon (check the `allowed-users` setting in the daemon)
PR: DeterminateSystems/nix-src#498
Various bug fixes
- Add missing manpages by @edolstra in DeterminateSystems/nix-src#490
- SQLiteStmt::Use: Rename operator() -> apply() by @edolstra in DeterminateSystems/nix-src#491
- Fix running hydraJobs in CI by @edolstra in DeterminateSystems/nix-src#494
- ci: include output paths in FlakeHub upload by @cole-h in DeterminateSystems/nix-src#495
- fixup: don't include linux-only drvs if not on linux by @cole-h in DeterminateSystems/nix-src#496
- Daemon: Ignore interrupts between accept() and child start by @edolstra in DeterminateSystems/nix-src#502
- nario tweaks by @edolstra in DeterminateSystems/nix-src#499
- Fix crash in builtins.break by @edolstra in DeterminateSystems/nix-src#505
- Fix SSH connection sharing by @pjungkamp in DeterminateSystems/nix-src#506
- Replace select() by poll() by @edolstra in DeterminateSystems/nix-src#504
- LocalStore::doAddToStore(): Check NAR size before NAR hash by @proski in DeterminateSystems/nix-src#512
- Increase the sourceToSink/sinkToSource coroutine stack sizes by @xokdvium in DeterminateSystems/nix-src#511
- Fix LocalStore::addMultipleToStore SinkToSource destructor unsoundness by @lilyinstarlight in DeterminateSystems/nix-src#513
- Fix exceptions not being caught in nix::Pid::~Pid by @lilyinstarlight in DeterminateSystems/nix-src#516
Refactorings
- Binary cache info by @edolstra in DeterminateSystems/nix-src#493
Release process improvements
- Build all the archs without DSP by @grahamc in DeterminateSystems/nix-src#503
- Mirror to nix-artifacts on release of tags by @grahamc in DeterminateSystems/nix-src#501
- ci: fixup mirroring by @cole-h in DeterminateSystems/nix-src#515
Full Changelog: v3.21.1...v3.21.2