about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/broadcom-sta/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/broadcom-sta/default.nix')
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
new file mode 100644
index 000000000000..cf8fde4751cc
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, kernel }:
+
+let version = "5.60.246.6";
+    bits = if stdenv.system == "i686-linux" then "32" else
+      assert stdenv.system == "x86_64-linux"; "64";
+in
+
+stdenv.mkDerivation {
+  name = "broadcom-sta-${version}";
+  src = fetchurl {
+    url = "http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86-${bits}_v${version}.tar.gz";
+    sha256 = if bits == "32"
+      then "0y8ap9zhfsg1k603qf5a7n73zvsw7nkqh42dlcyxan5zdzmgcqdx"
+      else "0z8a57fpajiag830g1ifc9vrm7wk5bm7dwi7a9ljm3cns3an07fl";
+  };
+
+  buildInputs = [ kernel ];
+  patches = [ ./makefile.patch ];
+
+  makeFlags = "KDIR=${kernel}/lib/modules/${kernel.version}/build";
+
+  unpackPhase =
+    ''
+      sourceRoot=broadcom-sta
+      mkdir "$sourceRoot"
+      tar xvf "$src" -C "$sourceRoot"
+    '';
+
+  installPhase =
+    ''
+      binDir="$out/lib/modules/${kernel.version}/kernel/net/wireless/"
+      docDir="$out/share/doc/broadcom-sta/"
+      ensureDir "$binDir" "$docDir"
+      cp wl.ko "$binDir"
+      cp lib/LICENSE.txt "$docDir"
+    '';
+
+  meta = {
+    description = "Kernel module driver for some Broadcom's wireless cards";
+    homepage = http://www.broadcom.com/support/802.11/linux_sta.php;
+    license = "unfree-redistributable";
+    maintainers = [ stdenv.lib.maintainers.neznalek ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}