1
0
Fork 0
mirror of https://github.com/NixOS/nixos-hardware synced 2024-11-08 20:19:40 +01:00
nixos-hardware/microsoft/surface/common/kernel/linux-package.nix
2023-11-26 13:01:52 +13:00

57 lines
1.5 KiB
Nix

{ pkgs,
lib,
fetchurl,
buildLinux,
linuxPackagesFor,
}:
let
inherit (lib) recurseIntoAttrs versions;
repos = pkgs.callPackage ../repos.nix {};
# Version 1 of the linuxPackage function:
# (DEPRECATED)
linuxPackage1 =
{ version,
modDirVersion ? version,
...
} @ args:
let
buildLinux' = buildLinux (args // { inherit modDirVersion; });
linuxPackagesFor' = linuxPackagesFor buildLinux';
in recurseIntoAttrs linuxPackagesFor';
# Version 1 of the linuxPackage function, with hopefully simplified arguments:
linuxPackage2 =
{ 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 =
{ patchSrc ? (repos.linux-surface + "/patches/${versions.majorMinor version}"),
version,
patchFn,
}: pkgs.callPackage patchFn {
inherit (lib) kernel;
inherit version patchSrc;
};
in {
inherit linuxPackage1 linuxPackage2 repos surfacePatches;
# Default version:
linuxPackage = linuxPackage2;
}