diff options
author | Aric Belsito <lluixhi@gmail.com> | 2017-02-28 12:56:12 -0800 |
---|---|---|
committer | Aric Belsito <lluixhi@gmail.com> | 2017-02-28 12:56:12 -0800 |
commit | 7816a1b0b4d4b91764c7020ded81ab8cde30515b (patch) | |
tree | 783238215976e3a16207a175d33a73e50eaedc29 /net-wireless | |
parent | net-mail/fetchmail: sync with upstream (diff) | |
download | libressl-7816a1b0b4d4b91764c7020ded81ab8cde30515b.tar.gz libressl-7816a1b0b4d4b91764c7020ded81ab8cde30515b.tar.bz2 libressl-7816a1b0b4d4b91764c7020ded81ab8cde30515b.zip |
net-wireless/hostapd: add most recent version
close #175
Diffstat (limited to 'net-wireless')
-rw-r--r-- | net-wireless/hostapd/Manifest | 1 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-2.6-libressl.patch | 21 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-conf.d | 9 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd-init.d | 39 | ||||
-rw-r--r-- | net-wireless/hostapd/files/hostapd.service | 9 | ||||
-rw-r--r-- | net-wireless/hostapd/hostapd-2.6.ebuild | 222 | ||||
-rw-r--r-- | net-wireless/hostapd/metadata.xml | 21 |
7 files changed, 322 insertions, 0 deletions
diff --git a/net-wireless/hostapd/Manifest b/net-wireless/hostapd/Manifest new file mode 100644 index 0000000..d3f91f3 --- /dev/null +++ b/net-wireless/hostapd/Manifest @@ -0,0 +1 @@ +DIST hostapd-2.6.tar.gz 1822341 SHA256 01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d SHA512 e60baaa092786250b8de9935f5417c7626f5d749210cce9f83d776b65c19fc92a8141f41923389f05c16295d482a15ae8d8b744f4667425040c99e3c2f5b1bda WHIRLPOOL fa093c371a66f3aa834d44060330259dc20e3a1937ffacc4450c5c645291c2bd4b31bbe1827f7d27bfca724c5e26f53ea59f2e3aa69a4c87177212bb491b119a diff --git a/net-wireless/hostapd/files/hostapd-2.6-libressl.patch b/net-wireless/hostapd/files/hostapd-2.6-libressl.patch new file mode 100644 index 0000000..2010ca8 --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-2.6-libressl.patch @@ -0,0 +1,21 @@ +diff -Naur hostapd-2.6.orig/src/crypto/crypto_openssl.c hostapd-2.6/src/crypto/crypto_openssl.c +--- hostapd-2.6.orig/src/crypto/crypto_openssl.c 2017-02-28 12:49:32.286902599 -0800 ++++ hostapd-2.6/src/crypto/crypto_openssl.c 2017-02-28 12:53:03.119653570 -0800 +@@ -611,7 +611,7 @@ + + void * dh5_init(struct wpabuf **priv, struct wpabuf **publ) + { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + DH *dh; + struct wpabuf *pubkey = NULL, *privkey = NULL; + size_t publen, privlen; +@@ -712,7 +712,7 @@ + + void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ) + { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + DH *dh; + + dh = DH_new(); diff --git a/net-wireless/hostapd/files/hostapd-conf.d b/net-wireless/hostapd/files/hostapd-conf.d new file mode 100644 index 0000000..7d05735 --- /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 0000000..fc423e7 --- /dev/null +++ b/net-wireless/hostapd/files/hostapd-init.d @@ -0,0 +1,39 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +pidfile="/run/${SVCNAME}.pid" +command="/usr/sbin/hostapd" +command_args="-P ${pidfile} -B ${OPTIONS} ${CONFIGS}" + +extra_started_commands="reload" + +depend() { + local myneeds= + for iface in ${INTERFACES}; do + myneeds="${myneeds} net.${iface}" + done + + [ -n "${myneeds}" ] && need ${myneeds} + use logger +} + +start_pre() { + local file + + for file in ${CONFIGS}; do + if [ ! -r "${file}" ]; then + eerror "hostapd configuration file (${CONFIG}) not found" + return 1 + fi + done +} + +reload() { + start_pre || return 1 + + ebegin "Reloading ${SVCNAME} configuration" + kill -HUP $(cat ${pidfile}) > /dev/null 2>&1 + eend $? +} diff --git a/net-wireless/hostapd/files/hostapd.service b/net-wireless/hostapd/files/hostapd.service new file mode 100644 index 0000000..8f0ee8e --- /dev/null +++ b/net-wireless/hostapd/files/hostapd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator +After=network.target + +[Service] +ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf + +[Install] +WantedBy=multi-user.target diff --git a/net-wireless/hostapd/hostapd-2.6.ebuild b/net-wireless/hostapd/hostapd-2.6.ebuild new file mode 100644 index 0000000..68f116a --- /dev/null +++ b/net-wireless/hostapd/hostapd-2.6.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit toolchain-funcs eutils systemd + +# bogus commit to force manifest regeneration #596462 + +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 ~arm ~mips ppc x86" +IUSE="ipv6 libressl logwatch netlink sqlite +ssl +wps +crda" + +DEPEND="ssl? ( + !libressl? ( dev-libs/openssl:*[-bindist] ) + libressl? ( dev-libs/libressl:= ) + ) + kernel_linux? ( + dev-libs/libnl:3 + crda? ( net-wireless/crda ) + ) + netlink? ( net-libs/libnfnetlink ) + sqlite? ( >=dev-db/sqlite-3 )" + +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-libressl.patch ) + +S="${S}/${PN}" + +src_prepare() { + # Allow users to apply patches to src/drivers for example, + # i.e. anything outside ${S}/${PN} + pushd ../ >/dev/null || die + default + popd >/dev/null || die + + sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \ + "${S}/hostapd.conf" || die +} + +src_configure() { + local CONFIG="${S}/.config" + + # toolchain setup + echo "CC = $(tc-getCC)" > ${CONFIG} + + # EAP authentication methods + echo "CONFIG_EAP=y" >> ${CONFIG} + echo "CONFIG_ERP=y" >> ${CONFIG} + echo "CONFIG_EAP_MD5=y" >> ${CONFIG} + + if use ssl; then + # SSL authentication methods + echo "CONFIG_EAP_FAST=y" >> ${CONFIG} + echo "CONFIG_EAP_TLS=y" >> ${CONFIG} + echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} + echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} + echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} + echo "CONFIG_TLSV11=y" >> ${CONFIG} + echo "CONFIG_TLSV12=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} + echo "CONFIG_WPS_NFC=y" >> ${CONFIG} + einfo "Enabling Wi-Fi Protected Setup support" + fi + + echo "CONFIG_EAP_IKEV2=y" >> ${CONFIG} + echo "CONFIG_EAP_TNC=y" >> ${CONFIG} + echo "CONFIG_EAP_GTC=y" >> ${CONFIG} + echo "CONFIG_EAP_SIM=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA=y" >> ${CONFIG} + echo "CONFIG_EAP_AKA_PRIME=y" >> ${CONFIG} + echo "CONFIG_EAP_EKE=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} + echo "CONFIG_EAP_PWD=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" + + einfo " nl80211 driver enabled" + echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG} + + # epoll + echo "CONFIG_ELOOP_EPOLL=y" >> ${CONFIG} + + # misc + echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG} + 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_IEEE80211AC=y" >> ${CONFIG} + echo "CONFIG_PEERKEY=y" >> ${CONFIG} + echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG} + echo "CONFIG_INTERWORKING=y" >> ${CONFIG} + echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG} + echo "CONFIG_HS20=y" >> ${CONFIG} + echo "CONFIG_WNM=y" >> ${CONFIG} + echo "CONFIG_FST=y" >> ${CONFIG} + echo "CONFIG_FST_TEST=y" >> ${CONFIG} + echo "CONFIG_ACS=y" >> ${CONFIG} + + if use netlink; then + # Netlink support + echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG} + fi + + if use ipv6; then + # IPv6 support + echo "CONFIG_IPV6=y" >> ${CONFIG} + fi + + if use sqlite; then + # Sqlite support + echo "CONFIG_SQLITE=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-3.2"; then + echo "CONFIG_LIBNL32=y" >> .config + fi + + # TODO: Add support for BSD drivers + + default_src_configure +} + +src_compile() { + emake V=1 + + if use ssl; then + emake V=1 nt_password_hash + emake V=1 hlr_auc_gw + fi +} + +src_install() { + insinto /etc/${PN} + doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk} + + fperms -R 600 /etc/${PN} + + dosbin ${PN} + dobin ${PN}_cli + + use ssl && dobin nt_password_hash hlr_auc_gw + + newinitd "${FILESDIR}"/${PN}-init.d ${PN} + newconfd "${FILESDIR}"/${PN}-conf.d ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service + + doman ${PN}{.8,_cli.1} + + dodoc ChangeLog README + use wps && dodoc README-WPS + + docinto examples + dodoc wired.conf + + if use logwatch; then + insinto /etc/log.d/conf/services/ + doins logwatch/${PN}.conf + + exeinto /etc/log.d/scripts/services/ + doexe logwatch/${PN} + fi +} + +pkg_postinst() { + einfo + einfo "If you are running openRC you need to follow this instructions:" + 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/${PN}." + 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 [ -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/metadata.xml b/net-wireless/hostapd/metadata.xml new file mode 100644 index 0000000..780abed --- /dev/null +++ b/net-wireless/hostapd/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gurligebis@gentoo.org</email> + <name>Bjarke Istrup Pedersen</name> + </maintainer> + <longdescription> + User space daemon for the hostap-driver. + Extended IEEE 802.11 management, IEEE 802.1X Authenticator, + RADIUS Authentication client, RADIUS Accounting client + </longdescription> + <use> + <flag name="crda">Add CRDA support</flag> + <flag name="logwatch">Install support files for + <pkg>sys-apps/logwatch</pkg></flag> + <flag name="netlink">Adding support for using netlink to create VLANs</flag> + <flag name="sqlite">Adding sqlite support</flag> + <flag name="wps">Add support for Wi-Fi Protected Setup</flag> + </use> +</pkgmetadata> |