diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index ee43fe10023..baa8c602a99 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -36,6 +36,7 @@ in boot.kernelPackages = mkOption { default = pkgs.linuxPackages; + type = types.unspecified // { merge = mergeEqualOption; }; apply = kernelPackages: kernelPackages.extend (self: super: { kernel = super.kernel.override { inherit randstructSeed; diff --git a/pkgs/os-specific/linux/blcr/default.nix b/pkgs/os-specific/linux/blcr/default.nix index 626e978f1f1..e018f4622b4 100644 --- a/pkgs/os-specific/linux/blcr/default.nix +++ b/pkgs/os-specific/linux/blcr/default.nix @@ -2,7 +2,7 @@ # BLCR version 0.8.6 should works with linux kernel up to version 3.17.x -assert builtins.compareVersions "3.18" kernel.version == 1; +assert stdenv.lib.versionOlder "3.18" kernel.version; stdenv.mkDerivation { name = "blcr_${kernel.version}-0.8.6pre4"; diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 82ac359158b..2290a7e80a1 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -1,7 +1,11 @@ { lib, callPackage, fetchurl, stdenv }: let - generic = args: callPackage (import ./generic.nix args) { }; + +generic = args: +if ((!lib.versionOlder args.version "391") + && stdenv.hostPlatform.system != "x86_64-linux") then null + else callPackage (import ./generic.nix args) { }; kernel = callPackage # a hacky way of extracting parameters from callPackage ({ kernel, libsOnly ? false }: if libsOnly then { } else kernel) { }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cd19b770090..e89c5c65b62 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15716,7 +15716,7 @@ in ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { }; - blcr = callPackage ../os-specific/linux/blcr { }; + blcr = if stdenv.lib.versionOlder "3.18" kernel.version then callPackage ../os-specific/linux/blcr { } else null; chipsec = callPackage ../tools/security/chipsec { inherit kernel; @@ -15737,7 +15737,7 @@ in hyperv-daemons = callPackage ../os-specific/linux/hyperv-daemons { }; - e1000e = callPackage ../os-specific/linux/e1000e {}; + e1000e = if stdenv.lib.versionOlder kernel.version "4.10" then callPackage ../os-specific/linux/e1000e {} else null; ixgbevf = callPackage ../os-specific/linux/ixgbevf {}; @@ -15805,7 +15805,8 @@ in phc-intel = callPackage ../os-specific/linux/phc-intel { }; - prl-tools = callPackage ../os-specific/linux/prl-tools { }; + # Disable for kernels 4.15 and above due to compatibility issues + prl-tools = if stdenv.lib.versionOlder kernel.version "4.15" then callPackage ../os-specific/linux/prl-tools { } else null; sch_cake = callPackage ../os-specific/linux/sch_cake { };