kernel: fix config generation

Addresses https://github.com/NixOS/nixpkgs/issues/71803:
Kernel options are not merged as described, especially the "optional"
aspects. The error silences legitimate warnings.
This commit is contained in:
Matthieu Coudron
2020-04-01 22:25:57 +02:00
parent ae6bdcc535
commit b9a4e6953d
4 changed files with 64 additions and 40 deletions
+3 -2
View File
@@ -22,7 +22,7 @@ let
mergeFalseByDefault = locs: defs:
if defs == [] then abort "This case should never happen."
else if any (x: x == false) defs then false
else if any (x: x == false) (getValues defs) then false
else true;
kernelItem = types.submodule {
@@ -55,6 +55,7 @@ let
default = false;
description = ''
Wether option should generate a failure when unused.
Upon merging values, mandatory wins over optional.
'';
};
};
@@ -121,7 +122,7 @@ in
type = types.attrsOf kernelItem;
example = literalExample '' with lib.kernel; {
"9P_NET" = yes;
USB = optional yes;
USB = option yes;
MMC_BLOCK_MINORS = freeform "32";
}'';
description = ''