1{ stdenv, fetchurl, kernel }:
2let
3 version = "6.30.223.248";
4in
5stdenv.mkDerivation {
6 name = "broadcom-sta-${version}-${kernel.version}";
7
8 src = if stdenv.system == "i686-linux" then (
9 fetchurl {
10 url = http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz;
11 sha256 = "1bd13pq5hj4yzp32rx71sg1i5wkzdsg1s32xsywb48lw88x595mi";
12 } ) else (
13 fetchurl {
14 url = http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz;
15 sha256 = "08ihbhwnqpnazskw9rlrk0alanp4x70kl8bsy2vg962iq334r69x";
16 }
17 );
18
19 patches = [
20 ./license.patch
21 ./linux-recent.patch
22 ./gcc.patch
23 ];
24
25 makeFlags = "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}";
26
27 unpackPhase = ''
28 sourceRoot=broadcom-sta
29 mkdir "$sourceRoot"
30 tar xvf "$src" -C "$sourceRoot"
31 '';
32
33 installPhase =
34 ''
35 binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
36 docDir="$out/share/doc/broadcom-sta/"
37 mkdir -p "$binDir" "$docDir"
38 cp wl.ko "$binDir"
39 cp lib/LICENSE.txt "$docDir"
40 '';
41
42 meta = {
43 description = "Kernel module driver for some Broadcom's wireless cards";
44 homepage = http://www.broadcom.com/support/802.11/linux_sta.php;
45 license = stdenv.lib.licenses.unfreeRedistributable;
46 maintainers = with stdenv.lib.maintainers; [ phreedom vcunat ];
47 platforms = stdenv.lib.platforms.linux;
48 };
49}