NixOS is een Linux-distributie met een packagemanager die het mogelijk maakt om de configuratie declaratief te maken, in plaats van die op te bouwen uit een sequentie van commando's en configuratiebestanden. Onder de motorkap gebruik Nix een functionele programmeertaal waarmee het systeem of de configuratie kan worden gedefinieerd. Nix is bedacht door Eelco Dolstra, een Nederlandse informaticus die aan de Universiteit van Utrecht op NixOS is gepromoveerd. Meer informatie over NixOS kan op ons eigen forum worden gevonden. Dinsdag is versie 22.05 van NixOS uitgekomen en de belangrijkste veranderingen die daarin zijn aangebracht zijn hieronder voor je op een rijtje gezet.
HighlightsIn addition to numerous new and upgraded packages, this release has the following highlights:
- The
firefox
browser onx86_64-linux
is now making use of profile-guided optimization resulting in a much more responsive browsing experience.security.acme.defaults
has been added to simplify configuring settings for many certificates at once. This also opens up the the option to use DNS-01 validation when usingenableACME
on web server virtual hosts (e.g.services.nginx.virtualHosts.*.enableACME
).- GNOME has been upgraded to 42. Please take a look at their Release Notes for details. Notably, it replaces gedit with GNOME Text Editor, GNOME Terminal with GNOME Console (formerly King’s Cross), and GNOME Screenshot with a tool built into the Shell.
stdenv.mkDerivation
now supports a self-referencingfinalAttrs:
parameter containing the finalmkDerivation
arguments including overrides.drv.overrideAttrs
now supports two parametersfinalAttrs: previousAttrs:
. This allows packaging configuration to be overridden in a consistent manner by providing an alternative torec {}
syntax.
Additionally,passthru
can now referencefinalAttrs.finalPackage
containing the final package, including attributes such as the output paths andoverrideAttrs
.
New language integrations can be simplified by overriding a “prototype” package containing the language-specific logic. This removes the need for a extra layer of overriding for the “generic builder” arguments, thus removing a usability problem and source of error.- PHP 8.1 is now available
- Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is reaching its end of life. Migrations may take a while, see the changelog and important upgrade notes.
- systemd services can now set systemd.services.<name>.reloadTriggers instead of
reloadIfChanged
for a more granular distinction between reloads and restarts.- Systemd has been upgraded to the version 250.
- Pulseaudio has been upgraded to version 15.0 and now optionally supports additional Bluetooth audio codecs like aptX or LDAC, with codec switching support being available in
pavucontrol
. This feature is disabled by default but can be enabled by usinghardware.pulseaudio.package = pkgs.pulseaudioFull;
. Existing 3rd party modules that provided similar functionality, likepulseaudio-modules-bt
orpulseaudio-hsphfpd
are deprecated and have been removed.- PostgreSQL now defaults to major version 14.
- The new
postgresqlTestHook
runs a PostgreSQL server for the duration of package checks.kops
defaults to 1.22.4, which will enable Instance Metadata Service Version 2 and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the release notes for details.- Module authors can use
mkRenamedOptionModuleWith
to automate the deprecation cycle without annoying out-of-tree module authors and their users.- The default GHC version has been updated from 8.10.7 to 9.0.2.
pkgs.haskellPackages
andpkgs.ghc
will now use this version by default.- The GNOME and Plasma installation CDs now use
pkgs.calamares
andpkgs.calamares-nixos-extensions
to allow users to easily install and set up NixOS with a GUI.