1{
2 stdenv,
3 fetchFromGitHub,
4 kernel,
5 kernelModuleMakeFlags,
6 lib,
7}:
8
9stdenv.mkDerivation {
10 pname = "vendor-reset";
11 version = "unstable-2024-04-16-${kernel.version}";
12
13 src = fetchFromGitHub {
14 owner = "gnif";
15 repo = "vendor-reset";
16 rev = "084881c6e9e11bdadaf05798e669568848e698a3";
17 hash = "sha256-Klu2uysbF5tH7SqVl815DwR7W+Vx6PyVDDLwoMZiqBI=";
18 };
19
20 patches = [
21 # This is a temporary, vendored version of this upstream PR:
22 # https://github.com/gnif/vendor-reset/pull/86
23 # As soon as it is merged, we should be able to update this
24 # module and remove the patch.
25 ./fix-linux-6.12-build.patch
26 ];
27
28 nativeBuildInputs = kernel.moduleBuildDependencies;
29
30 hardeningDisable = [ "pic" ];
31
32 makeFlags = kernelModuleMakeFlags ++ [
33 "KVER=${kernel.modDirVersion}"
34 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
35 ];
36
37 installPhase = ''
38 install -D vendor-reset.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/"
39 '';
40
41 enableParallelBuilding = true;
42
43 meta = with lib; {
44 description = "Linux kernel vendor specific hardware reset module";
45 homepage = "https://github.com/gnif/vendor-reset";
46 license = licenses.gpl2Only;
47 maintainers = [ ];
48 platforms = [ "x86_64-linux" ];
49 broken = kernel.kernelOlder "4.19";
50 };
51}