# $Id$ PNAME="wpa-supplicant" PVER="2.0" PBUILD="r3" PCAT="net-wlan" DESCRIPTION="Linux WPA/WPA2/IEEE 802.1X Supplicant." HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/" DEPEND=">= dev-libs/openssl-1.0.1 >= sys-apps/dbus-1.6 >= sys-libs/readline-6.2 == dev-libs/libnl3-3.2.22 >= virtual/sed" SRCFILE="${PNAME/-/_}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME/-/_}-${PVER}/" # confd cvs revision CONF_CVS_REV=1.3 SKEL_CVS_REV=1.3 sminclude mtools SRC_URI=( http://hostap.epitest.fi/releases/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/confd-wpa_supplicant.skel-${SKEL_CVS_REV} mirror://${PNAME}/confd-wpa_supplicant-${CONF_CVS_REV} ) # latest stable branch UP2TAG="stable" # latest devel branch #UP2TAG="development" UP2DATE="updatecmd ${HOMEPAGE} | grep -A1 'Latest ${UP2TAG}' | sed -n 's/.*-\(.*\).tar.*/\1/;$ p'" src_prepare() { local CONFIG=${SRCDIR}/wpa_supplicant/.config munpack ${SRCFILE} || die cd ${SRCDIR}/wpa_supplicant # broken Makefile sed -i 's@/usr/local@$(PREFIX)@g' Makefile # basic setup echo "CONFIG_CTRL_IFACE=y" >> ${CONFIG} || die echo "CONFIG_BACKEND=file" >> ${CONFIG} || die echo "CONFIG_NO_RANDOM_POOL=y" >> ${CONFIG} || die # dbus support echo "CONFIG_CTRL_IFACE_DBUS=y" >> ${CONFIG} # Add support for new DBus control interface # (fi.w1.hostap.wpa_supplicant1) echo "CONFIG_CTRL_IFACE_DBUS_NEW=y" >> ${CONFIG} # Add introspection support for new DBus control interface echo "CONFIG_CTRL_IFACE_DBUS_INTRO=y" >> ${CONFIG} # readline echo "CONFIG_READLINE=y" >> ${CONFIG} # libnl-3.2 echo "CONFIG_LIBNL32=y" >> ${CONFIG} # wi-fi protected setup (WPS) support echo "CONFIG_WPS=y" >> ${CONFIG} || die # enable WPS support with NFC config method echo "CONFIG_WPS_NFC=y" >> ${CONFIG} || die # # enable mitigation against certain attacks against TKIP # echo "CONFIG_DELAYED_MIC_ERROR_REPORT=y" >> ${CONFIG} || die # # no debug # echo "CONFIG_NO_STDOUT_DEBUG=y" >> ${CONFIG} || die # add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG} || die # support HT overrides (disable HT/HT40, mask MCS rates, etc.) echo "CONFIG_HT_OVERRIDES=y" >> ${CONFIG} || die # AP mode operations echo "CONFIG_AP=y" >> ${CONFIG} || die # P2P (Wi-Fi Direct) echo "CONFIG_P2P=y" >> ${CONFIG} || die # autoscan echo "CONFIG_AUTOSCAN_EXPONENTIAL=y" >> ${CONFIG} || die # for periodic module: echo "CONFIG_AUTOSCAN_PERIODIC=y" >> ${CONFIG} || die # RSN IBSS/AdHoc support echo "CONFIG_IBSS_RSN=y" >> ${CONFIG} || die # simple background scan echo "CONFIG_BGSCAN_SIMPLE=y" >> ${CONFIG} || die # basic authentication methods echo "CONFIG_EAP_GTC=y" >> ${CONFIG} || die echo "CONFIG_EAP_MD5=y" >> ${CONFIG} || die echo "CONFIG_EAP_OTP=y" >> ${CONFIG} || die # echo "CONFIG_EAP_PSK=y" >> ${CONFIG} || die echo "CONFIG_IEEE8021X_EAPOL=y" >> ${CONFIG} || die echo "CONFIG_PKCS12=y" >> ${CONFIG} || die # echo "CONFIG_PAX=y" >> ${CONFIG} || die # echo "CONFIG_TLV=y" >> ${CONFIG} || die echo "CONFIG_PEERKEY=y" >> ${CONFIG} || die # echo "CONFIG_EAP_PAX=y" >> ${CONFIG} || die # echo "CONFIG_EAP_TLV=y" >> ${CONFIG} || die # ssl authentication methods echo "CONFIG_TLS=openssl" >> ${CONFIG} || die echo "CONFIG_EAP_LEAP=y" >> ${CONFIG} || die echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG} || die echo "CONFIG_EAP_PEAP=y" >> ${CONFIG} || die echo "CONFIG_EAP_TLS=y" >> ${CONFIG} || die echo "CONFIG_EAP_TTLS=y" >> ${CONFIG} || die echo "CONFIG_SMARTCARD=y" >> ${CONFIG} || die # linux specific drivers # echo "CONFIG_WIRELESS_EXTENSION=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_ATMEL=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_IPW=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_NDISWRAPPER=y" >> ${CONFIG} || die echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_RALINK=y" >> ${CONFIG} || die echo "CONFIG_DRIVER_WEXT=y" >> ${CONFIG} || die echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_BROADCOM=y" >> ${CONFIG} || die # echo "CONFIG_DRIVER_HERMES=y" >> ${CONFIG} || die # needs madwifi headers # echo "CONFIG_DRIVER_MADWIFI=y" >> ${CONFIG} || die } src_compile() { cd ${SRCDIR}/wpa_supplicant mmake PREFIX=/usr BINDIR=/usr/bin LIBDIR=/usr/$(mlibdir) || die } src_install() { cd ${SRCDIR}/wpa_supplicant make PREFIX=/usr BINDIR=/usr/bin LIBDIR=/usr/$(mlibdir) DESTDIR=${BINDIR} install || die # config minstalldir /etc/wpa_supplicant minstallfile wpa_supplicant.conf /etc/wpa_supplicant/ || die # skeletons minstallconf confd-wpa_supplicant.skel-${SKEL_CVS_REV} wpa_supplicant.skel || die # rc-config minstallconf confd-wpa_supplicant-${CONF_CVS_REV} wpa_supplicant || die # dbus minstalldir /etc/dbus-1/system.d || die minstallfile dbus/dbus-wpa_supplicant.conf /etc/dbus-1/system.d/wpa_supplicant.conf || die minstalldir /usr/share/dbus-1/system-services || die minstallfile dbus/fi.epitest.hostap.WPASupplicant.service /usr/share/dbus-1/system-services/ || die minstallfile dbus/fi.w1.wpa_supplicant1.service /usr/share/dbus-1/system-services/ || die # systemd services local i for i in systemd/*.service do minstallunit "${i}" || die "${i}" done # man pages minstallman doc/docbook/*.8 || die minstallman doc/docbook/*.5 || die # but not priv pages rm -f ${BINDIR}/usr/share/man/man8/wpa_{priv,gui}.8 || die minstalldocs COPYING wpa_supplicant/ChangeLog wpa_supplicant/README* || die } postinstall() { if [ -f ${MROOT}/etc/wpa_supplicant.conf.example ] then rm ${MROOT}/etc/wpa_supplicant.conf.example fi # migrate config if [ -f ${MROOT}/etc/wpa_supplicant.auto ] then if [ -f ${MROOT}/etc/wpa_supplicant/wpa_supplicant.auto ] then rm ${MROOT}/etc/wpa_supplicant.auto else mv ${MROOT}/etc/wpa_supplicant.auto ${MROOT}/etc/wpa_supplicant/ sed -i 's:/var/run/wpa_supplicant:/run/wpa_supplicant:g' \ ${MROOT}/etc/wpa_supplicant/wpa_supplicant.auto fi fi mreloadunit dbus.service mstartunit wpa_supplicant.service } postremove() { mreloadunit dbus.service mstopunit wpa_supplicant.service }