blob: c009a3ea3d5400903d5c13e0181d7787726d6ee3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# Copyright 1999-2005 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.2.5-r1.ebuild,v 1.5 2005/01/03 11:04:49 brix Exp $
inherit toolchain-funcs pcmcia kernel-mod eutils
DESCRIPTION="HostAP wireless drivers"
HOMEPAGE="http://hostap.epitest.fi"
SRC_URI="${SRC_URI} http://hostap.epitest.fi/releases/${P}.tar.gz"
LICENSE="GPL-2"
KEYWORDS="x86 ppc"
IUSE=""
SLOT="0"
DEPEND="!net-wireless/hostap
virtual/linux-sources
sys-apps/sed"
RDEPEND=">=net-wireless/wireless-tools-25"
src_unpack() {
if ! kernel-mod_configoption_present NET_RADIO
then
eerror ""
eerror "${P} requires support for Wireless LAN drivers (non-hamradio) &"
eerror "Wireless Extensions (CONFIG_NET_RADIO) in the kernel."
eerror ""
die "CONFIG_NET_RADIO support not detected."
fi
kernel-mod_check_modules_supported
unpack ${A}
## set compiler
sed -i -e "s:gcc:$(tc-getCC):" ${S}/Makefile
# unpack the pcmcia-cs sources if needed
pcmcia_src_unpack
cd ${S}
epatch "${FILESDIR}/${P}.firmware.diff.bz2"
# fix for new coreutils (#31801)
sed -i "s:tail -1:tail -n 1:" ${S}/Makefile
# set correct pcmcia path (PCMCIA_VERSION gets set from pcmcia_src_unpack)
if [ -n "${PCMCIA_VERSION}" ]
then
sed -i "s:^PCMCIA_PATH=:PCMCIA_PATH=${PCMCIA_SOURCE_DIR}:" ${S}/Makefile
fi
# install to /lib/modules/${KV}/net
sed -i "s:\$(MODPATH)/kernel/drivers/net/wireless:\$(MODPATH)/net:g" ${S}/Makefile
sed -i "s:MODPATH_CS \:= \$(MODPATH)/pcmcia:MODPATH_CS \:= \$(MODPATH)/net:" ${S}/Makefile
# let pkg_postinst() handle depmod
sed -i "s:/sbin/depmod -ae; \\\:\\\:" ${S}/Makefile
sed -i "s:/sbin/depmod -ae::" ${S}/Makefile
if ! use pcmcia &> /dev/null
then
# remove install_pccard dependency from install_2.4 target
sed -i "s#^\(install_2.4:.*\)install_pccard#\1#" ${S}/Makefile
fi
kernel-mod_getversion
if [ ${KV_MINOR} -gt 5 ] && [ ${KV_PATCH} -gt 5 ]
then
sed -i "s:SUBDIRS=:M=:" ${S}/Makefile
fi
}
src_compile() {
pcmcia_configure
set_arch_to_kernel
emake all || die "emake failed"
set_arch_to_portage
}
src_install() {
# Makefile relies on existing /lib/modules/${KV}
dodir /lib/modules/${KV}
if use pcmcia &> /dev/null
then
# pcmcia configuration file is only installed if /etc/pcmcia exist
dodir /etc/pcmcia
else
# make sure we do not install the hostap_cs module
rm -rf ${S}/driver/modules/hostap_cs.*o
fi
set_arch_to_kernel
emake DESTDIR=${D} install || die "emake install failed"
set_arch_to_portage
dodoc README ChangeLog
}
pkg_postinst() {
einfo "Checking kernel module dependencies"
test -r "${ROOT}/usr/src/linux/System.map" && \
depmod -ae -F "${ROOT}/usr/src/linux/System.map" -b "${ROOT}" -r ${KV}
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
einfo ""
einfo "Please notice that all ${PN} modules are now installed to"
einfo "/lib/modules/${KV}/net/."
einfo ""
einfo "You may have to manually delete the old modules if upgrading from from"
einfo "<=net-wireless/${PN}-0.2.4."
einfo ""
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 "Albeit being a great feature, this can lead to A DEAD CARD"
ewarn "when inappropriately used (e.g. wrong firmware)."
ewarn ""
}
|