mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-15 14:26:33 +01:00
8d2a765adf
Some of these were read/parsed dozens of times in a `nix search` invocation, and in particular the MELPA recipes archive (3 MiB) was read 4 times.
30 lines
860 B
Nix
30 lines
860 B
Nix
let
|
|
allKernels = builtins.fromJSON (builtins.readFile ./kernels-org.json);
|
|
in
|
|
|
|
{ branch, lib, fetchurl, fetchzip, buildLinux, ... } @ args:
|
|
|
|
let
|
|
thisKernel = allKernels.${branch};
|
|
inherit (thisKernel) version;
|
|
|
|
src =
|
|
# testing kernels are a special case because they don't have tarballs on the CDN
|
|
if branch == "testing"
|
|
then fetchzip {
|
|
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
|
|
inherit (thisKernel) hash;
|
|
}
|
|
else fetchurl {
|
|
url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz";
|
|
inherit (thisKernel) hash;
|
|
};
|
|
|
|
args' = (builtins.removeAttrs args ["branch"]) // {
|
|
inherit src version;
|
|
|
|
modDirVersion = lib.versions.pad 3 version;
|
|
extraMeta.branch = branch;
|
|
} // (args.argsOverride or {});
|
|
in
|
|
buildLinux args'
|