Home Explore Blog Models CI



nixpkgs

3rd chunk of `doc/release-notes/rl-2511.section.md`
a1344c633d0411b1f1e5ca64bcbbb53bf57e47afd953633c0000000100001183
  - Instead of using `controlPhases`, the `doCheck` attribute of derivations can be accessed which is more accurate. `doBenchmark` can't be introspected at the moment.
  - To detect cross compilation, the relevant platforms exposed by `stdenv` should be compared instead of using `ghcInfo`.
  - Nixpkgs no longer packages any `ghcjs` compiler.
  - To find a suitable `nativeGhc`, `buildHaskellPackages` should be used. `ghcInfo` would use `ghc.bootPkgs.ghc` if cross compiling,
    and the given `ghc` otherwise. This approach is not recommended since it results in mismatched GHC versions.

- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).

- `python3Full` and 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.

- `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".

- `purple-matrix` has been removed, since it has been unmaintained since April 2022 and upstream does not recommend using it anymore.

- 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.

- `nuget-to-nix` has been removed as it was deprecated in favor of `nuget-to-json`. Out-of-tree packages that were using `nuget-to-nix` should migrate to use `nuget-to-json` instead for generating .NET dependency lock files.

- `conftest` since `0.60.0` has moved to use rego `v1` as default. To continue using `v0` use `--rego-version v0`. For more information about upgrading to Rego v1 syntax, see the [upstream docs](https://www.openpolicyagent.org/docs/latest/v0-upgrade/).

- Zig 0.12 has been removed.

- `ansible-later` has been removed because it was discontinued by the author.

- `k3s` airgap images passthru attributes have changed:
  - `imagesList` was removed
  - `airgapImages` was renamed to `airgap-images`
  - `airgapImagesAmd64` was renamed to `airgap-images-amd64-tar-zst`
  - `airgapImagesArm64` was renamed to `airgap-images-arm64-tar-zst`
  - `airgapImagesArm` was renamed to `airgap-images-arm-tar-zst`

- `stalwart-mail` since `0.13.0` "introduces a significant redesign of the MTA’s delivery and queueing subsystem". See [the upgrading announcement for the `0.13.0` release](https://github.com/stalwartlabs/stalwart/blob/89b561b5ca1c5a11f2a768b4a2cfef0f473b7a01/UPGRADING.md#upgrading-from-v012x-and-v011x-to-v013x).

- Greetd and its original greeters (`tuigreet`, `gtkgreet`, `qtgreet`, `regreet`, `wlgreet`) were moved from `greetd` namespace to top level (`greetd.tuigreet` -> `tuigreet`, `greetd.greetd` -> `greetd`, etc). The original attrs are available for compatibility as passthrus of `greetd`, but will emit a warning. They will be removed in future releases.

- The `archipelago-minecraft` package was removed, as upstream no longer provides support for the Minecraft APWorld.

- `navidrome` 0.58.0 introduces [multi-library support](https://www.navidrome.org/docs/usage/multi-library/)
    and backwards incompatible database migrations. Ensure backups are valid and run a Full Scan after
    starting the new version.

- `tooling-language-server` has been renamed to `deputy` (both the package and binary), following the rename of the upstream project.

- `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 adding `flatten = false` to the `fetchtorrent` arguments; Nix will produce an evaluation warning for anyone using `backend = "rqbit"` without `flatten = true`.

Title: Nixpkgs: API Changes, Package Lifecycle Updates, and Backward Incompatibilities
Summary
This section details significant Nixpkgs backward incompatibilities and updates. Haskell's `ghcInfo` and `controlPhases` were removed, `ghcjs` compilers deprecated, and `stdenv.mkDerivation`'s `env` attribute is now stricter. `gnome-keyring` dropped its SSH agent (use `gcr_4`), and `python3Full` attributes were removed as Bluetooth is is now default in `python3`. Numerous packages, including `purple-matrix`, `nuget-to-nix`, Zig 0.12, and `ansible-later`, were removed due to maintenance or EOL status, along with older Android NDKs. Default Android NDK/SDK versions were updated. Other changes include `conftest` defaulting to Rego v1, `k3s` airgap attribute renames, major redesigns in `stalwart-mail` 0.13.0 and `navidrome` 0.58.0 (requiring DB migrations), `greetd` components moving to top-level, `tooling-language-server` becoming `deputy`, and a `fetchtorrent` bug fix for `rqbit` backend.