Revision bump, fixing bug #144148 (thanks to Magnus Ahlberg).
authorChristian Heim <phreak@gentoo.org>
Wed, 6 Sep 2006 17:48:05 +0000 (17:48 +0000)
committerChristian Heim <phreak@gentoo.org>
Wed, 6 Sep 2006 17:48:05 +0000 (17:48 +0000)
Package-Manager: portage-2.1.1_rc1-r5

net-wireless/ieee80211/ChangeLog
net-wireless/ieee80211/Manifest
net-wireless/ieee80211/files/digest-ieee80211-1.1.14-r1 [new file with mode: 0644]
net-wireless/ieee80211/files/ieee80211-1.1.14-smp-disconnect.patch [new file with mode: 0644]
net-wireless/ieee80211/ieee80211-1.1.14-r1.ebuild [new file with mode: 0644]

index 29483f822d0c9e5c80c6c7382b8e6492aa7bc988..fedc0b29476611ae9c9814c90b96d57b41863298 100644 (file)
@@ -1,6 +1,12 @@
 # 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.37 2006/07/13 17:36:50 phreak Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ieee80211/ChangeLog,v 1.38 2006/09/06 17:48:05 phreak Exp $
+
+*ieee80211-1.1.14-r1 (06 Sep 2006)
+
+  06 Sep 2006; Christian Heim <phreak@gentoo.org>
+  +files/ieee80211-1.1.14-smp-disconnect.patch, +ieee80211-1.1.14-r1.ebuild:
+  Revision bump, fixing bug #144148 (thanks to Magnus Ahlberg).
 
   13 Jul 2006; Christian Heim <phreak@gentoo.org> metadata.xml,
   +ieee80211-1.1.14.ebuild:
index 3a0e575f0df1c51c3c071f2246d1365063c347c0..8b261b560791a306e25779450af400911174fb97 100644 (file)
@@ -5,6 +5,10 @@ AUX ieee80211-1.1.13-cflags.patch 1184 RMD160 ee477fc15c98048fd17ecc6982175e7e03
 MD5 4f7fd86211611d66908e597267f2578f files/ieee80211-1.1.13-cflags.patch 1184
 RMD160 ee477fc15c98048fd17ecc6982175e7e03edaa37 files/ieee80211-1.1.13-cflags.patch 1184
 SHA256 45ac2892b2c17b68bfaa03dfda77954a260a18a05d9dc64a1e2ab57811e0d276 files/ieee80211-1.1.13-cflags.patch 1184
+AUX ieee80211-1.1.14-smp-disconnect.patch 6206 RMD160 380cb6fb04d90b0e8cf31679e1a3a65c418f3d9f SHA1 db4e4bb54b51c5c08d3053bfbc0f68b9b30afa24 SHA256 210525f05e415b25e79ddba20bf5cc8c3ef4854f46f7650b02f27fe0eef64f9f
+MD5 9a7a3438179e0997bfdb71ab71689675 files/ieee80211-1.1.14-smp-disconnect.patch 6206
+RMD160 380cb6fb04d90b0e8cf31679e1a3a65c418f3d9f files/ieee80211-1.1.14-smp-disconnect.patch 6206
+SHA256 210525f05e415b25e79ddba20bf5cc8c3ef4854f46f7650b02f27fe0eef64f9f files/ieee80211-1.1.14-smp-disconnect.patch 6206
 AUX remove-old 1460 RMD160 b7ae7fd18233a6c10cbaf877811598248b524e77 SHA1 a61fb44c10faa7da0be8be6bdf777b48694f650d SHA256 2ff1047385787a6b4c7ceff3d4ca9ad13fbcaca1280f7f60e4414928a86e0c76
 MD5 1f23d886a8ac044db818e796a765ef34 files/remove-old 1460
 RMD160 b7ae7fd18233a6c10cbaf877811598248b524e77 files/remove-old 1460
