summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/ieee80211')
-rw-r--r--net-wireless/ieee80211/ChangeLog9
-rw-r--r--net-wireless/ieee80211/Manifest6
-rw-r--r--net-wireless/ieee80211/files/digest-ieee80211-1.1.12-r11
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.1.12-qos.patch12
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.1.12-tkip-qos-new.patch43
-rw-r--r--net-wireless/ieee80211/ieee80211-1.1.12-r1.ebuild91
6 files changed, 160 insertions, 2 deletions
diff --git a/net-wireless/ieee80211/ChangeLog b/net-wireless/ieee80211/ChangeLog
index 68efcdd8e21e..916caace7c80 100644
--- a/net-wireless/ieee80211/ChangeLog
+++ b/net-wireless/ieee80211/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-wireless/ieee80211
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.30 2006/02/23 14:07:04 brix Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.31 2006/03/03 12:23:33 brix Exp $
+
+*ieee80211-1.1.12-r1 (03 Mar 2006)
+
+ 03 Mar 2006; Henrik Brix Andersen <brix@gentoo.org>
+ +files/ieee80211-1.1.12-qos.patch,
+ +files/ieee80211-1.1.12-tkip-qos-new.patch, +ieee80211-1.1.12-r1.ebuild:
+ Added patches from upstream, thanks to Stijn Tintel.
23 Feb 2006; Henrik Brix Andersen <brix@gentoo.org>
ieee80211-1.1.6.ebuild, ieee80211-1.1.7.ebuild, ieee80211-1.1.8.ebuild,
diff --git a/net-wireless/ieee80211/Manifest b/net-wireless/ieee80211/Manifest
index 59da1f1a48ee..a1f53362ca92 100644
--- a/net-wireless/ieee80211/Manifest
+++ b/net-wireless/ieee80211/Manifest
@@ -1,13 +1,17 @@
-MD5 6af728f336563859319c478081b1318d ChangeLog 5531
+MD5 bb12feb598827f914f57ee9cfe10b8cf ChangeLog 5789
MD5 dde1f1dcca13affd78fa2e897e2f4d8f files/digest-ieee80211-1.1.11 64
MD5 b01b59d2e10994fca69752000797a94d files/digest-ieee80211-1.1.12 64
+MD5 b01b59d2e10994fca69752000797a94d files/digest-ieee80211-1.1.12-r1 64
MD5 9501aacea3c39a93671e12bdcd199254 files/digest-ieee80211-1.1.6 63
MD5 0df9ca80228d166621f6d0ed424cd6a8 files/digest-ieee80211-1.1.7 63
MD5 5cf798889745b65cb107070ad36c513c files/digest-ieee80211-1.1.8 63
MD5 f78d58df9a988441f01c24ff0c272712 files/digest-ieee80211-1.1.9 63
+MD5 e6b0f71cb5de5a5970e4af4669bf1af5 files/ieee80211-1.1.12-qos.patch 675
+MD5 25712fc02023480caeaea4de0395802c files/ieee80211-1.1.12-tkip-qos-new.patch 1536
MD5 4c49e8e5e739551dd8a68f88131529a4 files/ieee80211-1.1.8-nocast.patch 959
MD5 1c7250a90205590d6a477efdc0efe963 files/remove-old 1444
MD5 7f872d1dde3f0ad85fd5c0568e6adf07 ieee80211-1.1.11.ebuild 2797
+MD5 2a3da1046150f056cccb6697a7fd3755 ieee80211-1.1.12-r1.ebuild 2795
MD5 dff443405f26c0509471c52fde07653a ieee80211-1.1.12.ebuild 2805
MD5 235feb4dd8b67f34ae515471178b4b43 ieee80211-1.1.6.ebuild 2784
MD5 36dc3b6f0347b90dd9daca08a2132dd8 ieee80211-1.1.7.ebuild 2792
diff --git a/net-wireless/ieee80211/files/digest-ieee80211-1.1.12-r1 b/net-wireless/ieee80211/files/digest-ieee80211-1.1.12-r1
new file mode 100644
index 000000000000..4d994bb4a66a
--- /dev/null
+++ b/net-wireless/ieee80211/files/digest-ieee80211-1.1.12-r1
@@ -0,0 +1 @@
+MD5 20da3f23dad2356da8f14d8b3d88d58e ieee80211-1.1.12.tgz 65653
diff --git a/net-wireless/ieee80211/files/ieee80211-1.1.12-qos.patch b/net-wireless/ieee80211/files/ieee80211-1.1.12-qos.patch
new file mode 100644
index 000000000000..d36f16c92e49
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.1.12-qos.patch
@@ -0,0 +1,12 @@
+diff -urp ieee80211-1.1.12/ieee80211_crypt_ccmp.c ieee80211-1.1.12-qos/ieee80211_crypt_ccmp.c
+--- ieee80211-1.1.12/ieee80211_crypt_ccmp.c 2006-02-28 15:04:33.000000000 +0800
++++ ieee80211-1.1.12-qos/ieee80211_crypt_ccmp.c 2006-02-28 15:04:27.000000000 +0800
+@@ -131,7 +131,7 @@ static void ccmp_init_blocks(struct cryp
+ a4_included = ((fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) ==
+ (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS));
+ qc_included = ((WLAN_FC_GET_TYPE(fc) == IEEE80211_FTYPE_DATA) &&
+- (WLAN_FC_GET_STYPE(fc) & 0x08));
++ (WLAN_FC_GET_STYPE(fc) & IEEE80211_STYPE_QOS_DATA));
+ aad_len = 22;
+ if (a4_included)
+ aad_len += 6;
diff --git a/net-wireless/ieee80211/files/ieee80211-1.1.12-tkip-qos-new.patch b/net-wireless/ieee80211/files/ieee80211-1.1.12-tkip-qos-new.patch
new file mode 100644
index 000000000000..f9f1aacdd432
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.1.12-tkip-qos-new.patch
@@ -0,0 +1,43 @@
+diff -urp ieee80211-1.1.12/ieee80211_crypt_tkip.c ieee80211-1.1.12-tkip-qos/ieee80211_crypt_tkip.c
+--- ieee80211-1.1.12/ieee80211_crypt_tkip.c 2006-02-15 15:59:25.000000000 +0800
++++ ieee80211-1.1.12-tkip-qos/ieee80211_crypt_tkip.c 2006-03-03 22:33:02.000000000 +0800
+@@ -501,8 +501,11 @@ static int michael_mic(struct ieee80211_
+ static void michael_mic_hdr(struct sk_buff *skb, u8 * hdr)
+ {
+ struct ieee80211_hdr_4addr *hdr11;
++ u16 stype;
+
+ hdr11 = (struct ieee80211_hdr_4addr *)skb->data;
++ stype = WLAN_FC_GET_STYPE(le16_to_cpu(hdr11->frame_ctl));
++
+ switch (le16_to_cpu(hdr11->frame_ctl) &
+ (IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) {
+ case IEEE80211_FCTL_TODS:
+@@ -523,7 +526,13 @@ static void michael_mic_hdr(struct sk_bu
+ break;
+ }
+
+- hdr[12] = 0; /* priority */
++ if (stype & IEEE80211_STYPE_QOS_DATA) {
++ const struct ieee80211_hdr_3addrqos *qoshdr =
++ (struct ieee80211_hdr_3addrqos *)skb->data;
++ hdr[12] = le16_to_cpu(qoshdr->qos_ctl) & IEEE80211_QCTL_TID;
++ } else
++ hdr[12] = 0; /* priority */
++
+ hdr[13] = hdr[14] = hdr[15] = 0; /* reserved */
+ }
+
+diff -urp ieee80211-1.1.12/net/ieee80211.h ieee80211-1.1.12-tkip-qos/net/ieee80211.h
+--- ieee80211-1.1.12/net/ieee80211.h 2006-02-15 15:59:25.000000000 +0800
++++ ieee80211-1.1.12-tkip-qos/net/ieee80211.h 2006-03-03 22:31:42.000000000 +0800
+@@ -104,6 +104,9 @@
+ #define IEEE80211_SCTL_FRAG 0x000F
+ #define IEEE80211_SCTL_SEQ 0xFFF0
+
++/* QOS control */
++#define IEEE80211_QCTL_TID 0x000F
++
+ /* debug macros */
+
+ #ifdef CONFIG_IEEE80211_DEBUG
diff --git a/net-wireless/ieee80211/ieee80211-1.1.12-r1.ebuild b/net-wireless/ieee80211/ieee80211-1.1.12-r1.ebuild
new file mode 100644
index 000000000000..5202a7f3a506
--- /dev/null
+++ b/net-wireless/ieee80211/ieee80211-1.1.12-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ieee80211-1.1.12-r1.ebuild,v 1.1 2006/03/03 12:23:33 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 ~ppc ~x86"
+
+DEPEND=""
+
+IUSE="debug"
+BUILD_TARGETS="modules"
+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 !IEEE80211"
+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)."
+ERROR_IEEE80211="${P} requires the in-kernel version of the IEEE802.11 subsystem to be disabled (CONFIG_IEEE80211)"
+
+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 ]] || \
+ [[ -f ${KV_DIR}/include/config/ieee80211.h ]] || \
+ egrep -q "^#(un)?def.*(CONFIG_IEEE80211.*)" ${KV_DIR}/include/linux/autoconf.h; then
+ eerror
+ eerror "Your kernel source contains an incompatible 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 " # /bin/sh ${FILESDIR}/remove-old ${KV_DIR}"
+ 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}-qos.patch
+ epatch ${FILESDIR}/${P}-tkip-qos-new.patch
+
+ use debug && debug="y"
+ sed -i \
+ -e "s:^\(CONFIG_IEEE80211_DEBUG\)=.*:\1=${debug}:" \
+ ${S}/Makefile || die
+}
+
+src_install() {
+ linux-mod_src_install
+
+ insinto /usr/include/net
+ doins net/*.h
+
+ dodoc CHANGES
+}