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