Added a few upstream patches.
authorHenrik Brix Andersen <brix@gentoo.org>
Thu, 17 Nov 2005 13:19:59 +0000 (13:19 +0000)
committerHenrik Brix Andersen <brix@gentoo.org>
Thu, 17 Nov 2005 13:19:59 +0000 (13:19 +0000)
Package-Manager: portage-2.0.51.22-r3

net-wireless/ipw2200/ChangeLog
net-wireless/ipw2200/Manifest
net-wireless/ipw2200/files/digest-ipw2200-1.0.8-r1 [new file with mode: 0644]
net-wireless/ipw2200/files/ipw2200-1.0.8-broadcast.patch [new file with mode: 0644]
net-wireless/ipw2200/files/ipw2200-1.0.8-slabcorrupt.patch [new file with mode: 0644]
net-wireless/ipw2200/files/ipw2200-1.0.8-txbusy.patch [new file with mode: 0644]
net-wireless/ipw2200/ipw2200-1.0.8-r1.ebuild [new file with mode: 0644]

index 716e523ccb53e32934b2c98e4c2936631ddd130c..ba2f3d018c804c07b8ba292e0089eba61c062e23 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for net-wireless/ipw2200
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw2200/ChangeLog,v 1.49 2005/10/21 18:14:16 brix Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw2200/ChangeLog,v 1.50 2005/11/17 13:19:59 brix Exp $
+
+*ipw2200-1.0.8-r1 (17 Nov 2005)
+
+  17 Nov 2005; Henrik Brix Andersen <brix@gentoo.org>
+  +files/ipw2200-1.0.8-broadcast.patch,
+  +files/ipw2200-1.0.8-slabcorrupt.patch, +files/ipw2200-1.0.8-txbusy.patch,
+  +ipw2200-1.0.8-r1.ebuild:
+  Added a few upstream patches.
 
 *ipw2200-1.0.8 (21 Oct 2005)
 
index 3207e2cd8eab38fa5ec831bb65e8ff3de5bfd6a3..158a5ab3340264832ab0a380a643642565f509db 100644 (file)
@@ -2,6 +2,7 @@ MD5 3460fc97bd050b5cd277f201410074f3 ipw2200-1.0.6-r3.ebuild 3209
 MD5 03551f14b4409796623fb865ed2abf97 ipw2200-1.0.4.ebuild 2449
 MD5 7afca8db2613b9fc32d5f7005b4db15d ipw2200-1.0.6.ebuild 2158
 MD5 a1d82c4728a3f608b762fe63c4910f42 ipw2200-1.0.1.ebuild 2488
+MD5 6f12a54170016b646ae9ec930994afc5 ipw2200-1.0.8-r1.ebuild 3018
 MD5 4ce2b88ec5f872d1621a5af9cf1d0da1 ipw2200-1.0.6-r2.ebuild 2304
 MD5 42439eca11ec251fefc3ebb0efd0416d ipw2200-1.0.8.ebuild 2877
 MD5 b2138b76ba85eeea301d8fa9f72470df ipw2200-1.0.3.ebuild 2488
@@ -9,7 +10,7 @@ MD5 4178d14fb9964ddf254ad3af2adb2410 ipw2200-1.0.7-r1.ebuild 2990
 MD5 8a1b21691e17dc6de38c7238cd4e4522 ipw2200-1.0.5.ebuild 2145
 MD5 7453a3247e41a7bf8c6e939cf55c45f0 ipw2200-1.0.6-r1.ebuild 2260
 MD5 abf5e01547412553998be01d0b1055c8 ipw2200-1.0.7.ebuild 2877
-MD5 1cc2a19c3c75b0eb82f757e1386a56af ChangeLog 8863
+MD5 4c3a38017c5c6036a963ffd766b51cbd ChangeLog 9128
 MD5 b280eebc74d70d85e664debf1adce2c3 metadata.xml 255
 MD5 57bc9c6eb5f4015c48658642ca771b54 files/ipw2200-1.0.6-ibss-wep.patch 1249
 MD5 5cc9277eb455ec7081a6f1a362318835 files/ipw2200-1.0.7-broadcast.patch 2331
