Commit d91e1f98 authored by Samuel Dionne-Riel's avatar Samuel Dionne-Riel
Browse files

nixos: Add sd_image_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 image 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 image, nothing else.
parent 35bb28b3
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
{ pkgs, ... }:

{
  imports = [ ./sd-image-aarch64-new-kernel-installer.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 = [];
    });
  })];
}
+8 −0
Original line number Diff line number Diff line
@@ -214,6 +214,14 @@ in rec {
    inherit system;
  });

  sd_image_new_kernel_no_zfs = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
    module = {
        aarch64-linux = ./modules/installer/sd-card/sd-image-aarch64-new-kernel-no-zfs-installer.nix;
      }.${system};
    type = "minimal-new-kernel-no-zfs";
    inherit system;
  });

  # A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF).
  ova = forMatchingSystems [ "x86_64-linux" ] (system: