From 0fa0da35ef96cc9a3c8895ab9858e579358dd604 Mon Sep 17 00:00:00 2001 From: Arie Middelkoop Date: Thu, 12 Jan 2012 17:16:11 +0000 Subject: [PATCH] Added firmware-linux-nonfree and directly also the free variant. Todo for later: take the files from the various .deb files instead of the source distribution. This version already improves upon my previous implementation, hence I commit it. svn path=/nixpkgs/trunk/; revision=31501 --- .../linux/firmware/dwmw2/default.nix | 14 ----------- .../firmware/firmware-linux-free/default.nix | 21 ++++++++++++++++ .../firmware-linux-nonfree/default.nix | 24 +++++++++++++++++++ .../linux/firmware/rtl8192c/default.nix | 22 +++++++---------- pkgs/top-level/all-packages.nix | 5 ++-- 5 files changed, 57 insertions(+), 29 deletions(-) delete mode 100644 pkgs/os-specific/linux/firmware/dwmw2/default.nix create mode 100644 pkgs/os-specific/linux/firmware/firmware-linux-free/default.nix create mode 100644 pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix diff --git a/pkgs/os-specific/linux/firmware/dwmw2/default.nix b/pkgs/os-specific/linux/firmware/dwmw2/default.nix deleted file mode 100644 index ba8c724890c..00000000000 --- a/pkgs/os-specific/linux/firmware/dwmw2/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{stdenv, fetchgit}: - -let - repo = "git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git"; - src = fetchgit { - url = repo; - rev = "15888a2eab052ac3d3f49334e4f6f05f347a516e"; - sha256 = "df63b71dd56ad85f97784076eeced76849e95cb30a9909e8322f7fdd54f227b4"; - }; - meta = { - description = "GIT repo of the linux firmware binaries"; - homepage = repo; - }; -in stdenv.lib.setName "linux-firmware" (stdenv.lib.addMetaAttrs meta src) diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-free/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-free/default.nix new file mode 100644 index 00000000000..73f8c4f1d7d --- /dev/null +++ b/pkgs/os-specific/linux/firmware/firmware-linux-free/default.nix @@ -0,0 +1,21 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "firmware-linux-free-3"; + + src = fetchurl { + url = "mirror://debian/pool/main/f/firmware-free/firmware-free_3.tar.gz"; + sha256 = "8363230e56365dd6b5e8ae9fd6cefab83472f4842f7221ffc2d890eaf7d7f1ef"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = ''ensureDir $out && cp -ra * $out/''; + + meta = { + description = "Free kernel firmware (packaged by Debian)"; + homepage = "http://packages.debian.org/sid/firmware-linux-nonfree"; + license = "free"; + priority = "10"; + }; +} diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix new file mode 100644 index 00000000000..d501891d2a1 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix @@ -0,0 +1,24 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "firmware-linux-nonfree-0.34"; + + src = fetchurl { + url = "mirror://debian/pool/non-free/f/firmware-nonfree/firmware-nonfree_0.34.tar.gz"; + sha256 = "94fe856d00f63559486b7684c0fae9b30bee599c6d7dea8c7e00d2dcb548ee8a"; + }; + + phases = [ "unpackPhase" "installPhase" "postInstall" ]; + + installPhase = "ensureDir $out && cp -ra * $out/"; + + postInstall = "ln -s $out/realtek/rtlwifi $out/rtlwifi"; + + meta = { + description = "Non-free kernel firmware (packaged by Debian)"; + homepage = "http://packages.debian.org/sid/firmware-linux-nonfree"; + license = "unfree-redistributable-firmware"; + priority = "10"; + }; +} + diff --git a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix index d19d26d5cba..85bbb27c67f 100644 --- a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix +++ b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix @@ -1,18 +1,14 @@ -{stdenv, linuxFirmware}: -let - src = linuxFirmware; - dir = "rtlwifi"; - file = "rtl8192cfw.bin"; +{stdenv, firmwareLinuxNonfree}: +stdenv.mkDerivation { + name = "rtl8192c-fw"; + src = firmwareLinuxNonfree; + + phases = [ "installPhase" ]; + installPhase = "ensureDir $out/rtlwifi && cp $src/realtek/rtlwifi/rtl8192cfw.bin $out/rtlwifi/rtl8192cfw.bin"; + meta = { description = "Firmware for the Realtek RTL8192c wireless cards"; homepage = "http://www.realtek.com"; license = "non-free"; - }; -in stdenv.mkDerivation { - name = "rtl8192c-fw"; - inherit src meta dir file; - - phases = [ "installPhase" ]; - - installPhase = "ensureDir $out/$dir && cp $src/$dir/$file $out/$dir/$file"; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 556f6afc04a..65618f55f52 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6006,6 +6006,9 @@ let qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { }; + firmwareLinuxNonfree = callPackage ../os-specific/linux/firmware/firmware-linux-nonfree { }; + firmwareLinuxFree = callPackage ../os-specific/linux/firmware/firmware-linux-free { }; + radeontools = callPackage ../os-specific/linux/radeontools { }; radeonR700 = callPackage ../os-specific/linux/firmware/radeon-r700 { }; @@ -6026,8 +6029,6 @@ let rtkit = callPackage ../os-specific/linux/rtkit { }; - linuxFirmware = callPackage ../os-specific/linux/firmware/dwmw2 { }; - rtl8192cfw = callPackage ../os-specific/linux/firmware/rtl8192c { }; rtl8168e2fw = callPackage ../os-specific/linux/firmware/rtl8168e-2 { };