38 KiB
Release 25.05 (“Warbler”, 2025.05/??)
Highlights
-
This release of Nixpkgs requires macOS Big Sur 11.3 or newer, as announced in the 24.11 release notes. We cannot guarantee that packages will continue to work on older versions of macOS. Future Nixpkgs releases will only support macOS versions supported by Apple; this means that Nixpkgs 25.11 will require macOS Sonoma 14 or newer. Users on old macOS versions should consider upgrading to a supported version (potentially using OpenCore Legacy Patcher for old hardware) or installing NixOS. If neither of those options are viable and you require new versions of software, MacPorts supports versions back to Mac OS X Snow Leopard 10.6.
-
The default kernel package has been updated from 6.6 to 6.12. All supported kernels remain available.
-
GCC has been updated from GCC 13 to GCC 14. This introduces some backwards‐incompatible changes; see the upstream porting guide for details.
-
LLVM has been updated from LLVM 16 (on Darwin) and LLVM 18 (on other platforms) to LLVM 19. This introduces some backwards‐incompatible changes; see the upstream release notes for details.
-
The default PHP version has been updated to 8.3.
-
The default Erlang OTP version has been updated to 27.
-
The default Elixir version has been updated to 1.18.
-
buildPythonPackage,buildPythonApplicationand the Python building setup hooks now support both__structuredAttrs = trueand__structuredAttrs = false. -
services.dexnow restarts upon changes to the.environmentFileor entries in.settings.staticClients[].secretFilewhen the entry is apathtype. -
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. -
A
nixos-rebuild build-imagesub-command has been added. It allows users to build platform-specific (disk) images from their NixOS configurations.nixos-rebuild build-imageworks similar to the popular nix-community/nixos-generators project. See new section on image building in the nixpkgs manual. It is also available fornixos-rebuild-ng. -
nixos-optionhas been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending intoattrsOfandlistOfsubmodule options, and--show-trace. -
The Mattermost module ({option}
services.mattermost) and packages (mattermostandmmctl) have been substantially updated:pkgs.mattermostLatestis now an option to track the latest (non-prerelease) Mattermost release. We test upgrade migrations from ESR releases (pkgs.mattermost) topkgs.mattermostLatest.- The Mattermost frontend is now built from source and can be overridden.
- Note that the Mattermost derivation containing both the webapp and server is now wrapped to allow them to be built independently, so overrides to both webapp and server look like
mattermost.overrideAttrs (prev: { webapp = prev.webapp.override { ... }; server = prev.server.override { ... }; })now.
- Note that the Mattermost derivation containing both the webapp and server is now wrapped to allow them to be built independently, so overrides to both webapp and server look like
services.mattermost.listenAddresshas been split into {option}services.mattermost.hostand {option}services.mattermost.port. If yourlistenAddresscontained a port, you will need to edit your configuration.- Mattermost now supports peer authentication on both MySQL and Postgres database backends. Updating {option}
system.stateVersionto 25.05 or later will result in peer authentication being used by default if the Mattermost server would otherwise be connecting to localhost. This is the recommended configuration. - The Mattermost module will produce eval warnings if a database password would end up in the Nix store, and recommend alternatives such as peer authentication or using the environment file.
- Mattermost's entire test suite is now enabled by default, which will extend build time from sources by up to an hour. A
withoutTestspassthru has been added in case you want to skip it. - We now support
mmctlfor Mattermost administration if both {option}services.mattermost.socket.enableand {option}services.mattermost.socket.exportare set, which export the Mattermost control socket path into the system environment. - A new
pkgs.mattermost.buildPluginfunction has been added, which allows plugins to be built from source, including webapp frontends with a supported package-lock.json. See the Mattermost NixOS test and manual for an example. - Note that the Mattermost module will create an account without a well-known UID if the username differs from the default (
mattermost). If you used Mattermost with a nonstandard username, you may want to review the module changes before upgrading.
New Modules
-
AmneziaVPN, an open-source VPN client, with a key feature that enables you to deploy your own VPN server on your server. Available as programs.amnezia-vpn.
-
Bazecor, the graphical configurator for Dygma Products.
-
Bonsai, a general-purpose event mapper/state machine primarily used to create complex key shortcuts, and as part of the SXMO desktop environment. Available as services.bonsaid.
-
scanservjs, a web UI for SANE scanners. Available at services.scanservjs.
-
Kimai, a web-based multi-user time-tracking application. Available as services.kimai.
-
Omnom, a webpage bookmarking and snapshotting service. Available as services.omnom.
-
Yggdrasil-Jumper is an independent project that aims to transparently reduce latency of a connection over Yggdrasil network, utilizing NAT traversal to automatically bypass intermediary nodes.
-
Zenoh, a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as services.zenohd
-
ytdl-sub, a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as services.ytdl-sub.
-
MaryTTS, an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as services.marytts.
-
networking.modemmanager has been split out of networking.networkmanager. NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
-
doh-server, a high performance DNS over HTTPS server. Available as services.doh-server.
-
ncps, a Nix binary cache proxy service implemented in Go using go-nix. Available as services.ncps.
-
Conduwuit, a federated chat server implementing the Matrix protocol, forked from Conduit. Available as services.conduwuit.
-
Readeck, a read-it later web-application. Available as services.readeck.
-
Traccar, a modern GPS Tracking Platform. Available as services.traccar.
-
Schroot, a lightweight virtualisation tool. Securely enter a chroot and run a command or login shell. Available as programs.schroot.
-
crab-hole, a cross platform Pi-hole clone written in Rust using hickory-dns/trust-dns. Available as services.crab-hole.
-
zwave-js-ui, a full featured Z-Wave Control Panel and MQTT Gateway. Available as services.zwave-js-ui.
-
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. -
µStreamer, a lightweight MJPEG-HTTP streamer. Available as services.ustreamer.
-
Whoogle Search, a self-hosted, ad-free, privacy-respecting metasearch engine. Available as services.whoogle-search.
-
autobrr, a modern download automation tool for torrents and usenets. Available as services.autobrr.
-
agorakit, an organization tool for citizens' collectives. Available with services.agorakit.
-
vivid, a generator for LS_COLOR. Available as programs.vivid.
-
waagent, the Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. Available with services.waagent.
-
duckdns, free dynamic DNS. Available with services.duckdns
-
nostr-rs-relay, This is a nostr relay, written in Rust. Available as services.nostr-rs-relay.
-
Actual Budget, a local-first personal finance app. Available as services.actual.
-
immich-public-proxy, a proxy for sharing Immich albums without exposing the Immich API. Available as services.immich-public-proxy.
-
Zipline, a ShareX/file upload server that is easy to use, packed with features, and with an easy setup. Available as services.zipline.
-
Fider, an open platform to collect and prioritize feedback. Available as services.fider.
-
mqtt-exporter, a Prometheus exporter for exposing messages from MQTT. Available as services.prometheus.exporters.mqtt.
-
nvidia-gpu, a Prometheus exporter that scrapes
nvidia-smifor GPU metrics. Available as services.prometheus.exporters.nvidia-gpu. -
InputPlumber, an open source input router and remapper daemon for Linux. Available as services.inputplumber.
-
echoip, a simple service for looking up your IP address. Available as services.echoip.
-
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
-
ast-grepremovesgcommand to prevent conflict withsgcommand from shadow-utils. If you need legacy sg command compatibility with old code, you can useast-grep.override { enableLegacySg = true; } -
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. -
buildGoModulenow passes environment variables via theenvattribute.CGO_ENABLEDshould now be specified withenv.CGO_ENABLEDwhen passing to buildGoModule. Direct specification ofCGO_ENABLEDis now redirected by a compatibility layer with a warning, but will become an error in future releases.Go-related environment variables previously shadowed by
buildGoModulenow results in errors when specified directly. Such variables includeGOOSandGOARCH.Third-party projects supporting both stable and unstable channels could detect this change through the absence of the
CGO_ENABLEDfunction argument inbuildGoModule(!((lib.functionArgs buildGoModule) ? CGO_ENABLED)). -
buildGoPackagehas been removed. UsebuildGoModuleinstead. See the Go section in the nixpkgs manual for details. -
top-level
playwrightnow refers to the github Microsoft/playwright package instead of the python tester launcher. You can still refer to the python launcher viapython3Packages.toPythonApplication python3Packages.playwright -
The representation of the flags attributes as shell/environment variables for most Python building setup hooks are now the same as
stdenv.mkDerivationand other build helpers -- they are space-separated environment variables when__structuredAttrs = falseand Bash arrays when__structuredAttrs = true, and are concatenated to the command without Bash-evaluation. The following behaviour changes are introduced during the conversion:-
The following flags are no longer Bash-expanded before concatenated to the command:
disabledTestsanddisabledTestPathsforpytestCheckHook. (disabledTestPathsused to be expanded twice before concatenation.)setupPyBuildFlagsandsetupPyGlobalFlagsforsetuptoolsBuildHook.
-
pytestFlagsandunittestFlagsreplacepytestFlagsArrayandunittestFlagsArrayand become the new and conforming interface. -
pytestFlagsArrayandunittestFlagsArrayare kept for compatibility purposes. They continue to be Bash-expanded before concatenated. This compatibility layer will be removed in future releases.
-
-
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. -
ps3-disc-dumperwas updated to 4.2.5, which removed the CLI project and now exclusively offers the GUI -
is unset by default, the previous default was
sqlite. This was done becausesqliteis not a reasonable default since it's not recommended by upstream and thus doesn't qualify as default. -
Nextcloud's default FPM pool settings have been increased according to upstream recommentations. It's advised to review the new defaults and description of .
-
kmonadis now hardened by default using commonsystemdsettings. If KMonad is used to execute shell commands, hardening may make some of them fail. In that case, you can disable hardening using {option}services.kmonad.keyboards.<name>.enableHardeningoption. -
asusdhas been upgraded to version 6 which supports multiple aura devices. To account for this, the singleauraConfigconfiguration option has been replaced withauraConfigswhich is an attribute set of config options per each device. The config files may also be now specified as either source files or text strings; to account for this you will need to specify thattextis used for your existing configs, e.g.:-services.asusd.asusdConfig = '''file contents''' +services.asusd.asusdConfig.text = '''file contents''' -
linuxPackages.nvidiaPackages.stablenow defaults to theproductionvariant instead oflatest. -
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. -
The
earlyoomservice is now using upstream systemd service, which enables hardening and filesystem isolation by default. If you need filesystem write access or want to access home directory viakillHook, hardening setting can be changed via, e.g.systemd.services.earlyoom.serviceConfig.ProtectSystem.services.earlyoom.extraArgsis now shell-escaped for each element without word-breaking. So you want to writeextraArgs = [ "--prefer" "spaced pat" ]rather than previousextraArgs = [ "--prefer 'spaced pat'" ]. -
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. -
nodePackages.copy-webpack-pluginhas been removed, as it should be installed in projects that use it instead. -
himalayahas been updated fromv1.0.0-beta.4tov1.1.0, which introduces breaking changes. Check out the release notes for details. -
linuxPackages.nvidiaPackages.dc_520has been removed since it is marked broken and there are better newer alternatives. -
pnpmwas updated to version 10. If your project is incompatible, you can install the previous version from the package attributepnpm_9. -
programs.less.lessopenis now null by default. To restore the previous behaviour, set it to''|${lib.getExe' pkgs.lesspipe "lesspipe.sh"} %s''. -
hardware.pulseaudiohas been renamed toservices.pulseaudio. The deprecated option names will continue to work, but causes a warning. -
minetesthas been renamed toluantito match the upstream name change but aliases have been added. The new name hasn't resulted in many changes as of yet but older references to minetest should be sunset. See the new name announcement for more details. -
racket_7_9has been removed, as it is insecure. It is recommended to use Racket 8 instead. -
rofihas been updated from 1.7.5 to 1.7.6 which introduces some breaking changes to binary plugins, and also contains a lot of new features and bug fixes. This is highlighted because the patch version bump does not indicate the volume of changes by itself. See the upstream release notes for the full list of changes. -
ente-authnow uses the nameenteauthfor its binary. The previous name wasente_auth. -
foundationdbwas upgraded to 7.3. -
fluxushas been removed, as it depends onracket_7_9and had no updates in 9 years. -
sm64ex-coophas been removed as it was archived upstream. Consider migrating tosm64coopdx. -
tldrnow usestldr-python-clientinstead oftldr-c-clientwhich is unmaintained. -
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. -
python3Packages.jaeger-clientwas removed because it was deprecated upstream. OpenTelemetry is the recommended replacement. -
nodePackages.meshcommanderhas been removed, as the package was deprecated by Intel. -
The default version of
z3has been updated from 4.8 to 4.13. There are still a few packages that need specific older versions; those will continue to be maintained as long as other packages depend on them but may be removed in the future. -
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 -
The behavior of
services.hostapd.radios.<name>.networks.<name>.authentication.enableRecommendedPairwiseCipherswas changed to not includeCCMP-256anymore. Since all configured pairwise ciphers have to be supported by the radio, this caused startup failures on many devices which is hard to debug in hostapd. -
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. -
To avoid delaying user logins unnecessarily the
multi-user.targetis no longer ordered afternetwork-online.target. System services requiring a connection to start correctly must explicitly state so, i.e.systemd.services.<name> = { wants = [ "network-online.target" ]; after = [ "network-online.target" ]; };This changed follows a deprecation period of one year started in NixOS 24.05 (see PR #283818).
-
The values of
services.borgbackup.jobs.*.extraArgsand otherextra*Argsoptions are now represented as Bash arrays. If these arguments were modified usingservices.borgbackup.jobs.*.preHook, they will need to be adjusted to append to these arrays, i.e.-extraCreateArgs="$extraCreateArgs --exclude /some/path" +extraCreateArgs+=("--exclude" "/some/path") -
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. -
matomonow defaults to version 5 (previously available asmatomo_5). Version 4 has been removed as it reached EOL on December 19, 2024. -
matomo-betahas been removed as the version of thematomopackage can now be easily overriden throughoverrideAttrs(see PR #374022) -
docker_24has been removed, as it was EOL with vulnerabilites since June 08, 2024. -
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. -
python3Packages.opentracinghas been removed due to being unmaintained upstream. OpenTelemetry is the recommended replacement. -
Default file names of images generated by several builders in
system.buildhave been changed as outlined in the table below.Names are now known at evaluation time and customizable via the new options
image.baseName,image.extension,image.fileNameandimage.filePathwith the latter returning a path relative to the derivations out path (e.g.iso/${image.fileNamefor iso images).|
system.buildOption | Old Filename | New Filename | |--------------------------+------------------------------------------------------------+-----------------------------------------------------------------| | amazonImage | nixos-amazon-image-25.05pre-git-x86_64-linux.vhd | nixos-image-amazon-25.05pre-git-x86_64-linux.vhd | | azureImage | disk.vhd | nixos-image-azure-25.05pre-git-x86_64-linux.vhd | | digitalOceanImage | nixos.qcow2.gz | nixos-image-digital-ocean-25.05pre-git-x86_64-linux.qcow2.gz | | googleComputeImage | nixos-image-25.05pre-git-x86_64-linux.raw.tar.gz | nixos-image-google-compute-25.05pre-git-x86_64-linux.raw.tar.gz | | hypervImage | nixos-25.05pre-git-x86_64-linux.vhdx | nixos-image-hyperv-25.05pre-git-x86_64-linux.vhdx | | isoImage (installer) | nixos-25.05pre-git-x86_64-linux.iso | nixos-image-25.05pre-git-x86_64-linux.iso | | isoImage | nixos.iso | nixos-image-25.05pre-git-x86_64-linux.iso | | kubevirtImage | nixos.qcow2 | nixos-image-kubevirt-25.05pre-git-x86_64-linux.qcow2 | | linodeImage | nixos-image-25.05pre-git-x86_64-linux.img.gz | nixos-image-linode-25.05pre-git-x86_64-linux.img.gz | | metadata (lxc-container) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-metadata-25.05pre-git-x86_64-linux.tar.xz | | OCIImage | nixos.qcow2 | nixos-image-oci-25.05pre-git-x86_64-linux.qcow2 | | openstackImage (zfs) | nixos-openstack-image-25.05pre-git-x86_64-linux.root.qcow2 | nixos-image-openstack-zfs-25.05pre-git-x86_64-linux.root.qcow2 | | openstackImage | nixos.qcow2 | nixos-image-openstack-25.05pre-git-x86_64-linux.qcow2 | | sdImage | nixos-sd-image-25.05pre-git-x86_64-linux.img.zst | nixos-image-sd-card-25.05pre-git-x86_64-linux.img.zst | | tarball (lxc-container) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-25.05pre-git-x86_64-linux.tar.xz | | tarball (proxmox-lxc) | nixos-system-x86_64-linux.tar.xz | nixos-image-lxc-proxmox-25.05pre-git-x86_64-linux.tar.xz | | vagrantVirtualbox | nixos-25.05pre-git-x86_64-linux.ova | nixos-image-virtualbox-25.05pre-git-x86_64-linux.ova | | virtualBoxOVA | virtualbox-vagrant.box | nixos-image-vagrant-virtualbox-25.05pre-git-x86_64-linux.ova | | vmwareImage | nixos-25.05pre-git-x86_64-linux.vmdk | nixos-image-vmware-25.05pre-git-x86_64-linux.vmdk | -
security.apparmor.policies.<name>.enforceandsecurity.apparmor.policies.<name>.enablewere removed. Configuring the state of apparmor policies must now be done usingsecurity.apparmor.policies.<name>.statetristate option. -
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. -
nqwas updated to 1.0, which renames thefqandtqutilities tonqtailandnqtermrespectively. -
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. -
programs.clash-verge.tunModewas deprecated and removed because now service mode is neccessary to start program. Withoutprograms.clash-verge.enable, clash-verge-rev will refuse to start. -
siduck76-sthas been renamed tost-snazzy, like the project's flake. -
python3Packages.jaxnow directly depends onpython3Packages.jaxlib. As a result, packages that depend on jax no longer need to include jaxlib to their dependencies. There is also a breaking change in the handling of CUDA. Instead of using a CUDA compatible jaxlib as before, you can use plugins likepython3Packages.jax-cuda12-plugin.
Other Notable Changes
-
Cinnamon has been updated to 6.4, please check the upstream announcement for more details.
- Following changes in Mint 22 we are no longer overriding Qt application styles. You can still restore the previous default with
qt.style = "gtk2"andqt.platformTheme = "gtk2". - Following changes in Mint 20 we are replacing xplayer with celluloid since xplayer is no longer maintained.
- Following changes in Mint 22 we are no longer overriding Qt application styles. You can still restore the previous default with
-
Pantheon has been updated to 8, please check the upstream announcement for more details.
- Same as elementary OS, the X11 session is named "Classic Session" and the Wayland session is named "Secure Session".
- The dock has been rewritten, you need to manually migrate the dock items on update. You can check
~/.config/plank/dock1/launchers/for your previous settings.
-
Xfce has been updated to 4.20, please check the upstream feature tour for more details.
- Wayland session is still experimental and requires opt-in using
enableWaylandSessionoption. - Overriding Wayland compositor is possible using
enableWaylandSessionoption, but you might need to take carexfce4-session,dbus-update-activation-environmentandsystemctl --user import-environmenton startup. - For new Xfce installations, default panel layout has changed to not include external panel plugins by default. You can still add them yourself using the "Panel Preferences" dialog.
- Wayland session is still experimental and requires opt-in using
-
GOverlay has been updated to 1.2, please check the upstream changelog for more details.
-
services.jupyteris now compatible withJupyter Notebook 7. See the migration guide for details. -
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. -
For matrix homeserver Synapse we are now following the upstream recommendation to enable jemalloc as the memory allocator by default.
-
services.kmonadnow creates a determinate symlink (in/dev/input/by-id/) to each of KMonad virtual devices. -
bind.cacheNetworksnow only controls access for recursive queries, where it previously controlled access for all queries. -
The paperless module now has an option for regular automatic export of documents data using the integrated document exporter.
-
New options for the declarative configuration of the user space part of ALSA have been introduced under hardware.alsa, including setting the default capture and playback device, defining sound card aliases and volume controls. Note: these are intended for users not running a sound server like PulseAudio or PipeWire, but having ALSA as their only sound system.
-
Caddy can now be built with plugins by using
caddy.withPlugins, apassthrufunction that accepts an attribute set as a parameter. Thepluginsargument represents a list of Caddy plugins, with each Caddy plugin being a versioned module. Thehashargument represents thevendorHashof the resulting Caddy source code with the plugins added.Example:
services.caddy = { enable = true; package = pkgs.caddy.withPlugins { plugins = [ # tagged upstream "github.com/caddy-dns/powerdns@v1.0.1" # pseudo-version number generated by Go "github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e" "github.com/mholt/caddy-webdav@v0.0.0-20241008162340-42168ba04c9d" ]; hash = "sha256-wqXSd1Ep9TVpQi570TTb96LwzNYvWL5EBJXMJfYWCAk="; }; };To get the necessary hash of the vendored dependencies, omit
hash. The build will fail and tell you the correct value.Note that all provided plugins must have versions/tags (string after
@), even if upstream repo does not tag each release. For untagged plugins, you can either create an empty Go project and rungo get <plugin>and see changes ingo.modto get the pseudo-version number, or provide a commit hash in place of version/tag for the first run, and update the plugin string based on the error output. -
KDE Partition Manager
partitionmanager's support for ReiserFS is removed. ReiserFS has not been actively maintained for many years. It has been marked as obsolete since Linux 6.6, and is removed in Linux 6.13. -
programs.fzf.keybindingsnow supports the fish shell. -
gerberanow has wavpack support.
../release-notes-nixpkgs/rl-2505.section.md