You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-wireless/hostap-driver/hostap-driver-0.4.7.ebuild

146 lines
4.1 KiB

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostap-driver/hostap-driver-0.4.7.ebuild,v 1.6 2011/06/06 06:21:03 robbat2 Exp $
inherit toolchain-funcs eutils linux-mod
DESCRIPTION="Driver for Intersil Prism2/2.5/3 based IEEE 802.11b wireless LAN products"
HOMEPAGE="http://hostap.epitest.fi"
SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
LICENSE="GPL-2"
KEYWORDS="~amd64 ppc x86"
IUSE="pcmcia"
SLOT="0"
RDEPEND=">=net-wireless/wireless-tools-25
pcmcia? ( virtual/pcmcia )"
BUILD_TARGETS="all"
MODULESD_HOSTAP_DOCS="README"
MODULESD_HOSTAP_CRYPT_WEP_ENABLED="no"
MODULESD_HOSTAP_CRYPT_TKIP_ENABLED="no"
MODULESD_HOSTAP_CRYPT_CCMP_ENABLED="no"
CONFIG_CHECK="!HOSTAP NET_RADIO"
ERROR_HOSTAP="${P} requires the in-kernel version of the hostap driver to be disabled (CONFIG_HOSTAP)"
ERROR_NET_RADIO="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_NET_RADIO)."
pcmcia_src_unpack() {
local pcmcia_tbz="${ROOT}/usr/src/pcmcia-cs/pcmcia-cs-build-env.tbz2"
local PCMCIA_SOURCE_DIR="${WORKDIR}/pcmcia-cs/"
# if the kernel has pcmcia support built in, then we just ignore all this.
if linux_chkconfig_present PCMCIA; then
einfo "Kernel based PCMCIA support has been detected."
else
if kernel_is -ge 2 6; then
einfo "We have detected that you are running a 2.6 kernel"
einfo "but you are not using the built-in PCMCIA support."
einfo "We will assume you know what you are doing, but please"
einfo "consider using the built in PCMCIA support instead."
epause 10
fi
ebegin "Decompressing pcmcia-cs sources"
mkdir -p ${PCMCIA_SOURCE_DIR}
tar -xjf ${pcmcia_tbz} -C ${PCMCIA_SOURCE_DIR}
eend $?
if [[ -f ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version ]]; then
PCMCIA_VERSION=$(cat ${PCMCIA_SOURCE_DIR}/pcmcia-cs-version)
einfo "Found pcmcia-cs-${PCMCIA_VERSION}"
fi
fi
}
pkg_setup() {
linux-mod_pkg_setup
if kernel_is ge 2 6 15; then
ewarn
ewarn "Linux kernel 2.6.15 and above contains a more recent version of this"
ewarn "module. Please consider using the in-kernel module when using"
ewarn "linux-2.6.15 or above."
ewarn
fi
if kernel_is ge 2 6 16; then
ewarn
ewarn "This version of hostap-driver is incompatible with linux-2.6.16 and above."
ewarn "Please use the more recent in-kernel version of the hostap module when using"
ewarn "linux-2.6.16 or above."
ewarn
fi
MODULE_NAMES="hostap(net::${S}/driver/modules)
hostap_pci(net::${S}/driver/modules)
hostap_plx(net::${S}/driver/modules)
hostap_crypt_wep(net::${S}/driver/modules)
hostap_crypt_ccmp(net::${S}/driver/modules)
hostap_crypt_tkip(net::${S}/driver/modules)"
if use pcmcia; then
MODULE_NAMES="${MODULE_NAMES} hostap_cs(net::${S}/driver/modules)"
fi
BUILD_PARAMS="KERNEL_PATH=${KV_DIR}"
}
src_unpack() {
unpack ${A}
cd ${S}
epatch ${FILESDIR}/${P}-firmware.patch
sed -i \
-e "s:gcc:$(tc-getCC):" \
-e "s:tail -1:tail -n 1:" \
${S}/Makefile
if use pcmcia; then
# unpack the pcmcia-cs sources if needed
pcmcia_src_unpack
# set correct pcmcia path (PCMCIA_VERSION gets set from pcmcia_src_unpack)
if [ -n "${PCMCIA_VERSION}" ]; then
sed -i "s:^\(PCMCIA_PATH\)=:\1=${PCMCIA_SOURCE_DIR}:" ${S}/Makefile
fi
fi
convert_to_m ${S}/Makefile
}
src_install() {
if use pcmcia; then
insinto /etc/pcmcia
doins driver/etc/hostap_cs.conf
fi
dodoc ChangeLog
linux-mod_src_install
}
pkg_postinst() {
if [ -e /etc/pcmcia/prism2.conf ]
then
einfo ""
einfo "You may need to edit or remove /etc/pcmcia/prism2.conf"
einfo "This is usually a result of conflicts with the"
einfo "net-wireless/linux-wlan-ng drivers."
einfo ""
fi
ewarn ""
ewarn "Please note that this installation of HostAP contains support"
ewarn "for downloading binary firmware images into the non-volatile"
ewarn "(permanent) flash memory of wireless LAN cards."
ewarn ""
ewarn "Albeit being a great feature, this can lead to A DEAD CARD"
ewarn "when inappropriately used (e.g. wrong firmware)."
ewarn ""
linux-mod_pkg_postinst
}