nixos-hardware/microsoft/surface/common/kernel/linux-package.nix

42 lines
1 KiB
Nix
Raw Normal View History

2023-11-25 18:42:11 -05:00
{ pkgs,
lib,
fetchurl,
buildLinux,
linuxPackagesFor,
}:
let
2023-11-25 18:42:11 -05:00
inherit (lib) recurseIntoAttrs versions;
repos = pkgs.callPackage ../repos.nix {};
linuxPackage =
2023-11-25 18:42:11 -05:00
{ url ? "mirror://kernel/linux/kernel/v${versions.major version}.x/linux-${version}.tar.xz",
sha256 ? null,
src ? (fetchurl { inherit url sha256; }),
version,
modDirVersion ? (versions.pad 3 version),
kernelPatches ? [],
...
} @ args: let
inherit (builtins) removeAttrs;
args' = {
inherit src version modDirVersion kernelPatches;
} // removeAttrs args [ "url" "sha256" ];
linuxPackage = buildLinux args';
linuxPackages' = recurseIntoAttrs (linuxPackagesFor linuxPackage);
in linuxPackages';
surfacePatches =
2023-11-25 19:01:52 -05:00
{ patchSrc ? (repos.linux-surface + "/patches/${versions.majorMinor version}"),
2023-11-25 18:42:11 -05:00
version,
patchFn,
}: pkgs.callPackage patchFn {
inherit (lib) kernel;
inherit version patchSrc;
};
in {
inherit linuxPackage repos surfacePatches;
}