1{ lib
2, stdenv
3, fetchFromGitHub
4, kernel
5, bc
6}:
7
8stdenv.mkDerivation rec {
9 pname = "rtl8821ce";
10 version = "${kernel.version}-unstable-2023-05-04";
11
12 src = fetchFromGitHub {
13 owner = "tomaspinho";
14 repo = "rtl8821ce";
15 rev = "a478095a45d8aa957b45be4f9173c414efcacc6f";
16 hash = "sha256-xqVxylKhL7vbC7m5Av6ven5i7OBkS2RHxrKzLOVBlgE=";
17 };
18
19 hardeningDisable = [ "pic" ];
20
21 nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
22 makeFlags = kernel.makeFlags;
23
24 prePatch = ''
25 substituteInPlace ./Makefile \
26 --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
27 --replace /sbin/depmod \# \
28 --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
29 '';
30
31 preInstall = ''
32 mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
33 '';
34
35 enableParallelBuilding = true;
36
37 meta = with lib; {
38 description = "Realtek rtl8821ce driver";
39 homepage = "https://github.com/tomaspinho/rtl8821ce";
40 license = licenses.gpl2Only;
41 platforms = platforms.linux;
42 maintainers = with maintainers; [ hhm ivar ];
43 broken = stdenv.isAarch64 || ((lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened);
44 };
45}