rtl8723bs: improved build

+30 -23
+30 -23
pkgs/os-specific/linux/rtl8723bs/default.nix
··· 1 - { stdenv, fetchFromGitHub, kernel }: 2 - 3 - let 4 - ver = "c517f2b"; 5 - in 1 + { stdenv, fetchFromGitHub, nukeReferences, kernel }: 2 + with stdenv.lib; 6 3 stdenv.mkDerivation rec { 7 - name = "rtl8723bs-${kernel.version}-c517f2b"; 8 - 4 + name = "rtl8723bs-${kernel.version}-${rev}"; 5 + rev = "c517f2bf8bcc3d57311252ea7cd49ae81466eead"; 6 + 9 7 src = fetchFromGitHub { 10 8 owner = "hadess"; 11 9 repo = "rtl8723bs"; 12 - rev = "c517f2bf8bcc3d57311252ea7cd49ae81466eead"; 10 + inherit rev; 13 11 sha256 = "0phzrhq85g52pi2b74a9sr9l2x6dzlz714k3pix486w2x5axw4xb"; 14 12 }; 15 - 16 - patchPhase = '' 17 - substituteInPlace ./Makefile --replace /lib/modules/ "${kernel.dev}/lib/modules/" 18 - substituteInPlace ./Makefile --replace '$(shell uname -r)' "${kernel.modDirVersion}" 19 - substituteInPlace ./Makefile --replace /sbin/depmod # 20 - substituteInPlace ./Makefile --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" 21 - substituteInPlace ./Makefile --replace '/lib/firmware' "$out/lib/firmware" 22 - ''; 23 - 24 - preInstall = '' 25 - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" 26 - mkdir -p "$out/lib/firmware/rtlwifi" 13 + 14 + buildInputs = [ nukeReferences ]; 15 + 16 + makeFlags = concatStringsSep " " [ 17 + "ARCH=${stdenv.platform.kernelArch}" # Normally not needed, but the Makefile sets ARCH in a broken way. 18 + "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" # Makefile uses $(uname -r); breaks us. 19 + ]; 20 + 21 + enableParallelBuilding = true; 22 + 23 + # The Makefile doesn't use env-vars well, so install manually: 24 + installPhase = '' 25 + mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless 26 + cp r8723bs.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless 27 + 28 + mkdir -p "$out/lib/firmware/rtlwifi" 29 + cp rtl8723bs_nic.bin "$out/lib/firmware/rtlwifi" 30 + cp rtl8723bs_wowlan.bin "$out/lib/firmware/rtlwifi" 31 + 32 + nuke-refs $(find $out -name "*.ko") 27 33 ''; 28 - 34 + 29 35 meta = { 30 36 description = "Realtek SDIO Wi-Fi driver"; 31 37 homepage = "https://github.com/hadess/rtl8723bs"; 32 38 license = stdenv.lib.licenses.gpl2; 33 - platforms = [ "x86_64-linux" "i686-linux" ]; 34 - broken = !stdenv.lib.versionAtLeast kernel.version "3.19"; 39 + platforms = [ "x86_64-linux" "i686-linux" "armv7l-linux" ]; 40 + broken = ! versionAtLeast kernel.version "3.19"; 41 + maintainers = with maintainers; [ elitak ]; 35 42 }; 36 43 }