net-wireless/wpa_supplicant: mostly fix bug #598138
authorZero_Chaos <zerochaos@gentoo.org>
Fri, 8 Dec 2017 17:10:47 +0000 (12:10 -0500)
committerZero_Chaos <zerochaos@gentoo.org>
Fri, 8 Dec 2017 17:11:02 +0000 (12:11 -0500)
Package-Manager: Portage-2.3.16, Repoman-2.3.6

net-wireless/wpa_supplicant/metadata.xml
net-wireless/wpa_supplicant/wpa_supplicant-2.6-r4.ebuild

index f0eca57a1d897f1e56c6ea68172621c3a679af0b..807ccfc0e03566add672703a694bb7046358caee 100644 (file)
        <use>
                <flag name="ap">Add support for access point mode</flag>
                <flag name="eap-sim">Add support for EAP-SIM authentication algorithm</flag>
+               <flag name="eapol_test">Build and install eapol_test binary</flag>
                <flag name="fasteap">Add support for FAST-EAP authentication algorithm</flag>
                <flag name="hs2-0">Add support for 802.11u and Passpoint for HotSpot 2.0</flag>
                <flag name="p2p">Add support for Wi-Fi Direct mode</flag>
                <flag name="ps3">Add support for ps3 hypervisor driven gelic wifi</flag>
+               <flag name="privsep">Enable wpa_priv privledge separation binary</flag>
                <flag name="tdls">Add support for Tunneled Direct Link Setup (802.11z)</flag>
                <flag name="uncommon-eap-types">Add support for GPSK, SAKE, GPSK_SHA256, IKEV2 and EKE</flag>
                <flag name="wps">Add support for Wi-Fi Protected Setup</flag>
index bbcfd91a660bdcec1dc83814f90b2f95ef5327a2..d33978b98b03f93251c7dd5e0c96a39e03e9d13f 100644 (file)
@@ -12,7 +12,7 @@ LICENSE="|| ( GPL-2 BSD )"
 
 SLOT="0"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
-IUSE="ap dbus gnutls eap-sim fasteap +hs2-0 libressl p2p ps3 qt5 readline selinux smartcard ssl tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"
+IUSE="ap dbus eap-sim eapol_test fasteap gnutls +hs2-0 libressl p2p privsep ps3 qt5 readline selinux smartcard ssl tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"
 REQUIRED_USE="fasteap? ( !ssl ) smartcard? ( ssl )"
 
 CDEPEND="dbus? ( sys-apps/dbus )
@@ -72,6 +72,9 @@ Kconfig_style_config() {
                        sed -i "/^# *$CONFIG_PARAM=/s/^# *//" .config || echo "Kconfig_style_config error uncommenting $CONFIG_PARAM"
                        #set item = $setting (defaulting to y)
                        sed -i "/^$CONFIG_PARAM/s/=.*/=$setting/" .config || echo "Kconfig_style_config error setting $CONFIG_PARAM=$setting"
+                       if [ -z "$( grep ^$CONFIG_PARAM= .config )" ] ; then
+                               echo "$CONFIG_PARAM=$setting" >>.config
+                       fi
                else
                        #ensure item commented out
                        sed -i "/^$CONFIG_PARAM/s/$CONFIG_PARAM/# $CONFIG_PARAM/" .config || echo "Kconfig_style_config error commenting $CONFIG_PARAM"
@@ -188,6 +191,10 @@ src_configure() {
                Kconfig_style_config CTRL_IFACE_DBUS_INTRO
        fi
 
+       if use eapol_test ; then
+               Kconfig_style_config EAPOL_TEST
+       fi
+
        # Enable support for writing debug info to a log file and syslog.
        Kconfig_style_config DEBUG_FILE
        Kconfig_style_config DEBUG_SYSLOG
@@ -289,9 +296,22 @@ src_configure() {
                Kconfig_style_config AP
        fi
 
+       # Enable essentials for AP/P2P
+       if use ap || use p2p ; then
+               # Enabling HT support (802.11n)
+               Kconfig_style_config IEEE80211N
+
+               # Enabling VHT support (802.11ac)
+               Kconfig_style_config IEEE80211AC
+       fi
+
        # Enable mitigation against certain attacks against TKIP
        Kconfig_style_config DELAYED_MIC_ERROR_REPORT
 
+       if use privsep ; then
+               Kconfig_style_config PRIVSEP
+       fi
+
        # If we are using libnl 2.0 and above, enable support for it
        # Bug 382159
        # Removed for now, since the 3.2 version is broken, and we don't
@@ -320,10 +340,15 @@ src_compile() {
                einfo "Building wpa_gui"
                emake -C "${S}"/wpa_gui-qt4
        fi
+
+       if use eapol_test ; then
+               emake eapol_test
+       fi
 }
 
 src_install() {
        dosbin wpa_supplicant
+       use privsep && dosbin wpa_priv
        dobin wpa_cli wpa_passphrase
 
        # baselayout-1 compat
@@ -355,6 +380,8 @@ src_install() {
                dobin wpa_gui-qt4/wpa_gui
                doicon wpa_gui-qt4/icons/wpa_gui.svg
                make_desktop_entry wpa_gui "WPA Supplicant Administration GUI" "wpa_gui" "Qt;Network;"
+       else
+               rm "${ED}"/usr/share/man/man8/wpa_gui.8
        fi
 
        use wimax && emake DESTDIR="${D}" -C ../src/eap_peer install
@@ -371,6 +398,10 @@ src_install() {
                systemd_dounit systemd/wpa_supplicant.service
        fi
 
+       if use eapol_test ; then
+               dobin eapol_test
+       fi
+
        systemd_dounit "systemd/wpa_supplicant@.service"
        systemd_dounit "systemd/wpa_supplicant-nl80211@.service"
        systemd_dounit "systemd/wpa_supplicant-wired@.service"