Home Explore Blog Models CI



nixpkgs

2nd chunk of `nixos/doc/manual/release-notes/rl-2211.section.md`
ccdb51f9130668d0d50f4ee6dbe15632b9025bc4343de0540000000100000fc3
- `hardware.nvidia` has a new option, `hardware.nvidia.open`, that can be used to enable the usage of NVIDIA's open-source kernel driver. Note that the driver's support for GeForce and Workstation GPUs is still alpha quality, see [the release announcement](https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/) for more information.

- The `emacs` package now makes use of native compilation which means:
  - Emacs packages from Nixpkgs, builtin or not, will do native compilation ahead of time so you can enjoy the benefit of native compilation without compiling them on you machine;
  - Emacs packages from somewhere else, e.g. `package-install`, will perform asynchronously deferred native compilation. If you do not want this, maybe to avoid CPU consumption for compilation, you can use `(setq native-comp-deferred-compilation nil)` to disable it while still benefiting from native compilation for packages from Nixpkgs.

## Internal changes {#sec-release-22.11-internal}

- Haskell `ghcWithPackages` is now up to 15 times faster to evaluate, thanks to changing `lib.closePropagation` from a quadratic to linear complexity. Please see backward incompatibilities notes below. <https://github.com/NixOS/nixpkgs/pull/194391>

- For cross-compilation targets that can also run on the building machine, we now run tests. This, for example, is the case for the `pkgsStatic` and `pkgsLLVM` package sets or i686 packages on `x86_64` machines.

- To simplify cross-compilation in NixOS, this release introduces the `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options. These cover and override the `nixpkgs.{system,localSystem,crossSystem}` options.

   - `hostPlatform` is the platform or "`system`" string of the NixOS system
     described by the configuration.
   - `buildPlatform` is the platform that is responsible for building the NixOS
     configuration. It defaults to the `hostPlatform`, for a non-cross
     build configuration. To cross compile, set `buildPlatform` to a different
     value.

  The new options convey the same information, but with fewer options, and
  following the Nixpkgs terminology.

  The existing options `nixpkgs.{system,localSystem,crossSystem}` have not
  been formally deprecated, to allow for evaluation of the change and to allow
  for a transition period so that in time the ecosystem can switch without
  breaking compatibility with any supported NixOS release.

## Notable version updates {#sec-release-22.11-version-updates}

- Nix has been upgraded from v2.8.1 to v2.11.0. For more information, please see the release notes for [2.9](https://nixos.org/manual/nix/stable/release-notes/rl-2.9.html), [2.10](https://nixos.org/manual/nix/stable/release-notes/rl-2.10.html) and [2.11](https://nixos.org/manual/nix/stable/release-notes/rl-2.11.html).

- OpenSSL now defaults to OpenSSL 3, updated from 1.1.1.

- GNOME has been upgraded to version 43. Please see the [release notes](https://release.gnome.org/43/) for details.

- KDE Plasma has been upgraded from v5.24 to v5.26. Please see the release notes for [v5.25](https://kde.org/announcements/plasma/5/5.25.0/) and [v5.26](https://kde.org/announcements/plasma/5/5.26.0/) for more details on the included changes.

- Cinnamon has been updated to 5.4, and the Cinnamon module now defaults to
  Blueman as the Bluetooth manager and slick-greeter as the LightDM greeter, to match upstream.

- PHP now defaults to PHP 8.1, updated from 8.0.

- Perl has been updated to 5.36, and its core module `HTTP::Tiny` was patched to verify SSL/TLS certificates by default.

- Python now defaults to 3.10, updated from 3.9.

## Backward Incompatibilities {#sec-release-22.11-incompatibilities}

- Nixpkgs now requires Nix 2.3 or newer.

- The `isCompatible` predicate checking CPU compatibility is no longer exposed
  by the platform sets generated using `lib.systems.elaborate`. In most cases
  you will want to use the new `canExecute` predicate instead which also
  takes the kernel / syscall interface into account.

Title: NixOS 22.11 Release: NVIDIA, Emacs, Internal Updates, and Core Version Upgrades
Summary
This section of the NixOS 22.11 release notes details additional enhancements, internal changes, and significant package version updates. Key highlights include the introduction of `hardware.nvidia.open` for NVIDIA's open-source kernel driver (currently alpha quality), and native compilation support for Emacs packages, pre-compiled for Nixpkgs and deferred for others. Internal improvements include a 15x speedup for Haskell `ghcWithPackages` evaluation, enabling tests for cross-compilation targets executable on the build machine, and new `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options to streamline cross-compilation. Major version updates feature Nix to v2.11.0, OpenSSL to 3, GNOME to 43, KDE Plasma to v5.26, Cinnamon to 5.4, PHP to 8.1, Perl to 5.36, and Python to 3.10. Backward incompatibilities note that Nixpkgs now requires Nix 2.3+ and the `isCompatible` predicate has been replaced by `canExecute`.