anchor.diff:      ];
       platforms = lib.platforms.linux;
     };
  -} // optionalAttrs (features ? modular && features.modular) {
  -  makeFlags = commonMakeFlags ++ [
  -    "MODLIB=\"$(out)/lib/modules/${modDirVersion}\""
  -  ];
  -
  -  postInstall = ''
  -    make modules_install $makeFlags "''${makeFlagsArray[@]}" \
  -      $installFlags "''${installFlagsArray[@]}"
  -    rm -f $out/lib/modules/${modDirVersion}/{build,source}
  -    cd ..
  -    mv $sourceRoot $out/lib/modules/${modDirVersion}/source
  -    mv build $out/lib/modules/${modDirVersion}/build
  -    unlink $out/lib/modules/${modDirVersion}/build/source
  -    ln -sv $out/lib/modules/${modDirVersion}/{,build/}source
  -  '';
  -
  -  postFixup = ''
  -    if [ -z "$dontStrip" ]; then
  -        find $out -name "*.ko" -print0 | xargs -0 strip -S
  -    fi
  -  '';
  -})
  +}
  
positive.code: 
  let
  
    # Function to parse the config file to get the features supported
    readFeatures = config:
      let
        configAttrs = import "${runCommand "attrList.nix" {} ''
          grep -E -v '(^#|^$)' < ${config} | \
            sed 's/CONFIG_// ; s/=/ /' | \
            awk \
              'BEGIN { print "{" }
               END { print "}" }
               { printf "\"%s\" = '"'''"'%s'"'''"';\n", $1, $2 }' > $out
        ''}";
        getValue = option:
          if hasAttr option configAttrs then getAttr option configAttrs else null;
  
        isYes = option: (getValue option) == "y";
      in
  
      {
        modular = isYes "MODULES";
      };
  
  in
  
  
negative.code:   # Any patches
    patches ? [],
    # The kernel .config file
    configfile,
    # Manually specified nixexpr representing the config
    # If unspecified, this will be autodetected from the .config
    config ? optionalAttrs allowImportFromDerivation (readConfig configfile),
    # Whether to utilize the controversial import-from-derivation feature to parse the config
    allowImportFromDerivation ? false
  }:
  
  let
    installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''
      #!/bin/sh
      mkdir $4
      mv -v $2 $4
      mv -v $3 $4
    '';};
  
    isModular = config.isYes "MODULES";
  
    installsFirmware = (config.isEnabled "FW_LOADER") &&
      (isModular || (config.isNo "FIRMWARE_IN_KERNEL"));
  in
  
  stdenv.mkDerivation {
    name = "linux-${version}";
  
    enableParallelBuilding = true;
  
    passthru = {
      inherit version modDirVersion config;
    };
  
    inherit patches src;
  