40 KiB
Nixpkgs 25.11 ("Xantusia", 2025.11/30)
Highlights
-
The initial work to support native compilation on LoongArch64 has completed, with further changes currently in preparation. In accordance with the Software Development and Build Convention for LoongArch Architectures, this release sets the default march level to
la64v1.0, covering the desktop and server processors of 3X5000 and newer series. However, embedded chips without LSX (Loongson SIMD eXtension), such as 2K0300 SoC, are not supported.pkgsCross.loongarch64-linux-embeddedcan be used to build software and systems for these platforms. -
The official Nix formatter
nixfmtis now stable and available aspkgs.nixfmt, deprecating the temporarypkgs.nixfmt-rfc-styleattribute. The classicnixfmtwill stay available for some more time aspkgs.nixfmt-classic. -
The default GHC version has been updated from 9.8 to 9.10.
haskellPackagescorrespondingly uses Stackage LTS 24 (instead of LTS 23) as a baseline. -
This release of Nixpkgs requires macOS Sonoma 14.0 or newer, as announced in the 25.05 release notes. The default SDK is now 14.4, but the minimum version is 14.0.
cc-wrapperwill enforce that availability annotations are used or an appropriate deployment target is set. See the Darwin platform notes for details. -
We expect to drop support for
x86_64-darwinby Nixpkgs 26.11, in light of Apple’s announcement that macOS 26 will be the final version to support Intel Macs. When support is fully removed, we will no longer build packages for the platform or guarantee that it can build at all. This may happen in stages, depending on our available build and maintenance resources and decisions made by projects we rely on.By the time of 26.11’s release, Homebrew will offer only limited Tier 3 support for the platform, but MacPorts will likely continue to support it for a long time. We also recommend users consider installing NixOS, which should continue to run on essentially all Intel Macs, especially after Apple stops security support for macOS 26 in 2028.
-
Darwin has switched to using the system libc++. This was done for improved compatibility and to avoid ODR violations. If a newer C++ library feature is not available on the default deployment target, you will need to increase the deployment target. See the Darwin platform documentation for more details.
-
LLVM has been updated from 19 to 21.
Backward Incompatibilities
-
adminneohas been updated to version 5.1.1. Version 5 breaks compatibility withadminerand changes how plugins and configuration work. See the Upgrade Guide for details. Those changes also led to changes in the arguments of the package. -
android-udev-ruleshas been removed, as it is effectively superseded by built-in uaccess rules in systemd. -
ansible-laterhas been removed because it was discontinued by the author. -
asciidoctor-with-extensionhad itsasciidoctor-mathematicalextension removed, because it fails to build, and it is not maintained properly. -
base16-buildernode package has been removed due to lack of upstream maintenance. -
budgie-desktophas been updated 10.9.4. This changesXDG_CURRENT_DESKTOPfromBudgie:GNOMEtoBudgieand contains ABI bumps for libpeas2 migration. -
buildGoModuleremoves the compatibility layer ofCGO_ENABLEDnot specified viaenv. SpecifyingCGO_ENABLEDdirectly now results in an error. -
buildGoModulenow warns if<pkg>.passthru.overrideModAttrsis lost during the overriding of its result packages. -
cardboardhas been removed due to the package having been broken since at least November 2024. -
carlano longer supportgtk2override. -
chatgpt-retrieval-pluginhas been removed due to the package having been broken since at least November 2024. -
conduwuitwas removed due to upstream ceasing development and deleting their repository. For existing data, a migration tomatrix-conduit,matrix-continuwuityormatrix-tuwunelmay be possible. -
conftestsince0.60.0has moved to use regov1as default. To continue usingv0use--rego-version v0. For more information about upgrading to Rego v1 syntax, see the upstream docs. -
CUDA versions below 12.6 have been removed, as they are unmaintained upstream and depend on end‐of‐life compilers.
-
cudaPackages.cudatoolkit-legacy-runfilehas been removed. -
ddccontrolservice now enableshardware.i2cby default, and addsddcci_backlightto the kernel modules, based on experiences reported on discourse. -
deadbeefno longer supportsgtk2. -
Derivations setting both
separateDebugInfoand one ofallowedReferences,allowedRequisites,disallowedReferencesordisallowedRequisitesmust now set__structuredAttrstotrue. The effect of reference whitelisting or blacklisting will be disabled on thedebugoutput created byseparateDebugInfo. -
emacs-macporthas been moved to a fork of Mitsuharu Yamamoto's patched source code starting with Emacs v30 as the original project seems to be currently dormant. All older versions of this package have been dropped. This introduces some backwards‐incompatible changes; see the NEWS for details. NEWS can be viewed from Emacs by typingC-h n, or by clickingHelp->Emacs Newsfrom the menu bar. It can also be browsed online. -
Everything related to
bowerwas removed, as it is deprecated and not used by anything in nixpkgs. -
fetchFromBitBuckethas gained afetchgitbackend when passing in git-related arguments similar tofetchFromGitHub. -
fetchtorrent, when using the "rqbit" backend, erroneously started fetching files into a subdirectory in Nixpkgs 24.11. The original behaviour – which matches the behaviour using the "transmission" backend – has now been restored. Users reliant on the erroneous behaviour can temporarily maintain it by addingflatten = falseto thefetchtorrentarguments; Nix will produce an evaluation warning for anyone usingbackend = "rqbit"withoutflatten = true. -
floorphas been replaced with a binary build, available asfloorp-bin. Due to major changes in the upstream project structure and build system, building Floorp from source has become unfeasible. No configuration or state migration is necessary. -
forgejomain program has been renamed tobin/forgejofrom the previousbin/gitea. -
GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
-
gentiumpackage now providesGentium-*.ttffiles, and notGentiumPlus-*.ttffiles like before. The font identifiersGentium Plus*are available in thegentium-pluspackage. If you want to use the more recently updated packagegentiumby SIL, you should update your configuration files to use theGentiumfont identifier. -
GHCJS 8.10, exposed via
haskell.compiler.ghcjsandhaskell.compiler.ghcjs810, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used viapkgsCross.ghcjsfrom Nixpkgs. Haskell packaging code, likehaskellPackages.mkDerivation,ghcWithPackagesandhoogleWithPackages, also no longer supports GHCJS. -
GHC 8.6, 8.10, 9.0, 9.2, and their package sets have been removed.
-
gnome-keyringno longer ships with an SSH agent anymore because it has been deprecated upstream. You should usegcr_4instead, which provides the same features. More information on why this was done can be found on the relevant GCR upstream PR. -
go-mockeryhas been updated to v3. For migration instructions see the upstream documentation. If v2 is still requiredgo-mockery_v2has been added but will be removed on or before 2029-12-31 in-line with its upstream support lifecycle. -
gradiencehas been removed because it was archived upstream. -
Greetd and its original greeters (
tuigreet,gtkgreet,qtgreet,regreet,wlgreet) were moved fromgreetdnamespace to top level (greetd.tuigreet->tuigreet,greetd.greetd->greetd, etc). The original attrs are available for compatibility as passthrus ofgreetd, but will emit a warning. They will be removed in future releases. -
haskellPackagesand the package sets underhaskell.packagesno longer expose anllvmPackagesattribute, though it can still be accessed viaghc.llvmPackages(from the same package set). Haskell packages usually only need to depend on an LLVM version matching GHC if they force the use the LLVM backend even if NCG is available. In this case, it is best to use theforceLlvmCodegenBackendhelper. In all other cases, like linking againstlibLLVM, Haskell packages should use the appropriate version ofllvmPackagesfrompkgs. -
hiawatahas been removed, due to lack of active development upstream, lack of maintainership downstream and upcoming security issues. -
hsdhas been upgraded to version 8. See their changelog for important instructions before upgrading. -
inspircdhas been updated to the v4 release series. Please refer to the upstream documentation for general information and a list of breaking changes. -
installShellFilesnow allowsinstallManPageto take a piped input, add the--nameflag for renaming the file when installed. You can also append--to opt-out of all subsequent parsing. -
kbdpackage'soutputsnow include amanandscriptsoutputs. Theunicode_startandunicode_stopBash scripts are now part of thescriptsoutput, allowing most usages of thekbdpackage to not pull inbash. -
k2pdfopthas been removed, as it's broken. -
k3sairgap imagespassthruattributes have changed:imagesListwas removedairgapImageswas renamed toairgap-imagesairgapImagesAmd64was renamed toairgap-images-amd64-tar-zstairgapImagesArm64was renamed toairgap-images-arm64-tar-zstairgapImagesArmwas renamed toairgap-images-arm-tar-zst
-
LLVM 12, 13, 14, 15, 16, and 17 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
-
limapackage now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable thelima-additional-guestagentspackage by settingwithAdditionalGuestAgents = truewhen overriding lima with this input. -
libpinyin, which is used for Chinese character input, has migrated from the unmaintained BDB database format to the newer KyotoCabinet database format. If you want to migrate your user input statistics, you can consider using bdbtokyotodb. -
linuxand all other Linux kernel packages have moved all in-tree kernel modules into a newmodulesoutput. -
lxdescope has been removed, and its packages have been moved the top-level. -
mariadbnow defaults tomariadb_114instead ofmariadb_1011, meaning the default version was upgraded from 10.11.x to 11.4.x. See the upgrade notes for potential issues. -
mealiehas been updated to 3.0.2: This update introduces breaking changes in some API endpoints (see the release changelog). -
meilisearch_1_11has been removed, as it is no longer supported. -
moarhas been updated from1.33.0to2.0.0, and renamed tomoorfollowing an upstream decision. See the release notes for more. -
mongodb-6_0was removed as it is end of life as of 2025-07-31. -
mono4andmono5have been removed. Usemono6ormonoinstead. -
mx-puppet-discordwas removed from Nixpkgs along with its NixOS module as it was unmaintained and was the only user of sha1 hashes in tree. -
navidrome0.58.0 introduces multi-library support and backwards incompatible database migrations. Ensure backups are valid and run a Full Scan after starting the new version. -
NetBox was updated to
>= 4.4.0. You should review the breaking changes of the 4.3 release the 4.4 release, make the required changes to your database (if needed), and then upgrade by settingservices.netbox.package = pkgs.netbox_4_4;in your configuration. -
neovimUtils.makeNeovimConfignow usescustomLuaRCparameter instead of acceptingluaRcContent. The old usage is deprecated but still works with a warning. -
nixVersions.nix_2_3has been dropped because it was insecure and unmaintained. -
nodePackages.rimrafhas been removed, as it is a Javascript library, and packages that want to use it should depend directly on it instead. -
notaryhas been removed because it was archived upstream. Upstream recommendsnotationinstead. -
nuget-to-nixhas been removed as it was deprecated in favor ofnuget-to-json. Out-of-tree packages that were usingnuget-to-nixshould migrate to usenuget-to-jsoninstead for generating .NET dependency lock files. -
odoo16has been dropped due to end of support by upstream, consider upgrading supported version. -
oinkservice no longer acceptssettings.apiKeyandsettings.secretApiKeyoptions as these have been replaced byapiKeyFileandsecretApiKeyFile. -
opensoldatbinaries and user configuration directory names have been prefixed by 'open', becoming opensoldat and opensoldatserver. Configuration will be moved automatically before launch when possible. -
orjailpackage has been removed as it is broken by the latest firejail release and seems unmaintained. -
python3Packages.bugwarriorhas been updated to major version 2.0.0 which will likely require manual intervention. See release notes. -
pcphas been removed because the upstream repo was archived and it hasn't been updated since 2021. -
podofohas been updated from0.9.8to1.0.0. These releases are by nature very incompatible due to major API changes. The legacy versions can be found underpodofo_0_10andpodofo_0_9. Changelog: https://github.com/podofo/podofo/blob/1.0.0/CHANGELOG.md, API-Migration-Guide: https://github.com/podofo/podofo/blob/1.0.0/API-MIGRATION.md. -
privatebinhas been updated to2.0.0. This release changes configuration defaults including switching the template and removing legacy features. See the v2.0.0 changelog entry for details on how to upgrade. -
private-gpt service has been removed by lack of maintenance upstream.
-
proton-callerhas been removed due to lack of upstream maintenance. -
prometheus-script-exporterhas been updated to use a new maintained alternative. This release updates from1.2.0 -> 3.0.1and largely changes configuration options formats from json to yaml, among other changes. -
pulsemeeterhas been updated to2.0.0. The configuration file from older versions has to be deleted. For more information and instructions see the v2.0.0 changelog entry. -
purple-matrixhas been removed, since it has been unmaintained since April 2022 and upstream does not recommend using it anymore. -
python3Fulland its versioned attributes (python3xxFull) have been removed. Bluetooth support is now enabled in the default python3 attributes. The X11 support built the tkinter module, which is available as a dedicated attribute on the package set. -
python3Packages.bjoernhas been removed, as the upstream is unmaintained and it depends on a 14-year-old version of http-parser with numerous vulnerabilities. -
python3Packages.duckduckgo-searchhas been updated to v9+ and renamed topython3Packages.ddgs. See release note for v9.0.0. -
python3Packages.heif-image-pluginhas been dropped due to lack of upstream maintenance and breakage. Usepython3Packages.pillow-heifinstead. -
python3Packages.tritonno longer takes anenableRocmargument and supports ROCm in all build configurations via runtime binding. In most cases no action will be needed. If triton is unable to find the HIP SDK addrocmPackages.clras a build input or set the environment variableHIP_PATH="${rocmPackages.clr}". -
python3Packages.pyheifhas been dropped due to lack of upstream maintenance and breakage. Usepython3Packages.pillow-heifinstead. -
python3Packages.pyocrno longer supportscuneiformon Linux by default. It is still possible to enable it usingwithCuneiformSupportoverride. -
qt5.fullandqt6.fullaliases have been removed. Their use has always been discouraged, and downstream projects should useqtN.envwith the right set of packages. -
rabbitmq-serverhas been updated from 4.0.9 to 4.1.4. The 4.1.0 release includes breaking changes. For more information read the changelog of 4.1.0. -
reactionhas been updated to version 2, which includes some breaking changes. For more information, check the release article. -
renovatewas updated to v41. See the upstream release notes for v40 and v41 for breaking changes. -
river0.3.x has been renamed toriver-classicfollowing an upstream decision. -
rocmPackages.tritonhas been removed in favor ofpython3Packages.triton. -
rofihas been updated to2.0.0.rofi-waylandandrofi-wayland-unwrappedhave been merged intorofiandrofi-unwrappedrespectively. For more information and instructions see the v2.0.0 changelog entry. -
rofi-emoji-waylandhas been merged intorofi-emojiasrofihas been updated to2.0.0and supports both X11 & Wayland. -
sail-riscv0.8 follows upstream and provides only a single binary,sail_riscv_sim. -
sing-boxhas been updated to 1.12.3, which includes a number of breaking changes, old configurations may need updating or they will cause the tool to fail to run. See the change log for details and migration for how to update old configurations. -
space-orbitpackage has been removed due to lack of upstream maintenance. Debian upstream stopped tracking it in 2011. -
spidermonkey_91has been removed, as it has been EOL since September 2022. -
stalwart-mailsince0.13.0"introduces a significant redesign of the MTA’s delivery and queueing subsystem". See the upgrading announcement for the0.13.0release. -
stdenv.mkDerivationand other derivation builders that use it no longer allow the value ofenvto be anything but an attribute set, for the purpose of setting environment variables that are available to the builder process. An environment variable calledenvcan still be provided by means ofmkDerivation { env.env = ...; }, though we recommend to use a more specific name than "env". -
steamcontrollerhas been removed due to lack of upstream maintenance. Consider usingsc-controllerinstead. -
sublime-musichas been removed because upstream has announced it is no longer maintained. Upstream suggests usingsupersonicinstead. -
Support for bootstrapping native GHC compilers on 32‐bit ARM and little‐endian 64‐bit PowerPC has been dropped. The latter was probably broken anyway. If there is interest in restoring support for these architectures, it should be possible to cross‐compile a bootstrap GHC binary.
-
telegram-desktoppackages now usesTelegramfor its binary. The previous name wastelegram-desktop. This is due to an upstream decision to make the name consistent with other platforms. -
teleporthas been upgraded from major version 17 to major version 18. Refer to upstream upgrade instructions and release notes for v18. -
The
asterisk-ltspackage was changed to v22 from v18. The defaultasteriskpackage was changed to v22 from v20. Asterisk version 18 has been dropped due to being EOL. Theasterisk-stable(v20) package was unchanged. You may need to update /var/lib/asterisk to match the template files in${asterisk-...}/var/lib/asterisk. -
The
archipelago-minecraftpackage was removed, as upstream no longer provides support for the Minecraft APWorld. -
The default Android NDK version has been raised to 27, and the default SDK version to 35. NDK 21–26 have been removed, as they are end‐of‐life.
-
The default glibc ELF ABI for the powerpc64-linux platform has been changed from ELFv2 back to ELFv1, due to the latter having less remaining issues when bootstrapping & building Nixpkgs packages on hardware. If glibc ELFv2 is desired, use a fuller target triplet like
powerpc64-unknown-linux-gnuabielfv2or the providedppc64-elfv2platform example. -
The
ghcInfoandcontrolPhasesfunctions have been removed fromhaskell.lib.composeandhaskell.lib. They were unused and would return incorrect results.- Instead of using
controlPhases, thedoCheckattribute of derivations can be accessed which is more accurate.doBenchmarkcan't be introspected at the moment. - To detect cross compilation, the relevant platforms exposed by
stdenvshould be compared instead of usingghcInfo. - Nixpkgs no longer packages any
ghcjscompiler. - To find a suitable
nativeGhc,buildHaskellPackagesshould be used.ghcInfowould useghc.bootPkgs.ghcif cross compiling, and the givenghcotherwise. This approach is not recommended since it results in mismatched GHC versions.
- Instead of using
-
The
haskellPackages.mkDerivationbuilder now converts packages' cabal files to Unix line endings beforepatchPhase. This behavior can be disabled usingdontConvertCabalFileToUnix. -
The default
kopsversion is now 1.33.0 and versions 1.30 and older have been dropped. See Upgrading Kubernetes for instructions on how to update kOps. -
The license of duckstation has changed from
gpl3Onlytocc-by-nc-nd-40making it unfree in newer releases. Theduckstationpackage has been overhauled to support the new releases andduckstation-binhas been aliased toduckstationto support darwin binary builds. -
The main binary of
tomlqhas been renamed fromtomlqtotq. -
The minimum version of Nix required to evaluate Nixpkgs has been raised from 2.3 to 2.18.
-
The
no-broken-symlinkbuild hook now also fails builds whose output derivation contains links to $TMPDIR (typically /build, which contains the build directory). -
The non-LTS Forgejo package (
forgejo) has been updated to 12.0.0. This release contains breaking changes, see the release blog post for all the details and how to ensure smooth upgrades. -
The
offrsspackage was removed due to lack of upstream maintenance since 2012. It's recommended for users to migrate to another RSS reader. -
The
piehardening flag has been removed. Compilers are expected to enable PIE by default, as has been common practice since 2016 outside of Nixpkgs. If a package needspiedisabled pass-no-pieinCFLAGS. It is unlikely this will be necessary in many cases; due to the prevalence of default PIE toolchains, most packages incompatible with PIE already pass-no-pie. -
The
vlockoutput from kbd has been removed. Instead a new packagekbdVlockhas been introduced. Use this package now instead of the output. -
tooling-language-serverhas been renamed todeputy(both the package and binary), following the rename of the upstream project. -
victoriametricsno longer contains VictoriaLogs components. These have been separated into the new packagevictorialogs. -
vmware-horizon-clientwas renamed toomnissa-horizon-client, following VMware's sale of their end-user business to Omnissa. The binary has been renamed fromvmware-viewtohorizon-client. -
uw-ttyp0has been updated to version 2.1. The filenames of the OTB and PSF fonts have been changed to match the upstream naming convention. If you were loading a font by path, for example in theconsole.fontNixOS option, remember to update the filename accordingly. -
wayclipnow uses theext-data-control-v1Wayland protocol instead ofwlr-data-control-unstable-v1. -
webfontkitgeneratorhas been renamed towebfont-bundler, following the rename of the upstream project. The binary name remainswebfontkitgenerator. Thewebfontkitgeneratorpackage is an alias towebfont-bundler. -
webkitgtk_4_0has been removed because it depends on an unmaintained version of security-critical libsoup library (libsoup_2) and the support will be dropped upstream soon. -
yehawnwas removed due to the package being broken and unmaintained upstream. -
yggdrasil-jumperhas been updated to v0.4, changing traversal protocol. See release notes. -
zig_0_12has been removed. -
zigbee2mqttwas updated to version 2.x, which contains breaking changes. See the discussion for further information.
Other Notable Changes
-
Added
rewriteURLattribute to the nixpkgsconfig, to allow for rewriting the URLs downloaded byfetchurl. -
Added
hashedMirrorsattribute to the nixpkgsconfig, to allow for customization of the hashed mirrors used byfetchurl. -
Added
gitConfigandgitConfigFileoption to the nixpkgsconfig, to allow for setting a defaultgitConfigFilefor allfetchgitinvocations. -
Added
npmRegistryOverridesandnpmRegistryOverridesStringoption to the nixpkgsconfig, to allow for setting a defaultnpmRegistryOverridesStringfor allfetchNpmDepsinvocations. -
buildPythonPackageandbuildPythonApplicationnow default tonix-update-scriptas their defaultupdateScript. This should improve automated updates, since nix-update is better maintained than the in-tree update script and has more robust fetcher support. -
cloudflare-ddnshas been added. -
Direct use of
pkgs.formats.systemdhas been deprecated, and should now be instantiated withpkgs.formats.systemd { }similarly to other items inpkgs.formats. -
dragonflydbhas been updated from version 0.1.0 to version 1.34.2. -
emacsnow disables the GC mark trace buffer by default. This improves GC performance by 5%, but can make GC issues harder to debug. This is configurable withwithGcMarkTrace. -
etcdpackage was upgraded to 3.6, see migration notes for incompatibilities and upgrade procedure. -
fetchgitnow accepts agitConfigFileargument to set a git config (via$GIT_CONFIG_GLOBAL) for the fetcher. -
fetchgitnow accepts arootDirargument to limit the resulting source to one subdirectory of the whole Git repository. Corresponding--root-diroption added tonix-prefetch-git. -
fetchNpmDepsnow accepts anpmRegistryOverridesStringargument to pass NPM registry overrides to the fetcher. -
ffmpeg_8,ffmpeg_8-headless, andffmpeg_8-fullhave been added. The default version of FFmpeg is nowffmpeg_8. You can install previous versions from package attributes such asffmpeg_7. -
forgejo-runnerupgrading to version 11 brings a license change from MIT to GPLv3-or-later. -
GIMP now defaults to version 3. Use
gimp2for the old version. -
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. -
grampshas been updated to 6.0.0 Upstream recommends backing up your Family Trees before upgrading. -
homebox0.20.0 changed how assets are stored and hashed. It is recommended to back up your database before this update. In particular,--storage-datawas replaced with--storage-conn-stringand--storage-prefix-path. If your configuration setHBOX_STORAGE_DATAmanually, you must migrate it toHBOX_STORAGE_CONN_STRINGandHBOX_STORAGE_PREFIX_PATH. -
HTTP3 support has been enabled in in
nginx,openresty,angieandtengine. ThenginxQuicandangieQuicpackage flavors have been removed. -
idris2supports being instantiated with a package environment withidris.withPackages (p: [ ]). -
installShellCompletionnow supports Nushell completion files. -
jellyfinwas updated to10.11.x, which includes heavy backend changes. Make sure to backup your data and configuration directories and read the Jellyfin 10.11.0 release announcement. Important: make sure you're running Jellyfin version10.10.7before upgrading, and beware that the migration may take several hours depending on your library size and state. The process must not be interrupted. -
lisp-moduleswere brought in sync with the June 2025 Quicklisp release. -
meta.mainProgramis now used to determine theNIX_MAIN_PROGRAMenvironment variable. This means that changing it can now lead to a package rebuild. -
neovimnow has support for thevim.o.exrcoption, theVIMINITenvironment variable, and sourcing ofsysinit.vim. See the neovim help page:help startupfor more information, as well as the nixpkgs neovim wrapper documentation. -
New hardening flags
strictflexarrays1,strictflexarrays3,glibcxxassertions,libcxxhardeningfastandlibcxxhardeningextensivewere made available. -
nix-prefetch-gitnow has a--no-add-pathargument to disable adding the path to the store. This is useful when working with a read-only store. -
Passing
stdenvtobuildPythonPackageorbuildPythonApplicationhas been deprecated and will trigger an error in a future release. Instead, you should override the python build helper, e.g.,(buildPythonPackage.override { stdenv = customStdenv; }). See . -
php81was removed. -
plasma6: Fixed theksycocacache not being re-built when$XDG_CACHE_HOMEis set to something that isn't$HOME/.cache. -
prl-toolshas been moved out oflinuxPackagesbecause Parallels Guest Tools become driverless since 26.1.0. -
searxwas updated to useenvsubstinstead ofsedfor parsing secrets from environment variables. -
sftpmanhas been updated to version 2, a rewrite in Rust which is mostly backward compatible but does include some changes to the CLI. For more information, check the project's README. -
slurmno longer supports gtk2. -
sparklesharehas been removed as it no longer builds and has been abandoned upstream. -
strongSwanhas been updated to 6.0. See strongSwan 6.0.0 release notes for a complete list of changes. -
simplesamlphphas been removed since the package was severely outdated, unmaintained in Nixpkgs and having known vulnerabilities. -
The
clickhousepackage now track the stable upstream version per upstream's recommendation. Users can continue to use theclickhouse-ltspackage if desired. -
The debug outputs produced by
separateDebugInfo = true;now contain symlinks mapping build-ids to the original source and ELF file. Specifically, if$out/bin/ninjahas build-id483bd7f7229bdb06462222e1e353e4f37e15c293, then$debug/lib/debug/.build-id/48/3bd7f7229bdb06462222e1e353e4f37e15c293.executableis a symlink to$out/bin/ninja$debug/lib/debug/.build-id/48/3bd7f7229bdb06462222e1e353e4f37e15c293.sourceis a symlink to the value of$srcduring build$debug/lib/debug/.build-id/48/3bd7f7229bdb06462222e1e353e4f37e15c293.sourceoverlayis a symlink to a directory with the same structure as the expanded$sourceRootbut containing only a copy of files which were patched during the build$debug/lib/debug/.build-id/48/3bd7f7229bdb06462222e1e353e4f37e15c293.debugis the file containing debug symbols (like before).
-
The
dockerTools.streamLayeredImagebuilder now uses a better algorithm for generating layered docker images, such that much more sharing is possible when the number of store paths exceeds the layer limit. It gives each of the largest store paths its own layer and adds dependencies to those layers when they aren't used elsewhere. -
The
open-webuipackage's postgres support have been moved to optional dependencies to comply with upstream changes in 0.6.26. -
The systemd initrd will now respect
x-systemd.wantsandx-systemd.requiresfor reliably unlocking multi-disk bcachefs volumes. -
The third-party
ant-contribis no longer included in theantpackage. -
Packages using
versionCheckHookthat previously relied solely onpnameto locate the program used to version check, but have a differingmeta.mainProgramentry, might now fail. -
waydroid-nftablesis a new variant ofwaydroidthat supports nftables instead of iptables. If your previous configuration included a secret reference likeserver.secret_key = "@SEARX_SECRET_KEY@", you must migrate to the new envsubst syntax:server.secret_key = "$SEARX_SECRET_KEY".
Nixpkgs Library
Breaking changes
-
haskell.lib.addOptparseApplicativeCompletionScriptshas been removed, usehaskellPackages.generateOptparseApplicativeCompletionsinstead. -
lib.attrsets.cartesianProductOfSetshas been removed, following its deprecation in NixOS 24.11. Uselib.attrsets.cartesianProductinstead. -
lib.attrsets.zipWithNameshas been removed, following its deprecation in 2009. Uselib.attrsets.zipAttrsWithNamesinstead. -
lib.attrsets.ziphas been removed, following its deprecation in 2013. Uselib.attrsets.zipAttrsWithinstead. -
lib.literalExamplehas been removed, uselib.literalExpressioninstead, or uselib.literalMDfor a non-Nix description. -
lib.mapAttrsFlattenhas been removed, following its deprecation in NixOS 24.11. Uselib.attrsets.mapAttrsToListinstead. -
lib.modules.defaultPriorityhas been removed, please uselib.modules.defaultOverridePriorityinstead. -
lib.options.mkPackageOptionMDhas been removed, following its deprecation in NixOS 24.11. Uselib.options.mkPackageOptioninstead. -
lib.readPathsFromFilehas been removed, use a list instead. -
lib.replaceCharshas been removed, it was a deprecated alias oflib.replaceStrings. -
lib.sources.pathType,lib.sources.pathIsDirectoryandlib.sources.pathIsRegularFilehave been replaced bylib.filesystem.pathType,lib.filesystem.pathIsDirectoryandlib.filesystem.pathIsRegularFilerespectively. -
lib.strings.isCoercibleToStringhas been in favor of eitherlib.strings.isStringLikeorlib.strings.isConvertibleWithToString. Only use the latter if it needs to return true for null, numbers, booleans, or a list of those. -
lib.types.stringhas been removed. See this pull request for better alternative types likelib.types.str. -
The
buildPythonPackageandbuildPythonApplicationfunctions now require an explicitformatattribute. Previously the default format used setuptools and calledsetup.pyfrom the source tree, which is deprecated. The modern alternative is to configurepyproject = truewithbuild-system = [ setuptools ].
Deprecations
-
lib.cli.toGNUCommandLineandlib.cli.toGNUCommandLineShellhave been deprecated in favor oflib.cli.toCommandLine,lib.cli.toCommandLineShell,lib.cli.toCommandLineGNUandlib.cli.toCommandLineShellGNU. -
lib.options.mkAliasOptionModuleMDis now obsolete; use the identical [lib.options.mkAliasOptionModule] instead. -
types.eithersilently accepted mismatching types when used infreeformType. Module maintainers should fix the used type In most cases wrappingeitherwithattrsOfshould be sufficient.Since types.either was used to bootstrap other types. This also affects the following types:
oneOfnumbernumbers.*
Additions and Improvements
-
lib.cli.toCommandLine,lib.cli.toCommandLineShell,lib.cli.toCommandLineGNUandlib.cli.toCommandLineShellGNUhave been added to address multiple issues inlib.cli.toGNUCommandLineandlib.cli.toGNUCommandLineShell. -
ugrepnow has two new override options:wrapWithFilterUtilsfor optionally wrappingugrep+andug+with filter utilities for grepping other file types.createGrepReplacementLinksfor optionally creating drop-in replacement symlinks forgnugrep.