From 62f298738b903ddc449ba8c05619f9fa858c64e5 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 26 Jun 2012 10:04:03 +0200 Subject: [PATCH] wpa_supplicant: update to 1.0. --- srcpkgs/wpa_supplicant/files/config | 112 ++++++++++++++---- .../files/wpa_supplicant.service | 12 -- .../files/wpa_supplicant@.service | 9 -- srcpkgs/wpa_supplicant/patches/dbus.patch | 61 ---------- .../hostap_allow-linking-with-libnl-3.2.patch | 52 ++------ srcpkgs/wpa_supplicant/template | 23 ++-- srcpkgs/wpa_supplicant/wpa_supplicant.rshlibs | 1 - 7 files changed, 109 insertions(+), 161 deletions(-) delete mode 100644 srcpkgs/wpa_supplicant/files/wpa_supplicant.service delete mode 100644 srcpkgs/wpa_supplicant/files/wpa_supplicant@.service delete mode 100644 srcpkgs/wpa_supplicant/patches/dbus.patch diff --git a/srcpkgs/wpa_supplicant/files/config b/srcpkgs/wpa_supplicant/files/config index 44d4748282..59da1e27e8 100644 --- a/srcpkgs/wpa_supplicant/files/config +++ b/srcpkgs/wpa_supplicant/files/config @@ -41,7 +41,7 @@ # Driver interface for Host AP driver -CONFIG_DRIVER_HOSTAP=y +#CONFIG_DRIVER_HOSTAP=y # Driver interface for Agere driver #CONFIG_DRIVER_HERMES=y @@ -57,10 +57,10 @@ CONFIG_DRIVER_HOSTAP=y # Driver interface for ndiswrapper # Deprecated; use CONFIG_DRIVER_WEXT=y instead. -CONFIG_DRIVER_NDISWRAPPER=y +#CONFIG_DRIVER_NDISWRAPPER=y # Driver interface for Atmel driver -CONFIG_DRIVER_ATMEL=y +#CONFIG_DRIVER_ATMEL=y # Driver interface for old Broadcom driver # Please note that the newer Broadcom driver ("hybrid Linux driver") supports @@ -72,12 +72,17 @@ CONFIG_DRIVER_ATMEL=y # Driver interface for Intel ipw2100/2200 driver # Deprecated; use CONFIG_DRIVER_WEXT=y instead. -CONFIG_DRIVER_IPW=y +#CONFIG_DRIVER_IPW=y # Driver interface for Ralink driver -CONFIG_DRIVER_RALINK=y +#CONFIG_DRIVER_RALINK=y # Driver interface for generic Linux wireless extensions +# Note: WEXT is deprecated in the current Linux kernel version and no new +# functionality is added to it. nl80211-based interface is the new +# replacement for WEXT and its use allows wpa_supplicant to properly control +# the driver to improve existing functionality like roaming and to support new +# functionality. CONFIG_DRIVER_WEXT=y # Driver interface for Linux drivers using the nl80211 kernel interface @@ -109,11 +114,6 @@ CONFIG_DRIVER_NL80211=y # Driver interface for development testing #CONFIG_DRIVER_TEST=y -# Include client MLME (management frame processing) for test driver -# This can be used to test MLME operations in hostapd with the test interface. -# space. -#CONFIG_CLIENT_MLME=y - # Driver interface for wired Ethernet drivers CONFIG_DRIVER_WIRED=y @@ -123,6 +123,10 @@ CONFIG_DRIVER_WIRED=y # Driver interface for no driver (e.g., WPS ER only) #CONFIG_DRIVER_NONE=y +# Solaris libraries +#LIBS += -lsocket -ldlpi -lnsl +#LIBS_c += -lsocket + # Enable IEEE 802.1X Supplicant (automatically included if any EAP method is # included) CONFIG_IEEE8021X_EAPOL=y @@ -161,6 +165,9 @@ CONFIG_EAP_OTP=y # EAP-PSK (experimental; this is _not_ needed for WPA-PSK) #CONFIG_EAP_PSK=y +# EAP-pwd (secure authentication using only a password) +#CONFIG_EAP_PWD=y + # EAP-PAX #CONFIG_EAP_PAX=y @@ -189,7 +196,14 @@ CONFIG_EAP_LEAP=y #CONFIG_EAP_TNC=y # Wi-Fi Protected Setup (WPS) -#CONFIG_WPS=y +CONFIG_WPS=y +# Enable WSC 2.0 support +#CONFIG_WPS2=y +# Enable WPS external registrar functionality +#CONFIG_WPS_ER=y +# Disable credentials for an open network by default when acting as a WPS +# registrar. +#CONFIG_WPS_REG_DISABLE_OPEN=y # EAP-IKEv2 #CONFIG_EAP_IKEV2=y @@ -224,6 +238,10 @@ CONFIG_CTRL_IFACE=y # the resulting binary. CONFIG_READLINE=y +# Include internal line edit mode in wpa_cli. This can be used as a replacement +# for GNU Readline to provide limited command line editing and history support. +#CONFIG_WPA_CLI_EDIT=y + # Remove debugging code that is printing out debug message to stdout. # This can be used to reduce the size of the wpa_supplicant considerably # if debugging code is not needed. The size reduction can be around 35% @@ -305,18 +323,17 @@ CONFIG_PEERKEY=y # Select TLS implementation # openssl = OpenSSL (default) -# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA) +# gnutls = GnuTLS # internal = Internal TLSv1 implementation (experimental) # none = Empty template #CONFIG_TLS=openssl -# Whether to enable TLS/IA support, which is required for EAP-TTLSv1. -# You need CONFIG_TLS=gnutls for this to have any effect. Please note that -# even though the core GnuTLS library is released under LGPL, this extra -# library uses GPL and as such, the terms of GPL apply to the combination -# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not -# apply for distribution of the resulting binary. -#CONFIG_GNUTLS_EXTRA=y +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) +# can be enabled to get a stronger construction of messages when block ciphers +# are used. It should be noted that some existing TLS v1.0 -based +# implementation may not be compatible with TLS v1.1 message (ClientHello is +# sent prior to negotiating which version will be used) +#CONFIG_TLSV11=y # If CONFIG_TLS=internal is used, additional library and include paths are # needed for LibTomMath. Alternatively, an integrated, minimal version of @@ -332,7 +349,7 @@ CONFIG_PEERKEY=y # At the cost of about 4 kB of additional binary size, the internal LibTomMath # can be configured to include faster routines for exptmod, sqr, and div to # speed up DH and RSA calculation considerably -CONFIG_INTERNAL_LIBTOMMATH_FAST=y +#CONFIG_INTERNAL_LIBTOMMATH_FAST=y # Include NDIS event processing through WMI into wpa_supplicant/wpasvc. # This is only for Windows builds and requires WMI-related header files and @@ -373,23 +390,28 @@ CONFIG_CTRL_IFACE_DBUS_INTRO=y #CONFIG_DYNAMIC_EAP_METHODS=y # IEEE Std 802.11r-2008 (Fast BSS Transition) -CONFIG_IEEE80211R=y +#CONFIG_IEEE80211R=y # Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) CONFIG_DEBUG_FILE=y +# Send debug messages to syslog instead of stdout +#CONFIG_DEBUG_SYSLOG=y +# Set syslog facility for debug messages +#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON + # Enable privilege separation (see README 'Privilege separation' for details) #CONFIG_PRIVSEP=y # Enable mitigation against certain attacks against TKIP by delaying Michael # MIC error reports by a random amount of time between 0 and 60 seconds -CONFIG_DELAYED_MIC_ERROR_REPORT=y +#CONFIG_DELAYED_MIC_ERROR_REPORT=y # Enable tracing code for developer debugging # This tracks use of memory allocations and other registrations and reports # incorrect use with a backtrace of call (or allocation) location. #CONFIG_WPA_TRACE=y -# For BSD, comment out these. +# For BSD, uncomment these. #LIBS += -lexecinfo #LIBS_p += -lexecinfo #LIBS_c += -lexecinfo @@ -398,9 +420,49 @@ CONFIG_DELAYED_MIC_ERROR_REPORT=y # This enables use of libbfd to get more detailed symbols for the backtraces # generated by CONFIG_WPA_TRACE=y. #CONFIG_WPA_TRACE_BFD=y -# For BSD, comment out these. +# For BSD, uncomment these. #LIBS += -lbfd -liberty -lz #LIBS_p += -lbfd -liberty -lz #LIBS_c += -lbfd -liberty -lz + +# wpa_supplicant depends on strong random number generation being available +# from the operating system. os_get_random() function is used to fetch random +# data when needed, e.g., for key generation. On Linux and BSD systems, this +# works by reading /dev/urandom. It should be noted that the OS entropy pool +# needs to be properly initialized before wpa_supplicant is started. This is +# important especially on embedded devices that do not have a hardware random +# number generator and may by default start up with minimal entropy available +# for random number generation. # -CONFIG_LIBNL32=yes +# As a safety net, wpa_supplicant is by default trying to internally collect +# additional entropy for generating random data to mix in with the data fetched +# from the OS. This by itself is not considered to be very strong, but it may +# help in cases where the system pool is not initialized properly. However, it +# is very strongly recommended that the system pool is initialized with enough +# entropy either by using hardware assisted random number generator or by +# storing state over device reboots. +# +# wpa_supplicant can be configured to maintain its own entropy store over +# restarts to enhance random number generation. This is not perfect, but it is +# much more secure than using the same sequence of random numbers after every +# reboot. This can be enabled with -e command line option. The +# specified file needs to be readable and writable by wpa_supplicant. +# +# If the os_get_random() is known to provide strong random data (e.g., on +# Linux/BSD, the board in question is known to have reliable source of random +# data from /dev/urandom), the internal wpa_supplicant random pool can be +# disabled. This will save some in binary size and CPU use. However, this +# should only be considered for builds that are known to be used on devices +# that meet the requirements described above. +CONFIG_NO_RANDOM_POOL=y + +# IEEE 802.11n (High Throughput) support (mainly for AP mode) +#CONFIG_IEEE80211N=y + +# Interworking (IEEE 802.11u) +# This can be used to enable functionality to improve interworking with +# external networks (GAS/ANQP to learn more about the networks and network +# selection based on available credentials). +#CONFIG_INTERWORKING=y + +CONFIG_LIBNL32=y diff --git a/srcpkgs/wpa_supplicant/files/wpa_supplicant.service b/srcpkgs/wpa_supplicant/files/wpa_supplicant.service deleted file mode 100644 index 0234e9ca10..0000000000 --- a/srcpkgs/wpa_supplicant/files/wpa_supplicant.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Wi-Fi Security Service -After=syslog.target - -[Service] -Type=dbus -BusName=fi.epitest.hostap.WPASupplicant -ExecStart=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant.conf -u -StandardOutput=syslog - -[Install] -WantedBy=multi-user.target diff --git a/srcpkgs/wpa_supplicant/files/wpa_supplicant@.service b/srcpkgs/wpa_supplicant/files/wpa_supplicant@.service deleted file mode 100644 index 0fd77eb2cd..0000000000 --- a/srcpkgs/wpa_supplicant/files/wpa_supplicant@.service +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Wi-Fi Security Service on %I -After=syslog.target - -[Service] -ExecStart=/usr/sbin/wpa_supplicant -Dwext -i %I -c /etc/wpa_supplicant.conf - -[Install] -Alias=multi-user.target.wants/wpa_supplicant@wlan0.service diff --git a/srcpkgs/wpa_supplicant/patches/dbus.patch b/srcpkgs/wpa_supplicant/patches/dbus.patch deleted file mode 100644 index 587d03339f..0000000000 --- a/srcpkgs/wpa_supplicant/patches/dbus.patch +++ /dev/null @@ -1,61 +0,0 @@ -From b80b5639935d37b95d00f86b57f2844a9c775f57 Mon Sep 17 00:00:00 2001 -From: Dan Williams -Date: Fri, 17 Dec 2010 15:56:01 +0200 -Subject: [PATCH] dbus: Emit property changed events when adding/removing BSSes - -The supplicant was not emitting property changed events when the BSSs -property changed. - -Signed-off-by: Dan Williams -(cherry picked from commit 1e6288df6b07a353a9246b77e0de2a840b5f2c72) ---- - wpa_supplicant/dbus/dbus_new.c | 6 ++++++ - wpa_supplicant/dbus/dbus_new.h | 1 + - 2 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c -index bdfbbac..c66640a 100644 ---- wpa_supplicant/dbus/dbus_new.c -+++ wpa_supplicant/dbus/dbus_new.c -@@ -691,6 +691,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, - wpas_dbus_getter_current_network; - prop = "CurrentNetwork"; - break; -+ case WPAS_DBUS_PROP_BSSS: -+ getter = (WPADBusPropertyAccessor) wpas_dbus_getter_bsss; -+ prop = "BSSs"; -+ break; - default: - wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d", - __func__, property); -@@ -1199,6 +1203,7 @@ int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s, - } - - wpas_dbus_signal_bss_removed(wpa_s, bss_obj_path); -+ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS); - - return 0; - } -@@ -1263,6 +1268,7 @@ int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s, - } - - wpas_dbus_signal_bss_added(wpa_s, bss_obj_path); -+ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS); - - return 0; - -diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h -index 80ea98c..9cdefcb 100644 ---- wpa_supplicant/dbus/dbus_new.h -+++ wpa_supplicant/dbus/dbus_new.h -@@ -30,6 +30,7 @@ enum wpas_dbus_prop { - WPAS_DBUS_PROP_STATE, - WPAS_DBUS_PROP_CURRENT_BSS, - WPAS_DBUS_PROP_CURRENT_NETWORK, -+ WPAS_DBUS_PROP_BSSS, - }; - - enum wpas_dbus_bss_prop { --- -1.7.4-rc1 - diff --git a/srcpkgs/wpa_supplicant/patches/hostap_allow-linking-with-libnl-3.2.patch b/srcpkgs/wpa_supplicant/patches/hostap_allow-linking-with-libnl-3.2.patch index 1debd56385..add4e1d2ce 100644 --- a/srcpkgs/wpa_supplicant/patches/hostap_allow-linking-with-libnl-3.2.patch +++ b/srcpkgs/wpa_supplicant/patches/hostap_allow-linking-with-libnl-3.2.patch @@ -1,41 +1,11 @@ -Subject: [RFC] hostap: Allow linking with libnl-3. -Date: Tue, 15 Nov 2011 14:30:04 -0000 -From: Ben Greear - -I needed this patch to compile against the latest -libnl code. I added this to my config file: - -CONFIG_LIBNL32=y - -Signed-hostap: Ben Greear -rediffed against 0.7.3 by Stefan Lippers-Hollmann - ---- -:100644 100644 5caeec5... 0cc81f9... M src/drivers/drivers.mak - src/drivers/drivers.mak | 21 ++++++++++++++------- - 2 files changed, 29 insertions(+), 14 deletions(-) - ---- src/drivers/drivers.mak -+++ src/drivers/drivers.mak -@@ -31,11 +31,18 @@ NEED_SME=y - NEED_AP_MLME=y - NEED_NETLINK=y - NEED_LINUX_IOCTL=y --DRV_LIBS += -lnl -+ifdef CONFIG_LIBNL32 -+ DRV_LIBS += -lnl-3 -+ DRV_LIBS += -lnl-genl-3 -+ DRV_CFLAGS += -DCONFIG_LIBNL20 -+ DRV_CFLAGS += -I/usr/include/libnl3/ -+else -+ DRV_LIBS += -lnl - --ifdef CONFIG_LIBNL20 --DRV_LIBS += -lnl-genl --DRV_CFLAGS += -DCONFIG_LIBNL20 -+ ifdef CONFIG_LIBNL20 -+ DRV_LIBS += -lnl-genl -+ DRV_CFLAGS += -DCONFIG_LIBNL20 -+ endif - endif - endif +--- src/drivers/drivers.mak.foo 2012-03-02 16:11:43.176448714 -0600 ++++ src/drivers/drivers.mak 2012-03-02 16:12:29.759866341 -0600 +@@ -48,7 +48,7 @@ NEED_RFKILL=y + ifdef CONFIG_LIBNL32 + DRV_LIBS += -lnl-3 + DRV_LIBS += -lnl-genl-3 +- DRV_CFLAGS += -DCONFIG_LIBNL20 ++ DRV_CFLAGS += -DCONFIG_LIBNL20 `pkg-config --cflags libnl-3.0` + else + ifdef CONFIG_LIBNL_TINY + DRV_LIBS += -lnl-tiny diff --git a/srcpkgs/wpa_supplicant/template b/srcpkgs/wpa_supplicant/template index c15a3c1a5a..3659688b65 100644 --- a/srcpkgs/wpa_supplicant/template +++ b/srcpkgs/wpa_supplicant/template @@ -1,16 +1,16 @@ # Template file for 'wpa_supplicant' pkgname=wpa_supplicant -version=0.7.3 -revision=9 +version=1.0 +revision=1 build_wrksrc=$pkgname homepage="http://hostap.epitest.fi" distfiles="$homepage/releases/$pkgname-$version.tar.gz" -makedepends="libnl3-devel openssl-devel dbus-devel readline-devel" +makedepends="pkg-config libnl3-devel openssl-devel dbus-devel readline-devel" conf_files="/etc/${pkgname}.conf" short_desc="WPA/WPA2/IEEE 802.1X Supplicant" maintainer="Juan RP " license="GPL-2" -checksum=d0cd50caa85346ccc376dcda5ed3c258eef19a93b3cade39d25760118ad59443 +checksum=91d41d473a5aafa2e25dd6577ebda975c4d4a3188850a53e31feaf7c04482b9c long_desc=" $pkgname is a WPA Supplicant for Linux, BSD, Mac OS X, and Windows with support for WPA and WPA2 (IEEE 802.11i / RSN). It is suitable for both @@ -27,29 +27,28 @@ long_desc=" do_build() { sed -i 's|/usr/local|$(PREFIX)|g' Makefile cp -f ${FILESDIR}/config .config - make ${makejobs} + make PREFIX=/usr ${makejobs} } do_install() { make PREFIX=/usr DESTDIR=${DESTDIR} install - vinstall ${FILESDIR}/${pkgname}.service 644 lib/systemd/system - vinstall ${FILESDIR}/${pkgname}@.service 644 lib/systemd/system vinstall ${FILESDIR}/${pkgname}.tmpfiles.d \ 644 usr/lib/tmpfiles.d ${pkgname}.conf - vinstall ${FILESDIR}/${pkgname}.conf 644 etc + vinstall ${FILESDIR}/${pkgname}.conf 644 etc/$pkgname vinstall wpa_supplicant.conf 644 usr/share/examples/${pkgname} for d in 5 8; do install -d ${DESTDIR}/usr/share/man/man${d} done - install -m644 doc/docbook/${pkgname}.conf.5 \ - ${DESTDIR}/usr/share/man/man5 - install -m644 doc/docbook/wpa_*.8 ${DESTDIR}/usr/share/man/man8 + install -m644 doc/docbook/*.5 ${DESTDIR}/usr/share/man/man5 + install -m644 doc/docbook/*.8 ${DESTDIR}/usr/share/man/man8 install -d ${DESTDIR}/usr/share/dbus-1/system-services - sed -i -e "s|/sbin|/usr/sbin|" dbus/*.service install -m644 dbus/*.service \ ${DESTDIR}/usr/share/dbus-1/system-services/ vinstall dbus/dbus-${pkgname}.conf 644 \ etc/dbus-1/system.d ${pkgname}.conf + + vmkdir lib/systemd/system + install -m644 systemd/*.service ${DESTDIR}/lib/systemd/system } diff --git a/srcpkgs/wpa_supplicant/wpa_supplicant.rshlibs b/srcpkgs/wpa_supplicant/wpa_supplicant.rshlibs index 949b845514..a320bcb63b 100644 --- a/srcpkgs/wpa_supplicant/wpa_supplicant.rshlibs +++ b/srcpkgs/wpa_supplicant/wpa_supplicant.rshlibs @@ -3,6 +3,5 @@ libc.so.6 libcrypto.so.1 libssl.so.1 libdbus-1.so.3 -libpthread.so.0 libnl-3.so.200 libnl-genl-3.so.200