diff options
author | Samuel Dionne-Riel <samuel@dionne-riel.com> | 2022-12-22 23:00:14 -0500 |
---|---|---|
committer | Samuel Dionne-Riel <samuel@dionne-riel.com> | 2022-12-22 23:00:14 -0500 |
commit | 35bb28b367312d94815f03d07d5600ecd362fb26 (patch) | |
tree | 36727d75e84124d781084baa1a2258893f68a50e /nixos | |
parent | 04f574a1c0fde90b51bf68198e2297ca4e7cccf4 (diff) |
nixos: Add iso_minimal_new_kernel_no_zfs
Support for ZFS, while desirable, is problematic with newer kernel releases. The stable ZFS release seldom supports the current newest kernel version, and this makes the new_kernel iso basically useless as it cannot be published, and is not often built with new kernel releases. This uses a dirty workaround to work around the fact it is impossible to remove a list item from a modules system list type. Since ZFS support is conditional to being supported on the current platform, we can fake ZFS not being supported *for the no-zfs build only*. This overlay is only added when evaluating the iso, nothing else.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix | 15 | ||||
-rw-r--r-- | nixos/release.nix | 12 |
2 files changed, 25 insertions, 2 deletions
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix b/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix new file mode 100644 index 0000000000000..9d09cdbe0206d --- /dev/null +++ b/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: + +{ + imports = [ ./installation-cd-minimal-new-kernel.nix ]; + + # Makes `availableOn` fail for zfs, see <nixos/modules/profiles/base.nix>. + # This is a workaround since we cannot remove the `"zfs"` string from `supportedFilesystems`. + # The proper fix would be to make `supportedFilesystems` an attrset with true/false which we + # could then `lib.mkForce false` + nixpkgs.overlays = [(final: super: { + zfs = super.zfs.overrideAttrs(_: { + meta.platforms = []; + }); + })]; +} diff --git a/nixos/release.nix b/nixos/release.nix index 919aa86a2d639..7907be3c02fac 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -181,14 +181,22 @@ in rec { inherit system; }); - # A variant with a more recent (but possibly less stable) kernel - # that might support more hardware. + # A variant with a more recent (but possibly less stable) kernel that might support more hardware. + # This variant keeps zfs support enabled, hoping it will build and work. iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso { module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix; type = "minimal-new-kernel"; inherit system; }); + # A variant with a more recent (but possibly less stable) kernel that might support more hardware. + # ZFS support disabled since it is unlikely to support the latest kernel. + iso_minimal_new_kernel_no_zfs = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso { + module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix; + type = "minimal-new-kernel-no-zfs"; + inherit system; + }); + sd_image = forMatchingSystems [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ] (system: makeSdImage { module = { armv6l-linux = ./modules/installer/sd-card/sd-image-raspberrypi-installer.nix; |