@@ -21,12 +22,14 @@ MD5 2ba8f54679172b49a799779c1a02127a files/ipw2200-1.0.6-hwcrypt-wpa-fix4.patch
 MD5 9e25eeda7c745bca8c5cf72537dd31f5 files/ipw2200-1.0.1-suspend2.patch 448
 MD5 af6756863c64cdfc93cd53556f8b397b files/ipw2200-1.0.1-is_multicast_ether_addr.patch 631
 MD5 64c7772c52dad7ac8aceb580288d2eb8 files/ipw2200-1.0.6-dup-without-retry.patch 1124
+MD5 a3a2dd68cce2a4d05217369daab108f1 files/ipw2200-1.0.8-broadcast.patch 594
 MD5 8e45f8fd6f60e9d8b6b343ae2359f456 files/ipw2200-1.0.6-reset-mode-fix.patch 621
 MD5 a09593c7d4c70507961ceb3e9788f282 files/ipw2200-1.0.6-irq_override.patch 1219
 MD5 7a64b674dbd99046028827c6417409e1 files/ipw2200-1.0.3-is_multicast_ether_addr.patch 715
 MD5 b67059711d35db39da22e42fd1a5a7d4 files/ipw2200-1.0.6-open_frag.patch 756
 MD5 2a2177cb34ff1d51ca335f8786a41e92 files/ipw2200-1.0.6-channel_change_fw_err.patch 2830
 MD5 d506e1d6b23fdd00ec0d812db1f3f05a files/ipw2200-1.0.6-broadcast.patch 992
+MD5 dd96f1bc93f2c8f03a81b87f641a5329 files/ipw2200-1.0.8-txbusy.patch 811
 MD5 3ada2bd4ff1452839bc558b3e5e026f5 files/ipw2200-1.0.6-a_txpow.patch 5085
 MD5 ba6c39e9a44ef971292c5f8e6a7c6897 files/ipw2200-1.0.3-suspend2.patch 522
 MD5 d0074a6c01392cb21c47b8f370716a0f files/ipw2200-1.0.6-monitor_wep_fix.patch 714
@@ -34,6 +37,7 @@ MD5 aab93fcc37b1a1282d7a02e9b64430a3 files/digest-ipw2200-1.0.6-r1 62
 MD5 aab93fcc37b1a1282d7a02e9b64430a3 files/digest-ipw2200-1.0.6-r2 62
 MD5 aab93fcc37b1a1282d7a02e9b64430a3 files/digest-ipw2200-1.0.6-r3 62
 MD5 a5c0ccca10c12b4e5d5a7df55df96dfd files/digest-ipw2200-1.0.7-r1 62
+MD5 88eeaaf4fc0ffcfd41dd873a1d085cb3 files/digest-ipw2200-1.0.8-r1 62
 MD5 f20e5c312fa263336e4921aa6e42b56e files/ipw2200-1.0.6-pci_link-fix.patch 1298
 MD5 d2a1aca212498ad4de9f4a79ac12026b files/digest-ipw2200-1.0.1 62
 MD5 1953868cbb8ae6ee8eee55c5848417ab files/digest-ipw2200-1.0.3 62
@@ -42,3 +46,4 @@ MD5 0bc9168b6730de57fff46a22dacc8ea4 files/digest-ipw2200-1.0.5 62
 MD5 aab93fcc37b1a1282d7a02e9b64430a3 files/digest-ipw2200-1.0.6 62
 MD5 a5c0ccca10c12b4e5d5a7df55df96dfd files/digest-ipw2200-1.0.7 62
 MD5 88eeaaf4fc0ffcfd41dd873a1d085cb3 files/digest-ipw2200-1.0.8 62
