# description : Implements WPA key negotiation with a WPA Authenticator and Extensible Authentication Protocol (EAP) authentication with an Authentication Server # homepage : https://w1.fi # depends : dbus libnl openssl name=wpa_supplicant version=2.10 release=5 backup="etc/wpa_supplicant.conf" source="https://w1.fi/releases/$name-$version.tar.gz CVE-2023-52160.patch 0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch nl80211-add-extra-ies-only-if-allowed-by-driver.patch wpa_supplicant.conf run.wpa auto.wpa rc.$name" build() { cd $name-$version patch -Np1 -i $SRC/0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch patch -Np1 -i $SRC/nl80211-add-extra-ies-only-if-allowed-by-driver.patch patch -Np1 -i $SRC/CVE-2023-52160.patch cat > wpa_supplicant/.config << "EOF" CONFIG_BACKEND=file CONFIG_CTRL_IFACE=y CONFIG_DEBUG_FILE=y CONFIG_DEBUG_SYSLOG=y CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON CONFIG_DRIVER_NL80211=y CONFIG_DRIVER_WEXT=y CONFIG_DRIVER_WIRED=y CONFIG_EAP_GTC=y CONFIG_EAP_LEAP=y CONFIG_EAP_MD5=y CONFIG_EAP_MSCHAPV2=y CONFIG_EAP_OTP=y CONFIG_EAP_PEAP=y CONFIG_EAP_TLS=y CONFIG_EAP_TTLS=y CONFIG_IEEE8021X_EAPOL=y CONFIG_IPV6=y CONFIG_LIBNL32=y CONFIG_PEERKEY=y CONFIG_PKCS12=y CONFIG_READLINE=y CONFIG_SMARTCARD=y CONFIG_WPS=y CFLAGS += -I/usr/include/libnl3 #CONFIG_CTRL_IFACE_DBUS=y #CONFIG_CTRL_IFACE_DBUS_NEW=y #CONFIG_CTRL_IFACE_DBUS_INTRO=y EOF cd $name make BINDIR=/sbin LIBDIR=/lib for xx in sbin usr/share/man/man5 usr/share/man/man8; do install -d $PKG/$xx done for xx in cli passphrase supplicant; do install -m755 wpa_$xx $PKG/sbin/ install -m644 doc/docbook/wpa_$xx.8 $PKG/usr/share/man/man8/ done install -m644 doc/docbook/wpa_supplicant.conf.5 $PKG/usr/share/man/man5/ # wpa_supplicant.conf install -Dm 600 $SRC/wpa_supplicant.conf $PKG/etc/wpa_supplicant.conf _runit() { # runit service install -Dm755 $SRC/run.wpa $PKG/etc/sv/wpa/run install -Dm755 $SRC/auto.wpa $PKG/etc/sv/wpa/auto ln -s /run/runit/supervise.wpa $PKG/etc/sv/wpa/supervise } _sysv() { # rc service install -Dm755 $SRC/rc.$name $PKG/etc/rc.d/$name } scratch isinstalled runit && _runit || _sysv }