summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Brix Andersen <brix@gentoo.org>2005-09-06 14:53:17 +0000
committerHenrik Brix Andersen <brix@gentoo.org>2005-09-06 14:53:17 +0000
commite0ee476c9602a6760e50cd7a473081640cb728cf (patch)
tree40d4b75a42c035c6fa7695ec7495af1a03404253 /net-wireless
parentStable on x86. (diff)
downloadhistorical-e0ee476c9602a6760e50cd7a473081640cb728cf.tar.gz
historical-e0ee476c9602a6760e50cd7a473081640cb728cf.tar.bz2
historical-e0ee476c9602a6760e50cd7a473081640cb728cf.zip
Apply bugfixes from upstream, bail out if incompatible ieee80211.h found in kernel sources (bug #97397).
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/ieee80211/ChangeLog10
-rw-r--r--net-wireless/ieee80211/Manifest6
-rw-r--r--net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r21
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch28
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch63
-rw-r--r--net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild90
6 files changed, 196 insertions, 2 deletions
diff --git a/net-wireless/ieee80211/ChangeLog b/net-wireless/ieee80211/ChangeLog
index 21f9756c08ba..3c0d00b2a772 100644
--- a/net-wireless/ieee80211/ChangeLog
+++ b/net-wireless/ieee80211/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for net-wireless/ieee80211
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.7 2005/09/02 17:43:38 brix Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.8 2005/09/06 14:53:17 brix Exp $
+
+*ieee80211-1.0.3-r2 (06 Sep 2005)
+
+ 06 Sep 2005; Henrik Brix Andersen <brix@gentoo.org>
+ +files/ieee80211-1.0.3-keep_restricted_bit.patch,
+ +files/ieee80211-1.0.3-open_frag.patch, +ieee80211-1.0.3-r2.ebuild:
+ Apply bugfixes from upstream, bail out if incompatible ieee80211.h found in
+ kernel sources (bug #97397).
02 Sep 2005; Henrik Brix Andersen <brix@gentoo.org>
files/ieee80211-1.0.3-broadcast.patch:
diff --git a/net-wireless/ieee80211/Manifest b/net-wireless/ieee80211/Manifest
index 5f141e16091d..6169bbfa5d81 100644
--- a/net-wireless/ieee80211/Manifest
+++ b/net-wireless/ieee80211/Manifest
@@ -1,7 +1,8 @@
MD5 205ad9adc36c1538667c08b26290874b ieee80211-1.0.3.ebuild 2073
MD5 0b37106be6c69fa6ce87d5925f2a31dc ieee80211-1.0.3-r1.ebuild 2093
MD5 d94f6f0e594496b23768753d8f2fbccc ieee80211-1.0.2.ebuild 2067
-MD5 68c1f32a77c2b37197cdd81b189dc940 ChangeLog 1136
+MD5 baacb1af3889d654f643ceb0e2d427e1 ieee80211-1.0.3-r2.ebuild 2744
+MD5 4f65bd285907aafc9da1cd5616e15c7b ChangeLog 1457
MD5 b280eebc74d70d85e664debf1adce2c3 metadata.xml 255
MD5 54836c698b04ed62f6d7a3f6f8fa6232 ieee80211-1.0.1.ebuild 2067
MD5 03afa38292ff5bbcc62500c4b6163888 files/ieee80211-1.0.3-broadcast.patch 622
@@ -9,3 +10,6 @@ MD5 cc0dea5fff30f8ea5fe5e62a749115d3 files/digest-ieee80211-1.0.1 63
MD5 affd67ec6900c1e7f9c123969f709181 files/digest-ieee80211-1.0.2 63
MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3 63
MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3-r1 63
+MD5 777627671d6848e14270d9f65d9d0be6 files/digest-ieee80211-1.0.3-r2 63
+MD5 f6533e7149d244dd72eb444853266a8f files/ieee80211-1.0.3-keep_restricted_bit.patch 1220
+MD5 d2bada5c8bb423cb02a88cc4f0011d39 files/ieee80211-1.0.3-open_frag.patch 2638
diff --git a/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2 b/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2
new file mode 100644
index 000000000000..bb51c85dc9c8
--- /dev/null
+++ b/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2
@@ -0,0 +1 @@
+MD5 49870c030278e3716194ff5b64f9cbaa ieee80211-1.0.3.tgz 63355
diff --git a/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch b/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch
new file mode 100644
index 000000000000..7173adbbb55e
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch
@@ -0,0 +1,28 @@
+[Bug 768] Keep auth mode unchanged after iwconfig key off/on.
+
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+diff -urp ieee80211-1.0.3/ieee80211_wx.c ieee80211-1.0.3-keep_restricted_bit/ieee80211_wx.c
+--- ieee80211-1.0.3/ieee80211_wx.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-keep_restricted_bit/ieee80211_wx.c 2005-09-01 13:03:16.000000000 +0800
+@@ -413,11 +413,15 @@ int ieee80211_wx_set_encode(struct ieee8
+ sec.flags |= SEC_ACTIVE_KEY;
+ }
+ }
+- ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED);
+- sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY;
+- sec.flags |= SEC_AUTH_MODE;
+- IEEE80211_DEBUG_WX("Auth: %s\n", sec.auth_mode == WLAN_AUTH_OPEN ?
+- "OPEN" : "SHARED KEY");
++ if (erq->flags & (IW_ENCODE_OPEN | IW_ENCODE_RESTRICTED)) {
++ ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED);
++ sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN :
++ WLAN_AUTH_SHARED_KEY;
++ sec.flags |= SEC_AUTH_MODE;
++ IEEE80211_DEBUG_WX("Auth: %s\n",
++ sec.auth_mode == WLAN_AUTH_OPEN ?
++ "OPEN" : "SHARED KEY");
++ }
+
+ /* For now we just support WEP, so only set that security level...
+ * TODO: When WPA is added this is one place that needs to change */
diff --git a/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch b/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch
new file mode 100644
index 000000000000..11dfa4ca7d83
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch
@@ -0,0 +1,63 @@
+Add host_open_frag to indicate if fragmentation is need to be done by host.
+
+Signed-off-by: Hong Liu <hong.liu@intel.com>
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+diff -urp ieee80211-1.0.3/ieee80211_module.c ieee80211-1.0.3-open-frag/ieee80211_module.c
+--- ieee80211-1.0.3/ieee80211_module.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/ieee80211_module.c 2005-08-03 16:12:25.000000000 +0800
+@@ -137,6 +137,11 @@ struct net_device *alloc_ieee80211(int s
+ /* Default to enabling full open WEP with host based encrypt/decrypt */
+ ieee->host_encrypt = 1;
+ ieee->host_decrypt = 1;
++ /* Host fragementation in Open mode. Default is enabled. Note host
++ * fragmentation is always enabled if host encryption is enabled.
++ * For cards can do hardware encryption, they can do hardware
++ * fragmentation as well. So we don't need a variable host_enc_frag. */
++ ieee->host_open_frag = 1;
+ ieee->ieee802_1x = 1; /* Default to supporting 802.1x */
+
+ INIT_LIST_HEAD(&ieee->crypt_deinit_list);
+@@ -151,7 +156,6 @@ struct net_device *alloc_ieee80211(int s
+ ieee->tkip_countermeasures = 0;
+ ieee->drop_unencrypted = 0;
+ ieee->privacy_invoked = 0;
+- ieee->ieee802_1x = 1;
+
+ return dev;
+
+diff -urp ieee80211-1.0.3/ieee80211_tx.c ieee80211-1.0.3-open-frag/ieee80211_tx.c
+--- ieee80211-1.0.3/ieee80211_tx.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/ieee80211_tx.c 2005-08-03 16:12:25.000000000 +0800
+@@ -363,7 +363,7 @@ int ieee80211_xmit(struct sk_buff *skb,
+ skb_pull(skb, hdr_len);
+ }
+
+- if (host_encrypt) {
++ if (host_encrypt || ieee->host_open_frag) {
+ /* Determine fragmentation size based on destination (multicast
+ * and broadcast are not fragmented) */
+ if (is_multicast_ether_addr(dest))
+@@ -382,8 +382,9 @@ int ieee80211_xmit(struct sk_buff *skb,
+
+ /* Each fragment may need to have room for encryptiong
+ * pre/postfix */
+- bytes_per_frag -= crypt->ops->extra_mpdu_prefix_len +
+- crypt->ops->extra_mpdu_postfix_len;
++ if (host_encrypt)
++ bytes_per_frag -= crypt->ops->extra_mpdu_prefix_len +
++ crypt->ops->extra_mpdu_postfix_len;
+
+ /* Number of fragments is the total
+ * bytes_per_frag / payload_per_fragment */
+diff -urp ieee80211-1.0.3/net/ieee80211.h ieee80211-1.0.3-open-frag/net/ieee80211.h
+--- ieee80211-1.0.3/net/ieee80211.h 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/net/ieee80211.h 2005-08-03 16:12:25.000000000 +0800
+@@ -798,6 +798,7 @@ struct ieee80211_device {
+ int host_encrypt;
+ int host_encrypt_msdu;
+ int host_decrypt;
++ int host_open_frag;
+ int ieee802_1x; /* is IEEE 802.1X used */
+
+ /* WPA data */
diff --git a/net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild b/net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild
new file mode 100644
index 000000000000..811876b92cf4
--- /dev/null
+++ b/net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild,v 1.1 2005/09/06 14:53:17 brix Exp $
+
+inherit eutils linux-mod
+
+# The following works with both pre-releases and releases
+MY_P=${P/_/-}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Generic IEEE 802.11 network subsystem for Linux"
+HOMEPAGE="http://ieee80211.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="!<=net-wireless/ipw2100-1.1.0
+ !<=net-wireless/ipw2200-1.0.4"
+RDEPEND="${DEPEND}"
+
+IUSE="debug"
+BUILD_TARGETS="all"
+MODULE_NAMES="ieee80211(net/ieee80211:)
+ ieee80211_crypt(net/ieee80211:)
+ ieee80211_crypt_wep(net/ieee80211:)
+ ieee80211_crypt_ccmp(net/ieee80211:)
+ ieee80211_crypt_tkip(net/ieee80211:)"
+
+CONFIG_CHECK="NET_RADIO CRYPTO_ARC4 CRYPTO_MICHAEL_MIC CRC32"
+ERROR_NET_RADIO="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_NET_RADIO)."
+ERROR_CRYPTO_ARC4="${P} requires support for ARC4 cipher algorithm (CONFIG_CRYPTO_ARC4)."
+ERROR_CRYPTO_MICHAEL_MIC="${P} requires support for Michael MIC keyed digest algorithm (CONFIG_CRYPTO_MICHAEL_MIC)."
+ERROR_CRC32="${P} requires support for CRC32 functions (CONFIG_CRC32)."
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ if kernel_is 2 4; then
+ die "${P} does not support building against kernel 2.4.x"
+ fi
+
+ if [[ -f ${KV_DIR}/include/net/ieee80211.h ]]; then
+ eerror
+ eerror "You kernel source contains an incomptible version of the"
+ eerror "ieee80211 subsystem, which needs to be removed before"
+ eerror "${P} can be installed. This can be accomplished by running:"
+ eerror
+ eerror " # rm -i ${KV_DIR}/include/net/ieee80211.h"
+ eerror
+ eerror "Please note that this will make it impossible to use some of the"
+ eerror "in-kernel IEEE 802.11 wireless LAN drivers (eg. orinoco)."
+ eerror
+ die "Incompatible in-kernel ieee80211 subsystem detected"
+ fi
+
+ if ! (linux_chkconfig_present CRYPTO_AES_586 || \
+ linux_chkconfig_present CRYPTO_AES_X86_64 || \
+ linux_chkconfig_present CRYPTO_AES); then
+ eerror "${P} requires support for AES cipher algorithms."
+ die "CONFIG_CRYPTO_AES{_586,_X86_64} support not detected"
+ fi
+
+ BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ local debug="n"
+
+ unpack ${A}
+
+ cd ${S}
+ epatch ${FILESDIR}/${P}-keep_restricted_bit.patch
+ epatch ${FILESDIR}/${P}-open_frag.patch
+
+ epatch ${FILESDIR}/${P}-broadcast.patch
+
+ use debug && debug="y"
+ sed -i -e "s:^\(CONFIG_IEEE80211_DEBUG\)=.*:\1=${debug}:" ${S}/Makefile
+}
+
+src_install() {
+ linux-mod_src_install
+
+ insinto /usr/include/net
+ doins net/*
+
+ dodoc CHANGES
+}