Gentoo Archives: gentoo-commits

From: Andrey Utkin <andrey_utkin@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-wireless/hostapd/
Date: Tue, 11 Feb 2020 23:39:58
Message-Id: 1581464369.ad164a2396598c39a01c706a9505aa6e4750e343.andrey_utkin@gentoo
1 commit: ad164a2396598c39a01c706a9505aa6e4750e343
2 Author: Andrey Utkin <andrey_utkin <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 13 22:45:16 2020 +0000
4 Commit: Andrey Utkin <andrey_utkin <AT> gentoo <DOT> org>
5 CommitDate: Tue Feb 11 23:39:29 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad164a23
7
8 net-wireless/hostapd: add new revision 2.9-r2
9
10 Cloned from 2.9-r1 with stable keywords downgraded to testing.
11
12 Package-Manager: Portage-2.3.66, Repoman-2.3.16
13 Signed-off-by: Andrey Utkin <andrey_utkin <AT> gentoo.org>
14
15 net-wireless/hostapd/hostapd-2.9-r2.ebuild | 264 +++++++++++++++++++++++++++++
16 1 file changed, 264 insertions(+)
17
18 diff --git a/net-wireless/hostapd/hostapd-2.9-r2.ebuild b/net-wireless/hostapd/hostapd-2.9-r2.ebuild
19 new file mode 100644
20 index 00000000000..1c053ce40c2
21 --- /dev/null
22 +++ b/net-wireless/hostapd/hostapd-2.9-r2.ebuild
23 @@ -0,0 +1,264 @@
24 +# Copyright 1999-2020 Gentoo Authors
25 +# Distributed under the terms of the GNU General Public License v2
26 +
27 +EAPI="6"
28 +
29 +inherit toolchain-funcs systemd savedconfig
30 +
31 +DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon"
32 +HOMEPAGE="http://w1.fi"
33 +EXTRAS_VER="2.7-r2"
34 +EXTRAS_NAME="${CATEGORY}_${PN}_${EXTRAS_VER}_extras"
35 +SRC_URI="https://dev.gentoo.org/~andrey_utkin/distfiles/${EXTRAS_NAME}.tar.xz"
36 +
37 +if [[ $PV == 9999 ]]; then
38 + inherit git-r3
39 + EGIT_REPO_URI="https://w1.fi/hostap.git"
40 +else
41 + if [[ $PV =~ ^.*_p[0-9]{8}$ ]]; then
42 + SRC_URI+=" https://dev.gentoo.org/~andrey_utkin/distfiles/${P}.tar.xz"
43 + else
44 + SRC_URI+=" https://w1.fi/releases/${P}.tar.gz"
45 + fi
46 + # Never stabilize snapshot ebuilds please
47 + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86"
48 +fi
49 +
50 +LICENSE="BSD"
51 +SLOT="0"
52 +IUSE="internal-tls ipv6 libressl logwatch netlink sqlite +wps +crda"
53 +
54 +DEPEND="
55 + libressl? ( dev-libs/libressl:0= )
56 + !libressl? (
57 + internal-tls? ( dev-libs/libtommath )
58 + !internal-tls? ( dev-libs/openssl:0=[-bindist] )
59 + )
60 + kernel_linux? (
61 + dev-libs/libnl:3
62 + crda? ( net-wireless/crda )
63 + )
64 + netlink? ( net-libs/libnfnetlink )
65 + sqlite? ( >=dev-db/sqlite-3 )"
66 +
67 +RDEPEND="${DEPEND}"
68 +
69 +S="${S}/${PN}"
70 +
71 +pkg_pretend() {
72 + if use internal-tls; then
73 + if use libressl; then
74 + elog "libressl flag takes precedence over internal-tls"
75 + else
76 + ewarn "internal-tls implementation is experimental and provides fewer features"
77 + fi
78 + fi
79 +}
80 +
81 +src_unpack() {
82 + # Override default one because we need the SRC_URI ones even in case of 9999 ebuilds
83 + default
84 + if [[ ${PV} == 9999 ]] ; then
85 + git-r3_src_unpack
86 + fi
87 +}
88 +
89 +src_prepare() {
90 + # Allow users to apply patches to src/drivers for example,
91 + # i.e. anything outside ${S}/${PN}
92 + pushd ../ >/dev/null || die
93 + default
94 + #CVE-2019-16275 bug #696032
95 + eapply "${FILESDIR}/hostapd-2.9-AP-Silently-ignore-management-frame-from-unexpected.patch"
96 + popd >/dev/null || die
97 +
98 + sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
99 + "${S}/hostapd.conf" || die
100 +}
101 +
102 +src_configure() {
103 + local CONFIG="${S}/.config"
104 +
105 + restore_config "${CONFIG}"
106 + if [[ -f "${CONFIG}" ]]; then
107 + default_src_configure
108 + return 0
109 + fi
110 +
111 + # toolchain setup
112 + echo "CC = $(tc-getCC)" > ${CONFIG}
113 +
114 + # EAP authentication methods
115 + echo "CONFIG_EAP=y" >> ${CONFIG}
116 + echo "CONFIG_ERP=y" >> ${CONFIG}
117 + echo "CONFIG_EAP_MD5=y" >> ${CONFIG}
118 +
119 + if use internal-tls && ! use libressl; then
120 + echo "CONFIG_TLS=internal" >> ${CONFIG}
121 + else
122 + # SSL authentication methods
123 + echo "CONFIG_EAP_FAST=y" >> ${CONFIG}
124 + echo "CONFIG_EAP_TLS=y" >> ${CONFIG}
125 + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG}
126 + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG}
127 + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG}
128 + echo "CONFIG_TLSV11=y" >> ${CONFIG}
129 + echo "CONFIG_TLSV12=y" >> ${CONFIG}
130 + echo "CONFIG_EAP_PWD=y" >> ${CONFIG}
131 + fi
132 +
133 + if use wps; then
134 + # Enable Wi-Fi Protected Setup
135 + echo "CONFIG_WPS=y" >> ${CONFIG}
136 + echo "CONFIG_WPS2=y" >> ${CONFIG}
137 + echo "CONFIG_WPS_UPNP=y" >> ${CONFIG}
138 + echo "CONFIG_WPS_NFC=y" >> ${CONFIG}
139 + einfo "Enabling Wi-Fi Protected Setup support"
140 + fi
141 +
142 + echo "CONFIG_EAP_IKEV2=y" >> ${CONFIG}
143 + echo "CONFIG_EAP_TNC=y" >> ${CONFIG}
144 + echo "CONFIG_EAP_GTC=y" >> ${CONFIG}
145 + echo "CONFIG_EAP_SIM=y" >> ${CONFIG}
146 + echo "CONFIG_EAP_AKA=y" >> ${CONFIG}
147 + echo "CONFIG_EAP_AKA_PRIME=y" >> ${CONFIG}
148 + echo "CONFIG_EAP_EKE=y" >> ${CONFIG}
149 + echo "CONFIG_EAP_PAX=y" >> ${CONFIG}
150 + echo "CONFIG_EAP_PSK=y" >> ${CONFIG}
151 + echo "CONFIG_EAP_SAKE=y" >> ${CONFIG}
152 + echo "CONFIG_EAP_GPSK=y" >> ${CONFIG}
153 + echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG}
154 +
155 + einfo "Enabling drivers: "
156 +
157 + # drivers
158 + echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG}
159 + einfo " HostAP driver enabled"
160 + echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG}
161 + einfo " Wired driver enabled"
162 + echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG}
163 + einfo " None driver enabled"
164 +
165 + einfo " nl80211 driver enabled"
166 + echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG}
167 +
168 + # epoll
169 + echo "CONFIG_ELOOP_EPOLL=y" >> ${CONFIG}
170 +
171 + # misc
172 + echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG}
173 + echo "CONFIG_PKCS12=y" >> ${CONFIG}
174 + echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG}
175 + echo "CONFIG_IAPP=y" >> ${CONFIG}
176 + echo "CONFIG_IEEE80211R=y" >> ${CONFIG}
177 + echo "CONFIG_IEEE80211W=y" >> ${CONFIG}
178 + echo "CONFIG_IEEE80211N=y" >> ${CONFIG}
179 + echo "CONFIG_IEEE80211AC=y" >> ${CONFIG}
180 + echo "CONFIG_PEERKEY=y" >> ${CONFIG}
181 + echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG}
182 + echo "CONFIG_INTERWORKING=y" >> ${CONFIG}
183 + echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG}
184 + echo "CONFIG_HS20=y" >> ${CONFIG}
185 + echo "CONFIG_WNM=y" >> ${CONFIG}
186 + echo "CONFIG_FST=y" >> ${CONFIG}
187 + echo "CONFIG_FST_TEST=y" >> ${CONFIG}
188 + echo "CONFIG_ACS=y" >> ${CONFIG}
189 +
190 + if use netlink; then
191 + # Netlink support
192 + echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG}
193 + fi
194 +
195 + if use ipv6; then
196 + # IPv6 support
197 + echo "CONFIG_IPV6=y" >> ${CONFIG}
198 + fi
199 +
200 + if use sqlite; then
201 + # Sqlite support
202 + echo "CONFIG_SQLITE=y" >> ${CONFIG}
203 + fi
204 +
205 + # If we are using libnl 2.0 and above, enable support for it
206 + # Removed for now, since the 3.2 version is broken, and we don't
207 + # support it.
208 + if has_version ">=dev-libs/libnl-3.2"; then
209 + echo "CONFIG_LIBNL32=y" >> .config
210 + fi
211 +
212 + # TODO: Add support for BSD drivers
213 +
214 + default_src_configure
215 +}
216 +
217 +src_compile() {
218 + emake V=1
219 +
220 + if use libressl || ! use internal-tls; then
221 + emake V=1 nt_password_hash
222 + emake V=1 hlr_auc_gw
223 + fi
224 +}
225 +
226 +src_install() {
227 + insinto /etc/${PN}
228 + doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk}
229 +
230 + fperms -R 600 /etc/${PN}
231 +
232 + dosbin ${PN}
233 + dobin ${PN}_cli
234 +
235 + if use libressl || ! use internal-tls; then
236 + dobin nt_password_hash hlr_auc_gw
237 + fi
238 +
239 + newinitd "${WORKDIR}/${EXTRAS_NAME}"/${PN}-init.d ${PN}
240 + newconfd "${WORKDIR}/${EXTRAS_NAME}"/${PN}-conf.d ${PN}
241 + systemd_dounit "${WORKDIR}/${EXTRAS_NAME}"/${PN}.service
242 +
243 + doman ${PN}{.8,_cli.1}
244 +
245 + dodoc ChangeLog README
246 + use wps && dodoc README-WPS
247 +
248 + docinto examples
249 + dodoc wired.conf
250 +
251 + if use logwatch; then
252 + insinto /etc/log.d/conf/services/
253 + doins logwatch/${PN}.conf
254 +
255 + exeinto /etc/log.d/scripts/services/
256 + doexe logwatch/${PN}
257 + fi
258 +
259 + save_config .config
260 +}
261 +
262 +pkg_postinst() {
263 + einfo
264 + einfo "If you are running openRC you need to follow this instructions:"
265 + einfo "In order to use ${PN} you need to set up your wireless card"
266 + einfo "for master mode in /etc/conf.d/net and then start"
267 + einfo "/etc/init.d/${PN}."
268 + einfo
269 + einfo "Example configuration:"
270 + einfo
271 + einfo "config_wlan0=( \"192.168.1.1/24\" )"
272 + einfo "channel_wlan0=\"6\""
273 + einfo "essid_wlan0=\"test\""
274 + einfo "mode_wlan0=\"master\""
275 + einfo
276 + #if [ -e "${KV_DIR}"/net/mac80211 ]; then
277 + # einfo "This package now compiles against the headers installed by"
278 + # einfo "the kernel source for the mac80211 driver. You should "
279 + # einfo "re-emerge ${PN} after upgrading your kernel source."
280 + #fi
281 +
282 + if use wps; then
283 + einfo "You have enabled Wi-Fi Protected Setup support, please"
284 + einfo "read the README-WPS file in /usr/share/doc/${P}"
285 + einfo "for info on how to use WPS"
286 + fi
287 +}