summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Ramsay <lack@gentoo.org>2009-02-26 23:52:04 +0000
committerJim Ramsay <lack@gentoo.org>2009-02-26 23:52:04 +0000
commit35d1154f5bfdc6589057f3a8abcf43f85cca16d0 (patch)
treee1740fbbc1af483c3f52ce9a430c85711ecc2ad2 /net-wireless/ipw3945
parentDon't enable cpudetection for bindist (diff)
downloadgentoo-2-35d1154f5bfdc6589057f3a8abcf43f85cca16d0.tar.gz
gentoo-2-35d1154f5bfdc6589057f3a8abcf43f85cca16d0.tar.bz2
gentoo-2-35d1154f5bfdc6589057f3a8abcf43f85cca16d0.zip
Version cleanup, plus added patch for 2.6.27 compatibility (Bug #244756)
(Portage version: 2.1.6.7/cvs/Linux i686)
Diffstat (limited to 'net-wireless/ipw3945')
-rw-r--r--net-wireless/ipw3945/ChangeLog7
-rw-r--r--net-wireless/ipw3945/files/ipw3945-1.0.5-linux-2.6.19.patch14
-rw-r--r--net-wireless/ipw3945/files/ipw3945-1.2.0-Makefile.patch63
-rw-r--r--net-wireless/ipw3945/files/ipw3945-1.2.2-kernel-2.6.27.patch165
-rw-r--r--net-wireless/ipw3945/ipw3945-1.0.5.ebuild89
-rw-r--r--net-wireless/ipw3945/ipw3945-1.2.0.ebuild81
-rw-r--r--net-wireless/ipw3945/ipw3945-1.2.1.ebuild81
-rw-r--r--net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild9
-rw-r--r--net-wireless/ipw3945/ipw3945-1.2.2.ebuild97
9 files changed, 177 insertions, 429 deletions
diff --git a/net-wireless/ipw3945/ChangeLog b/net-wireless/ipw3945/ChangeLog
index cfef5bafbb56..eb7c3fc19b6b 100644
--- a/net-wireless/ipw3945/ChangeLog
+++ b/net-wireless/ipw3945/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for net-wireless/ipw3945
-# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ChangeLog,v 1.40 2008/03/15 17:01:30 coldwind Exp $
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ChangeLog,v 1.41 2009/02/26 23:52:04 lack Exp $
+
+ 26 Feb 2009; Jim Ramsay <lack@gentoo.org> ChangeLog:
+ Version cleanup, plus added patch for 2.6.27 compatibility (Bug #244756)
15 Mar 2008; Santiago M. Mola <coldwind@gentoo.org>
ipw3945-1.2.2-r1.ebuild:
diff --git a/net-wireless/ipw3945/files/ipw3945-1.0.5-linux-2.6.19.patch b/net-wireless/ipw3945/files/ipw3945-1.0.5-linux-2.6.19.patch
deleted file mode 100644
index 84ae4872af0d..000000000000
--- a/net-wireless/ipw3945/files/ipw3945-1.0.5-linux-2.6.19.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: ipw3945-1.0.5/ipw3945.h
-===================================================================
---- ipw3945-1.0.5.orig/ipw3945.h
-+++ ipw3945-1.0.5/ipw3945.h
-@@ -29,7 +29,9 @@
-
- #include <linux/module.h>
- #include <linux/moduleparam.h>
-+#ifndef AUTOCONF_INCLUDED
- #include <linux/config.h>
-+#endif
- #include <linux/init.h>
-
- #include <linux/version.h>
diff --git a/net-wireless/ipw3945/files/ipw3945-1.2.0-Makefile.patch b/net-wireless/ipw3945/files/ipw3945-1.2.0-Makefile.patch
deleted file mode 100644
index 0741ce94f1a1..000000000000
--- a/net-wireless/ipw3945/files/ipw3945-1.2.0-Makefile.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Index: ipw3945-1.2.0/Makefile
-===================================================================
---- ipw3945-1.2.0.orig/Makefile
-+++ ipw3945-1.2.0/Makefile
-@@ -26,20 +26,20 @@ CONFIG_IPW3945_DEBUG=y
- # NOTE: If you have problems compiling due to IW_MODE_MONITOR not being
- # defined then you need to update the wireless extension version
- # installed in your kernel, or comment this line out.
--# CONFIG_IPW3945_MONITOR=y
-+CONFIG_IPW3945_MONITOR=y
-
- # If you are interested in using radiotap headers in monitor mode,
- # simply uncomment:
- #
- # NOTE: To use RADIOTAP you must also enable MONITOR above.
--# CONFIG_IEEE80211_RADIOTAP=y
-+CONFIG_IEEE80211_RADIOTAP=y
-
- # The above monitor mode provides standard monitor mode. The following
- # will create a new interface (named raw%d) which will be sent all
- # 802.11 frames received on the interface
- #
- # NOTE: To use PROMISCUOUS you must also enable MONITOR above.
--# CONFIG_IPW3945_PROMISCUOUS=y
-+CONFIG_IPW3945_PROMISCUOUS=y
-
- # The following, if enabled, will add a sysfs entry 'rx' that raw
- # 802.11 radiotap formatted packets can be written to. Those packets
-@@ -186,34 +186,6 @@ utils:
- @[ ! -d util ] || make -C util IEEE80211_PATH=$(IEEE80211_PATH)
-
- check_inc:
-- @( [ "$(IEEE80211_DUPLICATE)" ] && echo -e \
--"\n WARNING: Your kernel contains ieee80211 symbol definitions and you\n"\
--"are not using the kernel's default ieee80211 subsystem. (Perhaps you\n"\
--"used the out-of-tree ieee80211 subsystem's 'make install' or have\n"\
--"provided a path to the ieee80211 subsystem via IEEE80211_INC.)\n\n"\
--"If you wish to use the out-of-tree ieee80211 subsystem then it is\n"\
--"recommended to use that projects' \"make patch_kernel\" facility\n"\
--"and rebuild your kernel to update the Module symbol version information.\n"\
--"\n"\
--"Failure to do this may result in build warnings and unexpected\n"\
--"behavior when running modules which rely on the ieee80211 subsystem.\n\n"\ || \
-- exit 0)
--
-- @( [ "$(IEEE80211_DUPLICATE)" ] && \
-- [ ! "$(IEEE80211_IGNORE_DUPLICATE)" ] && echo -e \
--" Aborting the build. You can force the build to continue by adding:\n\n"\
--"\tIEEE80211_IGNORE_DUPLICATE=y\n\n"\
--"to your make command line.\n\n" && exit 1 || exit 0)
--
-- @( [ ! "$(IEEE80211_API)" ] && echo -e \
--"\n ERROR: A compatible subsystem was not found in the following path[s]:\n\n"\
--"\t$(IEEE80211_RES)\n\n"\
--"You need to install the ieee80211 subsystem from http://ieee80211.sf.net\n"\
--"and point this build to the location where you installed those sources, eg.:\n\n"\
--"\t% make IEEE80211_INC=/usr/src/ieee80211/\n\n"\
--"or use the 'make patch_kernel' within the ieee80211 subsystem to patch your\n"\
--"kernel sources.\n" && exit 1 || exit 0)
--
- @echo -e \
- " Using ieee80211 subsystem version API v$(IEEE80211_API) from:\n\n" \
- "\tBase: $(IEEE80211_BASE)\n" \
diff --git a/net-wireless/ipw3945/files/ipw3945-1.2.2-kernel-2.6.27.patch b/net-wireless/ipw3945/files/ipw3945-1.2.2-kernel-2.6.27.patch
new file mode 100644
index 000000000000..d1d64ce72e79
--- /dev/null
+++ b/net-wireless/ipw3945/files/ipw3945-1.2.2-kernel-2.6.27.patch
@@ -0,0 +1,165 @@
+--- ipw3945-1.2.2/ipw3945.c.old 2008-10-19 23:03:47.000000000 +0200
++++ ipw3945-1.2.2/ipw3945.c 2008-10-19 23:25:43.000000000 +0200
+@@ -108,6 +108,8 @@
+ #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation"
+ #define DRV_VERSION IPW3945_VERSION
+
++#define IPW3945_COMPAT 2
++
+ MODULE_DESCRIPTION(DRV_DESCRIPTION);
+ MODULE_VERSION(DRV_VERSION);
+ MODULE_AUTHOR(DRV_COPYRIGHT);
+@@ -141,6 +143,153 @@ static int from_priority_to_tx_queue[] =
+ IPW_TX_QUEUE_3, IPW_TX_QUEUE_3, IPW_TX_QUEUE_4, IPW_TX_QUEUE_4
+ };
+
++static int ieee80211_encrypt_fragment(struct ieee80211_device *ieee,
++ struct sk_buff *frag, int hdr_len)
++{
++ struct ieee80211_crypt_data *crypt = ieee->crypt[ieee->tx_keyidx];
++ int res;
++
++ if (crypt == NULL)
++ return -1;
++
++ /* To encrypt, frame format is:
++ * IV (4 bytes), clear payload (including SNAP), ICV (4 bytes) */
++ atomic_inc(&crypt->refcnt);
++ res = 0;
++ if (crypt->ops && crypt->ops->encrypt_mpdu)
++ res = crypt->ops->encrypt_mpdu(frag, hdr_len, crypt->priv);
++
++ atomic_dec(&crypt->refcnt);
++ if (res < 0) {
++ printk(KERN_INFO "%s: Encryption failed: len=%d.\n",
++ ieee->dev->name, frag->len);
++ ieee->ieee_stats.tx_discards++;
++ return -1;
++ }
++
++ return 0;
++}
++
++static struct ieee80211_txb *ieee80211_alloc_txb(int nr_frags, int txb_size,
++ int headroom, gfp_t gfp_mask)
++{
++ struct ieee80211_txb *txb;
++ int i;
++ txb = kmalloc(sizeof(struct ieee80211_txb) + (sizeof(u8 *) * nr_frags),
++ gfp_mask);
++ if (!txb)
++ return NULL;
++
++ memset(txb, 0, sizeof(struct ieee80211_txb));
++ txb->nr_frags = nr_frags;
++ txb->frag_size = txb_size;
++
++ for (i = 0; i < nr_frags; i++) {
++ txb->fragments[i] = __dev_alloc_skb(txb_size + headroom,
++ gfp_mask);
++ if (unlikely(!txb->fragments[i])) {
++ i--;
++ break;
++ }
++ skb_reserve(txb->fragments[i], headroom);
++ }
++ if (unlikely(i != nr_frags)) {
++ while (i >= 0)
++ dev_kfree_skb_any(txb->fragments[i--]);
++ kfree(txb);
++ return NULL;
++ }
++ return txb;
++}
++
++
++/* Incoming 802.11 strucure is converted to a TXB
++ * a block of 802.11 fragment packets (stored as skbs) */
++int ieee80211_tx_frame(struct ieee80211_device *ieee,
++ struct ieee80211_hdr *frame, int hdr_len, int total_len,
++ int encrypt_mpdu)
++{
++ struct ieee80211_txb *txb = NULL;
++ unsigned long flags;
++ struct net_device_stats *stats = &ieee->stats;
++ struct sk_buff *skb_frag;
++ int priority = -1;
++ int fraglen = total_len;
++ int headroom = ieee->tx_headroom;
++ struct ieee80211_crypt_data *crypt = ieee->crypt[ieee->tx_keyidx];
++
++ spin_lock_irqsave(&ieee->lock, flags);
++
++ if (encrypt_mpdu && (!ieee->sec.encrypt || !crypt))
++ encrypt_mpdu = 0;
++
++ /* If there is no driver handler to take the TXB, dont' bother
++ * creating it... */
++ if (!ieee->hard_start_xmit) {
++ printk(KERN_WARNING "%s: No xmit handler.\n", ieee->dev->name);
++ goto success;
++ }
++
++ if (unlikely(total_len < 24)) {
++ printk(KERN_WARNING "%s: skb too small (%d).\n",
++ ieee->dev->name, total_len);
++ goto success;
++ }
++
++ if (encrypt_mpdu) {
++ frame->frame_ctl |= cpu_to_le16(IEEE80211_FCTL_PROTECTED);
++ fraglen += crypt->ops->extra_mpdu_prefix_len +
++ crypt->ops->extra_mpdu_postfix_len;
++ headroom += crypt->ops->extra_mpdu_prefix_len;
++ }
++
++ /* When we allocate the TXB we allocate enough space for the reserve
++ * and full fragment bytes (bytes_per_frag doesn't include prefix,
++ * postfix, header, FCS, etc.) */
++ txb = ieee80211_alloc_txb(1, fraglen, headroom, GFP_ATOMIC);
++ if (unlikely(!txb)) {
++ printk(KERN_WARNING "%s: Could not allocate TXB\n",
++ ieee->dev->name);
++ goto failed;
++ }
++ txb->encrypted = 0;
++ txb->payload_size = fraglen;
++
++ skb_frag = txb->fragments[0];
++
++ memcpy(skb_put(skb_frag, total_len), frame, total_len);
++
++ if (ieee->config &
++ (CFG_IEEE80211_COMPUTE_FCS | CFG_IEEE80211_RESERVE_FCS))
++ skb_put(skb_frag, 4);
++
++ /* To avoid overcomplicating things, we do the corner-case frame
++ * encryption in software. The only real situation where encryption is
++ * needed here is during software-based shared key authentication. */
++ if (encrypt_mpdu)
++ ieee80211_encrypt_fragment(ieee, skb_frag, hdr_len);
++
++ success:
++ spin_unlock_irqrestore(&ieee->lock, flags);
++
++ if (txb) {
++ if ((*ieee->hard_start_xmit) (txb, ieee->dev, priority) == 0) {
++ stats->tx_packets++;
++ stats->tx_bytes += txb->payload_size;
++ return 0;
++ }
++ ieee80211_txb_free(txb);
++ }
++ return 0;
++
++ failed:
++ spin_unlock_irqrestore(&ieee->lock, flags);
++ stats->tx_errors++;
++ return 1;
++}
++
++
++
+ static int ipw_rate_scale_init_handle(struct ipw_priv *priv, s32 window_size);
+
+ static int ipw_update_power_cmd(struct ipw_priv *priv,
diff --git a/net-wireless/ipw3945/ipw3945-1.0.5.ebuild b/net-wireless/ipw3945/ipw3945-1.0.5.ebuild
deleted file mode 100644
index b7dd30aa717b..000000000000
--- a/net-wireless/ipw3945/ipw3945-1.0.5.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.0.5.ebuild,v 1.4 2007/07/10 09:49:50 genstef Exp $
-
-inherit linux-mod eutils
-
-IEEE80211_VERSION="1.1.13-r1"
-UCODE_VERSION="1.13"
-DAEMON_VERSION="1.7.18"
-
-DESCRIPTION="Driver for the Intel PRO/Wireless 3945ABG miniPCI express adapter"
-HOMEPAGE="http://ipw3945.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="x86"
-
-IUSE="debug"
-DEPEND=">=net-wireless/ieee80211-${IEEE80211_VERSION}
- sys-apps/sed"
-RDEPEND=">=net-wireless/ieee80211-${IEEE80211_VERSION}
- >=net-wireless/ipw3945-ucode-${UCODE_VERSION}
- >=net-wireless/ipw3945d-${DAEMON_VERSION}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="ipw3945(net/wireless:)"
-MODULESD_IPW3945_DOCS="README.ipw3945"
-
-CONFIG_CHECK="WIRELESS_EXT FW_LOADER !IPW3945"
-ERROR_WIRELESS_EXT="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions"
-ERROR_FW_LOADER="${P} requires Hotplug firmware loading support (CONFIG_FW_LOADER)."
-ERROR_IPW3945="${P} requires the in-kernel version of the IPW3945 driver to be disabled (CONFIG_IPW3945)"
-
-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 ${ROOT}/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 "${ROOT}/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"
-
- unpack ${A}
- cd "${S}"
-
- # bug 157076 (ipw3945 doesn't compile against 2.6.19)
- epatch "${FILESDIR}/ipw3945-1.0.5-linux-2.6.19.patch"
-
- sed -i \
- -e "s:^#\(CONFIG_IPW3945_QOS\)=.*:\1=y:" \
- -e "s:^# \(CONFIG_IPW3945_MONITOR\)=.*:\1=y:" \
- -e "s:^# \(CONFIG_IEEE80211_RADIOTAP\)=.*:\1=y:" \
- -e "s:^# \(CONFIG_IPW3945_PROMISCUOUS\)=.*:\1=y:" \
- ${S}/Makefile || die
-
- use debug && debug="y"
- sed -i -e "s:^\(CONFIG_IPW3945_DEBUG\)=.*:\1=${debug}:" ${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
-}
diff --git a/net-wireless/ipw3945/ipw3945-1.2.0.ebuild b/net-wireless/ipw3945/ipw3945-1.2.0.ebuild
deleted file mode 100644
index 556ee7057dbd..000000000000
--- a/net-wireless/ipw3945/ipw3945-1.2.0.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.2.0.ebuild,v 1.8 2007/07/10 09:49:50 genstef Exp $
-
-inherit linux-mod eutils
-
-S=${WORKDIR}/${P/_pre/-pre}
-
-UCODE_VERSION="1.13"
-DAEMON_VERSION="1.7.22"
-
-DESCRIPTION="Driver for the Intel PRO/Wireless 3945ABG miniPCI express adapter"
-HOMEPAGE="http://ipw3945.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P/_pre/-pre}.tgz"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-IUSE="debug"
-RDEPEND=">=net-wireless/ipw3945-ucode-${UCODE_VERSION}
- >=net-wireless/ipw3945d-${DAEMON_VERSION}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="ipw3945(net/wireless:)"
-MODULESD_IPW3945_DOCS="README.ipw3945"
-KV_OBJ="ko"
-
-CONFIG_CHECK="WIRELESS_EXT FW_LOADER IEEE80211 IEEE80211_CRYPT_CCMP IEEE80211_CRYPT_TKIP"
-ERROR_WIRELESS_EXT="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions"
-ERROR_FW_LOADER="${P} requires Hotplug firmware loading support (CONFIG_FW_LOADER)."
-ERROR_IEEE80211="${P} requires support for Generic IEEE 802.11 Networking Stack (CONFIG_IEEE80211)."
-
-pkg_setup() {
- if kernel_is 2 4; then
- die "${P} does not support building against kernel 2.4.x"
- fi
-
- if kernel_is lt 2 6 18; then
- die "${P} needs a kernel >=2.6.18! Please set your KERNEL_DIR or /usr/src/linux suitably"
- fi
-
- linux-mod_pkg_setup
-
- BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR}"
-
- # users don't read changelogs and wonder why the kernel check fails
- # (1) check if the kernel dir (/usr/src/linux) is missing ieee80211
-
- 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
- return 0
- else
- echo
- ewarn "${CATEGORY}/${PF} does NOT use net-wireless/ieee80211 any more."
- ewarn "We are now relying on the in-kernel ieee80211 instead."
- echo
- eerror "Please remove net-wireless/ieee80211 using emerge, and remerge"
- eerror "your current kernel (${KV_FULL}), as it has been altered"
- eerror "by net-wireless/ieee80211."
- die "Incompatible ieee80211 subsystem detected in ${KV_FULL}"
- fi
-}
-
-src_unpack() {
- unpack ${P/_pre/-pre}.tgz
-
- cd "${S}"
- epatch "${FILESDIR}"/${P}-Makefile.patch
-
- if use debug ; then
- sed -i -e "s:^\(CONFIG_IPW3945_DEBUG\)=.*:\1=y:" "${S}"/Makefile || \
- die "Failed to enable debugging support!"
- fi
-}
-
-src_install() {
- linux-mod_src_install
- dodoc CHANGES ISSUES
-}
diff --git a/net-wireless/ipw3945/ipw3945-1.2.1.ebuild b/net-wireless/ipw3945/ipw3945-1.2.1.ebuild
deleted file mode 100644
index 8837e5f36213..000000000000
--- a/net-wireless/ipw3945/ipw3945-1.2.1.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.2.1.ebuild,v 1.3 2007/07/10 09:49:50 genstef Exp $
-
-inherit linux-mod eutils
-
-S=${WORKDIR}/${P/_pre/-pre}
-
-UCODE_VERSION="1.13"
-DAEMON_VERSION="1.7.22"
-
-DESCRIPTION="Driver for the Intel PRO/Wireless 3945ABG miniPCI express adapter"
-HOMEPAGE="http://ipw3945.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P/_pre/-pre}.tgz"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="debug"
-RDEPEND=">=net-wireless/ipw3945-ucode-${UCODE_VERSION}
- >=net-wireless/ipw3945d-${DAEMON_VERSION}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="ipw3945(net/wireless:)"
-MODULESD_IPW3945_DOCS="README.ipw3945"
-KV_OBJ="ko"
-
-CONFIG_CHECK="WIRELESS_EXT FW_LOADER IEEE80211 IEEE80211_CRYPT_CCMP IEEE80211_CRYPT_TKIP"
-ERROR_WIRELESS_EXT="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions"
-ERROR_FW_LOADER="${P} requires Hotplug firmware loading support (CONFIG_FW_LOADER)."
-ERROR_IEEE80211="${P} requires support for Generic IEEE 802.11 Networking Stack (CONFIG_IEEE80211)."
-
-pkg_setup() {
- if kernel_is 2 4; then
- die "${P} does not support building against kernel 2.4.x"
- fi
-
- if kernel_is lt 2 6 18; then
- die "${P} needs a kernel >=2.6.18! Please set your KERNEL_DIR or /usr/src/linux suitably"
- fi
-
- linux-mod_pkg_setup
-
- BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR}"
-
- # users don't read changelogs and wonder why the kernel check fails
- # (1) check if the kernel dir (/usr/src/linux) is missing ieee80211
-
- 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
- return 0
- else
- echo
- ewarn "${CATEGORY}/${PF} does NOT use net-wireless/ieee80211 any more."
- ewarn "We are now relying on the in-kernel ieee80211 instead."
- echo
- eerror "Please remove net-wireless/ieee80211 using emerge, and remerge"
- eerror "your current kernel (${KV_FULL}), as it has been altered"
- eerror "by net-wireless/ieee80211."
- die "Incompatible ieee80211 subsystem detected in ${KV_FULL}"
- fi
-}
-
-src_unpack() {
- unpack ${P/_pre/-pre}.tgz
-
- cd "${S}"
- epatch "${FILESDIR}"/${PN}-1.2.0-Makefile.patch
-
- if use debug ; then
- sed -i -e "s:^\(CONFIG_IPW3945_DEBUG\)=.*:\1=y:" "${S}"/Makefile || \
- die "Failed to enable debugging support!"
- fi
-}
-
-src_install() {
- linux-mod_src_install
- dodoc CHANGES ISSUES
-}
diff --git a/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild b/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild
index 91a65a7474ed..491665b4f956 100644
--- a/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild
+++ b/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild,v 1.3 2008/03/15 17:01:30 coldwind Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.2.2-r1.ebuild,v 1.4 2009/02/26 23:52:04 lack Exp $
inherit linux-mod eutils
@@ -73,7 +73,12 @@ src_unpack() {
unpack ${P/_pre/-pre}.tgz
cd "${S}"
epatch "${FILESDIR}/${P}-build.patch"
- epatch "${FILESDIR}/${P}-kernel-2.6.24.patch"
+ if kernel_is ge 2 6 24; then
+ epatch "${FILESDIR}/${P}-kernel-2.6.24.patch"
+ fi
+ if kernel_is ge 2 6 27; then
+ epatch "${FILESDIR}/${P}-kernel-2.6.27.patch"
+ fi
}
src_install() {
diff --git a/net-wireless/ipw3945/ipw3945-1.2.2.ebuild b/net-wireless/ipw3945/ipw3945-1.2.2.ebuild
deleted file mode 100644
index fba179147835..000000000000
--- a/net-wireless/ipw3945/ipw3945-1.2.2.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ipw3945/ipw3945-1.2.2.ebuild,v 1.6 2007/12/06 23:58:20 opfer Exp $
-
-inherit linux-mod eutils
-
-S=${WORKDIR}/${P/_pre/-pre}
-
-UCODE_VERSION="1.14.2"
-DAEMON_VERSION="1.7.22"
-
-DESCRIPTION="Driver for the Intel PRO/Wireless 3945ABG miniPCI express adapter"
-HOMEPAGE="http://ipw3945.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P/_pre/-pre}.tgz"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-IUSE="debug"
-RDEPEND=">=net-wireless/ipw3945-ucode-${UCODE_VERSION}
- >=net-wireless/ipw3945d-${DAEMON_VERSION}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="ipw3945(net/wireless:)"
-MODULESD_IPW3945_DOCS="README.ipw3945"
-KV_OBJ="ko"
-
-CONFIG_CHECK="WIRELESS_EXT FW_LOADER IEEE80211 IEEE80211_CRYPT_CCMP IEEE80211_CRYPT_TKIP"
-ERROR_FW_LOADER="${P} requires Hotplug firmware loading support (CONFIG_FW_LOADER)."
-ERROR_IEEE80211="${P} requires support for Generic IEEE 802.11 Networking Stack (CONFIG_IEEE80211)."
-
-pkg_setup() {
- if kernel_is 2 4; then
- die "${P} does not support building against kernel 2.4.x"
- fi
-
- if kernel_is lt 2 6 18; then
- die "${P} needs a kernel >=2.6.18! Please set your KERNEL_DIR or /usr/src/linux suitably"
- fi
-
- linux-mod_pkg_setup
-
- BUILD_PARAMS="KSRC=${KV_DIR} KSRC_OUTPUT=${KV_OUT_DIR} SHELL=/bin/bash"
- BUILD_PARAMS="${BUILD_PARAMS} T=${T}"
- BUILD_PARAMS="${BUILD_PARAMS} CONFIG_IPW3945_MONITOR=y CONFIG_IEEE80211_RADIOTAP=y CONFIG_IPW3945_PROMISCUOUS=y"
- if use debug; then
- BUILD_PARAMS="${BUILD_PARAMS} CONFIG_IPW3945_DEBUG=y"
- else
- BUILD_PARAMS="${BUILD_PARAMS} CONFIG_IPW3945_DEBUG=n"
- fi
-
- # users don't read the ChangeLog and wonder why the kernel check fails
- # (1) check if the kernel dir (/usr/src/linux) is missing ieee80211
-
- 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
- return 0
- else
- echo
- ewarn "${CATEGORY}/${PF} does NOT use net-wireless/ieee80211 any more."
- ewarn "We are now relying on the in-kernel ieee80211 instead."
- echo
- eerror "Please remove net-wireless/ieee80211 using emerge, and remerge"
- eerror "your current kernel (${KV_FULL}), as it has been altered"
- eerror "by net-wireless/ieee80211."
- die "Incompatible ieee80211 subsystem detected in ${KV_FULL}"
- fi
-}
-
-src_unpack() {
- unpack ${P/_pre/-pre}.tgz
- cd "${S}"
- epatch "${FILESDIR}/${P}-build.patch"
-}
-
-src_install() {
- linux-mod_src_install
- dodoc CHANGES ISSUES
-}
-
-pkg_postinst() {
- elog "If you want your wireless device started up by udev, please make sure"
- elog "you add something like this to your /etc/conf.d/net:"
- elog "preup() {"
- elog " if [[ \${IFACE} = \"wlan0\" ]]; then"
- elog " sleep 3"
- elog " fi"
- elog " return 0"
- elog "}"
- elog
- elog "Otherwise, you're going to hit bug #177869 since the driver needs some"
- elog "time to initialize and thus, baselayout is going to start it even if"
- elog "the device isn't useable yet."
- elog
-}