+MD5 a2de4d35e783a2aae5708846d8a7637c files/ipw2200-1.0.8-slabcorrupt.patch 522
diff --git a/net-wireless/ipw2200/files/digest-ipw2200-1.0.8-r1 b/net-wireless/ipw2200/files/digest-ipw2200-1.0.8-r1
new file mode 100644 (file)
index 0000000..3676bd1
--- /dev/null
@@ -0,0 +1 @@
+MD5 c5d32f7c0e126e1cef4fa76a3f331ab3 ipw2200-1.0.8.tgz 124713
diff --git a/net-wireless/ipw2200/files/ipw2200-1.0.8-broadcast.patch b/net-wireless/ipw2200/files/ipw2200-1.0.8-broadcast.patch
new file mode 100644 (file)
index 0000000..2c4f889
--- /dev/null
@@ -0,0 +1,14 @@
+diff -Nup ipw2200-1.0.8-orig/ipw2200.c ipw2200-1.0.8/ipw2200.c
+--- ipw2200-1.0.8-orig/ipw2200.c       2005-10-20 16:35:24.000000000 -0500
++++ ipw2200-1.0.8/ipw2200.c    2005-11-03 10:29:53.000000000 -0600
+@@ -7984,8 +7984,8 @@ static void ipw_rebuild_decrypted_skb(st
+ 
+ static inline int ipw_is_broadcast_ether_addr(const u8 * addr)
+ {
+-      return (addr[0] & 0xff && addr[1] & 0xff && addr[2] & 0xff &&
+-              addr[3] & 0xff && addr[4] & 0xff && addr[5] & 0xff);
++      return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 
++              0xff;
+ }
+ 
+ static void ipw_handle_data_packet(struct ipw_priv *priv,
diff --git a/net-wireless/ipw2200/files/ipw2200-1.0.8-slabcorrupt.patch b/net-wireless/ipw2200/files/ipw2200-1.0.8-slabcorrupt.patch
new file mode 100644 (file)
index 0000000..2ac8bba
--- /dev/null
@@ -0,0 +1,12 @@
+--- ipw2200-1.0.8.orig/ipw2200.c       2005-11-16 22:53:19.000000000 +0800
++++ ipw2200-1.0.8/ipw2200.c    2005-11-16 23:20:09.000000000 +0800
+@@ -1109,8 +1109,7 @@ static struct ipw_fw_error *ipw_alloc_er
+       error->elem_len = elem_len;
+       error->log_len = log_len;
+       error->elem = (struct ipw_error_elem *)error->payload;
+-      error->log = (struct ipw_event *)(error->elem +
+-                                        (sizeof(*error->elem) * elem_len));
++      error->log = (struct ipw_event *)(error->elem + elem_len);
+ 
+       ipw_capture_event_log(priv, log_len, error->log);
+ 
diff --git a/net-wireless/ipw2200/files/ipw2200-1.0.8-txbusy.patch b/net-wireless/ipw2200/files/ipw2200-1.0.8-txbusy.patch
new file mode 100644 (file)
index 0000000..c4975d2
--- /dev/null
@@ -0,0 +1,24 @@
+diff -urp ipw2200-1.0.8/ipw2200.c ipw2200-1.0.8-txbusy/ipw2200.c
+--- ipw2200-1.0.8/ipw2200.c    2005-10-21 05:35:24.000000000 +0800
++++ ipw2200-1.0.8-txbusy/ipw2200.c     2005-10-25 13:22:38.000000000 +0800
+@@ -10222,11 +10222,6 @@ static inline int ipw_tx_skb(struct ipw_
+       u16 remaining_bytes;
+       int fc;
+ 
+-      /* If there isn't room in the queue, we return busy and let the
+-       * network stack requeue the packet for us */
+-      if (ipw_queue_space(q) < q->high_mark)
+-              return NETDEV_TX_BUSY;
+-
+       switch (priv->ieee->iw_mode) {
+       case IW_MODE_ADHOC:
+               hdr_len = IEEE80211_3ADDR_LEN;
+@@ -10444,7 +10439,7 @@ static int ipw_net_hard_start_xmit(struc
+ 
+       fail_unlock:
+       spin_unlock_irqrestore(&priv->lock, flags);
+-      return 1;
++      return -1;
+ }
+ 
+ static struct net_device_stats *ipw_net_get_stats(struct net_device *dev)
diff --git a/net-wireless/ipw2200/ipw2200-1.0.8-r1.ebuild b/net-wireless/ipw2200/ipw2200-1.0.8-r1.ebuild
new file mode 100644 (file)
index 0000000..dfa2e6f
--- /dev/null
@@ -0,0 +1,103 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw2200/ipw2200-1.0.8-r1.ebuild,v 1.1 2005/11/17 13:19:59 brix Exp $
+
+inherit eutils linux-mod
+
+# The following works with both pre-releases and releases
+MY_P=${P/_/-}
+S=${WORKDIR}/${MY_P}
+
+IEEE80211_VERSION="1.1.6"
+FW_VERSION="2.4"
+
+DESCRIPTION="Driver for the Intel PRO/Wireless 2200BG/2915ABG miniPCI and 2225BG PCI adapters"
+HOMEPAGE="http://ipw2200.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="debug radiotap"
+DEPEND=">=net-wireless/ieee80211-${IEEE80211_VERSION}
+               sys-apps/sed"
+RDEPEND=">=net-wireless/ieee80211-${IEEE80211_VERSION}
+               =net-wireless/ipw2200-firmware-${FW_VERSION}
+               net-wireless/wireless-tools"
+
+BUILD_TARGETS="all"
+MODULE_NAMES="ipw2200(net/wireless:)"
+MODULESD_IPW2200_DOCS="README.ipw2200"
+
+CONFIG_CHECK="NET_RADIO FW_LOADER !IPW2200"
+ERROR_NET_RADIO="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_NET_RADIO)."
+ERROR_FW_LOADER="${P} requires Hotplug firmware loading support (CONFIG_FW_LOADER)."
+ERROR_IPW2200="${P} requires the in-kernel version of the IPW2200 driver to be disabled (CONFIG_IPW2200)"
+
+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 /lib/modules/${KV_FULL}/net/ieee80211/ieee80211.${KV_OBJ} ]]; then
+               eerror
+               eerror "Looks like you forgot to remerge net-wireless/ieee80211 after"
+               eerror "upgrading your kernel."
+               eerror
+               eerror "Hint: use sys-kernel/module-rebuild for keeping track of which"
+               eerror "modules needs to be remerged after a kernel upgrade."
+               eerror
+               die "/lib/modules/${KV_FULL}/net/ieee80211/ieee80211.${KV_OBJ} not found"
+       fi
+
+       BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR} IEEE80211_INC=/usr/include"
+}
+
+src_unpack() {
+       local debug="n" radiotap="n"
+
+       unpack ${A}
+
+       cd ${S}
+       epatch ${FILESDIR}/${P}-txbusy.patch
+       epatch ${FILESDIR}/${P}-broadcast.patch
+       epatch ${FILESDIR}/${P}-slabcorrupt.patch
+
+       use debug && debug="y"
+       sed -i -e "s:^\(CONFIG_IPW_DEBUG\)=.*:\1=${debug}:" ${S}/Makefile
+
+       use radiotap && radiotap="y"
+       sed -i -e "s:^#\(CONFIG_IEEE80211_RADIOTAP\)=.*:\1=${radiotap}:" ${S}/Makefile || die
+}
+
+src_compile() {
+       linux-mod_src_compile
+
+       einfo
+       einfo "You may safely ignore any warnings from above compilation about"
+       einfo "undefined references to the ieee80211 subsystem."
+       einfo
+}
+
+src_install() {
+       linux-mod_src_install
+
+       dodoc CHANGES ISSUES
+}
+
+pkg_postinst() {
+       linux-mod_pkg_postinst
+
+       if [ -f /lib/modules/${KV_FULL}/net/${PN}.ko ]; then
+               einfo
+               einfo "Modules from an earlier installation detected. You will need to manually"
+               einfo "remove those modules by running the following commands:"
+               einfo "  # rm -f /lib/modules/${KV_FULL}/net/${PN}.ko"
+               einfo "  # rm -f /lib/modules/${KV_FULL}/net/ieee80211*.ko"
+               einfo "  # depmod -a"
+               einfo
+       fi
+}