Home Explore Blog CI



nixpkgs

2nd chunk of `nixos/doc/manual/release-notes/rl-2211.section.md`
b240f259c2d1e2115ef830ad93e726b7bf0937191190d4330000000100000fc3
- `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: NVIDIA Open Driver, Emacs Native Compilation, Internal Changes, and Version Updates
Summary
NixOS 22.11 introduces the `hardware.nvidia.open` option for the NVIDIA open-source kernel driver. The `emacs` package now supports native compilation. Internal changes include faster Haskell `ghcWithPackages` evaluation, test execution for cross-compilation targets, and new `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options. Notable version updates include Nix (v2.11.0), OpenSSL 3, GNOME 43, KDE Plasma (v5.26), Cinnamon 5.4, PHP 8.1, Perl 5.36, and Python 3.10. Backward incompatibilities include requiring Nix 2.3 or newer and changes to CPU compatibility checking.