diff options
author | Bertrand Jacquin <beber@meleeweb.net> | 2013-05-27 22:39:18 +0200 |
---|---|---|
committer | Bertrand Jacquin <beber@meleeweb.net> | 2013-05-27 23:01:33 +0200 |
commit | 21041e62f30c865aa00aa8d356229e3b28c9bdf0 (patch) | |
tree | 79e19e1c87cb6b8f35c36c9d5b2c997279ece891 /net-wireless/hostapd | |
parent | net-wireless: wifidog, a wifi hot spot (diff) | |
download | portage-21041e62f30c865aa00aa8d356229e3b28c9bdf0.tar.xz |
net-wireless: hostapd update for hot vlan bridging
Diffstat (limited to 'net-wireless/hostapd')
-rw-r--r-- | net-wireless/hostapd/Manifest | 5 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-conf.d | 9 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-init.d | 50 | ||||
-rw-r--r-- | net-wireless/hostapd/hostapd-1.0-r1.ebuild | 208 | ||||
-rw-r--r-- | net-wireless/hostapd/hostapd-9999.ebuild | 242 |
5 files changed, 514 insertions, 0 deletions
diff --git a/net-wireless/hostapd/Manifest b/net-wireless/hostapd/Manifest new file mode 100644 index 00000000..1a125cd7 --- /dev/null +++ b/net-wireless/hostapd/Manifest @@ -0,0 +1,5 @@ +AUX hostapd-conf.d 245 SHA256 916f4b14095ee4ec8a510391c883e9f01868e18d79a3d5cbeb13a104a793d45d SHA512 f07a6cd209eca351b8545017c5f025282c3fdea838ca3df49e362571ded43973281ce4ff83984b1299db15ea9b5c21a42cbda91432220af9146bf034e2265c30 WHIRLPOOL 0ab1dbd8e04df9e7b8ae875dfdfdcdd770e4fcb62197bb81e47588a9ecf0b8bb715adbde34f2be82d630fdd536e9f888f463dd12cab0c06220c345b0093a3dd5 +AUX hostapd-init.d 1022 SHA256 a220058841e66a11603df8e968ccc68945f01e1d11c1ae498922d0e01f6fa804 SHA512 0d9d3c69c7b4c50ab08a7633b3b0b2f770647045ba967de628c34bf37644dcae6ef8288cab0fd0508b8ee8eafa8f48bda0d378c5aadbbbc5cde9f5441f7c97a1 WHIRLPOOL e86f507cff5712ff2590f39c58989a379b81feb40cedcd424188e055ac38f772a7bb9c1089efabd6ff104078257aa2a20a82790e17b085c03264d35b6f4e274d +DIST hostapd-1.0.tar.gz 1327943 SHA256 002e9dcb7e46cf82b5900a2fcf92b30fc8cdfd32a72d7fd4488588f1c013dfcc SHA512 2f189ef3d52099ee249a96820b257f331e0cb601e89dc01c583ec697d5e9a68f6b80c2913bbb4b37f18dc4a218f34ed9deb0357d55509de9d0f58dd60df33a8b WHIRLPOOL 79f0fd8b7f256d69771f8b022e74ee9908a6a613c875392cf151bdada86c077bbf8e88213547efa64c240daf9fb5e5f9bffe2fa5f7f98d5ca27d5d7058f5995a +EBUILD hostapd-1.0-r1.ebuild 5574 SHA256 3b8aef403390c311a5d0d696fe3b22d5bdf13880aeb3829351c14e084eb9b428 SHA512 737dc2214ddfc6da3f0638272dcdb004652bd2a1f85b494f73af15405725f8083b1c4e734c85c5fe2002b3e5735ee18d236b6c34f626aa24c2f17e96de254c6d WHIRLPOOL 44be6d37d65f96c3e0bfe53babbda5441e118394728960b8147d84c184491f6d519e13274008c08911aefae360cb86ef5165d94a012e5d8aaf7ed10f32e350a1 +EBUILD hostapd-9999.ebuild 6272 SHA256 c16bb7f4b01b638a87cd0661eda8b1c0b0a585a63880e1140a18ec106cc6ed95 SHA512 c170ceec2646fd1c0404974468a209dccaf7f332e448f5fce1e0956d3938d7a5244565ae61040f58df6eecfe70a5744a9e5d672d0d03bc2f60915e13b76609a0 WHIRLPOOL 0aa32939fa802562c6ebab9aec29b15e4f1f73f9f65591af92a36d9cceeeb879d84671579705dea113a78bc2776a70a093479edd03aa5a3fc3d3d80f5bf2fb31 diff --git a/net-wireless/hostapd/files/hostapd-conf.d b/net-wireless/hostapd/files/hostapd-conf.d new file mode 100644 index 00000000..7d05735e --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-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-init.d b/net-wireless/hostapd/files/hostapd-init.d new file mode 100644 index 00000000..bc5b8d6a --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-init.d @@ -0,0 +1,50 @@ +#!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/files/hostapd-init.d,v 1.3 2011/09/25 14:03:46 gurligebis Exp $ + +extra_started_commands="reload" + +depend() { + local myneeds= + for iface in ${INTERFACES}; do + myneeds="${myneeds} net.${iface}" + done + + [ -n "${myneeds}" ] && need ${myneeds} + 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 ${SVCNAME}" + start-stop-daemon --start --exec /usr/sbin/hostapd \ + -- -B ${OPTIONS} ${CONFIGS} + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --exec /usr/sbin/hostapd + eend $? +} + +reload() { + checkconfig || return 1 + + ebegin "Reloading ${SVCNAME} configuration" + kill -HUP $(pidof /usr/sbin/hostapd) > /dev/null 2>&1 + eend $? +} diff --git a/net-wireless/hostapd/hostapd-1.0-r1.ebuild b/net-wireless/hostapd/hostapd-1.0-r1.ebuild new file mode 100644 index 00000000..050941df --- /dev/null +++ b/net-wireless/hostapd/hostapd-1.0-r1.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/hostapd-1.0-r1.ebuild,v 1.6 2012/08/24 07:59:52 xmw Exp $ + +EAPI="2" + +inherit toolchain-funcs eutils + +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 ~mips ppc x86" +IUSE="debug ipv6 logwatch madwifi +ssl +wps +crda" + +DEPEND="ssl? ( dev-libs/openssl ) + kernel_linux? ( + dev-libs/libnl:1 + crda? ( net-wireless/crda ) + ) + madwifi? ( || + ( >net-wireless/madwifi-ng-tools-0.9.3 + net-wireless/madwifi-old ) )" +RDEPEND="${DEPEND}" + +S="${S}/hostapd" + +src_prepare() { + sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \ + "${S}/hostapd.conf" +} + +src_configure() { + local CONFIG="${S}/.config" + + # toolchain setup + echo "CC = $(tc-getCC)" > ${CONFIG} + + # EAP authentication methods + echo "CONFIG_EAP=y" >> ${CONFIG} + echo "CONFIG_EAP_MD5=y" >> ${CONFIG} + + if use ssl; then + # SSL authentication methods + echo "CONFIG_EAP_TLS=y" >> ${CONFIG} + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} + fi + + if use wps; then + # Enable Wi-Fi Protected Setup + echo "CONFIG_WPS=y" >> ${CONFIG} + echo "CONFIG_WPS2=y" >> ${CONFIG} + echo "CONFIG_WPS_UPNP=y" >> ${CONFIG} + einfo "Enabling Wi-Fi Protected Setup support" + fi + + echo "CONFIG_EAP_GTC=y" >> ${CONFIG} + echo "CONFIG_EAP_SIM=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA=y" >> ${CONFIG} + echo "CONFIG_EAP_PAX=y" >> ${CONFIG} + echo "CONFIG_EAP_PSK=y" >> ${CONFIG} + echo "CONFIG_EAP_SAKE=y" >> ${CONFIG} + echo "CONFIG_EAP_GPSK=y" >> ${CONFIG} + echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG} + + einfo "Enabling drivers: " + + # drivers + echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} + einfo " HostAP driver enabled" + echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} + einfo " Wired driver enabled" + echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} + einfo " Prism54 driver enabled" + echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG} + einfo " None driver enabled" + + if use madwifi; then + # Add include path for madwifi-driver headers + einfo " Madwifi driver enabled" + echo "CFLAGS += -I/usr/include/madwifi" >> ${CONFIG} + echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} + else + einfo " Madwifi driver disabled" + fi + + einfo " nl80211 driver enabled" + echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG} + echo "LIBS += -L/usr/lib" >> ${CONFIG} + + # misc + echo "CONFIG_PKCS12=y" >> ${CONFIG} + echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG} + echo "CONFIG_IAPP=y" >> ${CONFIG} + echo "CONFIG_IEEE80211R=y" >> ${CONFIG} + echo "CONFIG_IEEE80211W=y" >> ${CONFIG} + echo "CONFIG_IEEE80211N=y" >> ${CONFIG} + echo "CONFIG_PEERKEY=y" >> ${CONFIG} + echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG} + echo "CONFIG_INTERWORKING=y" >> ${CONFIG} + + if use ipv6; then + # IPv6 support + echo "CONFIG_IPV6=y" >> ${CONFIG} + fi + + if ! use debug; then + echo "CONFIG_NO_STDOUT_DEBUG=y" >> ${CONFIG} + fi + + # If we are using libnl 2.0 and above, enable support for it + # Removed for now, since the 3.2 version is broken, and we don't + # support it. + #if has_version ">=dev-libs/libnl-2.0"; then + # echo "CONFIG_LIBNL20=y" >> .config + #fi + + echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG} +# echo "CFLAGS+=-I${ROOT}usr/include/libnl3" >> ${CONFIG} + echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG} + + # TODO: Add support for BSD drivers + + default_src_configure +} + +src_compile() { + default_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}"/${PN}-init.d hostapd + newconfd "${FILESDIR}"/${PN}-conf.d hostapd + + doman hostapd.8 hostapd_cli.1 + + dodoc ChangeLog README + if use wps; then + dodoc README-WPS + fi + + docinto examples + dodoc 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 and then start" + einfo "/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 compiles against the headers installed by" + einfo "madwifi-old, madwifi-ng or madwifi-ng-tools." + einfo "You should remerge ${PN} after upgrading these packages." + einfo + einfo "Since you are using the madwifi-ng driver, you should disable or" + einfo "comment out wme_enabled from hostapd.conf, since it will" + einfo "cause problems otherwise (see bug #260377" + fi + #if [ -e "${KV_DIR}"/net/mac80211 ]; then + # einfo "This package now compiles against the headers installed by" + # einfo "the kernel source for the mac80211 driver. You should " + # einfo "re-emerge ${PN} after upgrading your kernel source." + #fi + + if use wps; then + einfo "You have enabled Wi-Fi Protected Setup support, please" + einfo "read the README-WPS file in /usr/share/doc/${P}" + einfo "for info on how to use WPS" + fi +} diff --git a/net-wireless/hostapd/hostapd-9999.ebuild b/net-wireless/hostapd/hostapd-9999.ebuild new file mode 100644 index 00000000..e5dcb874 --- /dev/null +++ b/net-wireless/hostapd/hostapd-9999.ebuild @@ -0,0 +1,242 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/hostapd-1.0-r1.ebuild,v 1.6 2012/08/24 07:59:52 xmw Exp $ + +EAPI="2" + +inherit toolchain-funcs eutils git-2 + +DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon" +HOMEPAGE="http://hostap.epitest.fi" + +EGIT_REPO_URI="git://w1.fi/srv/git/hostap.git" +EGIT_SOURCEDIR="${WORKDIR}/${P}" + +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="amd64 ~mips ppc x86" +IUSE="debug ipv6 logwatch madwifi +ssl +wps +crda" + +DEPEND="ssl? ( dev-libs/openssl ) + kernel_linux? ( + dev-libs/libnl + crda? ( net-wireless/crda ) + ) + madwifi? ( || + ( >net-wireless/madwifi-ng-tools-0.9.3 + net-wireless/madwifi-old ) )" +RDEPEND="${DEPEND}" + +S="${S}/${PN}" + +src_prepare() { + sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \ + "${S}/hostapd.conf" +} + +src_configure() { + local CONFIG="${S}/.config" + + # toolchain setup + echo "CC = $(tc-getCC)" > ${CONFIG} + + # EAP authentication methods + echo "CONFIG_EAP=y" >> ${CONFIG} + echo "CONFIG_EAP_MD5=y" >> ${CONFIG} + + if use ssl; then + # SSL authentication methods + echo "CONFIG_EAP_TLS=y" >> ${CONFIG} + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} + fi + + if use wps; then + # Enable Wi-Fi Protected Setup + echo "CONFIG_WPS=y" >> ${CONFIG} + echo "CONFIG_WPS2=y" >> ${CONFIG} + echo "CONFIG_WPS_UPNP=y" >> ${CONFIG} + einfo "Enabling Wi-Fi Protected Setup support" + fi + + echo "CONFIG_EAP_GTC=y" >> ${CONFIG} + echo "CONFIG_EAP_SIM=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA=y" >> ${CONFIG} + echo "CONFIG_EAP_PAX=y" >> ${CONFIG} + echo "CONFIG_EAP_PSK=y" >> ${CONFIG} + echo "CONFIG_EAP_SAKE=y" >> ${CONFIG} + echo "CONFIG_EAP_GPSK=y" >> ${CONFIG} + echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG} + + einfo "Enabling drivers: " + + # drivers + echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} + einfo " HostAP driver enabled" + echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} + einfo " Wired driver enabled" + echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} + einfo " Prism54 driver enabled" + echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG} + einfo " None driver enabled" + + if use madwifi; then + # Add include path for madwifi-driver headers + einfo " Madwifi driver enabled" + echo "CFLAGS += -I/usr/include/madwifi" >> ${CONFIG} + echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} + else + einfo " Madwifi driver disabled" + fi + + einfo " nl80211 driver enabled" + echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG} + echo "LIBS += -L/usr/lib" >> ${CONFIG} + + # misc + echo "CONFIG_PKCS12=y" >> ${CONFIG} + echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG} + echo "CONFIG_IAPP=y" >> ${CONFIG} + echo "CONFIG_IEEE80211R=y" >> ${CONFIG} + echo "CONFIG_IEEE80211W=y" >> ${CONFIG} + echo "CONFIG_IEEE80211N=y" >> ${CONFIG} + echo "CONFIG_PEERKEY=y" >> ${CONFIG} + echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG} + echo "CONFIG_INTERWORKING=y" >> ${CONFIG} + + if use ipv6; then + # IPv6 support + echo "CONFIG_IPV6=y" >> ${CONFIG} + fi + + if ! use debug; then + echo "CONFIG_NO_STDOUT_DEBUG=y" >> ${CONFIG} + fi + + # If we are using libnl 2.0 and above, enable support for it + # Removed for now, since the 3.2 version is broken, and we don't + # support it. + #if has_version ">=dev-libs/libnl-2.0"; then + # echo "CONFIG_LIBNL20=y" >> .config + #fi + + # TODO: Add support for BSD drivers + + cat > ${CONFIG} << EOF +CONFIG_EAP=y +CONFIG_EAP_TLS=y +CONFIG_EAP_TTLS=y +CONFIG_EAP_PEAP=y +CONFIG_EAP_GTC=y +CONFIG_EAP_PAX=y +CONFIG_EAP_PSK=y +CONFIG_EAP_SAKE=y +CONFIG_EAP_GPSK=y +CONFIG_EAP_GPSK_SHA256=y +CONFIG_DRIVER_HOSTAP=y +CONFIG_DRIVER_WIRED=y +CONFIG_DRIVER_NONE=y +CONFIG_DRIVER_NL80211=y +CONFIG_LIBNL32=y +CONFIG_RADIUS_SERVER=y +CONFIG_IAPP=y +CONFIG_IEEE80211R=y +CONFIG_IEEE80211W=y +CONFIG_IEEE80211N=y +CONFIG_PEERKEY=y +CONFIG_RSN_PREAUTH=y +CONFIG_INTERWORKING=y +CONFIG_IPV6=y +CONFIG_VLAN_NETLINK=y +CONFIG_FULL_DYNAMIC_VLAN=y +# Avoid errors +# ../src/ap/gas_serv.c:142:16: error: 'struct hostapd_bss_config' has no # member named 'hs20_oper_friendly_name' +# Due to struct depending on CONFIG_HS20 while ../src/ap/gas_serv.c don't +CONFIG_HS20=y +CFLAGS+=-I${ROOT}usr/include/libnl3 +EOF + + default_src_configure +} + +src_compile() { + #default_src_compile + tc-export CC + emake V=1 || die + + #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}"/${PN}-init.d hostapd + newconfd "${FILESDIR}"/${PN}-conf.d hostapd + + doman hostapd.8 hostapd_cli.1 + + dodoc ChangeLog README + if use wps; then + dodoc README-WPS + fi + + docinto examples + dodoc 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 and then start" + einfo "/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 compiles against the headers installed by" + einfo "madwifi-old, madwifi-ng or madwifi-ng-tools." + einfo "You should remerge ${PN} after upgrading these packages." + einfo + einfo "Since you are using the madwifi-ng driver, you should disable or" + einfo "comment out wme_enabled from hostapd.conf, since it will" + einfo "cause problems otherwise (see bug #260377" + fi + #if [ -e "${KV_DIR}"/net/mac80211 ]; then + # einfo "This package now compiles against the headers installed by" + # einfo "the kernel source for the mac80211 driver. You should " + # einfo "re-emerge ${PN} after upgrading your kernel source." + #fi + + if use wps; then + einfo "You have enabled Wi-Fi Protected Setup support, please" + einfo "read the README-WPS file in /usr/share/doc/${P}" + einfo "for info on how to use WPS" + fi +} |