11 KiB
Release 25.11 ("Xantusia", 2025.11/??)
Highlights
-
nixos-rebuild-ng, a full rewrite ofnixos-rebuildin Python, is enabled by default from this release. You can disable it by setting tofalsein your configuration if you need, but please report any issues. It is expected that the next major version of NixOS (26.05) will remove the {option}system.rebuild.enableNgoption. -
Secure boot support can now be enabled for the Limine bootloader through {option}
boot.loader.limine.secureBoot.enable. Bootloader install script signs the bootloader, then kernels are hashed during system rebuild and written to a config. This allows Limine to boot only the kernels installed through NixOS system. -
The default PostgreSQL version for new NixOS installations (i.e. with
system.stateVersion >= 25.11) is v17. -
The NetworkManager module does not ship with a default set of VPN plugins anymore. All required VPN plugins must now be explicitly configured in
networking.networkmanager.plugins.
New Modules
-
gtklock, a GTK-based lockscreen for Wayland. Available as programs.gtklock.
-
Chrysalis, a graphical configurator for Kaleidoscope-powered keyboards. Available as programs.chrysalis.
-
Pi-hole, a DNS sinkhole for advertisements based on Dnsmasq. Available as services.pihole-ftl, and services.pihole-web for the web GUI and API.
-
Fediwall, a web application for live displaying toots from mastodon, inspired by mastowall. Available as services.fediwall.
-
FileBrowser, a web application for managing and sharing files. Available as services.filebrowser.
-
Options under networking.getaddrinfo are now allowed to declaratively configure address selection and sorting behavior of
getaddrinfoin dual-stack networks. -
LACT, a GPU monitoring and configuration tool, can now be enabled through services.lact.enable. Note that for LACT to work properly on AMD GPU systems, you need to enable hardware.amdgpu.overdrive.enable.
-
Auto-scrub support for Bcachefs filesystems can now be enabled through services.bcachefs.autoScrub.enable to periodically check for data corruption. If there's a correct copy available, it will automatically repair corrupted blocks.
-
[tlsrpt-reporter], an application suite to generate and deliver TLSRPT reports. Available as services.tlsrpt.
-
Broadcast Box, a WebRTC broadcast server. Available as services.broadcast-box.
-
Docker now defaults to 28.x, because version 27.x stopped receiving security updates and bug fixes after May 2, 2025.
-
Corteza, a low-code platform. Available as services.corteza.
-
Draupnir, a Matrix moderation bot. Available as services.draupnir.
-
postfix-tlspol, MTA-STS and DANE resolver and TLS policy server for Postfix. Available as services.postfix-tlspol.
-
Szurubooru, an image board engine inspired by services such as Danbooru, dedicated for small and medium communities. Available as services.szurubooru.
-
The Neat IP Address Planner (NIPAP) can now be enabled through services.nipap.enable.
-
nix-store-veritysetup, a systemd generator to unlock the Nix Store as a dm-verity protected block device. Available as boot.initrd.nix-store-veritysetup.
-
SuiteNumérique Docs, a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as services.lasuite-docs.
dwl, a compact, hackable compositor for Wayland based on wlroots. Available as programs.dwl.
-
mautrix-discord, a Matrix-Discord puppeting/relay bridge. Available as services.mautrix-discord.
-
SuiteNumérique Meet is an open source alternative to Google Meet and Zoom powered by LiveKit: HD video calls, screen sharing, and chat features. Built with Django and React. Available as services.lasuite-meet.
Backward Incompatibilities
-
The Perl implementation of the
switch-to-configurationprogram is removed. All switchable systems now use the Rust rewrite. Any prior usage ofsystem.switch.enableNgmust now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub. -
The
services.polipomodule has been removed aspolipois unmaintained and archived upstream. -
The Pocket ID module ([
services.pocket-id][#opt-services.pocket-id.enable]) and package (pocket-id) has been updated to 1.0.0. Some environment variables have been changed or removed, see the migration guide. -
[]{#sec-release-25.11-incompatibilities-sourcehut-removed} The
services.sourcehutmodule and correspondingsourcehutpackages were removed due to being broken and unmaintained. -
The
yeahwmpackage andservices.xserver.windowManager.yeahwmmodule were removed due to the package being broken and unmaintained upstream. -
The
services.postgresqlmodule now sets up a systemd unitpostgresql.target. Depending onpostgresql.targetguarantees that postgres is in read-write mode and initial/ensure scripts were executed. Depending onpostgresql.serviceonly guarantees a read-only connection. -
The
services.siproxdmodule has been removed assiproxdis unmaintained and broken with libosip 5.x. -
netbox-managescript created by thenetboxmodule no longer usessudo -u netboxinternally. It can be run as root and will change it's user tonetboxusingrunuser -
services.dwm-status.extraConfigwas replaced by RFC0042-compliant , which is used to generate the config file.services.dwm-status.orderis now moved to , as it's a part of the config file. -
gitversionwas updated to 6.3.0, which includes a number of breaking changes, old configurations may need updating or they will cause the tool to fail to run. See the 6.0.0 release notes for GitVersion for details on the breaking changes, the documentation on the configuration format for the new configuration specification, and the documentation on version variables for what is now supported. -
renovatewas updated to v41. See the upstream release notes for v40 and v41 for breaking changes. -
The
boot.readOnlyNixStorehas been removed. Control over bind mount options on/nix/storeis now offered by theboot.nixStoreMountOptsoption. -
The Postfix module has been updated and likely requires configuration changes:
- The
services.postfix.sslCertandsslKeyoptions were removed and you now need to configure- services.postfix.config.smtpd_tls_chain_files for server certificates,
- services.postfix.config.smtp_tls_chain_files for client certificates.
- The
-
vmalertnow supports multiple instances with the optionservices.vmalert.instances."".enable -
services.victorialogs.packagenow defaults tovictorialogs, asvictoriametricsno longer contains the VictoriaLogs binaries. -
The
wstunnelmodule was converted to RFC42-style settings, you will need to update your NixOS config if you make use of this module.
Other Notable Changes
-
services.clamsmtpis unmaintained and was removed from Nixpkgs. -
services.dnscrypt-proxy2gains apackageoption to specify dnscrypt-proxy package to use. -
services.giteasupports sending notifications with sendmail again. To do this, activate the parameterservices.gitea.mailerUseSendmailand configure SMTP server. -
services.ntpd-rsnow performs configuration validation. -
amdgpukernel driver overdrive mode can now be enabled by setting hardware.amdgpu.overdrive.enable and customized through hardware.amdgpu.overdrive.ppfeaturemask. This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}programs.corectrl.gpuOverclock.enableand {option}programs.tuxclocker.enableAMD. -
does not ship with an SSH agent anymore, as this is now handled by the
gcr_4package instead ofgnome-keyring. A new module has been added to support this, under (its default value has been set to to ensure a smooth transition). See the relevant upstream PR for more details. -
The
nettoolspackage (ifconfig, arp, mii-tool, netstat, route) is not installed by default anymore. The suite is unmaintained and users should migrate toiproute2andethtoolinstead.