diff options
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/configuration/linux-kernel.chapter.md | 33 | ||||
-rw-r--r-- | nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml | 47 | ||||
-rw-r--r-- | nixos/doc/manual/from_md/release-notes/rl-2305.section.xml | 26 | ||||
-rw-r--r-- | nixos/doc/manual/release-notes/rl-2305.section.md | 6 | ||||
-rw-r--r-- | nixos/modules/installer/cd-dvd/installation-cd-minimal.nix | 15 | ||||
-rw-r--r-- | nixos/modules/installer/netboot/netboot-minimal.nix | 10 | ||||
-rw-r--r-- | nixos/modules/profiles/minimal.nix | 10 | ||||
-rw-r--r-- | nixos/modules/programs/skim.nix | 6 | ||||
-rw-r--r-- | nixos/modules/services/hardware/asusd.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/hardware/supergfxd.nix | 2 | ||||
-rw-r--r-- | nixos/modules/system/boot/kernel.nix | 5 |
11 files changed, 149 insertions, 13 deletions
diff --git a/nixos/doc/manual/configuration/linux-kernel.chapter.md b/nixos/doc/manual/configuration/linux-kernel.chapter.md index 1d06543d4f1..7b84416a864 100644 --- a/nixos/doc/manual/configuration/linux-kernel.chapter.md +++ b/nixos/doc/manual/configuration/linux-kernel.chapter.md @@ -17,6 +17,16 @@ you may want to use one of the unversioned `pkgs.linuxPackages_*` aliases such as `pkgs.linuxPackages_latest`, that are kept up to date with new versions. +Please note that the current convention in NixOS is to only keep actively +maintained kernel versions on both unstable and the currently supported stable +release(s) of NixOS. This means that a non-longterm kernel will be removed after it's +abandoned by the kernel developers, even on stable NixOS versions. If you +pin your kernel onto a non-longterm version, expect your evaluation to fail as +soon as the version is out of maintenance. + +Longterm versions of kernels will be removed before the next stable NixOS that will +exceed the maintenance period of the kernel version. + The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command: @@ -138,3 +148,26 @@ $ cd linux-* $ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox modules # insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko ``` + +## ZFS {#sec-linux-zfs} + +It's a common issue that the latest stable version of ZFS doesn't support the latest +available Linux kernel. It is recommended to use the latest available LTS that's compatible +with ZFS. Usually this is the default kernel provided by nixpkgs (i.e. `pkgs.linuxPackages`). + +Alternatively, it's possible to pin the system to the latest available kernel +version *that is supported by ZFS* like this: + +```nix +{ + boot.kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages; +} +``` + +Please note that the version this attribute points to isn't monotonic because the latest kernel +version only refers to kernel versions supported by the Linux developers. In other words, +the latest kernel version that ZFS is compatible with may decrease over time. + +An example: the latest version ZFS is compatible with is 5.19 which is a non-longterm version. When 5.19 +is out of maintenance, the latest supported kernel version is 5.15 because it's longterm and the versions +5.16, 5.17 and 5.18 are already out of maintenance because they're non-longterm. diff --git a/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml b/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml index a1d6815af29..dd570e1d66c 100644 --- a/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml +++ b/nixos/doc/manual/from_md/configuration/linux-kernel.chapter.xml @@ -22,6 +22,19 @@ boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10; date with new versions. </para> <para> + Please note that the current convention in NixOS is to only keep + actively maintained kernel versions on both unstable and the + currently supported stable release(s) of NixOS. This means that a + non-longterm kernel will be removed after it’s abandoned by the + kernel developers, even on stable NixOS versions. If you pin your + kernel onto a non-longterm version, expect your evaluation to fail + as soon as the version is out of maintenance. + </para> + <para> + Longterm versions of kernels will be removed before the next stable + NixOS that will exceed the maintenance period of the kernel version. + </para> + <para> The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command: @@ -154,4 +167,38 @@ $ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox module # insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko </programlisting> </section> + <section xml:id="sec-linux-zfs"> + <title>ZFS</title> + <para> + It’s a common issue that the latest stable version of ZFS doesn’t + support the latest available Linux kernel. It is recommended to + use the latest available LTS that’s compatible with ZFS. Usually + this is the default kernel provided by nixpkgs (i.e. + <literal>pkgs.linuxPackages</literal>). + </para> + <para> + Alternatively, it’s possible to pin the system to the latest + available kernel version <emphasis>that is supported by + ZFS</emphasis> like this: + </para> + <programlisting language="bash"> +{ + boot.kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages; +} +</programlisting> + <para> + Please note that the version this attribute points to isn’t + monotonic because the latest kernel version only refers to kernel + versions supported by the Linux developers. In other words, the + latest kernel version that ZFS is compatible with may decrease + over time. + </para> + <para> + An example: the latest version ZFS is compatible with is 5.19 + which is a non-longterm version. When 5.19 is out of maintenance, + the latest supported kernel version is 5.15 because it’s longterm + and the versions 5.16, 5.17 and 5.18 are already out of + maintenance because they’re non-longterm. + </para> + </section> </chapter> diff --git a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml index cc330e2f887..de8a830b020 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml @@ -160,6 +160,17 @@ <itemizedlist> <listitem> <para> + <literal>vim_configurable</literal> has been renamed to + <literal>vim-full</literal> to avoid confusion: + <literal>vim-full</literal>’s build-time features are + configurable, but both <literal>vim</literal> and + <literal>vim-full</literal> are + <emphasis>customizable</emphasis> (in the sense of user + configuration, like vimrc). + </para> + </listitem> + <listitem> + <para> The module for the application firewall <literal>opensnitch</literal> got the ability to configure rules. Available as @@ -186,6 +197,21 @@ </listitem> <listitem> <para> + To reduce closure size in + <literal>nixos/modules/profiles/minimal.nix</literal> profile + disabled installation documentations and manuals. Also + disabled <literal>logrotate</literal> and + <literal>udisks2</literal> services. + </para> + </listitem> + <listitem> + <para> + The minimal ISO image now use + <literal>nixos/modules/profiles/minimal.nix</literal> profile. + </para> + </listitem> + <listitem> + <para> A new <literal>virtualisation.rosetta</literal> module was added to allow running <literal>x86_64</literal> binaries through diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 886db43c68e..049a620eb45 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -49,6 +49,8 @@ In addition to numerous new and upgraded packages, this release has the followin <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> +- `vim_configurable` has been renamed to `vim-full` to avoid confusion: `vim-full`'s build-time features are configurable, but both `vim` and `vim-full` are *customizable* (in the sense of user configuration, like vimrc). + - The module for the application firewall `opensnitch` got the ability to configure rules. Available as [services.opensnitch.rules](#opt-services.opensnitch.rules) - `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables. @@ -58,6 +60,10 @@ In addition to numerous new and upgraded packages, this release has the followin `services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches end of life. +- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services. + +- The minimal ISO image now use `nixos/modules/profiles/minimal.nix` profile. + - A new `virtualisation.rosetta` module was added to allow running `x86_64` binaries through [Rosetta](https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) inside virtualised NixOS guests on Apple silicon. This feature works by default with the [UTM](https://docs.getutm.app/) virtualisation [package](https://search.nixos.org/packages?channel=unstable&show=utm&from=0&size=1&sort=relevance&type=packages&query=utm). - Resilio sync secret keys can now be provided using a secrets file at runtime, preventing these secrets from ending up in the Nix store. diff --git a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix index 97506045e0e..abf0a5186b6 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix @@ -1,14 +1,17 @@ # This module defines a small NixOS installation CD. It does not # contain any graphical stuff. -{ ... }: +{ lib, ... }: { - imports = - [ ./installation-cd-base.nix - ]; + imports = [ + ../../profiles/minimal.nix + ./installation-cd-base.nix + ]; - isoImage.edition = "minimal"; + documentation.man.enable = lib.mkOverride 500 true; - fonts.fontconfig.enable = false; + fonts.fontconfig.enable = lib.mkForce false; + + isoImage.edition = lib.mkForce "minimal"; } diff --git a/nixos/modules/installer/netboot/netboot-minimal.nix b/nixos/modules/installer/netboot/netboot-minimal.nix index 1563501a7e0..268357c0e41 100644 --- a/nixos/modules/installer/netboot/netboot-minimal.nix +++ b/nixos/modules/installer/netboot/netboot-minimal.nix @@ -3,8 +3,10 @@ { ... }: { - imports = - [ ./netboot-base.nix - ../../profiles/minimal.nix - ]; + imports = [ + ./netboot-base.nix + ../../profiles/minimal.nix + ]; + + documentation.man.enable = lib.mkOverride 500 true; } diff --git a/nixos/modules/profiles/minimal.nix b/nixos/modules/profiles/minimal.nix index 0125017dfee..bd1b2b45218 100644 --- a/nixos/modules/profiles/minimal.nix +++ b/nixos/modules/profiles/minimal.nix @@ -10,10 +10,20 @@ with lib; documentation.enable = mkDefault false; + documentation.doc.enable = mkDefault false; + + documentation.info.enable = mkDefault false; + + documentation.man.enable = mkDefault false; + documentation.nixos.enable = mkDefault false; programs.command-not-found.enable = mkDefault false; + services.logrotate.enable = mkDefault false; + + services.udisks2.enable = mkDefault false; + xdg.autostart.enable = mkDefault false; xdg.icons.enable = mkDefault false; xdg.mime.enable = mkDefault false; diff --git a/nixos/modules/programs/skim.nix b/nixos/modules/programs/skim.nix index 1333cdd30ab..57a5d68ec3d 100644 --- a/nixos/modules/programs/skim.nix +++ b/nixos/modules/programs/skim.nix @@ -6,7 +6,7 @@ in { options = { programs.skim = { - fuzzyCompletion = mkEnableOption (mdDoc "fuzzy Completion with skim"); + fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with skim"); keybindings = mkEnableOption (mdDoc "skim keybindings"); package = mkPackageOption pkgs "skim" {}; }; @@ -26,5 +26,9 @@ in '' + optionalString cfg.keybindings '' source ${cfg.package}/share/skim/key-bindings.zsh ''; + + programs.fish.interactiveShellInit = optionalString cfg.keybindings '' + source ${cfg.package}/share/skim/key-bindings.fish && skim_key_bindings + ''; }; } diff --git a/nixos/modules/services/hardware/asusd.nix b/nixos/modules/services/hardware/asusd.nix index f0751c44025..fba9b059bbb 100644 --- a/nixos/modules/services/hardware/asusd.nix +++ b/nixos/modules/services/hardware/asusd.nix @@ -105,7 +105,7 @@ in systemd.packages = [ pkgs.asusctl ]; services.dbus.packages = [ pkgs.asusctl ]; services.udev.packages = [ pkgs.asusctl ]; - services.supergfxd.enable = true; + services.supergfxd.enable = lib.mkDefault true; systemd.user.services.asusd-user.enable = cfg.enableUserService; }; diff --git a/nixos/modules/services/hardware/supergfxd.nix b/nixos/modules/services/hardware/supergfxd.nix index 5cc07e02f31..cb604db91dc 100644 --- a/nixos/modules/services/hardware/supergfxd.nix +++ b/nixos/modules/services/hardware/supergfxd.nix @@ -23,7 +23,7 @@ in config = lib.mkIf cfg.enable { environment.systemPackages = [ pkgs.supergfxctl ]; - environment.etc."supergfxd.conf".source = lib.mkIf (cfg.settings != null) (json.generate "supergfxd.conf" cfg.settings); + environment.etc."supergfxd.conf" = lib.mkIf (cfg.settings != null) { source = json.generate "supergfxd.conf" cfg.settings; }; services.dbus.enable = true; diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index 6783f8ec62f..b13e50cb17d 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -62,6 +62,11 @@ in configuration. For instance, if you use the NVIDIA X driver, then it also needs to contain an attribute {var}`nvidia_x11`. + + Please note that we strictly support kernel versions that are + maintained by the Linux developers only. More information on the + availability of kernel versions is documented + [in the Linux section of the manual](https://nixos.org/manual/nixos/unstable/index.html#sec-kernel-config). ''; }; |