Merge remote-tracking branch 'origin/master' into staging-next

K900 9d9b3fe3 4f17f159

Changed files
+21 -12
pkgs
os-specific
linux
+21 -12
pkgs/os-specific/linux/kernel/manual-config.nix
···
lib,
stdenv,
buildPackages,
-
runCommand,
bc,
bison,
flex,
···
readConfig =
configfile:
-
import
-
(runCommand "config.nix" { } ''
-
echo "{" > "$out"
-
while IFS='=' read key val; do
-
[ "x''${key#CONFIG_}" != "x$key" ] || continue
-
no_firstquote="''${val#\"}";
-
echo ' "'"$key"'" = "'"''${no_firstquote%\"}"'";' >> "$out"
-
done < "${configfile}"
-
echo "}" >> $out
-
'').outPath;
+
lib.listToAttrs (
+
map
+
(
+
line:
+
let
+
match = lib.match "(.*)=\"?(.*)\"?" line;
+
in
+
{
+
name = lib.elemAt match 0;
+
value = lib.elemAt match 1;
+
}
+
)
+
(
+
lib.filter (line: !(lib.hasPrefix "#" line || line == "")) (
+
lib.splitString "\n" (builtins.readFile configfile)
+
)
+
)
+
);
in
lib.makeOverridable (
{
···
configfile,
# Manually specified nixexpr representing the config
# If unspecified, this will be autodetected from the .config
-
config ? lib.optionalAttrs allowImportFromDerivation (readConfig configfile),
+
config ? lib.optionalAttrs (builtins.isPath configfile || allowImportFromDerivation) (
+
readConfig configfile
+
),
# Custom seed used for CONFIG_GCC_PLUGIN_RANDSTRUCT if enabled. This is
# automatically extended with extra per-version and per-config values.
randstructSeed ? "",