summaryrefslogtreecommitdiffstats
path: root/main/hostapd/APKBUILD
blob: 83223a451409a412a0f7400474e8a857bb180225 (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
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hostapd
pkgver=2.0
pkgrel=0
pkgdesc="daemon for wireless software access points"
url="http://hostap.epitest.fi/hostapd/"
arch="all"
license="custom"
depends=
makedepends="openssl-dev libnl-dev"
install=
subpackages="$pkgname-doc"
patches="CVE-2012-4445.patch"
source="http://hostap.epitest.fi/releases/$pkgname-$pkgver.tar.gz
	$patches
	$pkgname.initd
	$pkgname.confd"


_builddir="$srcdir"/$pkgname-$pkgver/hostapd

prepare() {
	local conf="$_builddir/.config"

	cd "$_builddir"/..
	for i in $patches; do
		msg $i
		patch -p1 -i "$srcdir"/$i || return 1
	done

	cd "$_builddir"
	sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
		hostapd.conf

	# toolchain setup
	echo "CC = ${CC:-gcc}" > $conf

	# EAP authentication methods
	echo "CONFIG_EAP=y" >> $conf
	echo "CONFIG_EAP_MD5=y" >> $conf

	# SSL authentication methods
	echo "CONFIG_EAP_TLS=y" >> $conf
	echo "CONFIG_EAP_TTLS=y" >> $conf
	echo "CONFIG_EAP_MSCHAPV2=y" >> $conf
	echo "CONFIG_EAP_PEAP=y" >> $conf

	# Enable Wi-Fi Protected Setup
	echo "CONFIG_WPS=y" >> $conf
	echo "CONFIG_WPS_UPNP=y" >> $conf

	echo "CONFIG_EAP_GTC=y" >> $conf
	echo "CONFIG_EAP_SIM=y" >> $conf
	echo "CONFIG_EAP_AKA=y" >> $conf
	echo "CONFIG_EAP_PAX=y" >> $conf
	echo "CONFIG_EAP_PSK=y" >> $conf
	echo "CONFIG_EAP_SAKE=y" >> $conf
	echo "CONFIG_EAP_GPSK=y" >> $conf
	echo "CONFIG_EAP_GPSK_SHA256=y" >> $conf

	# drivers
	echo "CONFIG_DRIVER_HOSTAP=y" >> $conf
	echo "CONFIG_DRIVER_WIRED=y" >> $conf
	echo "CONFIG_DRIVER_PRISM54=y" >> $conf

	# Add include path for madwifi-driver headers
#	echo "CFLAGS += -I/usr/include/madwifi" >> $conf
#	echo "CONFIG_DRIVER_MADWIFI=y" >> $conf

	# enable nl80211 driver"
	echo "CONFIG_DRIVER_NL80211=y" >> $conf
	echo "CFLAGS += -I/usr/include/netlink" >> $conf
	echo "LIBS += -L/usr/lib" >> $conf

	# misc
	echo "CONFIG_PKCS12=y" >> $conf
	echo "CONFIG_RADIUS_SERVER=y" >> $conf
	echo "CONFIG_IAPP=y" >> $conf
	echo "CONFIG_IEEE80211R=y" >> $conf
	echo "CONFIG_IEEE80211W=y" >> $conf
	echo "CONFIG_IEEE80211N=y" >> $conf
	echo "CONFIG_PEERKEY=y" >> $conf
	echo "CONFIG_RSN_PREAUTH=y" >> $conf

	# IPv6 support
	echo "CONFIG_IPV6=y" >> $conf
}

build() {
	cd "$_builddir"
	make || return 1

	make nt_password_hash || return 1 
	make hlr_auc_gw || return 1
}

package() {
	cd "$_builddir"
	install -d "$pkgdir"/etc/hostapd
	install hostapd.conf hostapd.accept hostapd.deny hostapd.eap_user \
		hostapd.radius_clients hostapd.sim_db hostapd.wpa_psk \
		"$pkgdir"/etc/hostapd/ || return 1

	install -Dm755 hostapd "$pkgdir"/usr/sbin/hostapd \
		&& install -Dm755 hostapd_cli "$pkgdir"/usr/bin/hostapd_cli \
		&& install -Dm755 nt_password_hash \
			"$pkgdir"/usr/bin/nt_password_hash \
		&& install -Dm755 hlr_auc_gw "$pkgdir"/usr/bin/hlr_auc_gw \
		&& install -Dm755 "$srcdir"/hostapd.initd \
			"$pkgdir"/etc/init.d/hostapd \
		&& install -Dm644 "$srcdir"/hostapd.confd \
			"$pkgdir"/etc/conf.d/hostapd \
		&& install -Dm644 hostapd.8 \
			"$pkgdir"/usr/share/man/man8/hostapd.8 \
		&& install -Dm644 hostapd_cli.1 \
			"$pkgdir"/usr/share/man/man1/hostapd_cli \
		|| return 1
}

md5sums="ba22e639bc57aa4035d2ea8ffa9bbbee  hostapd-2.0.tar.gz
0d01d4641e0c33f79c1f4372613655bf  CVE-2012-4445.patch
de734b22c3ad1e85309b5634d29c6225  hostapd.initd
c91382209042defa04e79d0ae841a29e  hostapd.confd"