@@ -15,14 +19,18 @@ EBUILD ieee80211-1.1.13-r1.ebuild 2982 RMD160 80ad2b1c8c4f115363aa8baa09d689c695
 MD5 5144709418ed40b1e0cd64e5417ab663 ieee80211-1.1.13-r1.ebuild 2982
 RMD160 80ad2b1c8c4f115363aa8baa09d689c6954abe69 ieee80211-1.1.13-r1.ebuild 2982
 SHA256 aa87fd7190568d6cf96a8c6245072856a14fe1c5bbff837064193e583cfebd97 ieee80211-1.1.13-r1.ebuild 2982
+EBUILD ieee80211-1.1.14-r1.ebuild 2999 RMD160 f9becd32d9f69b05733a4490f4f665c599747564 SHA1 7b4ec6b471cc048ef867cea251db4a8361d05760 SHA256 7c23863f271aa5ae20be4d6dbec9df8e934d08ccfa66d7e2830284f1aa6f67b1
+MD5 5e0154b79c5530b0499133ff8166873a ieee80211-1.1.14-r1.ebuild 2999
+RMD160 f9becd32d9f69b05733a4490f4f665c599747564 ieee80211-1.1.14-r1.ebuild 2999
+SHA256 7c23863f271aa5ae20be4d6dbec9df8e934d08ccfa66d7e2830284f1aa6f67b1 ieee80211-1.1.14-r1.ebuild 2999
 EBUILD ieee80211-1.1.14.ebuild 2948 RMD160 46704b01ed52a3444fb53bd26fe7e1ff15d86a48 SHA1 ed92514cb358fd3af97dc8db7a38106cdc6e605b SHA256 68a67b1cd5f7943f9266ef92896c2af5e33d44873b3aff94e075d41f4604b4ac
 MD5 9ad3495889a48bbfc8164c3925638c5e ieee80211-1.1.14.ebuild 2948
 RMD160 46704b01ed52a3444fb53bd26fe7e1ff15d86a48 ieee80211-1.1.14.ebuild 2948
 SHA256 68a67b1cd5f7943f9266ef92896c2af5e33d44873b3aff94e075d41f4604b4ac ieee80211-1.1.14.ebuild 2948
-MISC ChangeLog 7194 RMD160 d06516948ccbe12ebebf9236713d98a49a681f57 SHA1 b85962f84ca01f02b821b132066ff0b97d200387 SHA256 cbaf74d345d65ee77b330d04607959fc9cd5cd6db9d557d03e2601b0fe9f6b39
-MD5 227848aebb3d8cada2ce5391d30ff42d ChangeLog 7194
-RMD160 d06516948ccbe12ebebf9236713d98a49a681f57 ChangeLog 7194
-SHA256 cbaf74d345d65ee77b330d04607959fc9cd5cd6db9d557d03e2601b0fe9f6b39 ChangeLog 7194
+MISC ChangeLog 7422 RMD160 cc5f65c6cf25f362688d6b11bbec3123ec18340c SHA1 08250d3b3fde83a4903ca253f0f20bd3990fc11b SHA256 b49bbbb75f7b7d28f4ccaa43d6885a27c481178e745d630069bee10d4b65f9bd
+MD5 fce598b399a4c89f88ed251ed99bd9db ChangeLog 7422
+RMD160 cc5f65c6cf25f362688d6b11bbec3123ec18340c ChangeLog 7422
+SHA256 b49bbbb75f7b7d28f4ccaa43d6885a27c481178e745d630069bee10d4b65f9bd ChangeLog 7422
 MISC metadata.xml 254 RMD160 2e69b345a5604844f1c5a8256ea172c7a3cc485f SHA1 653c702fdb89577e9d15e9cbca3891e4acdba061 SHA256 9bffc4ff1cf574848699e33b09ff0f6137d6b64b69d82c7b95cafb32ee75becb
 MD5 f3e68295a919220f58e91a1d3468c851 metadata.xml 254
 RMD160 2e69b345a5604844f1c5a8256ea172c7a3cc485f metadata.xml 254
@@ -33,10 +41,13 @@ SHA256 79358f3a80f1628c57c3ff3507652a1393d077ce506fe16c5195b2fb98d243b9 files/di
 MD5 0d30121fa73ffe00f0501e66a3293ad7 files/digest-ieee80211-1.1.14 238
 RMD160 55bb5d15228be22213a5e484ddcd693c6e0e17c7 files/digest-ieee80211-1.1.14 238
 SHA256 4411297c89d5ab9d2ee887286eb7d7e57d9c47df17db5248382fd6ce772274b4 files/digest-ieee80211-1.1.14 238
