6.4 KiB
Release 26.11 ("Zokor", 2026.11/??)
Highlights
- The default PostgreSQL version for new NixOS installations (i.e. with
system.stateVersion >= 26.11) is v18.
New Modules
-
tranquil is an ATProto PDS (personal data server) implementation in Rust. A featureful, spec conscious and community driven alternative to the Bluesky reference implementation PDS. Available as services.tranquil-pds.
-
scx_loader, a system daemon and DBus-based loader for sched_ext schedulers.
scxctlis the command-line client for interacting with the loader, allowing users to switch schedulers, modes, and arguments dynamically. Available as services.scx-loader -
Nezha, a self-hosted, lightweight server and website monitoring and O&M tool. Available as services.nezha.
-
FlapAlerted, detects BGP flapping events and provides statistics based on BGP update messages. Available as services.flap-alerted.
Backward Incompatibilities
-
boot.vesahas been removed. It was deprecated in 2020 because Xorg now works better with kernel modesetting. If you still need the legacy VESA 800x600 fallback, setboot.kernelParams = [ "vga=0x317" "nomodeset" ];directly. -
Support for the legacy U‐Boot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
-
Rustical migrates from
settings.http.hostandsettings.http.porttosettings.http.bindto support UNIX domain sockets as well as TCP sockets in one setting. -
A number of options for
services.llama-cpphave been removed in favor of the structured option, attributes from which are used as arguments tollama-serverexecutable, you can see all available options by runningllama-server --help. Configuring model presets using Nix attribute set viaservices.llama-cpp.modelsPresetis no longer supported, please useservices.llama-cpp.settings.models-presetwith a path to an INI file containing desired options. -
Python 2 has been removed from the top-level package set, as it is long past end-of-life. The
python2,python27,python2Full,python27Full,python2Packages, andpython27Packagesattributes, along with the legacypython,pythonFull, andpythonPackagesaliases, now throw an error directing you topython3. TheisPy2andisPy27package flags have been removed accordingly. The only remaining Python 2 interpreter is vendored inside theresholvepackage for itsoildependency and is not exposed for general use. -
security.polkit.enablePkexecWrapperhas been introduced, making thepkexecsetuid wrapper opt-in. -
systemd.user.extraConfighas been removed in favor of the structured option. Usesystemd.user.settings.Managerto set anysystemd-user.conf(5)option directly. For example, replacesystemd.user.extraConfig = "DefaultTimeoutStartSec=60";withsystemd.user.settings.Manager.DefaultTimeoutStartSec = 60;. -
services.timesyncd.extraConfighas been removed in favor of the structured option. Useservices.timesyncd.settings.Timeto set anytimesyncd.conf(5)option directly. For example, replaceservices.timesyncd.extraConfig = "PollIntervalMaxSec=180";withservices.timesyncd.settings.Time.PollIntervalMaxSec = 180;. -
services.firezone.server.provisionhas been removed due to it being unmaintanable. Remove all uses of provisioning and use the WebUI to configure firezone. -
The
services.syncthingmodule now updates the Syncthing REST API using partial updates (PATCH) instead of full replacements (PUT) for general settings. Updating these settings was broken and prone to errors after updates, see #428808 and #528889. As a result, settings modified manually through the Syncthing Web UI that are not explicitly defined in your Nix configuration will now persist across rebuilds.
Other Notable Changes
-
komodohas been updated to the v2 release line (2.x). See the upstream v1 → v2 upgrade guide. -
security.run0.enableSudoAliasnow uses therun0-sudo-shiminstead of a shell-script to improve compatibility. -
boot.loader.systemd-bootgained support for Automatic Boot Assessment via the newboot.loader.systemd-boot.bootCountingoptions, allowing automatic detection of and recovery from bad NixOS generations. As part of this change, boot loader entries on the ESP/XBOOTLDR partition are now namednixos-<content-hash>.confinstead ofnixos-generation-<n>.conf; existing entries are migrated automatically on the nextnixos-rebuild boot/switch. -
security.polkit.settingsadded for RFC42 style configuration of the polkitd daemon. -
The
newuidmapandnewgidmapsecurity wrappers are now installed withcap_setuid/cap_setgidfile capabilities instead of the setuid-root bit, matching shadow's--with-fcapsinstall mode and other major distributions. Rootless containers (podman, docker-rootless, unprivileged user namespaces) are unaffected. The only behavioural change is that mapping host uid 0 via/etc/subuid(which NixOS never configures by default) additionally requirescap_setfcap; users who explicitly grant uid 0 in a subuid range can restore the previous behaviour withsecurity.wrappers.newuidmap.capabilities = lib.mkForce "cap_setuid,cap_setfcap+ep";.