1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 kernel,
6 bc,
7}:
8
9stdenv.mkDerivation {
10 pname = "rtl8188eus-aircrack";
11 version = "${kernel.version}-unstable-2024-09-18";
12
13 src = fetchFromGitHub {
14 owner = "aircrack-ng";
15 repo = "rtl8188eus";
16 rev = "f969c544ab6100da3d80a5709e077f920f2df698";
17 sha256 = "sha256-uwO2nDDff4t0PZw3mLWmUPOHHftDgoaBaWMXQKHQunI=";
18 };
19
20 prePatch = ''
21 substituteInPlace ./Makefile \
22 --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
23 --replace /sbin/depmod \# \
24 --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
25 '';
26
27 hardeningDisable = [ "pic" ];
28
29 enableParallelBuilding = true;
30
31 nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
32
33 preInstall = ''
34 mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
35 '';
36
37 meta = with lib; {
38 description = "RealTek RTL8188eus WiFi driver with monitor mode & frame injection support";
39 homepage = "https://github.com/aircrack-ng/rtl8188eus";
40 license = licenses.gpl2Only;
41 maintainers = with maintainers; [ moni ];
42 broken = (lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened;
43 };
44}