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