12 KiB
Release 25.05 (“Warbler”, 2025.05/??)
Highlights
-
The default PHP version has been updated to 8.3.
-
nixos-rebuild-ng, a full rewrite ofnixos-rebuildin Python, is available for testing. You can enable it by setting system.rebuild.enableNg in your configuration (this will replace the oldnixos-rebuild), or by addingnixos-rebuild-ngto yourenvironment.systemPackages(in this case, it will live side-by-side withnixos-rebuildasnixos-rebuild-ng). It is expected that the next major version of NixOS (25.11) will enablesystem.rebuild.enableNgby default.
New Modules
-
Bazecor, the graphical configurator for Dygma Products.
-
Kimai, a web-based multi-user time-tracking application. Available as services.kimai.
-
Omnom, a webpage bookmarking and snapshotting service. Available as services.omnom.
-
MaryTTS, an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as services.marytts.
-
Traccar, a modern GPS Tracking Platform. Available as services.traccar.
-
crab-hole, a cross platform Pi-hole clone written in Rust using hickory-dns/trust-dns. Available as services.crab-hole.
-
Amazon CloudWatch Agent, the official telemetry collector for AWS CloudWatch and AWS X-Ray. Available as services.amazon-cloudwatch-agent.
-
Bat, a {manpage}
cat(1)clone with wings. Available as programs.bat. -
agorakit, an organization tool for citizens' collectives. Available with services.agorakit.
-
waagent, the Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. Available with services.waagent.
-
mqtt-exporter, a Prometheus exporter for exposing messages from MQTT. Available as services.prometheus.exporters.mqtt.
-
Buffyboard, a framebuffer on-screen keyboard. Available as services.buffyboard.
-
KanBoard, a project management tool that focuses on the Kanban methodology. Available as services.kanboard.
-
git-worktree-switcher, switch between git worktrees with speed. Available as programs.git-worktree-switcher
Backward Incompatibilities
-
binwalkwas updated to 3.1.0, which has been rewritten in rust. The python module is no longer available. See the release notes of 3.1.0 for more information. -
buildGoPackagehas been removed. UsebuildGoModuleinstead. See the Go section in the nixpkgs manual for details. -
strawberryhas been updated to 1.2, which drops support for the VLC backend and Qt 5. Thestrawberry-qt5package andwithGstreamer/withVlcoverride options have been removed due to this. -
timescaledbrequires manual upgrade steps. After you run ALTER EXTENSION, you must run this SQL script. For more details, see the following pull requests #6797. PostgreSQL 13 is no longer supported in TimescaleDB v2.16. -
Support for CUDA 10 has been dropped, as announced in the 24.11 release notes.
-
zammadhas had its support for MySQL removed, since it was never working correctly and is now deprecated upstream. Check the migration guide for how to convert your database to PostgreSQL. -
nodePackages.vlshas been deprecated, as the upstream consumer of it, vetur, has been deprecated by upstream. Upstream suggests migrating to Volar for Vue LSP tooling instead. -
nodePackages.create-react-native-apphas been removed, as it is deprecated. Upstream suggests using a framework for React Native apps instead. -
nodePackages.insecthas been removed, as it's deprecated by upstream. The suggested replacement isnumbat. -
nodePackages.webpack-dev-serverhas been removed, as it should be installed in projects that use it instead. -
racket_7_9has been removed, as it is insecure. It is recommended to use Racket 8 instead. -
fluxushas been removed, as it depends onracket_7_9and had no updates in 9 years. -
renovatewas updated to v39. See the upstream release notes for breaking changes. Like upstream's docker images, renovate now runs on NodeJS 22. -
The behavior of the
networking.nat.externalIPandnetworking.nat.externalIPv6options has been changed.networking.nat.forwardPortsnow only forwards packets destined for the specified IP addresses. -
nodePackages.meshcommanderhas been removed, as the package was deprecated by Intel. -
kanatawas updated to v1.7.0, which introduces several breaking changes. See the release notes of v1.7.0 for more information. -
nodePackages.expo-clihas been removed, as it was deprecated by upstream. The suggested replacement is thenpx expocommand. -
DokuWiki with the Caddy webserver (
services.dokuwiki.webserver = "caddy") now sets up sites with Caddy's automatic HTTPS instead of HTTP-only. To keep the old behavior for a siteexample.com, setservices.caddy.virtualHosts."example.com".hostName = "http://example.com". If you set custom Caddy options for a DokuWiki site, migrate these options by removinghttp://fromservices.caddy.virtualHosts."http://example.com". -
vscode-utils.buildVscodeExtensionnow requires pname as an argument -
nerdfontshas been separated into individual font packages under the namespacenerd-fonts. The directories for font files have changed from$out/share/fonts/{opentype,truetype}/NerdFontsto$out/share/fonts/{opentype,truetype}/NerdFonts/<fontDirName>, where<fontDirName>can be found in the official website as the titles in preview images, with the "Nerd Font" suffix and any whitespaces trimmed. Configuration changes are required, see build output. -
retroarchhas been refactored and the olderretroarch.override { cores = [ ... ]; }to create a RetroArch derivation with custom cores doesn't work anymore, useretroarch.withCores (cores: [ ... ])instead. If you need more customization (e.g.: custom settings), usewrapRetroArchinstead. -
gkrakensoftware andhardware.gkraken.enableoption have been removed, usecoolercontrolviaprograms.coolercontrol.enableoption instead. -
nodePackages.ganachehas been removed, as the package has been deprecated by upstream. -
virtualisation.azure.agentoption provided byazure-agent.nixis replaced byservices.waagent, and will be removed in a future release. -
containerdhas been updated to v2, which contains breaking changes. See the containerd 2.0 documentation for more details. -
The ZFS import service now respects
fileSystems.*.options = [ "noauto" ];and does not add that pool's import service tozfs-import.target, meaning it will not be automatically imported at boot. -
nodePackages.stackdriver-statsd-backendhas been removed, as the StackDriver service has been discontinued by Google, and therefore the package no longer works. -
the notmuch vim plugin now lives in a separate output of the
notmuchpackage. Installingnotmuchwill not bring the notmuch vim package anymore, addvimPlugins.notmuch-vimto your (Neo)vim configuration if you want the vim plugin. -
prismaandprisma-engineshave been updated to version 6.0.1, which introduces several breaking changes. See the Prisma ORM upgrade guide for more information. -
zfwas updated to 0.10.2, which includes breaking changes from the 0.10.0 release.zfno longer does Unicode normalization of the input and no longer supports terminal escape sequences in theZF_PROMPTenvironment variable.
Other Notable Changes
-
Cinnamon has been updated to 6.4.
-
networking.wireguardnow has an optional networkd backend. It is enabled by default whennetworking.useNetworkdis enabled, and it can be enabled alongside scripted networking withnetworking.wireguard.useNetworkd. Somenetworking.wireguardoptions have slightly different behavior with the networkd and script-based backends, documented in each option. -
services.avahi.ipv6now defaults to true. -
bind.cacheNetworksnow only controls access for recursive queries, where it previously controlled access for all queries.
Nixpkgs Library
Breaking changes
- Structure of the
functorof some types has changed.functoris an implementation detail and should not be relied upon. If you did rely on it let us know in this PR.lib.types.enum: Previously thefunctor.payloadwas the list of enum values directly. Now it is an attribute set containing the values in thevaluesattribute.lib.types.separatedString: Previously thefunctor.payloadwas the seperator directly. Now it is an attribute set containing the seperator in thesepattribute.