+MD5 0d30121fa73ffe00f0501e66a3293ad7 files/digest-ieee80211-1.1.14-r1 238
+RMD160 55bb5d15228be22213a5e484ddcd693c6e0e17c7 files/digest-ieee80211-1.1.14-r1 238
+SHA256 4411297c89d5ab9d2ee887286eb7d7e57d9c47df17db5248382fd6ce772274b4 files/digest-ieee80211-1.1.14-r1 238
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.4 (GNU/Linux)
+Version: GnuPG v1.4.5 (GNU/Linux)
 
-iD8DBQFEtoanflZ8QqxhrsMRAjlDAJ0Xy7dWCrXZssMYQloZOc2CWapb8wCgvDD8
-UYEDhJOxVlQ9Qp6HclF0MYk=
-=xjCg
+iD8DBQFE/wndyuNVb5qfaOYRAsdxAKCpJnPxwf+HD3dtJz7ktWFaJsL9swCgpMe4
+vcjR79eLBqFjKEx+JuL1JBk=
+=JaF7
 -----END PGP SIGNATURE-----
diff --git a/net-wireless/ieee80211/files/digest-ieee80211-1.1.14-r1 b/net-wireless/ieee80211/files/digest-ieee80211-1.1.14-r1
new file mode 100644 (file)
index 0000000..56991c2
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 cd380abe9bd25fbf2c205c6b20414e38 ieee80211-1.1.14.tgz 67848
+RMD160 6ddf9b4a682d01317242d8117c3263cdcc81d541 ieee80211-1.1.14.tgz 67848
+SHA256 77058469b94de08313f06cb5452ce9c4f2c5dce2f3e4b82228fe5aa1d3972cd0 ieee80211-1.1.14.tgz 67848
diff --git a/net-wireless/ieee80211/files/ieee80211-1.1.14-smp-disconnect.patch b/net-wireless/ieee80211/files/ieee80211-1.1.14-smp-disconnect.patch
new file mode 100644 (file)
index 0000000..125e9da
--- /dev/null
@@ -0,0 +1,187 @@
+diff -urp ieee80211-1.1.14/ieee80211_crypt_tkip.c ieee80211-1.1.14-tkip/ieee80211_crypt_tkip.c
+--- ieee80211-1.1.14/ieee80211_crypt_tkip.c    2006-06-12 14:08:02.000000000 +0800
++++ ieee80211-1.1.14-tkip/ieee80211_crypt_tkip.c       2006-08-01 11:19:03.000000000 +0800
+@@ -53,8 +53,10 @@ struct ieee80211_tkip_data {
+       int key_idx;
+-      struct crypto_tfm *tfm_arc4;
+-      struct crypto_tfm *tfm_michael;
++      struct crypto_tfm *tx_tfm_arc4;
++      struct crypto_tfm *tx_tfm_michael;
++      struct crypto_tfm *rx_tfm_arc4;
++      struct crypto_tfm *rx_tfm_michael;
+       /* scratch buffers for virt_to_page() (crypto API) */
+       u8 rx_hdr[16], tx_hdr[16];
+@@ -86,15 +88,29 @@ static void *ieee80211_tkip_init(int key
+       priv->key_idx = key_idx;
+-      priv->tfm_arc4 = crypto_alloc_tfm("arc4", 0);
+-      if (priv->tfm_arc4 == NULL) {
++      priv->tx_tfm_arc4 = crypto_alloc_tfm("arc4", 0);
++      if (priv->tx_tfm_arc4 == NULL) {
+               printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
+                      "crypto API arc4\n");
+               goto fail;
+       }
+-      priv->tfm_michael = crypto_alloc_tfm("michael_mic", 0);
+-      if (priv->tfm_michael == NULL) {
++      priv->tx_tfm_michael = crypto_alloc_tfm("michael_mic", 0);
++      if (priv->tx_tfm_michael == NULL) {
++              printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
++                     "crypto API michael_mic\n");
++              goto fail;
++      }
++
++      priv->rx_tfm_arc4 = crypto_alloc_tfm("arc4", 0);
++      if (priv->rx_tfm_arc4 == NULL) {
++              printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
++                     "crypto API arc4\n");
++              goto fail;
++      }
++
++      priv->rx_tfm_michael = crypto_alloc_tfm("michael_mic", 0);
++      if (priv->rx_tfm_michael == NULL) {
+               printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
+                      "crypto API michael_mic\n");
+               goto fail;
+@@ -104,10 +120,14 @@ static void *ieee80211_tkip_init(int key
+       fail:
+       if (priv) {
+-              if (priv->tfm_michael)
+-                      crypto_free_tfm(priv->tfm_michael);
+-              if (priv->tfm_arc4)
+-                      crypto_free_tfm(priv->tfm_arc4);
++              if (priv->tx_tfm_michael)
++                      crypto_free_tfm(priv->tx_tfm_michael);
++              if (priv->tx_tfm_arc4)
++                      crypto_free_tfm(priv->tx_tfm_arc4);
++              if (priv->rx_tfm_michael)
++                      crypto_free_tfm(priv->rx_tfm_michael);
++              if (priv->rx_tfm_arc4)
++                      crypto_free_tfm(priv->rx_tfm_arc4);
+               kfree(priv);
+       }
+@@ -117,10 +137,14 @@ static void *ieee80211_tkip_init(int key
+ static void ieee80211_tkip_deinit(void *priv)
+ {
+       struct ieee80211_tkip_data *_priv = priv;
+-      if (_priv && _priv->tfm_michael)
+-              crypto_free_tfm(_priv->tfm_michael);
+-      if (_priv && _priv->tfm_arc4)
+-              crypto_free_tfm(_priv->tfm_arc4);
++      if (_priv && _priv->tx_tfm_michael)
++              crypto_free_tfm(_priv->tx_tfm_michael);
++      if (_priv && _priv->tx_tfm_arc4)
++              crypto_free_tfm(_priv->tx_tfm_arc4);
++      if (_priv && _priv->rx_tfm_michael)
++              crypto_free_tfm(_priv->rx_tfm_michael);
++      if (_priv && _priv->rx_tfm_arc4)
++              crypto_free_tfm(_priv->rx_tfm_arc4);
+       kfree(priv);
+ }
+@@ -352,11 +376,11 @@ static int ieee80211_tkip_encrypt(struct
+       icv[2] = crc >> 16;
+       icv[3] = crc >> 24;
+-      crypto_cipher_setkey(tkey->tfm_arc4, rc4key, 16);
++      crypto_cipher_setkey(tkey->tx_tfm_arc4, rc4key, 16);
+       sg.page = virt_to_page(pos);
+       sg.offset = offset_in_page(pos);
+       sg.length = len + 4;
+-      crypto_cipher_encrypt(tkey->tfm_arc4, &sg, &sg, len + 4);
++      crypto_cipher_encrypt(tkey->tx_tfm_arc4, &sg, &sg, len + 4);
+       return 0;
+ }
+@@ -447,11 +471,11 @@ static int ieee80211_tkip_decrypt(struct
+       plen = skb->len - hdr_len - 12;
+-      crypto_cipher_setkey(tkey->tfm_arc4, rc4key, 16);
++      crypto_cipher_setkey(tkey->rx_tfm_arc4, rc4key, 16);
+       sg.page = virt_to_page(pos);
+       sg.offset = offset_in_page(pos);
+       sg.length = plen + 4;
+-      crypto_cipher_decrypt(tkey->tfm_arc4, &sg, &sg, plen + 4);
++      crypto_cipher_decrypt(tkey->rx_tfm_arc4, &sg, &sg, plen + 4);
+       crc = ~crc32_le(~0, pos, plen);
+       icv[0] = crc;
+@@ -485,12 +509,12 @@ static int ieee80211_tkip_decrypt(struct
+       return keyidx;
+ }
+-static int michael_mic(struct ieee80211_tkip_data *tkey, u8 * key, u8 * hdr,
++static int michael_mic(struct crypto_tfm *tfm_michael, u8 * key, u8 * hdr,
+                      u8 * data, size_t data_len, u8 * mic)
+ {
+       struct scatterlist sg[2];
+-      if (tkey->tfm_michael == NULL) {
++      if (tfm_michael == NULL) {
+               printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n");
+               return -1;
+       }
+@@ -502,10 +526,10 @@ static int michael_mic(struct ieee80211_
+       sg[1].offset = offset_in_page(data);
+       sg[1].length = data_len;
+-      crypto_digest_init(tkey->tfm_michael);
+-      crypto_digest_setkey(tkey->tfm_michael, key, 8);
+-      crypto_digest_update(tkey->tfm_michael, sg, 2);
+-      crypto_digest_final(tkey->tfm_michael, mic);
++      crypto_digest_init(tfm_michael);
++      crypto_digest_setkey(tfm_michael, key, 8);
++      crypto_digest_update(tfm_michael, sg, 2);
++      crypto_digest_final(tfm_michael, mic);
+       return 0;
+ }
+@@ -563,7 +587,7 @@ static int ieee80211_michael_mic_add(str
+       michael_mic_hdr(skb, tkey->tx_hdr);
+       pos = skb_put(skb, 8);
+-      if (michael_mic(tkey, &tkey->key[16], tkey->tx_hdr,
++      if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr,
+                       skb->data + hdr_len, skb->len - 8 - hdr_len, pos))
+               return -1;
+@@ -625,7 +649,7 @@ static int ieee80211_michael_mic_verify(
+               return -1;
+       michael_mic_hdr(skb, tkey->rx_hdr);
+-      if (michael_mic(tkey, &tkey->key[24], tkey->rx_hdr,
++      if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr,
+                       skb->data + hdr_len, skb->len - 8 - hdr_len, mic))
+               return -1;
+       if (memcmp(mic, skb->data + skb->len - 8, 8) != 0) {
+@@ -655,14 +679,18 @@ static int ieee80211_tkip_set_key(void *
+ {
+       struct ieee80211_tkip_data *tkey = priv;
+       int keyidx;
+-      struct crypto_tfm *tfm = tkey->tfm_michael;
+-      struct crypto_tfm *tfm2 = tkey->tfm_arc4;
++      struct crypto_tfm *tfm = tkey->tx_tfm_michael;
++      struct crypto_tfm *tfm2 = tkey->tx_tfm_arc4;
++      struct crypto_tfm *tfm3 = tkey->rx_tfm_michael;
++      struct crypto_tfm *tfm4 = tkey->rx_tfm_arc4;
+       keyidx = tkey->key_idx;
+       memset(tkey, 0, sizeof(*tkey));
+       tkey->key_idx = keyidx;
+-      tkey->tfm_michael = tfm;
+-      tkey->tfm_arc4 = tfm2;
++      tkey->tx_tfm_michael = tfm;
++      tkey->tx_tfm_arc4 = tfm2;
++      tkey->rx_tfm_michael = tfm3;
++      tkey->rx_tfm_arc4 = tfm4;
+       if (len == TKIP_KEY_LEN) {
+               memcpy(tkey->key, key, TKIP_KEY_LEN);
+               tkey->key_set = 1;
diff --git a/net-wireless/ieee80211/ieee80211-1.1.14-r1.ebuild b/net-wireless/ieee80211/ieee80211-1.1.14-r1.ebuild
new file mode 100644 (file)
index 0000000..8ac7098
--- /dev/null
@@ -0,0 +1,93 @@
+# 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.14-r1.ebuild,v 1.1 2006/09/06 17:48:05 phreak 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_OUT_DIR}/include/config/ieee80211.h ]] || \
+               egrep -q "^#(un)?def.*(CONFIG_IEEE80211.*)" ${KV_OUT_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}"
+               if [ "${KV_DIR}" != "${KV_OUT_DIR}" ]; then
+                       eerror "  # /bin/sh ${FILESDIR}/remove-old ${KV_OUT_DIR}"
+               fi
+               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}-smp-disconnect.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
+}