1PORTNAME= wpa_supplicant 2PORTVERSION= 2.9 3PORTREVISION= 12 4CATEGORIES= security net 5MASTER_SITES= https://w1.fi/releases/ 6PKGNAMESUFFIX= 29 7 8PATCH_SITES= https://w1.fi/security/2020-1/ \ 9 https://w1.fi/security/2021-1/ 10PATCHFILES= 0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch:-p1 \ 11 0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch:-p1 \ 12 0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch:-p1 \ 13 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch:-p1 14 15MAINTAINER= ports@MidnightBSD.org 16COMMENT= Supplicant (client) for WPA/802.1x protocols 17WWW= https://w1.fi/wpa_supplicant/ 18 19LICENSE= bsd3 20LICENSE_FILE= ${WRKSRC}/README 21 22USES= cpe gmake pkgconfig:build readline ssl 23BUILD_WRKSRC= ${WRKSRC}/wpa_supplicant 24INSTALL_WRKSRC= ${WRKSRC}/src 25CFLAGS+= ${CPPFLAGS} # USES=readline only augments CPPFLAGS and LDFLAGS 26CFLAGS+= -I${OPENSSLINC} 27LDFLAGS+= -L${OPENSSLLIB} -lutil 28MAKE_ENV= V=1 29 30SUB_FILES= pkg-message 31PORTDOCS= README ChangeLog 32 33CFG= ${BUILD_WRKSRC}/.config 34 35.if !exists(/etc/rc.d/wpa_supplicant) 36USE_RC_SUBR= wpa_supplicant 37.endif 38 39OPTIONS_MULTI= DRV EAP 40OPTIONS_MULTI_DRV= BSD WIRED NDIS TEST NONE #ROBOSWITCH 41OPTIONS_MULTI_EAP= TLS PEAP TTLS MD5 MSCHAPV2 GTC LEAP OTP PSK FAST \ 42 SIM PWD PAX AKA AKA_PRIME SAKE GPSK TNC IKEV2 EKE 43OPTIONS_DEFINE= WPS WPS_ER WPS_NOREG WPS_NFC WPS_UPNP PKCS12 SMARTCARD \ 44 HT_OVERRIDES VHT_OVERRIDES TLSV12 IEEE80211W \ 45 IEEE80211R DEBUG_FILE DEBUG_SYSLOG PRIVSEP \ 46 DELAYED_MIC IEEE80211N IEEE80211AC INTERWORKING \ 47 IEEE8021X_EAPOL EAPOL_TEST \ 48 HS20 NO_ROAMING P2P TDLS DBUS MATCH DOCS \ 49 SIM_SIMULATOR USIM_SIMULATOR 50OPTIONS_DEFAULT= BSD WIRED \ 51 TLS PEAP TTLS MD5 MSCHAPV2 GTC LEAP OTP PSK \ 52 WPS PKCS12 SMARTCARD IEEE80211R DEBUG_SYSLOG \ 53 INTERWORKING HS20 DBUS MATCH IEEE80211R IEEE80211W \ 54 IEEE8021X_EAPOL WPS_ER WPS_NFC WPS_UPNP \ 55 FAST PWD PAX SAKE GPSK TNC IKEV2 EKE 56OPTIONS_SUB= 57 58WPS_DESC= Wi-Fi Protected Setup 59WPS_ER_DESC= Enable WPS External Registrar 60WPS_NOREG_DESC= Disable open network credentials when registrar 61WPS_NFC_DESC= Near Field Communication (NFC) configuration 62WPS_UPNP_DESC= Universal Plug and Play support 63PKCS12_DESC= PKCS\#12 (PFS) support 64SMARTCARD_DESC= Private key on smartcard support 65HT_OVERRIDES_DESC= Disable HT/HT40, mask MCS rates, etc 66VHT_OVERRIDES_DESC= Disable VHT, mask MCS rates, etc 67TLSV12_DESC= Build with TLS v1.2 instead of TLS v1.0 68IEEE80211AC_DESC= Very High Throughput, AP mode (IEEE 802.11ac) 69IEEE80211N_DESC= High Throughput, AP mode (IEEE 802.11n) 70IEEE80211R_DESC= Fast BSS Transition (IEEE 802.11r-2008) 71IEEE80211W_DESC= Management Frame Protection (IEEE 802.11w) 72IEEE8021X_EAPOL_DESC= EAP over LAN support 73EAPOL_TEST_DESC= Development testing 74DEBUG_FILE_DESC= Support for writing debug log to a file 75DEBUG_SYSLOG_DESC= Send debug messages to syslog instead of stdout 76PRIVSEP_DESC= Privilege separation 77DELAYED_MIC_DESC= Mitigate TKIP attack, random delay on MIC errors 78INTERWORKING_DESC= Improve ext. network interworking (IEEE 802.11u) 79HS20_DESC= Hotspot 2.0 80NO_ROAMING_DESC= Disable roaming 81P2P_DESC= Peer-to-Peer support 82TDLS_DESC= Tunneled Direct Link Setup 83MATCH_DESC= Interface match mode 84 85DRV_DESC= Driver options 86BSD_DESC= BSD net80211 interface 87NDIS_DESC= Windows NDIS interface 88WIRED_DESC= Wired ethernet interface 89ROBOSWITCH_DESC= Broadcom Roboswitch interface 90TEST_DESC= Development testing interface 91NONE_DESC= The 'no driver' interface, e.g. WPS ER only 92 93EAP_DESC= Extensible Authentication Protocols 94TLS_DESC= Transport Layer Security 95PEAP_DESC= Protected Extensible Authentication Protocol 96TTLS_DESC= Tunneled Transport Layer Security 97MD5_DESC= MD5 hash (deprecated, no key generation) 98MSCHAPV2_DESC= Microsoft CHAP version 2 (RFC 2759) 99GTC_DESC= Generic Token Card 100LEAP_DESC= Lightweight Extensible Authentication Protocol 101OTP_DESC= One-Time Password 102PSK_DESC= Pre-Shared key 103FAST_DESC= Flexible Authentication via Secure Tunneling 104AKA_DESC= Autentication and Key Agreement (UMTS) 105AKA_PRIME_DESC= AKA Prime variant (RFC 5448) 106EKE_DESC= Encrypted Key Exchange 107SIM_DESC= Subscriber Identity Module 108SIM_SIMULATOR_DESC= SIM simulator (Milenage) for EAP-SIM 109USIM_SIMULATOR_DESC= SIM simulator (Milenage) for EAP-AKA 110IKEV2_DESC= Internet Key Exchange version 2 111PWD_DESC= Shared password (RFC 5931) 112PAX_DESC= Password Authenticated Exchange 113SAKE_DESC= Shared-Secret Authentication & Key Establishment 114GPSK_DESC= Generalized Pre-Shared Key 115TNC_DESC= Trusted Network Connect 116 117PRIVSEP_PLIST_FILES= sbin/wpa_priv 118DBUS_PLIST_FILES= share/dbus-1/system-services/fi.w1.wpa_supplicant1.service \ 119 etc/dbus-1/system.d/dbus-wpa_supplicant.conf 120 121.include <bsd.port.pre.mk> 122 123.if ${PORT_OPTIONS:MNDIS} && ${PORT_OPTIONS:MPRIVSEP} 124BROKEN= Fails to compile with both NDIS and PRIVSEP 125.endif 126 127.if ${PORT_OPTIONS:MIEEE80211AC} && ${PORT_OPTIONS:MIEEE80211N} 128BROKEN= Fails to compile with both IEEE80211AC and IEEE80211N 129.endif 130 131.if ${PORT_OPTIONS:MSIM} || ${PORT_OPTIONS:MAKA} || ${PORT_OPTIONS:MAKA_PRIME} 132LIB_DEPENDS+= libpcsclite.so:devel/pcsc-lite 133CFLAGS+= -I${LOCALBASE}/include/PCSC 134LDFLAGS+= -L${LOCALBASE}/lib 135.endif 136 137.if ${PORT_OPTIONS:MDBUS} 138LIB_DEPENDS+= libdbus-1.so:devel/dbus 139.endif 140 141post-patch: 142 @${CP} ${FILESDIR}/Packet32.[ch] ${FILESDIR}/ntddndis.h \ 143 ${WRKSRC}/src/utils 144 # Set driver(s) 145.for item in BSD NDIS WIRED ROBOSWITCH TEST NONE 146. if ${PORT_OPTIONS:M${item}} 147 @${ECHO_CMD} CONFIG_DRIVER_${item}=y >> ${CFG} 148. endif 149.endfor 150 # Set EAP protocol(s) 151.for item in MD5 MSCHAPV2 TLS PEAP TTLS FAST GTC OTP PSK PWD PAX LEAP SIM \ 152 AKA AKA_PRIME SAKE GPSK TNC IKEV2 EKE 153. if ${PORT_OPTIONS:M${item}} 154 @${ECHO_CMD} CONFIG_EAP_${item:tu}=y >> ${CFG} 155. endif 156.endfor 157.if ${PORT_OPTIONS:MSIM} || ${PORT_OPTIONS:MAKA} || ${PORT_OPTIONS:MAKA_PRIME} 158 @${ECHO_CMD} CONFIG_PCSC=y >> ${CFG} 159.endif 160.for simple in WPS WPS_ER WPS_NFC WPS_UPNP PKCS12 SMARTCARD HT_OVERRIDES \ 161 VHT_OVERRIDES TLSV12 IEEE80211AC IEEE80211N IEEE80211R IEEE80211W \ 162 IEEE8021X_EAPOL EAPOL_TEST \ 163 INTERWORKING DEBUG_FILE DEBUG_SYSLOG HS20 NO_ROAMING PRIVSEP P2P TDLS 164. if ${PORT_OPTIONS:M${simple}} 165 @${ECHO_CMD} CONFIG_${simple}=y >> ${CFG} 166. endif 167.endfor 168.for item in READLINE PEERKEY 169 @${ECHO_CMD} CONFIG_${item}=y >> ${CFG} 170.endfor 171.if ${PORT_OPTIONS:MIEEE80211AC} || ${PORT_OPTIONS:MIEEE80211N} 172 @${ECHO_CMD} CONFIG_AP=y >> ${CFG} 173.endif 174.if ${PORT_OPTIONS:MGPSK} 175 # GPSK desired, assume highest SHA desired too 176 @${ECHO_CMD} CONFIG_EAP_GPSK_SHA256=y >> ${CFG} 177.endif 178.if ${PORT_OPTIONS:MWPS_NOREG} 179 @${ECHO_CMD} CONFIG_WPS_REG_DISABLE_OPEN=y >> ${CFG} 180.endif 181.if ${PORT_OPTIONS:MDELAYED_MIC} 182 @${ECHO_CMD} CONFIG_DELAYED_MIC_ERROR_REPORT=y >> ${CFG} 183.endif 184.if ${PORT_OPTIONS:MDBUS} 185 @${ECHO_CMD} CONFIG_CTRL_IFACE_DBUS_NEW=y >> ${CFG} 186 @${ECHO_CMD} CONFIG_CTRL_IFACE_DBUS_INTRO=y >> ${CFG} 187.endif 188.if ${PORT_OPTIONS:MMATCH} 189 @${ECHO_CMD} CONFIG_MATCH_IFACE=y >> ${CFG} 190.endif 191.if ${PORT_OPTIONS:MUSIM_SIMULATOR} 192 @${ECHO_CMD} CONFIG_USIM_SIMULATOR=y >> ${CFG} 193.endif 194.if ${PORT_OPTIONS:MSIM_SIMULATOR} 195 @${ECHO_CMD} CONFIG_SIM_SIMULATOR=y >> ${CFG} 196.endif 197 @${ECHO_CMD} CONFIG_OS=unix >> ${CFG} 198 @${ECHO_CMD} CONFIG_CTRL_IFACE=unix >> ${CFG} 199 @${ECHO_CMD} CONFIG_BACKEND=file >> ${CFG} 200 @${ECHO_CMD} CONFIG_L2_PACKET=freebsd >> ${CFG} 201 @${ECHO_CMD} CONFIG_TLS=openssl >> ${CFG} 202 203post-build-EAPOL_TEST-on: 204 cd ${BUILD_WRKSRC} && ${GMAKE} eapol_test 205 206do-install: 207 (cd ${BUILD_WRKSRC} && ${INSTALL_PROGRAM} wpa_supplicant wpa_cli \ 208 wpa_passphrase ${PREFIX}/sbin) 209 ${INSTALL_DATA} ${BUILD_WRKSRC}/wpa_supplicant.conf \ 210 ${PREFIX}/etc/wpa_supplicant.conf.sample 211 212do-install-EAPOL_TEST-on: 213 ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/eapol_test ${FAKE_DESTDIR}${PREFIX}/sbin 214 215do-install-DOCS-on: 216 @${MKDIR} ${FAKE_DESTDIR}${DOCSDIR} 217 (cd ${BUILD_WRKSRC} && \ 218 ${INSTALL_DATA} ${PORTDOCS} ${FAKE_DESTDIR}${DOCSDIR}) 219 220do-install-PRIVSEP-on: 221 ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/wpa_priv ${FAKE_DESTDIR}${PREFIX}/sbin 222 223do-install-DBUS-on: 224 @${MKDIR} ${FAKE_DESTDIR}${PREFIX}/share/dbus-1/system-services/ 225 @${MKDIR} ${FAKE_DESTDIR}${PREFIX}/etc/dbus-1/system.d/ 226 ${INSTALL_DATA} ${BUILD_WRKSRC}/dbus/fi.w1.wpa_supplicant1.service \ 227 ${FAKE_DESTDIR}${PREFIX}/share/dbus-1/system-services/ 228 ${INSTALL_DATA} ${BUILD_WRKSRC}/dbus/dbus-wpa_supplicant.conf \ 229 ${FAKE_DESTDIR}${PREFIX}/etc/dbus-1/system.d/ 230 231.include <bsd.port.post.mk> 232