Page MenuHomeFreeBSD

security/wpa_supplicant: Update to version 2.6 and patch for LibreSSL support
ClosedPublic

Authored by jrm on Nov 5 2016, 11:44 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sep 29 2024, 4:46 PM
Unknown Object (File)
Sep 27 2024, 12:27 PM
Unknown Object (File)
Sep 26 2024, 4:28 PM
Unknown Object (File)
Sep 21 2024, 12:18 AM
Unknown Object (File)
Sep 16 2024, 4:18 PM
Unknown Object (File)
Sep 10 2024, 5:50 AM
Unknown Object (File)
Sep 9 2024, 11:35 AM
Unknown Object (File)
Sep 9 2024, 9:58 AM
Subscribers

Details

Summary

security/wpa_supplicant: Update to version 2.6 and patch for LibreSSL support

This is a first attempt to get version 2.6 working. More work needs to be done
before it could be committed, but it's at a point where it compiles, except
under two conditions described below. After some testing, it seems to generally
function properly, but there is a strange interaction with the rc scripts.
Putting wpa_supplicant_program="/usr/local/sbin/wpa_supplicant" in /etc/rc.conf
and starting networking without specifying wlan0 (# service netif start) works
fine, but specifying wlan0 (# service netif start wlan0) causes wpa_supplicant
to use 100% CPU and it can only be stopped by killing the process.

Changes to the port:

  • Remove patches that have been incorporated upstream
  • Add patches for LibreSSL support
Test Plan

porlint:
portlint not like how the options are handled: Warnings: OPT is listed in
OPTIONS_DEFINE, but no PORT_OPTIONS:OPT appears. Otherwise fine.

testport: OK (poudriere: 9.3-RELEASE-p48, i386, default options)
testport: OK (poudriere: 9.3-RELEASE-p48, amd64, default options)
testport: OK (poudriere: 10.3-RELEASE-p10, i386, default options)
testport: OK (poudriere: 10.3-RELEASE-p10, amd64, default options)
testport: OK (poudriere: 11.0-RELEASE-p1, i386, default options)
testport: OK (poudriere: 11.0-RELEASE-p1, amd64, default options)

Two option combinations cause build errors on all the releases listed above.

Build failure when NDIS and PRIVSEP are both on:

...
CC  wpa_priv.c
sed dbus/fi.w1.wpa_supplicant1.service.in
../src/drivers/driver_ndis.o: In function `wpa_driver_ndis_get_scan_results':
../src/drivers/driver_ndis.c:(.text+0x2847): undefined reference to `get_ie'

Build failure when are both on IEEE80211AC and IEEE80211N are on:

...
CC  ctrl_iface.c
../src/ap/ieee802_11_vht.o: In function `hostapd_eid_txpower_envelope':
../src/ap/ieee802_11_vht.c:(.text+0x2ef): undefined reference to `hostapd_is_dfs_required'
cc: error: linker command failed with exit code 1 (use -v to see invocation)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jrm retitled this revision from to security/wpa_supplicant: Update to version 2.6 and patch for LibreSSL support.
jrm updated this object.
jrm edited the test plan for this revision. (Show Details)
jrm added reviewers: swills, AMDmi3.
jrm updated this object.

Update the diff after revision 425896 incorporated some of the same Makefile
changes without the version bump.

AMDmi3 edited edge metadata.

I'm in no position to deeply review patch changes, but the update looks good.

This revision is now accepted and ready to land.Nov 12 2016, 1:38 PM

The strange interaction with the rc scripts is not related to the port itself and is not different than the last version of security/wpa_supplicant.

For the two compile errors, I could either use _PREVENTS or add

.if ${PORT_OPTIONS:MNDIS} && ${PORT_OPTIONS:MPRIVSEP}
BROKEN= Fails to compile with both NDIS and PRIVSEP
.endif

.if ${PORT_OPTIONS:MIEEE80211AC} && ${PORT_OPTIONS:MIEEE80211N}
BROKEN= Fails to compile with both IEEE80211AC and IEEE80211N
.endif

I'd prefer BROKENs. It's more explicit and doesn't violate POLA

This revision was automatically updated to reflect the committed changes.