From 2f6cd0ce335b71ba0adf6e3988f7ce3d01396908 Mon Sep 17 00:00:00 2001 From: Eric Litak Date: Fri, 22 Apr 2016 07:52:25 -0700 Subject: [PATCH 1/3] rtl8723bs: improved build --- pkgs/os-specific/linux/rtl8723bs/default.nix | 53 +++++++++++--------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/pkgs/os-specific/linux/rtl8723bs/default.nix b/pkgs/os-specific/linux/rtl8723bs/default.nix index 6d55c5522f4..88981c5cf40 100644 --- a/pkgs/os-specific/linux/rtl8723bs/default.nix +++ b/pkgs/os-specific/linux/rtl8723bs/default.nix @@ -1,36 +1,43 @@ -{ stdenv, fetchFromGitHub, kernel }: - -let - ver = "c517f2b"; -in +{ stdenv, fetchFromGitHub, nukeReferences, kernel }: +with stdenv.lib; stdenv.mkDerivation rec { - name = "rtl8723bs-${kernel.version}-c517f2b"; - + name = "rtl8723bs-${kernel.version}-${rev}"; + rev = "c517f2bf8bcc3d57311252ea7cd49ae81466eead"; + src = fetchFromGitHub { owner = "hadess"; repo = "rtl8723bs"; - rev = "c517f2bf8bcc3d57311252ea7cd49ae81466eead"; + inherit rev; sha256 = "0phzrhq85g52pi2b74a9sr9l2x6dzlz714k3pix486w2x5axw4xb"; }; - - patchPhase = '' - substituteInPlace ./Makefile --replace /lib/modules/ "${kernel.dev}/lib/modules/" - substituteInPlace ./Makefile --replace '$(shell uname -r)' "${kernel.modDirVersion}" - substituteInPlace ./Makefile --replace /sbin/depmod # - substituteInPlace ./Makefile --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - substituteInPlace ./Makefile --replace '/lib/firmware' "$out/lib/firmware" + + buildInputs = [ nukeReferences ]; + + makeFlags = concatStringsSep " " [ + "ARCH=${stdenv.platform.kernelArch}" # Normally not needed, but the Makefile sets ARCH in a broken way. + "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" # Makefile uses $(uname -r); breaks us. + ]; + + enableParallelBuilding = true; + + # The Makefile doesn't use env-vars well, so install manually: + installPhase = '' + mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless + cp r8723bs.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless + + mkdir -p "$out/lib/firmware/rtlwifi" + cp rtl8723bs_nic.bin "$out/lib/firmware/rtlwifi" + cp rtl8723bs_wowlan.bin "$out/lib/firmware/rtlwifi" + + nuke-refs $(find $out -name "*.ko") ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - mkdir -p "$out/lib/firmware/rtlwifi" - ''; - + meta = { description = "Realtek SDIO Wi-Fi driver"; homepage = "https://github.com/hadess/rtl8723bs"; license = stdenv.lib.licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" ]; - broken = !stdenv.lib.versionAtLeast kernel.version "3.19"; + platforms = [ "x86_64-linux" "i686-linux" "armv7l-linux" ]; + broken = ! versionAtLeast kernel.version "3.19"; + maintainers = with maintainers; [ elitak ]; }; } From 4c415e59a427ab18336da21bc6a2b762e3b3ee4e Mon Sep 17 00:00:00 2001 From: Eric Litak Date: Fri, 22 Apr 2016 07:54:11 -0700 Subject: [PATCH 2/3] rtl8723bs-firmware: init, split off from rtl8723bs --- nixos/modules/hardware/all-firmware.nix | 6 +++++- .../firmware/rtl8723bs-firmware/default.nix | 21 +++++++++++++++++++ pkgs/os-specific/linux/rtl8723bs/default.nix | 4 ---- pkgs/top-level/all-packages.nix | 2 ++ 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 pkgs/os-specific/linux/firmware/rtl8723bs-firmware/default.nix diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index d0d481f72a4..fb8e1ccab66 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -22,7 +22,11 @@ with lib; ###### implementation config = mkIf config.hardware.enableAllFirmware { - hardware.firmware = [ pkgs.firmwareLinuxNonfree pkgs.intel2200BGFirmware ]; + hardware.firmware = with pkgs; [ + firmwareLinuxNonfree + intel2200BGFirmware + rtl8723bs-firmware + ]; }; } diff --git a/pkgs/os-specific/linux/firmware/rtl8723bs-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtl8723bs-firmware/default.nix new file mode 100644 index 00000000000..dd30003aa40 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/rtl8723bs-firmware/default.nix @@ -0,0 +1,21 @@ +{ stdenv, linuxPackages }: +with stdenv.lib; +stdenv.mkDerivation { + name = "rtl8723bs-firmware-${linuxPackages.rtl8723bs.rev}"; + inherit (linuxPackages.rtl8723bs) src; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p "$out/lib/firmware/rtlwifi" + cp rtl8723bs_nic.bin "$out/lib/firmware/rtlwifi" + cp rtl8723bs_wowlan.bin "$out/lib/firmware/rtlwifi" + ''; + + meta = with stdenv.lib; { + description = "Firmware for RealTek 8723bs"; + homepage = https://github.com/hadess/rtl8723bs; + license = licenses.unfreeRedistributableFirmware; + maintainers = with maintainers; [ elitak ]; + }; +} diff --git a/pkgs/os-specific/linux/rtl8723bs/default.nix b/pkgs/os-specific/linux/rtl8723bs/default.nix index 88981c5cf40..05822c4cb42 100644 --- a/pkgs/os-specific/linux/rtl8723bs/default.nix +++ b/pkgs/os-specific/linux/rtl8723bs/default.nix @@ -25,10 +25,6 @@ stdenv.mkDerivation rec { mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless cp r8723bs.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless - mkdir -p "$out/lib/firmware/rtlwifi" - cp rtl8723bs_nic.bin "$out/lib/firmware/rtlwifi" - cp rtl8723bs_wowlan.bin "$out/lib/firmware/rtlwifi" - nuke-refs $(find $out -name "*.ko") ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f4de0702e2b..29f055ef5d6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11015,6 +11015,8 @@ in rt5677-firmware = callPackage ../os-specific/linux/firmware/rt5677 { }; + rtl8723bs-firmware = callPackage ../os-specific/linux/firmware/rtl8723bs-firmware { }; + s3ql = callPackage ../tools/backup/s3ql { }; sassc = callPackage ../development/tools/sassc { }; From 62551b53185d8c90e58bade93be0fe9d23ad5060 Mon Sep 17 00:00:00 2001 From: Eric Litak Date: Fri, 22 Apr 2016 08:00:56 -0700 Subject: [PATCH 3/3] rtl8723bs: version bump --- pkgs/os-specific/linux/rtl8723bs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/rtl8723bs/default.nix b/pkgs/os-specific/linux/rtl8723bs/default.nix index 05822c4cb42..e8cc1f40067 100644 --- a/pkgs/os-specific/linux/rtl8723bs/default.nix +++ b/pkgs/os-specific/linux/rtl8723bs/default.nix @@ -2,13 +2,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "rtl8723bs-${kernel.version}-${rev}"; - rev = "c517f2bf8bcc3d57311252ea7cd49ae81466eead"; + rev = "6918e9b2ff297b1cc7fde193e72452c33c10e1c8"; src = fetchFromGitHub { owner = "hadess"; repo = "rtl8723bs"; inherit rev; - sha256 = "0phzrhq85g52pi2b74a9sr9l2x6dzlz714k3pix486w2x5axw4xb"; + sha256 = "07srd457wnz29nvvq02wz66s387bhjbydnmbs3qr7ljprabhsgmi"; }; buildInputs = [ nukeReferences ];