diff options
author | Henrik Brix Andersen <brix@gentoo.org> | 2005-09-06 14:53:17 +0000 |
---|---|---|
committer | Henrik Brix Andersen <brix@gentoo.org> | 2005-09-06 14:53:17 +0000 |
commit | e0ee476c9602a6760e50cd7a473081640cb728cf (patch) | |
tree | 40d4b75a42c035c6fa7695ec7495af1a03404253 /net-wireless | |
parent | Stable on x86. (diff) | |
download | historical-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/ChangeLog | 10 | ||||
-rw-r--r-- | net-wireless/ieee80211/Manifest | 6 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2 | 1 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch | 28 | ||||
-rw-r--r-- | net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch | 63 | ||||
-rw-r--r-- | net-wireless/ieee80211/ieee80211-1.0.3-r2.ebuild | 90 |
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 +} |