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