1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 kernel,
6 bc,
7}:
8
9stdenv.mkDerivation {
10 pname = "rtl8723ds";
11 version = "${kernel.version}-unstable-2023-11-14";
12
13 src = fetchFromGitHub {
14 owner = "lwfinger";
15 repo = "rtl8723ds";
16 rev = "52e593e8c889b68ba58bd51cbdbcad7fe71362e4";
17 sha256 = "sha256-SszvDuWN9opkXyVQAOLjnNtPp93qrKgnGvzK0y7Y9b0=";
18 };
19
20 hardeningDisable = [ "pic" ];
21
22 nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
23
24 makeFlags = [
25 "ARCH=${stdenv.hostPlatform.linuxArch}"
26 ]
27 ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
28 "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
29 ];
30
31 postPatch = ''
32 substituteInPlace ./Makefile \
33 --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
34 --replace "/sbin/depmod" "#" \
35 --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
36 '';
37
38 preInstall = ''
39 mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
40 '';
41
42 enableParallelBuilding = true;
43
44 meta = {
45 description = "Linux driver for RTL8723DS";
46 homepage = "https://github.com/lwfinger/rtl8723ds";
47 license = lib.licenses.gpl2Only;
48 platforms = lib.platforms.linux;
49 maintainers = with lib.maintainers; [ chuangzhu ];
50 };
51}