Unverified Commit b1fa8068 authored by Elliot Berman's avatar Elliot Berman
Browse files

linux-kernels: Introduce kernelPackagesExtensions

Presently, we can only override or extend specific versions of
linuxPackages_*. This is not ideal for a overlay which adds a kernel
module or overrides the version for a Linux package because we must
override every version individually. Python has introduced a pattern,
"pythonPackagesExtensions" which is an array of extensions (functions)
to modify a given pythonPackages. CUDA has recently done the same with
_cuda.extensions. Apply this approach to kernelPackages as well.
parent 5eb18af2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -10273,6 +10273,8 @@ with pkgs;

  inherit (linuxKernel) buildLinux linuxConfig kernelPatches;

  kernelPackagesExtensions = [ ];

  linuxPackagesFor = linuxKernel.packagesFor;

  hardenedLinuxPackagesFor = linuxKernel.hardenedPackagesFor;
+4 −2
Original line number Diff line number Diff line
{
  pkgs,
  linuxKernel,
  kernelPackagesExtensions,
  config,
  buildPackages,
  callPackage,
@@ -327,7 +328,7 @@ in

  packagesFor =
    kernel_:
    lib.makeExtensible (
    (lib.makeExtensible (
      self:
      with self;
      let
@@ -724,7 +725,8 @@ in
        tuxedo-keyboard = self.tuxedo-drivers; # Added 2024-09-28
        phc-intel = throw "phc-intel drivers are no longer supported by any kernel >=4.17"; # added 2025-07-18
      }
    );
    )).extend
      (lib.fixedPoints.composeManyExtensions kernelPackagesExtensions);

  hardenedPackagesFor = kernel: overrides: packagesFor (hardenedKernelFor kernel overrides);