1{ lib, stdenv, fetchFromGitHub, nukeReferences, kernel }:
2with lib;
3stdenv.mkDerivation rec {
4 name = "rtl8723bs-${kernel.version}-${version}";
5 version = "2017-04-06";
6
7 src = fetchFromGitHub {
8 owner = "hadess";
9 repo = "rtl8723bs";
10 rev = "db2c4f61d48fe3b47c167c8bcd722ce83c24aca5";
11 sha256 = "0pxqya14a61vv2v5ky1ldybc0mjfin9mpvmajlmv0lls904rph7g";
12 };
13
14 hardeningDisable = [ "pic" ];
15
16 buildInputs = [ nukeReferences ];
17
18 makeFlags = [
19 "ARCH=${stdenv.hostPlatform.linuxArch}" # Normally not needed, but the Makefile sets ARCH in a broken way.
20 "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" # Makefile uses $(uname -r); breaks us.
21 ];
22
23 enableParallelBuilding = true;
24
25 # The Makefile doesn't use env-vars well, so install manually:
26 installPhase = ''
27 mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless
28 cp r8723bs.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless
29
30 nuke-refs $(find $out -name "*.ko")
31 '';
32
33 meta = {
34 description = "Realtek SDIO Wi-Fi driver";
35 homepage = "https://github.com/hadess/rtl8723bs";
36 license = lib.licenses.gpl2;
37 platforms = lib.platforms.linux;
38 broken = versionAtLeast kernel.version "4.12"; # Now in kernel staging drivers
39 maintainers = with maintainers; [ elitak ];
40 };
41}