diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2012-09-26 01:10:42 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 22:51:55 +0200 |
commit | 9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch) | |
tree | b428a16618e36ed864a8d76ea3435e19a452bf90 /source/n/wpa_supplicant | |
parent | 75a4a592e5ccda30715f93563d741b83e0dcf39e (diff) | |
download | current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.xz |
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!
We're perfectionists here at Slackware, so this release has been a long
time a-brewing. But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.
The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware
project by picking up a copy from store.slackware.com. We're taking
pre-orders now, and offer a discount if you sign up for a subscription.
Thanks to everyone who helped make this happen. The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.
Have fun! :-)
Diffstat (limited to 'source/n/wpa_supplicant')
14 files changed, 273 insertions, 242 deletions
diff --git a/source/n/wpa_supplicant/wpa_supplicant.defconfig b/source/n/wpa_supplicant/config/dot.config index 2c530fdc2..f4d7306b9 100644 --- a/source/n/wpa_supplicant/wpa_supplicant.defconfig +++ b/source/n/wpa_supplicant/config/dot.config @@ -1,27 +1,42 @@ -CONFIG_DRIVER_HOSTAP=y -CONFIG_DRIVER_NDISWRAPPER=y -CONFIG_DRIVER_ATMEL=y -CONFIG_DRIVER_IPW=y -CONFIG_DRIVER_RALINK=y -CONFIG_DRIVER_WEXT=y +CONFIG_BACKEND=file +CONFIG_BGSCAN_SIMPLE=y +CONFIG_CTRL_IFACE=y +CONFIG_CTRL_IFACE_DBUS=y +CONFIG_CTRL_IFACE_DBUS_INTRO=y +CONFIG_CTRL_IFACE_DBUS_NEW=y +CONFIG_DEBUG_FILE=y CONFIG_DRIVER_NL80211=y +CONFIG_DRIVER_WEXT=y CONFIG_DRIVER_WIRED=y -CONFIG_IEEE8021X_EAPOL=y +CONFIG_EAP_AKA=y +CONFIG_EAP_FAST=y +CONFIG_EAP_GPSK=y +CONFIG_EAP_GPSK_SHA256=y +CONFIG_EAP_GTC=y +CONFIG_EAP_IKEV2=y +CONFIG_EAP_LEAP=y CONFIG_EAP_MD5=y CONFIG_EAP_MSCHAPV2=y -CONFIG_EAP_TLS=y +CONFIG_EAP_OTP=y +CONFIG_EAP_PAX=y CONFIG_EAP_PEAP=y +CONFIG_EAP_SAKE=y +CONFIG_EAP_TLS=y +CONFIG_EAP_TNC=y CONFIG_EAP_TTLS=y -CONFIG_EAP_GTC=y -CONFIG_EAP_OTP=y -CONFIG_EAP_LEAP=y -CONFIG_WPS=y +CONFIG_IEEE8021X_EAPOL=y +CONFIG_LIBNL32=y +CONFIG_PEERKEY=y CONFIG_PKCS12=y -CONFIG_SMARTCARD=y -CONFIG_CTRL_IFACE=y CONFIG_READLINE=y -CONFIG_BACKEND=file -CONFIG_PEERKEY=y -CONFIG_CTRL_IFACE_DBUS=y -CONFIG_CTRL_IFACE_DBUS_NEW=y -CONFIG_CTRL_IFACE_DBUS_INTRO=y +CONFIG_SMARTCARD=y +CONFIG_WPS=y + +# These five are not defined by Fedora +# Do we still need them? +#CONFIG_DRIVER_ATMEL=y +#CONFIG_DRIVER_HOSTAP=y +#CONFIG_DRIVER_IPW=y +#CONFIG_DRIVER_NDISWRAPPER=y +#CONFIG_DRIVER_RALINK=y + diff --git a/source/n/wpa_supplicant/config/wpa_gui.desktop b/source/n/wpa_supplicant/config/wpa_gui.desktop new file mode 100644 index 000000000..31b8b6b01 --- /dev/null +++ b/source/n/wpa_supplicant/config/wpa_gui.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=wpa_gui +Comment[en]=Wpa_supplicant management +Exec=kdesu wpa_gui +Icon=wpa_gui +Type=Application +Categories=Qt;Network; diff --git a/source/n/wpa_supplicant/wpa_gui.png b/source/n/wpa_supplicant/config/wpa_gui.png Binary files differindex a72f35691..a72f35691 100644 --- a/source/n/wpa_supplicant/wpa_gui.png +++ b/source/n/wpa_supplicant/config/wpa_gui.png diff --git a/source/n/wpa_supplicant/config/wpa_supplicant.conf b/source/n/wpa_supplicant/config/wpa_supplicant.conf new file mode 100644 index 000000000..4dbbf96a1 --- /dev/null +++ b/source/n/wpa_supplicant/config/wpa_supplicant.conf @@ -0,0 +1,2 @@ +ctrl_interface=/var/run/wpa_supplicant +ctrl_interface_group=root diff --git a/source/n/wpa_supplicant/config/wpa_supplicant.logrotate b/source/n/wpa_supplicant/config/wpa_supplicant.logrotate new file mode 100644 index 000000000..bd7ef91cc --- /dev/null +++ b/source/n/wpa_supplicant/config/wpa_supplicant.logrotate @@ -0,0 +1,6 @@ +/var/log/wpa_supplicant.log { + missingok + notifempty + size 30k + create 0600 root root +} diff --git a/source/n/wpa_supplicant/doinst.sh b/source/n/wpa_supplicant/doinst.sh new file mode 100644 index 000000000..6052fca4a --- /dev/null +++ b/source/n/wpa_supplicant/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/wpa_supplicant.conf.new +config etc/logrotate.d/wpa_supplicant.new diff --git a/source/n/wpa_supplicant/fi.epitest.hostap.WPASupplicant.service b/source/n/wpa_supplicant/fi.epitest.hostap.WPASupplicant.service deleted file mode 100644 index e8b4250b4..000000000 --- a/source/n/wpa_supplicant/fi.epitest.hostap.WPASupplicant.service +++ /dev/null @@ -1,4 +0,0 @@ -[D-BUS Service] -Name=fi.epitest.hostap.WPASupplicant -Exec=/usr/sbin/wpa_supplicant -u -User=root diff --git a/source/n/wpa_supplicant/hostap-07.git-b80b5639935d37b95d00f86b57f2844a9c775f57.patch b/source/n/wpa_supplicant/hostap-07.git-b80b5639935d37b95d00f86b57f2844a9c775f57.patch deleted file mode 100644 index 4c5002003..000000000 --- a/source/n/wpa_supplicant/hostap-07.git-b80b5639935d37b95d00f86b57f2844a9c775f57.patch +++ /dev/null @@ -1,61 +0,0 @@ -From b80b5639935d37b95d00f86b57f2844a9c775f57 Mon Sep 17 00:00:00 2001 -From: Dan Williams <dcbw@redhat.com> -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 <dcbw@redhat.com> -(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 ---- a/wpa_supplicant/dbus/dbus_new.c -+++ b/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 ---- a/wpa_supplicant/dbus/dbus_new.h -+++ b/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/source/n/wpa_supplicant/patches/dbus-service-file-args.diff b/source/n/wpa_supplicant/patches/dbus-service-file-args.diff new file mode 100644 index 000000000..7e2449f2e --- /dev/null +++ b/source/n/wpa_supplicant/patches/dbus-service-file-args.diff @@ -0,0 +1,20 @@ +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in wpa_supplicant-1.0-rc3/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-05-06 01:07:44.523999837 -0500 +@@ -1,5 +1,5 @@ + [D-BUS Service] + Name=fi.epitest.hostap.WPASupplicant +-Exec=@BINDIR@/wpa_supplicant -u ++Exec=@BINDIR@/wpa_supplicant -B -u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid + User=root + SystemdService=wpa_supplicant.service +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in wpa_supplicant-1.0-rc3/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-05-06 01:06:59.528589953 -0500 +@@ -1,5 +1,5 @@ + [D-BUS Service] + Name=fi.w1.wpa_supplicant1 +-Exec=@BINDIR@/wpa_supplicant -u ++Exec=@BINDIR@/wpa_supplicant -B -u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid + User=root + SystemdService=wpa_supplicant.service diff --git a/source/n/wpa_supplicant/patches/include-unistd_h.diff b/source/n/wpa_supplicant/patches/include-unistd_h.diff new file mode 100644 index 000000000..a3c6ae83f --- /dev/null +++ b/source/n/wpa_supplicant/patches/include-unistd_h.diff @@ -0,0 +1,15 @@ +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_gui-qt4/wpagui.cpp wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_gui-qt4/wpagui.cpp +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_gui-qt4/wpagui.cpp 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_gui-qt4/wpagui.cpp 2012-05-05 17:04:40.706570034 -0500 +@@ -12,10 +12,8 @@ + * See README and COPYING for more details. + */ + +-#ifdef __MINGW32__ +-/* Need to get getopt() */ ++/* Need to get getopt() regardless with gcc-4.7.x */ + #include <unistd.h> +-#endif + + #ifdef CONFIG_NATIVE_WINDOWS + #include <windows.h> diff --git a/source/n/wpa_supplicant/patches/libnl3-includes.diff b/source/n/wpa_supplicant/patches/libnl3-includes.diff new file mode 100644 index 000000000..f8ff01c18 --- /dev/null +++ b/source/n/wpa_supplicant/patches/libnl3-includes.diff @@ -0,0 +1,12 @@ +diff -Nur wpa_supplicant-1.0-rc3.orig/src/drivers/drivers.mak wpa_supplicant-1.0-rc3/src/drivers/drivers.mak +--- wpa_supplicant-1.0-rc3.orig/src/drivers/drivers.mak 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/src/drivers/drivers.mak 2012-05-05 17:16:01.933597117 -0500 +@@ -48,7 +48,7 @@ + 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/source/n/wpa_supplicant/patches/quiet-scan-results-message.diff b/source/n/wpa_supplicant/patches/quiet-scan-results-message.diff new file mode 100644 index 000000000..2b3eb6726 --- /dev/null +++ b/source/n/wpa_supplicant/patches/quiet-scan-results-message.diff @@ -0,0 +1,12 @@ +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/events.c wpa_supplicant-1.0-rc3/wpa_supplicant/events.c +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/events.c 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/events.c 2012-05-05 17:02:38.061179720 -0500 +@@ -1076,7 +1076,7 @@ + } + + wpa_dbg(wpa_s, MSG_DEBUG, "New scan results available"); +- wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS); ++ wpa_msg_ctrl(wpa_s, MSG_DEBUG, WPA_EVENT_SCAN_RESULTS); + wpas_notify_scan_results(wpa_s); + + wpas_notify_scan_done(wpa_s, 1); diff --git a/source/n/wpa_supplicant/patches/squelch-driver-disconnect-spam.diff b/source/n/wpa_supplicant/patches/squelch-driver-disconnect-spam.diff new file mode 100644 index 000000000..b8d2be6ad --- /dev/null +++ b/source/n/wpa_supplicant/patches/squelch-driver-disconnect-spam.diff @@ -0,0 +1,95 @@ +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/events.c wpa_supplicant-1.0-rc3/wpa_supplicant/events.c +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/events.c 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/events.c 2012-05-06 01:01:17.529134316 -0500 +@@ -1593,6 +1593,15 @@ + wpa_s->keys_cleared = 0; + wpa_clear_keys(wpa_s, wpa_s->bssid); + } ++ ++ if (wpa_s->wpa_state == WPA_DISCONNECTED) { ++ wpa_s->disconnect_count++; ++ if (!eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) { ++ eloop_register_timeout(6, 0, wpa_disconnect_spam_handle, wpa_s, NULL); ++ wpa_printf(MSG_DEBUG, "%s: scheduled DISCONNECT spam handler", __FUNCTION__); ++ } ++ } ++ + wpa_supplicant_mark_disassoc(wpa_s); + + if (authenticating && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME)) +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_supplicant.c wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_supplicant.c +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_supplicant.c 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_supplicant.c 2012-05-06 01:01:17.530134303 -0500 +@@ -434,6 +434,9 @@ + + wpa_supplicant_cancel_scan(wpa_s); + wpa_supplicant_cancel_auth_timeout(wpa_s); ++ if (eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) ++ eloop_cancel_timeout(wpa_disconnect_spam_handle, wpa_s, NULL); ++ + eloop_cancel_timeout(wpa_supplicant_stop_countermeasures, wpa_s, NULL); + #ifdef CONFIG_DELAYED_MIC_ERROR_REPORT + eloop_cancel_timeout(wpa_supplicant_delayed_mic_error_report, +@@ -592,6 +595,23 @@ + #endif /* CONFIG_BGSCAN */ + + ++void wpa_disconnect_spam_handle(void *eloop_ctx, void *timeout_ctx) ++{ ++ struct wpa_supplicant *wpa_s = eloop_ctx; ++ const u8 bssid[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; ++ ++ wpa_printf(MSG_DEBUG, "%s: %d disconnect events in 6 seconds", ++ __FUNCTION__, wpa_s->disconnect_count); ++ ++ if (wpa_s->disconnect_count >= 3) { ++ wpa_printf(MSG_DEBUG, "%s: forcing SSID/BSSID reset", __FUNCTION__); ++ wpa_drv_disassociate(wpa_s, bssid, WLAN_REASON_DEAUTH_LEAVING); ++ wpa_supplicant_req_scan(wpa_s, 1, 0); ++ } ++ wpa_s->disconnect_count = 0; ++} ++ ++ + /** + * wpa_supplicant_set_state - Set current connection state + * @wpa_s: Pointer to wpa_supplicant data +@@ -612,6 +632,18 @@ + if (state != WPA_SCANNING) + wpa_supplicant_notify_scanning(wpa_s, 0); + ++ if (state != WPA_DISCONNECTED && state != WPA_SCANNING) { ++ /* If the state isn't disconnected, cancel any registered ++ * disconnect spam handler, which should only live while ++ * disconnect events are coming in quickly. ++ */ ++ wpa_s->disconnect_count = 0; ++ if (eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) { ++ wpa_printf(MSG_DEBUG, "%s: canceling DISCONNECT spam handler", __FUNCTION__); ++ eloop_cancel_timeout(wpa_disconnect_spam_handle, wpa_s, NULL); ++ } ++ } ++ + if (state == WPA_COMPLETED && wpa_s->new_connection) { + #if defined(CONFIG_CTRL_IFACE) || !defined(CONFIG_NO_STDOUT_DEBUG) + struct wpa_ssid *ssid = wpa_s->current_ssid; +diff -Nur wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_supplicant_i.h wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_supplicant_i.h +--- wpa_supplicant-1.0-rc3.orig/wpa_supplicant/wpa_supplicant_i.h 2012-04-16 15:15:40.000000000 -0500 ++++ wpa_supplicant-1.0-rc3/wpa_supplicant/wpa_supplicant_i.h 2012-05-06 01:01:17.530134303 -0500 +@@ -355,6 +355,8 @@ + struct wps_er *wps_er; + int blacklist_cleared; + ++ int disconnect_count; ++ + struct wpabuf *pending_eapol_rx; + struct os_time pending_eapol_rx_time; + u8 pending_eapol_rx_src[ETH_ALEN]; +@@ -535,6 +537,7 @@ + int sec, int usec); + void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s, + enum wpa_states state); ++void wpa_disconnect_spam_handle(void *eloop_ctx, void *timeout_ctx); + struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s); + const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s); + void wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s); diff --git a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild index 8bbf01db6..32165fa90 100755 --- a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild +++ b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild @@ -22,8 +22,10 @@ # ----------------------------------------------------------------------------- PKGNAM=wpa_supplicant -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +VERSION=1.0 +BUILD=${BUILD:-1} + +SRCVERSION=$(printf $VERSION | tr _ -) # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -37,8 +39,6 @@ fi NUMJOBS=${NUMJOBS:-" -j7 "} -DOCS="ChangeLog ../COPYING README README-WPS *.txt examples wpa_supplicant.conf.sample" - if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" LIBDIRSUFFIX="" @@ -59,31 +59,16 @@ else LIBDIRSUFFIX="" fi -# Support for some of the wireless drivers needs the header files of those -# drivers. -# Change these *_INCLUDES variables to where _your_ driver include directory -# is located. If any of these directories is found, support for the driver -# will be added to wpa_supplicant. -# My madwifi package for Slackware installs the headers here: -MADWIFI_INCLUDES="/usr/include/madwifi" -HERMES_INCLUDES="" -BROADCOM_INCLUDES="" - CWD=$(pwd) TMP=${TMP:-/tmp} PKG=$TMP/package-$PKGNAM + rm -rf $PKG mkdir -p $TMP $PKG - -if ! [ -f $CWD/${PKGNAM}.defconfig ]; then - echo "Could not find ${PKGNAM}.defconfig!" - exit 1 -fi - cd $TMP -rm -rf ${PKGNAM}-${VERSION} -tar xvf $CWD/${PKGNAM}-${VERSION}.tar.?z* || exit 1 -cd ${PKGNAM}-${VERSION} +rm -rf ${PKGNAM}-${SRCVERSION} +tar xvf $CWD/${PKGNAM}-${SRCVERSION}.tar.?z* || exit 1 +cd ${PKGNAM}-${SRCVERSION} chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -91,179 +76,91 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -#sed -i -e \ -# "s/^#define VERSION_STR \"\(.*\)\"/#define VERSION_STR \"\1_$VERSION\"/" \ -# src/common/version.h +# Fixup various paths in the dbus service file +patch -p1 < $CWD/patches/dbus-service-file-args.diff + +# Include unistd.h +patch -p1 < $CWD/patches/include-unistd_h.diff -zcat $CWD/hostap-07.git-b80b5639935d37b95d00f86b57f2844a9c775f57.patch.gz | patch -p1 --verbose || exit 1 +# Add libnl3 includes +patch -p1 < $CWD/patches/libnl3-includes.diff + +# Eliminate some logspam +patch -p1 < $CWD/patches/quiet-scan-results-message.diff +patch -p1 < $CWD/patches/squelch-driver-disconnect-spam.diff -# The source code has been re-organized: cd wpa_supplicant # Create the configuration file for building wpa_supplicant: -cat $CWD/${PKGNAM}.defconfig > .config -if [ ! -z $MADWIFI_INCLUDES -a -d $MADWIFI_INCLUDES ]; then - echo "Adding madwifi driver (Atheros) support" - cat <<-EOT >> .config - CONFIG_DRIVER_MADWIFI=y - CFLAGS += -I${MADWIFI_INCLUDES} - EOT -fi -if [ ! -z $HERMES_INCLUDES -a -d $HERMES_INCLUDES ]; then - echo "Adding hermes driver (Agere) support" - cat <<-EOT >> .config - CONFIG_DRIVER_HERMES=y - CFLAGS += -I${HERMES_INCLUDES} - EOT -fi -if [ ! -z $BROADCOM_INCLUDES -a -d $BROADCOM_INCLUDES ]; then - echo "Adding broadcom driver support" - cat <<-EOT >> .config - CONFIG_DRIVER_BROADCOM=y - CFLAGS += -I${BROADCOM_INCLUDES} - EOT -fi -make $NUMJOBS || make || exit 1 +cat $CWD/config/dot.config > .config -# Build the Qt4 GUI client -make wpa_gui-qt4 || exit 1 +# Build the usual binaries +CFLAGS="$SLKCFLAGS" \ +make $NUMJOBS \ + BINDIR=/usr/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 -# Make man pages if needed -( cd doc/docbook - if ! ls *.? >/dev/null 2>&1 ; then - make man - fi -) +# Build the Qt4 GUI client +CFLAGS="$SLKCFLAGS" \ +make $NUMJOBS \ + wpa_gui-qt4 \ + BINDIR=/usr/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 -# Do not build the developer docs: -#PATH=".:$PATH" make docs +# Make sure man pages are built +make -C doc/docbook man # This goes into the doc directory later on: -cp wpa_supplicant.conf wpa_supplicant.conf.sample +mv wpa_supplicant.conf wpa_supplicant.conf.sample # Install binaries: mkdir -p $PKG/usr/sbin $PKG/usr/bin cp wpa_supplicant wpa_passphrase wpa_cli $PKG/usr/sbin/ cp wpa_gui-qt4/wpa_gui $PKG/usr/bin/ +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + # Install dbus configuration file: mkdir -p $PKG/etc/dbus-1/system.d/ cp dbus/dbus-wpa_supplicant.conf \ $PKG/etc/dbus-1/system.d/dbus-wpa_supplicant.conf -# This file should actually be shipped with Slackware's wpa_supplicant -# package, but since we missed it there (just kidding), we'll do it here: mkdir -p $PKG/usr/share/dbus-1/system-services -install -m644 dbus/{fi.epitest.hostap.WPASupplicant.service,fi.w1.wpa_supplicant1.service} \ - $PKG/usr/share/dbus-1/system-services/ -sed -e 's#Exec=/sbin/wpa_supplicant#Exec=/usr/sbin/wpa_supplicant#g' \ - -i $PKG/usr/share/dbus-1/system-services/*.service +install -m644 dbus/*.service $PKG/usr/share/dbus-1/system-services/ -# Install a .desktop file for wpa_gui: -mkdir -p $PKG/usr/share/applications -cat <<EOT > $PKG/usr/share/applications/wpa_gui.desktop -[Desktop Entry] -Name=wpa_gui -Comment[en]=Wpa_supplicant management -Exec=kdesu wpa_gui -Icon=wpa_gui -Type=Application -Categories=Qt;Network; -EOT +# Install a .desktop file and icon for wpa_gui: +# (converted from the wpa_gui.svg in the source) +mkdir -p $PKG/usr/share/{applications,pixmaps} +cat $CWD/config/wpa_gui.desktop > $PKG/usr/share/applications/wpa_gui.desktop +cat $CWD/config/wpa_gui.png > $PKG/usr/share/pixmaps/wpa_gui.png -# The icon used for the menu (converted from the wpa_gui.svg in the source) -mkdir -p $PKG/usr/share/pixmaps -cp -a $CWD/wpa_gui.png $PKG/usr/share/pixmaps/ +# Install a logrotate config +mkdir -p $PKG/etc/logrotate.d +cat $CWD/config/wpa_supplicant.logrotate > $PKG/etc/logrotate.d/wpa_supplicant.new # Install man pages: for m in 5 8; do mkdir -p $PKG/usr/man/man${m} cp doc/docbook/*.${m} $PKG/usr/man/man${m}/ done +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; -# Install a default configuration file: +# Install a default configuration file (only readable by root): mkdir -p $PKG/etc -cat <<-_EOT_ > $PKG/etc/wpa_supplicant.conf.new - # See /usr/doc/${PKGNAM}-${VERSION}/wpa_supplicant.conf.sample - # for many more options that you can use in this file. - - # This line enables the use of wpa_cli which is used by rc.wireless - # if possible (to check for successful association) - ctrl_interface=/var/run/wpa_supplicant - # By default, only root (group 0) may use wpa_cli - ctrl_interface_group=0 - eapol_version=1 - ap_scan=1 - fast_reauth=1 - #country=US - - # WPA protected network, supply your own ESSID and WPAPSK here: - network={ - scan_ssid=0 - ssid="your_essid_here" - proto=WPA RSN - key_mgmt=WPA-PSK - pairwise=CCMP TKIP - group=CCMP TKIP WEP104 WEP40 - psk=your_64_char_psk_here - priority=10 - } - - # Plaintext connection (no WPA, no IEEE 802.1X), - # nice for hotel/airport types of WiFi network. - network={ - key_mgmt=NONE - priority=0 - } - _EOT_ - -# Create the 'doinst.sh' script: -mkdir -p $PKG/install 2>/dev/null -cat <<EOINS > $PKG/install/doinst.sh -# Handle the incoming configuration files: -config() { - for infile in \$1; do - NEW="\$infile" - OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" - # If there's no config file by that name, mv it over: - if [ ! -r \$OLD ]; then - mv \$NEW \$OLD - elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then - # toss the redundant copy - rm \$NEW - fi - # Otherwise, we leave the .new copy for the admin to consider... - done -} -config etc/wpa_supplicant.conf.new - -EOINS +cat $CWD/config/wpa_supplicant.conf > $PKG/etc/wpa_supplicant.conf.new +chmod 600 $PKG/etc/wpa_supplicant.conf.new -# Add the documentation: mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION -cp -a $DOCS $PKG/usr/doc/$PKGNAM-$VERSION -cp -a $CWD/README.slackware $PKG/usr/doc/${PKGNAM}-${VERSION}/ -chmod -R a-w $PKG/usr/doc/$PKGNAM-$VERSION/* +cp -a \ + ChangeLog ../COPYING README README-{P2P,WPS} examples *.txt *.sample $CWD/README.slackware \ + $PKG/usr/doc/$PKGNAM-$VERSION chown -R root:root $PKG/usr/doc/$PKGNAM-$VERSION/* +chmod -R a-w $PKG/usr/doc/$PKGNAM-$VERSION/* -# This should only be read/write by root: -chmod 600 $PKG/etc/wpa_supplicant.conf.new - -# Compress the man page(s): -find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; - -# Strip binaries: -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null - -# Add a package description: mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc -if [ -f $CWD/doinst.sh ]; then - cat $CWD/doinst.sh >> $PKG/install/doinst.sh -fi +zcat $CWD/doinst.sh.gz >> $PKG/install/doinst.sh -# Build the package: cd $PKG /sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txz - |