diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-03-01 18:20:22 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-03-01 21:56:01 +0100 |
commit | fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0 (patch) | |
tree | b4a375a8a105886206cc6646128c283a6d8f6680 /lib | |
parent | 4150920a51c911b45a39f512b4292c1de63990c3 (diff) | |
download | nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar.gz nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar.bz2 nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar.lz nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar.xz nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.tar.zst nixpkgs-fcec3e1c72ad7ac7eaacd00c8fc87dc04696fdb0.zip |
Revert "modules: add support for module replacement with disabledModules"
This reverts commit 3f2566689d14f1d7778d55ca807d1dad2f4695d1 for now. Evaluation of the tested job got broken, blocking nixos-unstable.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/modules.nix | 24 | ||||
-rwxr-xr-x | lib/tests/modules.sh | 8 | ||||
-rw-r--r-- | lib/tests/modules/default.nix | 1 | ||||
-rw-r--r-- | lib/tests/modules/disable-declare-enable.nix | 5 | ||||
-rw-r--r-- | lib/tests/modules/disable-define-enable.nix | 5 | ||||
-rw-r--r-- | lib/tests/modules/disable-enable-modules.nix | 5 |
6 files changed, 7 insertions, 41 deletions
diff --git a/lib/modules.nix b/lib/modules.nix index de9cfc637ae..4eee41306cd 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -20,8 +20,7 @@ rec { , prefix ? [] , # This should only be used for special arguments that need to be evaluated # when resolving module structure (like in imports). For everything else, - # there's _module.args. If specialArgs.modulesPath is defined it will be - # used as the base path for disabledModules. + # there's _module.args. specialArgs ? {} , # This would be remove in the future, Prefer _module.args option instead. args ? {} @@ -59,7 +58,10 @@ rec { closed = closeModules (modules ++ [ internalModule ]) ({ inherit config options; lib = import ./.; } // specialArgs); - options = mergeModules prefix (filterModules (specialArgs.modulesPath or "") closed); + # Note: the list of modules is reversed to maintain backward + # compatibility with the old module system. Not sure if this is + # the most sensible policy. + options = mergeModules prefix (reverseList closed); # Traverse options and extract the option values into the final # config set. At the same time, check whether all option @@ -85,16 +87,6 @@ rec { result = { inherit options config; }; in result; - - # Filter disabled modules. Modules can be disabled allowing - # their implementation to be replaced. - filterModules = modulesPath: modules: - let - moduleKey = m: if isString m then toString modulesPath + "/" + m else toString m; - disabledKeys = map moduleKey (concatMap (m: m.disabledModules) modules); - in - filter (m: !(elem m.key disabledKeys)) modules; - /* Close a set of modules under the ‘imports’ relation. */ closeModules = modules: args: let @@ -119,13 +111,12 @@ rec { else {}; in if m ? config || m ? options then - let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta"]; in + let badAttrs = removeAttrs m ["imports" "options" "config" "key" "_file" "meta"]; in if badAttrs != {} then throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by assignments to the top-level attributes `config' or `options'." else { file = m._file or file; key = toString m.key or key; - disabledModules = m.disabledModules or []; imports = m.imports or []; options = m.options or {}; config = mkMerge [ (m.config or {}) metaSet ]; @@ -133,10 +124,9 @@ rec { else { file = m._file or file; key = toString m.key or key; - disabledModules = m.disabledModules or []; imports = m.require or [] ++ m.imports or []; options = {}; - config = mkMerge [ (removeAttrs m ["_file" "key" "disabledModules" "require" "imports"]) metaSet ]; + config = mkMerge [ (removeAttrs m ["key" "_file" "require" "imports"]) metaSet ]; }; applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index ba0c67fb7d4..8b476a5d3dc 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -99,14 +99,6 @@ checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-if-foo-enabl checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-foo-if-enable.nix checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-foo-enable-if.nix -# Check disabledModules with config definitions and option declarations. -set -- config.enable ./define-enable.nix ./declare-enable.nix -checkConfigOutput "true" "$@" -checkConfigOutput "false" "$@" ./disable-define-enable.nix -checkConfigError "The option .*enable.* defined in .* does not exist" "$@" ./disable-declare-enable.nix -checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix -checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix - # Check _module.args. set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@" diff --git a/lib/tests/modules/default.nix b/lib/tests/modules/default.nix index 5b094710419..c5ce9cb3e3b 100644 --- a/lib/tests/modules/default.nix +++ b/lib/tests/modules/default.nix @@ -3,6 +3,5 @@ { inherit (lib.evalModules { inherit modules; - specialArgs.modulesPath = ./.; }) config options; } diff --git a/lib/tests/modules/disable-declare-enable.nix b/lib/tests/modules/disable-declare-enable.nix deleted file mode 100644 index a373ee7e550..00000000000 --- a/lib/tests/modules/disable-declare-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ ./declare-enable.nix ]; -} diff --git a/lib/tests/modules/disable-define-enable.nix b/lib/tests/modules/disable-define-enable.nix deleted file mode 100644 index 0d84a7c3cb6..00000000000 --- a/lib/tests/modules/disable-define-enable.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ ./define-enable.nix ]; -} diff --git a/lib/tests/modules/disable-enable-modules.nix b/lib/tests/modules/disable-enable-modules.nix deleted file mode 100644 index c325f4e0743..00000000000 --- a/lib/tests/modules/disable-enable-modules.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - disabledModules = [ "define-enable.nix" "declare-enable.nix" ]; -} |