diff options
-rw-r--r-- | net-wireless/hostapd/ChangeLog | 9 | ||||
-rw-r--r-- | net-wireless/hostapd/Manifest | 7 | ||||
-rw-r--r-- | net-wireless/hostapd/files/digest-hostapd-0.5.3 | 1 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-0.5.3-conf.d | 9 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-0.5.3-init.d | 50 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-0.5.3-os_get_random.patch | 36 | ||||
-rw-r--r-- | net-wireless/hostapd/hostapd-0.5.3.ebuild | 132 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/ChangeLog | 9 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/Manifest | 6 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/files/digest-wpa_supplicant-0.5.3 | 1 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-stakey.patch | 21 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-wpa_cli.sh | 44 | ||||
-rw-r--r-- | net-wireless/wpa_supplicant/wpa_supplicant-0.5.3.ebuild | 174 |
13 files changed, 495 insertions, 4 deletions
diff --git a/net-wireless/hostapd/ChangeLog b/net-wireless/hostapd/ChangeLog index 99feb9003d5f..8f23ddc297b8 100644 --- a/net-wireless/hostapd/ChangeLog +++ b/net-wireless/hostapd/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-wireless/hostapd # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/ChangeLog,v 1.62 2006/04/14 13:58:56 brix Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/ChangeLog,v 1.63 2006/04/29 14:25:13 brix Exp $ + +*hostapd-0.5.3 (29 Apr 2006) + + 29 Apr 2006; Henrik Brix Andersen <brix@gentoo.org> + +files/hostapd-0.5.3-conf.d, +files/hostapd-0.5.3-init.d, + +files/hostapd-0.5.3-os_get_random.patch, +hostapd-0.5.3.ebuild: + New development snapshot. 14 Apr 2006; Henrik Brix Andersen <brix@gentoo.org> hostapd-0.4.8.ebuild, hostapd-0.5.2.ebuild: diff --git a/net-wireless/hostapd/Manifest b/net-wireless/hostapd/Manifest index 559c1560851e..59f27cc692a1 100644 --- a/net-wireless/hostapd/Manifest +++ b/net-wireless/hostapd/Manifest @@ -1,7 +1,8 @@ -MD5 7244754f8ae5f1c8afed25ef1b1716cb ChangeLog 10539 +MD5 3c77d955622e599e66c96b199fb84d79 ChangeLog 10779 MD5 b0b607a1e367c39a3b14a50fd66d89b1 files/digest-hostapd-0.4.7-r2 65 MD5 b889b17ff10dbe3193353f453f04be64 files/digest-hostapd-0.4.8 65 MD5 371819cdecb937819dcca6c56f322ff3 files/digest-hostapd-0.5.2 65 +MD5 1577a4ad5b96a07a2da9d15e0c4ea2de files/digest-hostapd-0.5.3 65 MD5 d5a08b266b9a031229e8910fe8cd18b3 files/hostapd-0.4.7-conf.d 425 MD5 4995955a0f26765b587f160d89e83910 files/hostapd-0.4.7-init.d 967 MD5 b0f2b07b294b771e1ffc4505970cb73d files/hostapd-0.4.8-conf.d 425 @@ -9,7 +10,11 @@ MD5 4150a7586faf504196a8f4f4e46c4b7a files/hostapd-0.4.8-init.d 967 MD5 44e1d599bbbbabcb53ce925ee037e42b files/hostapd-0.5.2-conf.d 245 MD5 124087c0589db2ab55758b3316d43edf files/hostapd-0.5.2-init.d 954 MD5 b4a52e58c5b08e2f69f837d0a811b8d4 files/hostapd-0.5.2-ssl.patch 371 +MD5 44e1d599bbbbabcb53ce925ee037e42b files/hostapd-0.5.3-conf.d 245 +MD5 124087c0589db2ab55758b3316d43edf files/hostapd-0.5.3-init.d 954 +MD5 8795d6fca0a69f83b03c5179fc578579 files/hostapd-0.5.3-os_get_random.patch 1496 MD5 98674360a16af6d2ee36838a0e186c05 hostapd-0.4.7-r2.ebuild 2738 MD5 0f134eb61a5ae09f24a2fa598756de71 hostapd-0.4.8.ebuild 3069 MD5 776150e37fd4c98bed965730424ac02e hostapd-0.5.2.ebuild 3288 +MD5 b6b3e58b7a3f9673adaaf9ab92708e00 hostapd-0.5.3.ebuild 3466 MD5 52a4b928b36a98e530ae455b73f868f5 metadata.xml 462 diff --git a/net-wireless/hostapd/files/digest-hostapd-0.5.3 b/net-wireless/hostapd/files/digest-hostapd-0.5.3 new file mode 100644 index 000000000000..b26698dd068c --- /dev/null +++ b/net-wireless/hostapd/files/digest-hostapd-0.5.3 @@ -0,0 +1 @@ +MD5 4e3134e8b0d86e831230f8c620fd81bb hostapd-0.5.3.tar.gz 385649 diff --git a/net-wireless/hostapd/files/hostapd-0.5.3-conf.d b/net-wireless/hostapd/files/hostapd-0.5.3-conf.d new file mode 100644 index 000000000000..7d05735eb3b4 --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-0.5.3-conf.d @@ -0,0 +1,9 @@ +# Space separated List of interfaces which needs to be started before +# hostapd +INTERFACES="wlan0" + +# Space separated list of configuration files +CONFIGS="/etc/hostapd/hostapd.conf" + +# Extra options to pass to hostapd, see hostapd(8) +OPTIONS="" diff --git a/net-wireless/hostapd/files/hostapd-0.5.3-init.d b/net-wireless/hostapd/files/hostapd-0.5.3-init.d new file mode 100644 index 000000000000..a2a00030de7f --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-0.5.3-init.d @@ -0,0 +1,50 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/files/hostapd-0.5.3-init.d,v 1.1 2006/04/29 14:25:14 brix Exp $ + +opts="start stop reload" + +depend() { + local iface + + for iface in ${INTERFACES}; do + need net.${iface} + done + + use logger +} + +checkconfig() { + local file + + for file in ${CONFIGS}; do + if [[ ! -r ${file} ]]; then + eerror "hostapd configuration file (${CONFIG}) not found" + return 1 + fi + done +} + +start() { + checkconfig || return 1 + + ebegin "Starting hostapd" + start-stop-daemon --start --exec /usr/sbin/hostapd \ + -- -B ${OPTIONS} ${CONFIGS} + eend ${?} +} + +stop() { + ebegin "Stopping hostapd" + start-stop-daemon --stop --exec /usr/sbin/hostapd + eend ${?} +} + +reload() { + checkconfig || return 1 + + ebegin "Reloading hostapd configuration" + kill -HUP $(pidof /usr/sbin/hostapd) > /dev/null 2>&1 + eend ${?} +} diff --git a/net-wireless/hostapd/files/hostapd-0.5.3-os_get_random.patch b/net-wireless/hostapd/files/hostapd-0.5.3-os_get_random.patch new file mode 100644 index 000000000000..d494d1e84d94 --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-0.5.3-os_get_random.patch @@ -0,0 +1,36 @@ +diff -ur hostapd-0.5.3/hlr_auc_gw.c hostapd-0.5.3-os_get_random/hlr_auc_gw.c +--- hostapd-0.5.3/hlr_auc_gw.c 2006-03-11 19:15:15.000000000 +0100 ++++ hostapd-0.5.3-os_get_random/hlr_auc_gw.c 2006-04-29 15:33:13.000000000 +0200 +@@ -204,7 +204,7 @@ + size_t res_len; + + #ifdef AKA_USE_MILENAGE +- os_get_random(rand, EAP_AKA_RAND_LEN); ++ hostapd_get_rand(rand, EAP_AKA_RAND_LEN); + res_len = EAP_AKA_RES_MAX_LEN; + inc_byte_array(test_sqn, 6); + printf("AKA: Milenage with SQN=%02x%02x%02x%02x%02x%02x\n", +diff -ur hostapd-0.5.3/Makefile hostapd-0.5.3-os_get_random/Makefile +--- hostapd-0.5.3/Makefile 2006-04-28 06:10:57.000000000 +0200 ++++ hostapd-0.5.3-os_get_random/Makefile 2006-04-29 15:37:04.000000000 +0200 +@@ -343,7 +343,7 @@ + $(CC) -o hostapd_cli hostapd_cli.o $(DIR_WPA_SUPPLICANT)/wpa_ctrl.o + + NOBJS = nt_password_hash.o $(DIR_WPA_SUPPLICANT)/ms_funcs.o sha1.o rc4.o md5.o +-NOBJS += $(DIR_WPA_SUPPLICANT)/crypto.o ++NOBJS += $(DIR_WPA_SUPPLICANT)/crypto.o os_$(CONFIG_OS).o + ifdef TLS_FUNCS + LIBS_n += -lcrypto + endif +diff -ur hostapd-0.5.3/ms_funcs.c hostapd-0.5.3-os_get_random/ms_funcs.c +--- hostapd-0.5.3/ms_funcs.c 2006-04-28 06:10:57.000000000 +0200 ++++ hostapd-0.5.3-os_get_random/ms_funcs.c 2006-04-29 15:32:37.000000000 +0200 +@@ -368,7 +368,7 @@ + + memset(pw_block, 0, PWBLOCK_LEN); + offset = (256 - password_len) * 2; +- os_get_random(pw_block, offset); ++ hostapd_get_rand(pw_block, offset); + for (i = 0; i < password_len; i++) + pw_block[offset + i * 2] = password[i]; + /* diff --git a/net-wireless/hostapd/hostapd-0.5.3.ebuild b/net-wireless/hostapd/hostapd-0.5.3.ebuild new file mode 100644 index 000000000000..423df84507b5 --- /dev/null +++ b/net-wireless/hostapd/hostapd-0.5.3.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/hostapd-0.5.3.ebuild,v 1.1 2006/04/29 14:25:14 brix Exp $ + +inherit eutils toolchain-funcs + +DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon" +HOMEPAGE="http://hostap.epitest.fi" +SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz" + +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +IUSE="ipv6 logwatch madwifi ssl" + +RDEPEND="ssl? ( dev-libs/openssl ) + madwifi? ( || ( net-wireless/madwifi-ng net-wireless/madwifi-old ) )" +DEPEND="${RDEPEND} + sys-apps/sed" + +src_unpack() { + local CONFIG=${S}/.config + + unpack ${A} + + cd ${S} + epatch ${FILESDIR}/${P}-os_get_random.patch + + sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \ + ${S}/hostapd.conf + + # toolchain setup + echo "CC = $(tc-getCC)" > ${CONFIG} + + # authentication methods + echo "CONFIG_EAP=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA=y" >> ${CONFIG} + echo "CONFIG_EAP_GTC=y" >> ${CONFIG} + echo "CONFIG_EAP_MD5=y" >> ${CONFIG} + echo "CONFIG_EAP_PAX=y" >> ${CONFIG} + echo "CONFIG_EAP_PSK=y" >> ${CONFIG} + echo "CONFIG_EAP_SIM=y" >> ${CONFIG} + echo "CONFIG_EAP_TLV=y" >> ${CONFIG} + echo "CONFIG_IAPP=y" >> ${CONFIG} + echo "CONFIG_PKCS12=y" >> ${CONFIG} + echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG} + echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG} + echo "CONFIG_STAKEY=y" >> ${CONFIG} + + if use ssl; then + # SSL authentication methods + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} + echo "CONFIG_EAP_TLS=y" >> ${CONFIG} + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} + fi + + if use ipv6; then + echo "CONFIG_IPV6=y" >> ${CONFIG} + fi + + # Linux specific drivers + echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} + echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} + echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} + + if use madwifi; then + # Add include path for madwifi-driver headers + echo "CFLAGS += -I${ROOT}/usr/include/madwifi" >> ${CONFIG} + echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} + fi +} + +src_compile() { + emake || die "emake failed" + + if use ssl; then + emake nt_password_hash || die "emake nt_password_hash failed" + emake hlr_auc_gw || die "emake hlr_auc_gw failed" + fi +} + +src_install() { + insinto /etc/hostapd + doins hostapd.conf hostapd.accept hostapd.deny \ + hostapd.eap_user hostapd.radius_clients hostapd.sim_db hostapd.wpa_psk + + dosbin hostapd + dobin hostapd_cli + use ssl && dobin nt_password_hash + use ssl && dobin hlr_auc_gw + + newinitd ${FILESDIR}/${P}-init.d hostapd + newconfd ${FILESDIR}/${P}-conf.d hostapd + + doman hostapd.8 hostapd_cli.1 + + dodoc ChangeLog developer.txt README + + docinto examples + dodoc madwifi.conf wired.conf + + if use logwatch; then + insinto /etc/log.d/conf/services/ + doins logwatch/hostapd.conf + + exeinto /etc/log.d/scripts/services/ + doexe logwatch/hostapd + fi +} + +pkg_postinst() { + einfo + einfo "In order to use ${PN} you need to set up your wireless card" + einfo "for master mode in /etc/conf.d/net or /etc/conf.d/wireless" + einfo "and then start /etc/init.d/hostapd." + einfo + einfo "Example configuration:" + einfo + einfo "config_wlan0=( \"192.168.1.1/24\" )" + einfo "channel_wlan0=\"6\"" + einfo "essid_wlan0=\"test\"" + einfo "mode_wlan0=\"master\"" + einfo + if use madwifi; then + einfo "This package now compiles against the headers installed by" + einfo "the madwifi driver. You should remerge ${PN} after" + einfo "upgrading your madwifi driver." + einfo + fi +} diff --git a/net-wireless/wpa_supplicant/ChangeLog b/net-wireless/wpa_supplicant/ChangeLog index 6b93647f2350..7a4f32befbf1 100644 --- a/net-wireless/wpa_supplicant/ChangeLog +++ b/net-wireless/wpa_supplicant/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-wireless/wpa_supplicant # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/ChangeLog,v 1.57 2006/04/22 16:33:34 brix Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/ChangeLog,v 1.58 2006/04/29 14:28:47 brix Exp $ + +*wpa_supplicant-0.5.3 (29 Apr 2006) + + 29 Apr 2006; Henrik Brix Andersen <brix@gentoo.org> + +files/wpa_supplicant-0.5.3-stakey.patch, + +files/wpa_supplicant-0.5.3-wpa_cli.sh, +wpa_supplicant-0.5.3.ebuild: + New development snapshot. 22 Apr 2006; Henrik Brix Andersen <brix@gentoo.org> wpa_supplicant-0.5.2.ebuild: diff --git a/net-wireless/wpa_supplicant/Manifest b/net-wireless/wpa_supplicant/Manifest index 860c113d07e0..ada9b63513c6 100644 --- a/net-wireless/wpa_supplicant/Manifest +++ b/net-wireless/wpa_supplicant/Manifest @@ -1,11 +1,15 @@ -MD5 cbdbd54d62975e119ed16ff601da383a ChangeLog 14053 +MD5 f6e395d524c66bfbbe4b967fd1266456 ChangeLog 14289 MD5 399c0ed3e8d999a49b9435a83705f96c files/digest-wpa_supplicant-0.4.7 72 MD5 3c1bdab1affb98719ab98620e2863c8d files/digest-wpa_supplicant-0.4.8 72 MD5 a9017f6f882a41e700a0a517ef60e964 files/digest-wpa_supplicant-0.5.2 72 +MD5 61520e32185ad1f5efcf26a995d1b411 files/digest-wpa_supplicant-0.5.3 72 MD5 647ec6dd4aa43749b03eabb84072b161 files/wpa_supplicant-0.4.7-wpa_cli.action 1233 MD5 c6d1b2e0c7ae03ce2de856f00f4718d8 files/wpa_supplicant-0.4.8-wpa_cli.action 1233 MD5 7557dcc784bddabf268e1c49eee4fb59 files/wpa_supplicant-0.5.2-wpa_cli.sh 1229 +MD5 89105436a3302a3551d0f9dbde5dfc2f files/wpa_supplicant-0.5.3-stakey.patch 852 +MD5 7557dcc784bddabf268e1c49eee4fb59 files/wpa_supplicant-0.5.3-wpa_cli.sh 1229 MD5 b280eebc74d70d85e664debf1adce2c3 metadata.xml 255 MD5 e160e685fea1c7c2717acebbe4fe6dff wpa_supplicant-0.4.7.ebuild 3564 MD5 3ecc467d6e993983e8fc11a3a021b0e1 wpa_supplicant-0.4.8.ebuild 3898 MD5 6a5f32065e686a4bd5acad27f39e2723 wpa_supplicant-0.5.2.ebuild 4687 +MD5 93e9129464b7303e9d74bb642842f56d wpa_supplicant-0.5.3.ebuild 4759 diff --git a/net-wireless/wpa_supplicant/files/digest-wpa_supplicant-0.5.3 b/net-wireless/wpa_supplicant/files/digest-wpa_supplicant-0.5.3 new file mode 100644 index 000000000000..f614e4793998 --- /dev/null +++ b/net-wireless/wpa_supplicant/files/digest-wpa_supplicant-0.5.3 @@ -0,0 +1 @@ +MD5 f30cd996ebdd9f1f6aeab65f8cfac3c3 wpa_supplicant-0.5.3.tar.gz 543322 diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-stakey.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-stakey.patch new file mode 100644 index 000000000000..299f0d5e7d1d --- /dev/null +++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-stakey.patch @@ -0,0 +1,21 @@ +diff -urp wpa_supplicant-0.5.3/wpa.c wpa_supplicant-0.5.3-stakey/wpa.c +--- wpa_supplicant-0.5.3/wpa.c 2006-04-25 05:18:58.000000000 +0200 ++++ wpa_supplicant-0.5.3-stakey/wpa.c 2006-04-29 16:06:21.000000000 +0200 +@@ -1849,6 +1849,8 @@ static int wpa_supplicant_process_stakey + + + static int wpa_supplicant_process_1_of_2_rsn(struct wpa_sm *sm, ++ const unsigned char *src_addr, ++ const struct wpa_eapol_key *key, + const u8 *keydata, + size_t keydatalen, + u16 key_info, +@@ -2036,7 +2038,7 @@ static void wpa_supplicant_process_1_of_ + keydatalen = WPA_GET_BE16(key->key_data_length); + + if (sm->proto == WPA_PROTO_RSN) { +- ret = wpa_supplicant_process_1_of_2_rsn(sm, ++ ret = wpa_supplicant_process_1_of_2_rsn(sm, src_addr, key, + (const u8 *) (key + 1), + keydatalen, key_info, + &gd); diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-wpa_cli.sh b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-wpa_cli.sh new file mode 100644 index 000000000000..3e2642e1aa2c --- /dev/null +++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-wpa_cli.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Copyright 1999-2006 Gentoo Foundation +# Written by Roy Marples <uberlord@gentoo.org> +# Distributed under the terms of the GNU General Public License v2 +# Alternatively, this file may be distributed under the terms of the BSD License +# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/files/wpa_supplicant-0.5.3-wpa_cli.sh,v 1.1 2006/04/29 14:28:48 brix Exp $ + +if [ -z "$1" -o -z "$2" ]; then + echo "Insufficient parameters" > /dev/stderr + exit 1 +fi + +INTERFACE="$1" +ACTION="$2" + +# Note, the below action must NOT mark the interface down via ifconfig, ip or +# similar. Addresses can be removed, changed and daemons can be stopped, but +# the interface must remain up for wpa_supplicant to work. + +if [ -f /etc/gentoo-release ]; then + EXEC="/etc/init.d/net.${INTERFACE} --quiet" +else + echo "I don't know what to do with this distro!" > /dev/stderr + exit 1 +fi + +case ${ACTION} in + CONNECTED) + EXEC="${EXEC} start" + ;; + DISCONNECTED) + EXEC="${EXEC} stop" + ;; + *) + echo "Unknown action ${ACTION}" > /dev/stderr + exit 1 + ;; +esac + +# ${EXEC} can use ${IN_BACKGROUND} so that it knows that the user isn't +# stopping the interface and a background process - like wpa_cli - is. +export IN_BACKGROUND=true + +${EXEC} diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-0.5.3.ebuild b/net-wireless/wpa_supplicant/wpa_supplicant-0.5.3.ebuild new file mode 100644 index 000000000000..fbd0a6117acc --- /dev/null +++ b/net-wireless/wpa_supplicant/wpa_supplicant-0.5.3.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/wpa_supplicant-0.5.3.ebuild,v 1.1 2006/04/29 14:28:48 brix Exp $ + +inherit eutils toolchain-funcs + +MY_P=${PN}-${PV/_/-} +S=${WORKDIR}/${MY_P} + +DESCRIPTION="IEEE 802.1X/WPA supplicant for secure wireless transfers" +HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/" +SRC_URI="http://hostap.epitest.fi/releases/${MY_P}.tar.gz" +LICENSE="|| ( GPL-2 BSD )" + +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="dbus gsm madwifi qt readline ssl" + +RDEPEND="dbus? ( sys-apps/dbus ) + gsm? ( sys-apps/pcsc-lite ) + qt? ( || ( =x11-libs/qt-3* =x11-libs/qt-4* ) ) + readline? ( sys-libs/ncurses sys-libs/readline ) + ssl? ( dev-libs/openssl ) + kernel_linux? ( madwifi? ( || ( net-wireless/madwifi-ng net-wireless/madwifi-old ) ) ) + !kernel_linux? ( net-libs/libpcap )" +DEPEND="sys-apps/sed + ${RDEPEND}" + +src_unpack() { + local CONFIG=${S}/.config + + unpack ${A} + + cd ${S} + epatch ${FILESDIR}/${P}-stakey.patch + + # net/bpf.h needed for net-libs/libpcap on Gentoo FreeBSD + sed -i \ + -e "s:\(#include <pcap\.h>\):#include <net/bpf.h>\n\1:" \ + ${S}/l2_packet_freebsd.c + + # toolchain setup + echo "CC = $(tc-getCC)" > ${CONFIG} + + # basic setup + echo "CONFIG_CTRL_IFACE=y" >> ${CONFIG} + echo "CONFIG_BACKEND=file" >> ${CONFIG} + + # basic authentication methods + echo "CONFIG_EAP_GTC=y" >> ${CONFIG} + echo "CONFIG_EAP_MD5=y" >> ${CONFIG} + echo "CONFIG_EAP_OTP=y" >> ${CONFIG} + echo "CONFIG_EAP_PAX=y" >> ${CONFIG} + echo "CONFIG_EAP_PSK=y" >> ${CONFIG} + echo "CONFIG_EAP_TLV=y" >> ${CONFIG} + echo "CONFIG_IEEE8021X_EAPOL=y" >> ${CONFIG} + echo "CONFIG_PKCS12=y" >> ${CONFIG} + echo "CONFIG_STAKEY=y" >> ${CONFIG} + + if use dbus; then + echo "CONFIG_CTRL_IFACE_DBUS=y" >> ${CONFIG} + fi + + if use gsm; then + # smart card authentication + echo "CONFIG_EAP_SIM=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA=y" >> ${CONFIG} + echo "CONFIG_PCSC=y" >> ${CONFIG} + fi + + if use readline; then + # readline/history support for wpa_cli + echo "CONFIG_READLINE=y" >> ${CONFIG} + fi + + if use ssl; then + # SSL authentication methods + echo "CONFIG_EAP_LEAP=y" >> ${CONFIG} + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} + echo "CONFIG_EAP_TLS=y" >> ${CONFIG} + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} + echo "CONFIG_SMARTCARD=y" >> ${CONFIG} + fi + + if use kernel_linux; then + # Linux specific drivers + echo "CONFIG_DRIVER_ATMEL=y" >> ${CONFIG} + echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} + echo "CONFIG_DRIVER_IPW=y" >> ${CONFIG} + echo "CONFIG_DRIVER_NDISWRAPPER=y" >> ${CONFIG} + echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} + echo "CONFIG_DRIVER_WEXT=y" >> ${CONFIG} + echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} + + if use madwifi; then + # Add include path for madwifi-driver headers + echo "CFLAGS += -I${ROOT}/usr/include/madwifi" >> ${CONFIG} + echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} + fi + fi + + if use kernel_FreeBSD; then + # FreeBSD specific driver + echo "CONFIG_DRIVER_BSD=y" >> ${CONFIG} + fi + + # people seem to take the example configuration file too literally + # bug #102361 + sed -i \ + -e "s:^\(opensc_engine_path\):#\1:" \ + -e "s:^\(pkcs11_engine_path\):#\1:" \ + -e "s:^\(pkcs11_module_path\):#\1:" \ + ${S}/wpa_supplicant.conf || die +} + +src_compile() { + emake || die "emake failed" + + if use qt; then + if has_version '=x11-libs/qt-4*'; then + qmake -o "${S}"/wpa_gui-qt4/Makefile "${S}"/wpa_gui-qt4/wpa_gui.pro + cd "${S}"/wpa_gui-qt4 + emake || die "emake wpa_gui-qt4 failed" + else + [[ -d ${QTDIR}/etc/settings ]] && addwrite ${QTDIR}/etc/settings + emake wpa_gui || die "emake wpa_gui failed" + fi + fi +} + +src_install() { + into / + dosbin wpa_supplicant + dobin wpa_cli wpa_passphrase + + exeinto /etc/wpa_supplicant/ + newexe ${FILESDIR}/${MY_P}-wpa_cli.sh wpa_cli.sh + + # compatibility symlink for older baselayout + dosym /etc/wpa_supplicant/wpa_cli.sh /sbin/wpa_cli.action + + if use qt; then + into /usr + + if has_version '=x11-libs/qt-4*'; then + dobin wpa_gui-qt4/wpa_gui + else + dobin wpa_gui/wpa_gui + fi + fi + + dodoc ChangeLog COPYING eap_testing.txt README todo.txt + newdoc wpa_supplicant.conf wpa_supplicant.conf.example + + doman doc/docbook/*.8 + doman doc/docbook/*.5 +} + +pkg_postinst() { + einfo + einfo "To use ${MY_P} you must create the configuration file" + einfo "/etc/wpa_supplicant/wpa_supplicant.conf" + einfo + einfo "An example configuration file is available as" + einfo "/usr/share/doc/${PF}/wpa_supplicant.conf.example.gz" + einfo + if use madwifi; then + einfo "This package now compiles against the headers installed by" + einfo "the madwifi driver. You should reemerge ${PN} after" + einfo "upgrading your madwifi driver." + einfo + fi +} |