nixos/kernel-headers: makeLinuxHeaders

While it is easy to make a custom kernel by applying kernelPatches it is
not so easy to get the corresponding headers; the derivation uses a
hard-coded kernel version.
This commit is contained in:
Maciej Woś 2019-05-23 17:36:27 +09:00
parent 6858eda213
commit 5a7c98df12

View File

@ -4,13 +4,10 @@
}:
let
common = { version, sha256, patches ? [] }: stdenvNoCC.mkDerivation {
name = "linux-headers-${version}";
makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation {
inherit src;
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
inherit sha256;
};
name = "linux-headers-${version}";
ARCH = stdenvNoCC.hostPlatform.platform.kernelArch or stdenvNoCC.hostPlatform.kernelArch;
@ -73,13 +70,18 @@ let
};
};
in {
inherit makeLinuxHeaders;
linuxHeaders = common {
version = "4.19.16";
sha256 = "1pqvn6dsh0xhdpawz4ag27vkw1abvb6sn3869i4fbrz33ww8i86q";
patches = [
./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
./no-dynamic-cc-version-check.patch # so we can use `stdenvNoCC`, see `makeFlags` above
];
};
linuxHeaders = let version = "4.19.16"; in
makeLinuxHeaders {
inherit version;
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "1pqvn6dsh0xhdpawz4ag27vkw1abvb6sn3869i4fbrz33ww8i86q";
};
patches = [
./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
./no-dynamic-cc-version-check.patch # so we can use `stdenvNoCC`, see `makeFlags` above
];
};
}