1{
2 lib,
3 stdenv,
4 fetchFromGitLab,
5 kernel,
6 kernelModuleMakeFlags,
7 fetchpatch,
8}:
9
10stdenv.mkDerivation rec {
11 pname = "ddcci-driver";
12 version = "0.4.5-unstable-2024-09-26";
13 name = "${pname}-${kernel.version}-${version}";
14
15 src = fetchFromGitLab {
16 owner = "${pname}-linux";
17 repo = "${pname}-linux";
18 rev = "0233e1ee5eddb4b8a706464f3097bad5620b65f4";
19 hash = "sha256-Osvojt8UE+cenOuMoSY+T+sODTAAKkvY/XmBa5bQX88=";
20 };
21
22 patches = [
23 # See https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/-/merge_requests/17
24 (fetchpatch {
25 url = "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/-/commit/e0605c9cdff7bf3fe9587434614473ba8b7e5f63.patch";
26 hash = "sha256-sTq03HtWQBd7Wy4o1XbdmMjXQE2dG+1jajx4HtwBHjM=";
27 })
28 ];
29
30 hardeningDisable = [ "pic" ];
31
32 nativeBuildInputs = kernel.moduleBuildDependencies;
33
34 prePatch = ''
35 substituteInPlace ./ddcci/Makefile \
36 --replace '"$(src)"' '$(PWD)' \
37 --replace depmod \#
38 substituteInPlace ./ddcci-backlight/Makefile \
39 --replace '"$(src)"' '$(PWD)' \
40 --replace depmod \#
41 '';
42
43 makeFlags = kernelModuleMakeFlags ++ [
44 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
45 "KVER=${kernel.modDirVersion}"
46 "KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
47 "INCLUDEDIR=$(out)/include"
48 ];
49
50 meta = with lib; {
51 description = "Kernel module driver for DDC/CI monitors";
52 homepage = "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux";
53 license = licenses.gpl2Plus;
54 maintainers = with maintainers; [ kiike ];
55 platforms = platforms.linux;
56 broken = kernel.kernelOlder "5.1";
57 };
58}