Lines 4-10
Link Here
|
4 |
|
4 |
|
5 |
EAPI="4" |
5 |
EAPI="4" |
6 |
|
6 |
|
7 |
inherit toolchain-funcs eutils |
7 |
inherit toolchain-funcs eutils savedconfig flag-o-matic |
8 |
|
8 |
|
9 |
DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon" |
9 |
DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon" |
10 |
HOMEPAGE="http://hostap.epitest.fi" |
10 |
HOMEPAGE="http://hostap.epitest.fi" |
Lines 35-125
Link Here
|
35 |
"${S}/hostapd.conf" || die |
35 |
"${S}/hostapd.conf" || die |
36 |
} |
36 |
} |
37 |
|
37 |
|
|
|
38 |
hostapd_config_option() { |
39 |
local key="$1" ; shift |
40 |
local val="$@" |
41 |
|
42 |
if ! grep -qE "^(#| )*CONFIG_${key}[ =]" "${CONFIG}" ; then |
43 |
eqawarn "CONFIG_${key} is missing in defconfig" |
44 |
echo >> "${CONFIG}" |
45 |
echo "# .config imported from ${S}/defconfig is missing CONFIG_${key}" >> "${CONFIG}" |
46 |
echo "# CONFIG_${key} is not set" >> "${CONFIG}" |
47 |
fi |
48 |
|
49 |
if [[ ${val} == "n" ]] ; then |
50 |
sed -i -re "s:^(#| )*CONFIG_${key}[ =].*:# CONFIG_${key} is not set:" "${CONFIG}" |
51 |
else |
52 |
sed -i -re "s:^(#| )*CONFIG_${key}[ =].*:CONFIG_${key}=${val}:" "${CONFIG}" |
53 |
fi |
54 |
|
55 |
einfo $(grep -E "^(#| )*CONFIG_${key}[ =]" "${CONFIG}") |
56 |
} |
57 |
|
38 |
src_configure() { |
58 |
src_configure() { |
39 |
local CONFIG="${S}/.config" |
59 |
tc-export CC |
40 |
|
60 |
|
41 |
# toolchain setup |
61 |
#append-libs -L/usr/lib |
42 |
echo "CC = $(tc-getCC)" > ${CONFIG} |
62 |
# Add include path for madwifi-driver headers |
|
|
63 |
use madwifi && append-cflags -I/usr/include/madwifi |
43 |
|
64 |
|
44 |
# EAP authentication methods |
65 |
CONFIG="${S}/.config" |
45 |
echo "CONFIG_EAP=y" >> ${CONFIG} |
66 |
restore_config "${CONFIG}" |
46 |
echo "CONFIG_EAP_MD5=y" >> ${CONFIG} |
|
|
47 |
|
67 |
|
48 |
if use ssl; then |
68 |
[[ -f "${CONFIG}" ]] && return 0 |
49 |
# SSL authentication methods |
|
|
50 |
echo "CONFIG_EAP_TLS=y" >> ${CONFIG} |
51 |
echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} |
52 |
echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} |
53 |
echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} |
54 |
fi |
55 |
|
69 |
|
56 |
if use wps; then |
70 |
einfo "Generating configuration based on defconfig" |
57 |
# Enable Wi-Fi Protected Setup |
71 |
cp "${S}/defconfig" "${CONFIG}" |
58 |
echo "CONFIG_WPS=y" >> ${CONFIG} |
|
|
59 |
echo "CONFIG_WPS2=y" >> ${CONFIG} |
60 |
echo "CONFIG_WPS_UPNP=y" >> ${CONFIG} |
61 |
einfo "Enabling Wi-Fi Protected Setup support" |
62 |
fi |
63 |
|
72 |
|
64 |
echo "CONFIG_EAP_GTC=y" >> ${CONFIG} |
73 |
# EAP authentication methods |
65 |
echo "CONFIG_EAP_SIM=y" >> ${CONFIG} |
74 |
hostapd_config_option EAP y |
66 |
echo "CONFIG_EAP_AKA=y" >> ${CONFIG} |
75 |
hostapd_config_option EAP_MD5 y |
67 |
echo "CONFIG_EAP_PAX=y" >> ${CONFIG} |
|
|
68 |
echo "CONFIG_EAP_PSK=y" >> ${CONFIG} |
69 |
echo "CONFIG_EAP_SAKE=y" >> ${CONFIG} |
70 |
echo "CONFIG_EAP_GPSK=y" >> ${CONFIG} |
71 |
echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG} |
72 |
|
76 |
|
73 |
einfo "Enabling drivers: " |
77 |
# SSL authentication methods |
|
|
78 |
hostapd_config_option EAP_TLS $(usex ssl y n) |
79 |
hostapd_config_option EAP_TTLS $(usex ssl y n) |
80 |
hostapd_config_option EAP_MSCHAPV2 $(usex ssl y n) |
81 |
hostapd_config_option EAP_PEAP $(usex ssl y n) |
82 |
|
83 |
# Enable Wi-Fi Protected Setup |
84 |
hostapd_config_option WPS $(usex wps y n) |
85 |
hostapd_config_option WPS2 $(usex wps y n) |
86 |
hostapd_config_option WPS_UPNP $(usex wps y n) |
87 |
|
88 |
hostapd_config_option EAP_GTC y |
89 |
hostapd_config_option EAP_SIM y |
90 |
hostapd_config_option EAP_AKA y |
91 |
hostapd_config_option EAP_PAX y |
92 |
hostapd_config_option EAP_PSK y |
93 |
hostapd_config_option EAP_SAKE y |
94 |
hostapd_config_option EAP_GPSK y |
95 |
hostapd_config_option EAP_GPSK_SHA256 y |
74 |
|
96 |
|
75 |
# drivers |
97 |
# drivers |
76 |
echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} |
98 |
# TODO: Add support for BSD drivers |
77 |
einfo " HostAP driver enabled" |
99 |
hostapd_config_option DRIVER_HOSTAP y |
78 |
echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} |
100 |
hostapd_config_option DRIVER_WIRED y |
79 |
einfo " Wired driver enabled" |
101 |
hostapd_config_option DRIVER_NONE y |
80 |
echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} |
102 |
hostapd_config_option DRIVER_MADWIFI $(usex madwifi y n) |
81 |
einfo " Prism54 driver enabled" |
103 |
hostapd_config_option DRIVER_NL80211 y |
82 |
echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG} |
|
|
83 |
einfo " None driver enabled" |
84 |
|
85 |
if use madwifi; then |
86 |
# Add include path for madwifi-driver headers |
87 |
einfo " Madwifi driver enabled" |
88 |
echo "CFLAGS += -I/usr/include/madwifi" >> ${CONFIG} |
89 |
echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} |
90 |
else |
91 |
einfo " Madwifi driver disabled" |
92 |
fi |
93 |
|
94 |
einfo " nl80211 driver enabled" |
95 |
echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG} |
96 |
echo "LIBS += -L/usr/lib" >> ${CONFIG} |
97 |
|
104 |
|
98 |
# misc |
105 |
# misc |
99 |
echo "CONFIG_PKCS12=y" >> ${CONFIG} |
106 |
hostapd_config_option PKCS12 y |
100 |
echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG} |
107 |
hostapd_config_option RADIUS_SERVER y |
101 |
echo "CONFIG_IAPP=y" >> ${CONFIG} |
108 |
hostapd_config_option IAPP y |
102 |
echo "CONFIG_IEEE80211R=y" >> ${CONFIG} |
109 |
hostapd_config_option IEEE80211R y |
103 |
echo "CONFIG_IEEE80211W=y" >> ${CONFIG} |
110 |
hostapd_config_option IEEE80211W y |
104 |
echo "CONFIG_IEEE80211N=y" >> ${CONFIG} |
111 |
hostapd_config_option IEEE80211N y |
105 |
echo "CONFIG_PEERKEY=y" >> ${CONFIG} |
112 |
hostapd_config_option PEERKEY y |
106 |
echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG} |
113 |
hostapd_config_option RSN_PREAUTH y |
107 |
echo "CONFIG_INTERWORKING=y" >> ${CONFIG} |
114 |
hostapd_config_option INTERWORKING y |
108 |
|
115 |
|
109 |
if use ipv6; then |
116 |
# IPv6 support |
110 |
# IPv6 support |
117 |
hostapd_config_option IPV6 $(usex ipv6 y n) |
111 |
echo "CONFIG_IPV6=y" >> ${CONFIG} |
|
|
112 |
fi |
113 |
|
118 |
|
114 |
# If we are using libnl 2.0 and above, enable support for it |
119 |
# If we are using libnl 2.0 and above, enable support for it |
115 |
# Removed for now, since the 3.2 version is broken, and we don't |
120 |
# Removed for now, since the 3.2 version is broken, and we don't |
116 |
# support it. |
121 |
# support it. |
117 |
if has_version ">=dev-libs/libnl-3.2"; then |
122 |
if has_version ">=dev-libs/libnl-3.2"; then |
118 |
echo "CONFIG_LIBNL32=y" >> .config |
123 |
hostapd_config_option LIBNL32 y |
|
|
124 |
else |
125 |
hostapd_config_option LIBNL32 n |
119 |
fi |
126 |
fi |
120 |
|
127 |
|
121 |
# TODO: Add support for BSD drivers |
|
|
122 |
|
123 |
default_src_configure |
128 |
default_src_configure |
124 |
} |
129 |
} |
125 |
|
130 |
|
Lines 133-138
Link Here
|
133 |
} |
138 |
} |
134 |
|
139 |
|
135 |
src_install() { |
140 |
src_install() { |
|
|
141 |
save_config "${CONFIG}" |
142 |
|
136 |
insinto /etc/${PN} |
143 |
insinto /etc/${PN} |
137 |
doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk} |
144 |
doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk} |
138 |
|
145 |
|