summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2010-06-05 00:42:33 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2010-06-05 00:42:33 +0000
commitf614f4af6370182cd7c9a835e2e8f4492f1c785f (patch)
treec7a94ea74018625fe07b25e18e3431a32ac34103 /net-wireless/broadcom-sta
parentVersion bump (diff)
downloadgentoo-2-f614f4af6370182cd7c9a835e2e8f4492f1c785f.tar.gz
gentoo-2-f614f4af6370182cd7c9a835e2e8f4492f1c785f.tar.bz2
gentoo-2-f614f4af6370182cd7c9a835e2e8f4492f1c785f.zip
Fixed to work with 2.6.35, bug #248450. Removed unneeded patch, bug #304797.
(Portage version: 2.1.8.3/cvs/Linux x86_64)
Diffstat (limited to 'net-wireless/broadcom-sta')
-rw-r--r--net-wireless/broadcom-sta/ChangeLog10
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-5.60.48.36-r1.ebuild58
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.60.48.36-linux-2.6.35.patch51
3 files changed, 118 insertions, 1 deletions
diff --git a/net-wireless/broadcom-sta/ChangeLog b/net-wireless/broadcom-sta/ChangeLog
index 5019e1cf5288..e96c0d5d83cb 100644
--- a/net-wireless/broadcom-sta/ChangeLog
+++ b/net-wireless/broadcom-sta/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for net-wireless/broadcom-sta
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.22 2010/04/21 05:15:26 beandog Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.23 2010/06/05 00:42:33 matsuu Exp $
+
+*broadcom-sta-5.60.48.36-r1 (05 Jun 2010)
+
+ 05 Jun 2010; MATSUU Takuto <matsuu@gentoo.org>
+ +broadcom-sta-5.60.48.36-r1.ebuild,
+ +files/broadcom-sta-5.60.48.36-linux-2.6.35.patch:
+ Fixed to work with 2.6.35, bug #248450. Removed unneeded patch, bug
+ #304797.
21 Apr 2010; Steve Dibb <beandog@gentoo.org>
-broadcom-sta-5.10.91.9.3-r1.ebuild, -broadcom-sta-5.10.91.9.3-r2.ebuild,
diff --git a/net-wireless/broadcom-sta/broadcom-sta-5.60.48.36-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-5.60.48.36-r1.ebuild
new file mode 100644
index 000000000000..083489a9a3be
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-5.60.48.36-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/broadcom-sta-5.60.48.36-r1.ebuild,v 1.1 2010/06/05 00:42:33 matsuu Exp $
+
+EAPI="2"
+inherit eutils linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver."
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_"
+SRC_URI="x86? ( ${SRC_BASE}32-v${PV}.tar.gz )
+ amd64? ( ${SRC_BASE}64-v${PV}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="mirror"
+
+DEPEND=">=virtual/linux-sources-2.6.22"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+PROPERTIES="interactive"
+
+pkg_setup() {
+ check_license
+
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!SSB"
+ if kernel_is ge 2 6 33; then
+ CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
+ ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-5.10.91.9-license.patch" \
+ "${FILESDIR}/${PN}-5.10.91.9.3-linux-2.6.33.patch" \
+ "${FILESDIR}/${P}-linux-2.6.35.patch"
+}
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.60.48.36-linux-2.6.35.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.60.48.36-linux-2.6.35.patch
new file mode 100644
index 000000000000..a31ba97e7255
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.60.48.36-linux-2.6.35.patch
@@ -0,0 +1,51 @@
+diff -Naur broadcom-sta-5.60.48.36.orig/src/wl/sys/wl_iw.h broadcom-sta-5.60.48.36/src/wl/sys/wl_iw.h
+--- broadcom-sta-5.60.48.36.orig/src/wl/sys/wl_iw.h 2010-02-06 10:59:15.000000000 +0900
++++ broadcom-sta-5.60.48.36/src/wl/sys/wl_iw.h 2010-06-05 09:32:46.000000000 +0900
+@@ -15,6 +15,7 @@
+ #ifndef _wl_iw_h_
+ #define _wl_iw_h_
+
++#include <linux/semaphore.h>
+ #include <linux/wireless.h>
+
+ #include <typedefs.h>
+diff -Naur broadcom-sta-5.60.48.36.orig/src/wl/sys/wl_linux.c broadcom-sta-5.60.48.36/src/wl/sys/wl_linux.c
+--- broadcom-sta-5.60.48.36.orig/src/wl/sys/wl_linux.c 2010-02-06 10:59:15.000000000 +0900
++++ broadcom-sta-5.60.48.36/src/wl/sys/wl_linux.c 2010-06-04 08:25:22.000000000 +0900
+@@ -1416,8 +1416,13 @@
+ _wl_set_multicast_list(struct net_device *dev)
+ {
+ wl_info_t *wl;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++ struct netdev_hw_addr *ha;
++ int i=0;
++#else
+ struct dev_mc_list *mclist;
+ int i;
++#endif
+
+ if (!dev)
+ return;
+@@ -1430,14 +1435,22 @@
+ if (wl->pub->up) {
+ wl->pub->allmulti = (dev->flags & IFF_ALLMULTI)? TRUE: FALSE;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++ netdev_for_each_mc_addr(ha, dev) {
++#else
+ for (i = 0, mclist = dev->mc_list; mclist && (i < dev->mc_count);
+ i++, mclist = mclist->next) {
++#endif
+ if (i >= MAXMULTILIST) {
+ wl->pub->allmulti = TRUE;
+ i = 0;
+ break;
+ }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++ wl->pub->multicast[i] = *((struct ether_addr*) ha->addr);
++#else
+ wl->pub->multicast[i] = *((struct ether_addr*) mclist->dmi_addr);
++#endif
+ }
+ wl->pub->nmulticast = i;
+ wlc_set(wl->wlc, WLC_SET_PROMISC, (dev->flags & IFF_PROMISC));