# $Id$ PNAME="wpa-supplicant" PVER="2.7" PBUILD="r2" PCAT="net-wlan" DESCRIPTION="Linux WPA/WPA2/IEEE 802.1X Supplicant." HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/" DEPEND=">= dev-libs/openssl-1.1 >= sys-apps/dbus-1.10 >= sys-libs/readline-8.0 == dev-libs/libnl3-3.2.25" SDEPEND=">= dev-util/pkgconfig-0.25 >= 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 dbus systemd 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="release" # latest devel branch #UP2TAG="development" UP2DATE="updatecmd ${HOMEPAGE} | grep -A1 'Latest ${UP2TAG}' | sed -n 's/.*-\(.*\).tar.*/\1/;$ p'" src_prepare() { local MCONFIG=${SRCDIR}/wpa_supplicant/.config munpack ${SRCFILE} || die cd ${SRCDIR}/wpa_supplicant # broken Makefile sed -i 's@/usr/local@$(PREFIX)@g' Makefile || die # basic setup maddconfig -b "CONFIG_CTRL_IFACE=y" || die maddconfig -b "CONFIG_BACKEND=file" || die maddconfig -b "CONFIG_NO_RANDOM_POOL=y" || die # dbus support maddconfig -b "CONFIG_CTRL_IFACE_DBUS=y" || die # Add support for new DBus control interface # (fi.w1.hostap.wpa_supplicant1) maddconfig -b "CONFIG_CTRL_IFACE_DBUS_NEW=y" || die # Add introspection support for new DBus control interface maddconfig -b "CONFIG_CTRL_IFACE_DBUS_INTRO=y" || die # readline maddconfig -b "CONFIG_READLINE=y" || die # libnl-3.2 maddconfig -b "CONFIG_LIBNL32=y" || die # wi-fi protected setup (WPS) support maddconfig -b "CONFIG_WPS=y" || die # enable WPS support with NFC config method maddconfig -b "CONFIG_WPS_NFC=y" || die # # enable mitigation against certain attacks against TKIP # maddconfig -b "CONFIG_DELAYED_MIC_ERROR_REPORT=y" || die # # no debug # maddconfig -b "CONFIG_NO_STDOUT_DEBUG=y" || die # add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) maddconfig -b "CONFIG_DEBUG_FILE=y" || die # support HT overrides (disable HT/HT40, mask MCS rates, etc.) maddconfig -b "CONFIG_HT_OVERRIDES=y" || die # AP mode operations maddconfig -b "CONFIG_AP=y" || die # P2P (Wi-Fi Direct) maddconfig -b "CONFIG_P2P=y" || die # autoscan maddconfig -b "CONFIG_AUTOSCAN_EXPONENTIAL=y" || die # for periodic module: maddconfig -b "CONFIG_AUTOSCAN_PERIODIC=y" || die # RSN IBSS/AdHoc support maddconfig -b "CONFIG_IBSS_RSN=y" || die # simple background scan maddconfig -b "CONFIG_BGSCAN_SIMPLE=y" || die # basic authentication methods maddconfig -b "CONFIG_EAP_GTC=y" || die maddconfig -b "CONFIG_EAP_MD5=y" || die maddconfig -b "CONFIG_EAP_OTP=y" || die # maddconfig -b "CONFIG_EAP_PSK=y" || die maddconfig -b "CONFIG_IEEE8021X_EAPOL=y" || die maddconfig -b "CONFIG_PKCS12=y" || die # maddconfig -b "CONFIG_PAX=y" || die # maddconfig -b "CONFIG_TLV=y" || die maddconfig -b "CONFIG_PEERKEY=y" || die # maddconfig -b "CONFIG_EAP_PAX=y" || die # maddconfig -b "CONFIG_EAP_TLV=y" || die # ssl authentication methods maddconfig -b "CONFIG_TLS=openssl" || die maddconfig -b "CONFIG_EAP_LEAP=y" || die maddconfig -b "CONFIG_EAP_MSCHAPV2=y" || die maddconfig -b "CONFIG_EAP_PEAP=y" || die maddconfig -b "CONFIG_EAP_TLS=y" || die maddconfig -b "CONFIG_EAP_TTLS=y" || die maddconfig -b "CONFIG_SMARTCARD=y" || die # linux specific drivers # maddconfig -b "CONFIG_WIRELESS_EXTENSION=y" || die # maddconfig -b "CONFIG_DRIVER_ATMEL=y" || die # maddconfig -b "CONFIG_DRIVER_HOSTAP=y" || die # maddconfig -b "CONFIG_DRIVER_IPW=y" || die # maddconfig -b "CONFIG_DRIVER_NDISWRAPPER=y" || die maddconfig -b "CONFIG_DRIVER_NL80211=y" || die # maddconfig -b "CONFIG_DRIVER_PRISM54=y" || die # maddconfig -b "CONFIG_DRIVER_RALINK=y" || die maddconfig -b "CONFIG_DRIVER_WEXT=y" || die maddconfig -b "CONFIG_DRIVER_WIRED=y" || die # maddconfig -b "CONFIG_DRIVER_BROADCOM=y" || die # maddconfig -b "CONFIG_DRIVER_HERMES=y" || die # needs madwifi headers # maddconfig -b "CONFIG_DRIVER_MADWIFI=y" || 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 minstalldbusconfig dbus/dbus-wpa_supplicant.conf wpa_supplicant.conf || die minstalldbussystemservice dbus/fi.epitest.hostap.WPASupplicant.service || die minstalldbussystemservice dbus/fi.w1.wpa_supplicant1.service || 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 }