diff --git a/lib/modules.nix b/lib/modules.nix index 84ca209d367..1d7c7b22765 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -25,6 +25,16 @@ rec { internal = true; }; + + __internal.check = mkOption { + description = "Whether to check whether all option definitions have matching declarations."; + + type = types.uniq types.bool; + + internal = true; + + default = check; + }; }; config = { @@ -45,7 +55,7 @@ rec { if isOption v then v.value else yieldConfig (prefix ++ [n]) v) set) ["_definedNames"]; in - if check && set ? _definedNames then + if options.__internal.check.value && set ? _definedNames then fold (m: res: fold (name: res: if set ? ${name} then res else throw "The option `${showOption (prefix ++ [name])}' defined in `${m.file}' does not exist.") diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix index 460f5601ae7..4ee1c61f54f 100644 --- a/nixos/lib/eval-config.nix +++ b/nixos/lib/eval-config.nix @@ -31,10 +31,9 @@ in rec { # Merge the option definitions in all modules, forming the full # system configuration. inherit (lib.evalModules { - inherit prefix; + inherit prefix check; modules = modules ++ extraModules ++ baseModules ++ [ pkgsModule ]; args = extraArgs; - check = check && options.environment.checkConfigurationOptions.value; }) config options; # These are the extra arguments passed to every module. In diff --git a/nixos/modules/misc/check-config.nix b/nixos/modules/misc/check-config.nix deleted file mode 100644 index e9803de2196..00000000000 --- a/nixos/modules/misc/check-config.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, ... }: - -with lib; - -{ - options = { - environment.checkConfigurationOptions = mkOption { - type = types.bool; - default = true; - description = '' - Whether to check the validity of the entire configuration. - ''; - }; - }; -} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 23809796878..95337168d10 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -43,7 +43,6 @@ ./installer/tools/nixos-checkout.nix ./installer/tools/tools.nix ./misc/assertions.nix - ./misc/check-config.nix ./misc/crashdump.nix ./misc/ids.nix ./misc/lib.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index e820b2cb9ce..b898dc23522 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -136,6 +136,8 @@ in zipModules ([] ++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ] +++ obsolete [ "environment" "checkConfigurationOptions" ] [ "__internal" "check" ] + # Options that are obsolete and have no replacement. ++ obsolete' [ "boot" "loader" "grub" "bootDevice" ] ++ obsolete' [ "boot" "initrd" "luks" "enable" ]