Index: nixpkgs/pkgs/os-specific/linux/broadcom-sta/default.nix
===================================================================
--- nixpkgs/pkgs/os-specific/linux/broadcom-sta/default.nix	(revision 0)
+++ nixpkgs/pkgs/os-specific/linux/broadcom-sta/default.nix	(revision 0)
@@ -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;
+  };
+}
Index: nixpkgs/pkgs/os-specific/linux/broadcom-sta/makefile.patch
===================================================================
--- nixpkgs/pkgs/os-specific/linux/broadcom-sta/makefile.patch	(revision 0)
+++ nixpkgs/pkgs/os-specific/linux/broadcom-sta/makefile.patch	(revision 0)
@@ -0,0 +1,16 @@
+--- src/Makefile	2010-10-08 00:32:59.000000000 +0200
++++ src/Makefile	2010-11-09 11:06:28.832999850 +0100
+@@ -27,10 +27,10 @@
+ EXTRA_LDFLAGS      := $(src)/lib/wlc_hybrid.o_shipped
+ 
+ all:
+-	KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
++	KBUILD_NOPEDANTIC=1 make -C ${KDIR} M=`pwd`
+ 
+ clean:
+-	KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` clean
++	KBUILD_NOPEDANTIC=1 make -C ${KDIR} clean
+ 
+ install:
+-	install -D -m 755 wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl.ko
++	install -D -m 755 wl.ko $out/lib/modules/${kernelVersion}/kernel/drivers/net/wireless/wl.ko
Index: nixpkgs/pkgs/lib/maintainers.nix
===================================================================
--- nixpkgs/pkgs/lib/maintainers.nix	(revision 25018)
+++ nixpkgs/pkgs/lib/maintainers.nix	(working copy)
@@ -13,6 +13,7 @@
   kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
   marcweber = "Marc Weber <marco-oweber@gmx.de>";
+  neznalek = "Vladimír Čunát <vcunat@gmail.com>";
   phreedom = "Evgeny Egorochkin <phreedom.stdin@gmail.com>";
   pierron = "Nicolas B. Pierron <nixos@nbp.name>";
   raskin = "Michael Raskin <7c6f434c@mail.ru>";
Index: nixpkgs/pkgs/top-level/all-packages.nix
===================================================================
--- nixpkgs/pkgs/top-level/all-packages.nix	(revision 25018)
+++ nixpkgs/pkgs/top-level/all-packages.nix	(working copy)
@@ -4810,6 +4810,8 @@
 
     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
 
+    broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { };
+
     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
 
     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
