systemd-stage-1: Add assertions for unsupported options.

Changed files
+29 -1
nixos
modules
services
networking
system
+4
nixos/modules/services/networking/iscsi/root-initiator.nix
···
assertion = cfg.loginAll -> cfg.target == null;
message = "iSCSI target name is set while login on all portals is enabled.";
}
+
{
+
assertion = !config.boot.initrd.systemd.enable;
+
message = "systemd stage 1 does not support iscsi yet.";
+
}
];
};
}
+5
nixos/modules/system/boot/grow-partition.nix
···
config = mkIf config.boot.growPartition {
+
assertions = [{
+
assertion = !config.boot.initrd.systemd.enable;
+
message = "systemd stage 1 does not support 'boot.growPartition' yet.";
+
}];
+
boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs ${pkgs.gawk}/bin/gawk
copy_bin_and_libs ${pkgs.gnused}/bin/sed
+20 -1
nixos/modules/system/boot/systemd/initrd.nix
···
-
{ lib, config, utils, pkgs, ... }:
+
{ lib, options, config, utils, pkgs, ... }:
with lib;
···
};
config = mkIf (config.boot.initrd.enable && cfg.enable) {
+
assertions = map (name: {
+
assertion = config.boot.initrd.${name} == "";
+
message = ''
+
systemd stage 1 does not support 'boot.initrd.${name}'. Please
+
convert it to analogous systemd units in 'boot.initrd.systemd'.
+
+
Definitions:
+
${lib.concatMapStringsSep "\n" ({ file, ... }: "- ${file}") options.boot.initrd.${name}.definitionsWithLocations}
+
'';
+
}) [
+
"preFailCommands"
+
"preDeviceCommands"
+
"preLVMCommands"
+
"postDeviceCommands"
+
"postMountCommands"
+
"extraUtilsCommands"
+
"extraUtilsCommandsTest"
+
];
+
system.build = { inherit initialRamdisk; };
boot.initrd.availableKernelModules = [