* [gentoo-commits] proj/gnome:master commit in: net-wireless/wpa_supplicant/files/, net-misc/networkmanager/, ...
@ 2011-03-20 3:49 Nirbheek Chauhan
0 siblings, 0 replies; only message in thread
From: Nirbheek Chauhan @ 2011-03-20 3:49 UTC (permalink / raw
To: gentoo-commits
commit: 5412514e73f058e59bb8b38d9669abcdda5cfbda
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 20 03:42:12 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Mar 20 03:48:42 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=5412514e
Add net-wireless/wpa_supplicant-0.7.3-r3, fixing bug 359271
---
.../networkmanager-0.8.996-r1.ebuild | 3 +-
...do-not-call-dbus-functions-with-NULL-path.patch | 53 +++
net-wireless/wpa_supplicant/files/wpa_cli.sh | 45 +++
.../wpa_supplicant-0.7.3-dbus-api-changes.patch | 66 ++++
.../files/wpa_supplicant-0.7.3-dbus_path_fix.patch | 16 +
...wpa_supplicant-0.7.3-generate-libeap-peer.patch | 395 ++++++++++++++++++++
.../wpa_supplicant/files/wpa_supplicant-conf.d | 6 +
.../wpa_supplicant/files/wpa_supplicant-init.d | 70 ++++
.../wpa_supplicant/wpa_supplicant-0.7.3-r3.ebuild | 272 ++++++++++++++
9 files changed, 925 insertions(+), 1 deletions(-)
diff --git a/net-misc/networkmanager/networkmanager-0.8.996-r1.ebuild b/net-misc/networkmanager/networkmanager-0.8.996-r1.ebuild
index f384197..201783c 100644
--- a/net-misc/networkmanager/networkmanager-0.8.996-r1.ebuild
+++ b/net-misc/networkmanager/networkmanager-0.8.996-r1.ebuild
@@ -26,6 +26,7 @@ REQUIRED_USE="
dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )"
# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
RDEPEND=">=sys-apps/dbus-1.2
>=dev-libs/dbus-glib-0.75
>=net-wireless/wireless-tools-28_pre9
@@ -34,7 +35,7 @@ RDEPEND=">=sys-apps/dbus-1.2
>=sys-auth/polkit-0.96
>=dev-libs/libnl-1.1
>=net-misc/modemmanager-0.4
- >=net-wireless/wpa_supplicant-0.7.2[dbus]
+ >=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
bluetooth? ( >=net-wireless/bluez-4.82 )
avahi? ( net-dns/avahi[autoipd] )
gnutls? (
diff --git a/net-wireless/wpa_supplicant/files/do-not-call-dbus-functions-with-NULL-path.patch b/net-wireless/wpa_supplicant/files/do-not-call-dbus-functions-with-NULL-path.patch
new file mode 100644
index 0000000..d868f84
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/do-not-call-dbus-functions-with-NULL-path.patch
@@ -0,0 +1,53 @@
+diff --git a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbus/dbus_new_helpers.c
+index 06749db..1cbdee9 100644
+--- a/wpa_supplicant/dbus/dbus_new_helpers.c
++++ b/wpa_supplicant/dbus/dbus_new_helpers.c
+@@ -810,7 +810,7 @@ void wpa_dbus_mark_property_changed(struct wpas_dbus_priv *iface,
+ const struct wpa_dbus_property_desc *dsc;
+ int i = 0;
+
+- if (iface == NULL)
++ if (iface == NULL || path == NULL)
+ return;
+
+ dbus_connection_get_object_path_data(iface->con, path,
+diff --git a/wpa_supplicant/dbus/dbus_old.c b/wpa_supplicant/dbus/dbus_old.c
+index 437a04d..9e6c762 100644
+--- a/wpa_supplicant/dbus/dbus_old.c
++++ b/wpa_supplicant/dbus/dbus_old.c
+@@ -377,7 +377,7 @@ void wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s)
+ DBusMessage *_signal;
+
+ /* Do nothing if the control interface is not turned on */
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
+@@ -414,7 +414,7 @@ void wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
+ if (wpa_s->global == NULL)
+ return;
+ iface = wpa_s->global->dbus;
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ /* Only send signal if state really changed */
+@@ -473,7 +473,7 @@ void wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s)
+ dbus_bool_t scanning = wpa_s->scanning ? TRUE : FALSE;
+
+ /* Do nothing if the control interface is not turned on */
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
+@@ -508,7 +508,7 @@ void wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
+ if (wpa_s->global == NULL)
+ return;
+ iface = wpa_s->global->dbus;
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
diff --git a/net-wireless/wpa_supplicant/files/wpa_cli.sh b/net-wireless/wpa_supplicant/files/wpa_cli.sh
new file mode 100644
index 0000000..d7d340b
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_cli.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+# Copyright 1999-2006 Gentoo Foundation
+# Written by Roy Marples <uberlord@gentoo.org>
+# Distributed under the terms of the GNU General Public License v2
+# Alternatively, this file may be distributed under the terms of the BSD License
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/files/wpa_cli.sh,v 1.1 2006/07/11 15:07:16 uberlord Exp $
+
+if [ -z "$1" -o -z "$2" ]; then
+ logger -t wpa_cli "Insufficient parameters"
+ exit 1
+fi
+
+INTERFACE="$1"
+ACTION="$2"
+
+# Note, the below action must NOT mark the interface down via ifconfig, ip or
+# similar. Addresses can be removed, changed and daemons can be stopped, but
+# the interface must remain up for wpa_supplicant to work.
+
+if [ -f /etc/gentoo-release ]; then
+ EXEC="/etc/init.d/net.${INTERFACE} --quiet"
+else
+ logger -t wpa_cli "I don't know what to do with this distro!"
+ exit 1
+fi
+
+case ${ACTION} in
+ CONNECTED)
+ EXEC="${EXEC} start"
+ ;;
+ DISCONNECTED)
+ EXEC="${EXEC} stop"
+ ;;
+ *)
+ logger -t wpa_cli "Unknown action ${ACTION}"
+ exit 1
+ ;;
+esac
+
+# ${EXEC} can use ${IN_BACKGROUND} so that it knows that the user isn't
+# stopping the interface and a background process - like wpa_cli - is.
+export IN_BACKGROUND=true
+
+logger -t wpa_cli "interface ${INTERFACE} ${ACTION}"
+${EXEC} || logger -t wpa_cli "executing '${EXEC}' failed"
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus-api-changes.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus-api-changes.patch
new file mode 100644
index 0000000..2ec1a97
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus-api-changes.patch
@@ -0,0 +1,66 @@
+Taken from:
+
+https://bugzilla.gnome.org/show_bug.cgi?id=644634
+
+
+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/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus_path_fix.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus_path_fix.patch
new file mode 100644
index 0000000..ac82943
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus_path_fix.patch
@@ -0,0 +1,16 @@
+--- dbus/fi.epitest.hostap.WPASupplicant.service 2010-09-07 10:43:39.000000000 -0500
++++ dbus/fi.epitest.hostap.WPASupplicant.service 2011-01-08 19:41:32.969507889 -0500
+@@ -1,4 +1,4 @@
+ [D-BUS Service]
+ Name=fi.epitest.hostap.WPASupplicant
+-Exec=/sbin/wpa_supplicant -u
++Exec=/usr/sbin/wpa_supplicant -u
+ User=root
+--- dbus/fi.w1.wpa_supplicant1.service 2010-09-07 10:43:39.000000000 -0500
++++ dbus/fi.w1.wpa_supplicant1.service 2011-01-08 19:42:12.420246349 -0500
+@@ -1,4 +1,4 @@
+ [D-BUS Service]
+ Name=fi.w1.wpa_supplicant1
+-Exec=/sbin/wpa_supplicant -u
++Exec=/usr/sbin/wpa_supplicant -u
+ User=root
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-generate-libeap-peer.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-generate-libeap-peer.patch
new file mode 100644
index 0000000..a2bbc5c
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-generate-libeap-peer.patch
@@ -0,0 +1,395 @@
+From 3de5e59b291b6f58317bb16736f8c0271754378e Mon Sep 17 00:00:00 2001
+From: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+Date: Sat, 2 Oct 2010 00:11:51 -0700
+Subject: [PATCH] eap_peer: create a libeap library, with header files and pkg-config [v2]
+
+This adds infrastructe in src/eap_peer to make libeap.so and install
+the needed header files and pkg-config files.
+
+Now, this is quite dirty and probably not what we want in the long
+term, but serves as an starting point:
+
+ - we don't build from the wpa_supplicant directory because the
+ objects the .so have to be built with -fPIC. So if you need to
+ build both the binary and the library:
+
+ make -C wpa_supplicant
+ make -C src/eap_peer clean
+ make -C src/eap_peer
+
+ As I said, it's dirty -- we'd need either wpa_supplicant linking
+ against the library properly (but that seems not to be desirable)
+ or a multiple object build approach ala automake.
+
+ - need to use 'override CFLAGS' in src/eap_peer/Makefile, otherwise
+ any CFLAGS setting will kill the build infrastructure. I miss
+ AM_CFLAGS.
+
+ - adds 'eap_register_methods()' that will register every compiled in
+ method.
+
+Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+---
+ build_release | 12 +++
+ src/eap_peer/Makefile | 191 ++++++++++++++++++++++++++++++++++++++++++--
+ src/eap_peer/eap_methods.c | 114 ++++++++++++++++++++++++++
+ src/eap_peer/eap_methods.h | 1 +
+ src/eap_peer/libeap0.pc | 10 +++
+ 5 files changed, 320 insertions(+), 8 deletions(-)
+ create mode 100644 src/eap_peer/libeap0.pc
+
+diff --git a/src/eap_peer/Makefile b/src/eap_peer/Makefile
+index 3651056..58c067a 100644
+--- a/src/eap_peer/Makefile
++++ b/src/eap_peer/Makefile
+@@ -1,11 +1,186 @@
+-all:
+- @echo Nothing to be made.
++LIBEAP_NAME = libeap
++LIBEAP_CURRENT = 0
++LIBEAP_REVISION = 0
++LIBEAP_AGE = 0
++
++LIBEAP = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT).$(LIBEAP_REVISION).$(LIBEAP_AGE)
++LIBEAP_SO = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT)
++
++.PHONY: all clean install uninstall
++
++all: $(LIBEAP)
++
++ifndef CC
++CC=gcc
++endif
++
++ifndef CFLAGS
++CFLAGS = -MMD -O0 -Wall -g
++endif
++
++CONFIG_TLS=openssl
++
++INCLUDE_INSTALL_DIR=/usr/include/eap_peer
++
++# Got to use override all across the board, otherwise a 'make
++# CFLAGS=XX' will kill us because the command line's CFLAGS will
++# overwrite Make's and we'll loose all the infrastructure it sets.
++override CFLAGS += -I. -I.. -I../crypto -I../utils -I../common
++
++# at least for now, need to include config_ssid.h and config_blob.h from
++# wpa_supplicant directory
++override CFLAGS += -I ../../wpa_supplicant
++
++OBJS_both += ../utils/common.o
++OBJS_both += ../utils/os_unix.o
++OBJS_both += ../utils/wpa_debug.o
++OBJS_both += ../utils/base64.o
++OBJS_both += ../utils/wpabuf.o
++OBJS_both += ../crypto/md5.o
++OBJS_both += ../crypto/sha1.o
++OBJS_both += ../crypto/sha1-tlsprf.o
++OBJS_both += ../crypto/aes-encblock.o
++OBJS_both += ../crypto/aes-wrap.o
++OBJS_both += ../crypto/aes-ctr.o
++OBJS_both += ../crypto/aes-eax.o
++OBJS_both += ../crypto/aes-omac1.o
++OBJS_both += ../crypto/ms_funcs.o
++OBJS_both += ../crypto/sha256.o
++
++
++OBJS_both += ../eap_common/eap_peap_common.o
++OBJS_both += ../eap_common/eap_psk_common.o
++OBJS_both += ../eap_common/eap_pax_common.o
++OBJS_both += ../eap_common/eap_sake_common.o
++OBJS_both += ../eap_common/eap_gpsk_common.o
++OBJS_both += ../eap_common/chap.o
++
++OBJS_peer += ../eap_peer/eap_tls.o
++OBJS_peer += ../eap_peer/eap_peap.o
++OBJS_peer += ../eap_peer/eap_ttls.o
++OBJS_peer += ../eap_peer/eap_md5.o
++OBJS_peer += ../eap_peer/eap_mschapv2.o
++OBJS_peer += ../eap_peer/mschapv2.o
++OBJS_peer += ../eap_peer/eap_otp.o
++OBJS_peer += ../eap_peer/eap_gtc.o
++OBJS_peer += ../eap_peer/eap_leap.o
++OBJS_peer += ../eap_peer/eap_psk.o
++OBJS_peer += ../eap_peer/eap_pax.o
++OBJS_peer += ../eap_peer/eap_sake.o
++OBJS_peer += ../eap_peer/eap_gpsk.o
++OBJS_peer += ../eap_peer/eap.o
++OBJS_peer += ../eap_common/eap_common.o
++OBJS_peer += ../eap_peer/eap_methods.o
++OBJS_peer += ../eap_peer/eap_tls_common.o
++
++override CFLAGS += -DEAP_TLS
++override CFLAGS += -DEAP_PEAP
++override CFLAGS += -DEAP_TTLS
++override CFLAGS += -DEAP_MD5
++override CFLAGS += -DEAP_MSCHAPv2
++override CFLAGS += -DEAP_GTC
++override CFLAGS += -DEAP_OTP
++override CFLAGS += -DEAP_LEAP
++override CFLAGS += -DEAP_PSK
++override CFLAGS += -DEAP_PAX
++override CFLAGS += -DEAP_SAKE
++override CFLAGS += -DEAP_GPSK -DEAP_GPSK_SHA256
++override CFLAGS += -DEAP_TLS_FUNCS
++
++override CFLAGS += -DIEEE8021X_EAPOL
++
++ifeq ($(CONFIG_TLS), openssl)
++override CFLAGS += -DEAP_TLS_OPENSSL
++OBJS_both += ../crypto/tls_openssl.o
++OBJS_both += ../crypto/crypto_openssl.o
++LIBS += -lssl -lcrypto
++override CFLAGS += -DINTERNAL_SHA256
++endif
++
++ifeq ($(CONFIG_TLS), internal)
++OBJS_both += ../crypto/tls_internal.o
++OBJS_both += ../tls/tlsv1_common.o ../../tls/tlsv1_record.o
++OBJS_both += ../tls/tlsv1_cred.o
++OBJS_both += ../tls/asn1.o ../../tls/x509v3.o
++OBJS_both += ../crypto/crypto_internal.o ../../tls/rsa.o ../../tls/bignum.o
++
++OBJS_peer += ../tls/tlsv1_client.o
++OBJS_peer += ../tls/tlsv1_client_write.o ../../tls/tlsv1_client_read.o
++override CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
++
++OBJS_server += ../tls/tlsv1_server.o
++OBJS_server += ../tls/tlsv1_server_write.o ../../tls/tlsv1_server_read.o
++override CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
++
++override CFLAGS += -DCONFIG_TLS_INTERNAL
++override CFLAGS += -DCONFIG_CRYPTO_INTERNAL
++override CFLAGS += -DCONFIG_INTERNAL_X509
++override CFLAGS += -DINTERNAL_AES
++override CFLAGS += -DINTERNAL_SHA1
++override CFLAGS += -DINTERNAL_SHA256
++override CFLAGS += -DINTERNAL_MD5
++override CFLAGS += -DINTERNAL_MD4
++override CFLAGS += -DINTERNAL_DES
++ifdef CONFIG_INTERNAL_LIBTOMMATH
++override CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
++else
++LIBS += -ltommath
++endif
++endif
++
++ifndef LDO
++LDO=$(CC)
++endif
++
++
++OBJS_lib=$(OBJS_both) $(OBJS_peer)
++
++ #$(OBJS_server)
++
++override CFLAGS += -fPIC -DPIC
++LDFLAGS += -shared
++
++$(LIBEAP): $(OBJS_lib)
++ $(LDO) $(LDFLAGS) $(OBJS_lib) -Wl,-soname -Wl,$(LIBEAP_SO) -o $(LIBEAP) $(LIBS)
++
++
++UTIL_HEADERS = ../utils/includes.h ../utils/common.h \
++ ../utils/wpabuf.h ../utils/build_config.h \
++ ../utils/os.h ../utils/wpa_debug.h
++COMMON_HEADERS = ../common/defs.h
++EAP_COMMON_HEADERS = ../eap_common/eap_defs.h
++MAIN_HEADERS = eap.h eap_methods.h eap_config.h
++CRYPTO_HEADERS = ../crypto/tls.h
++
++install:
++
++ mkdir -p $(DESTDIR)/usr/lib
++# copy the lib file to std lib location
++ cp $(LIBEAP) $(DESTDIR)/usr/lib
++ ln -fs $(LIBEAP_SO) $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so
++
++# copy the headers reqd by apps using eap peer library in its own subfolder under /usr/include
++ mkdir -p \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto
++ install -m 0644 $(EAP_COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common
++ install -m 0644 $(COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common
++ install -m 0644 $(CRYPTO_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto
++ install -m 0644 $(UTIL_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util
++ install -m 0644 $(MAIN_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/
++
++ mkdir -p $(DESTDIR)/usr/lib/pkgconfig
++ cp libeap0.pc $(DESTDIR)/usr/lib/pkgconfig
++
++uninstall:
++
++ rm $(DESTDIR)/usr/lib/$(LIBEAP)
++ rm -fr $(DESTDIR)/$(INCLUDE_INSTALL_DIR)
++ rm -f $(DESTDIR)/usr/lib/pkgconfig/libeap0.pc
+
+ clean:
+- rm -f *~ *.o *.so *.d
++ rm -f *~ *.o *.so *.d libeap.a $(LIBEAP) $(OBJS_lib)
+
+-install:
+- if ls *.so >/dev/null 2>&1; then \
+- install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \
+- cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
+- ; fi
++-include $(OBJS:%.o=%.d)
+diff --git a/src/eap_peer/eap_methods.c b/src/eap_peer/eap_methods.c
+index 3b0af05..092f266 100644
+--- a/src/eap_peer/eap_methods.c
++++ b/src/eap_peer/eap_methods.c
+@@ -340,6 +340,120 @@ int eap_peer_method_register(struct eap_method *method)
+
+
+ /**
++ * eap_peer_register_methods - Register all known EAP peer methods
++ *
++ * This function is called at program start to register all compiled
++ * in EAP peer methods.
++ */
++int eap_peer_register_methods(void)
++{
++ int ret = 0;
++
++#ifdef EAP_MD5
++ if (ret == 0)
++ ret = eap_peer_md5_register();
++#endif /* EAP_MD5 */
++
++#ifdef EAP_TLS
++ if (ret == 0)
++ ret = eap_peer_tls_register();
++#endif /* EAP_TLS */
++
++#ifdef EAP_MSCHAPv2
++ if (ret == 0)
++ ret = eap_peer_mschapv2_register();
++#endif /* EAP_MSCHAPv2 */
++
++#ifdef EAP_PEAP
++ if (ret == 0)
++ ret = eap_peer_peap_register();
++#endif /* EAP_PEAP */
++
++#ifdef EAP_TTLS
++ if (ret == 0)
++ ret = eap_peer_ttls_register();
++#endif /* EAP_TTLS */
++
++#ifdef EAP_GTC
++ if (ret == 0)
++ ret = eap_peer_gtc_register();
++#endif /* EAP_GTC */
++
++#ifdef EAP_OTP
++ if (ret == 0)
++ ret = eap_peer_otp_register();
++#endif /* EAP_OTP */
++
++#ifdef EAP_SIM
++ if (ret == 0)
++ ret = eap_peer_sim_register();
++#endif /* EAP_SIM */
++
++#ifdef EAP_LEAP
++ if (ret == 0)
++ ret = eap_peer_leap_register();
++#endif /* EAP_LEAP */
++
++#ifdef EAP_PSK
++ if (ret == 0)
++ ret = eap_peer_psk_register();
++#endif /* EAP_PSK */
++
++#ifdef EAP_AKA
++ if (ret == 0)
++ ret = eap_peer_aka_register();
++#endif /* EAP_AKA */
++
++#ifdef EAP_AKA_PRIME
++ if (ret == 0)
++ ret = eap_peer_aka_prime_register();
++#endif /* EAP_AKA_PRIME */
++
++#ifdef EAP_FAST
++ if (ret == 0)
++ ret = eap_peer_fast_register();
++#endif /* EAP_FAST */
++
++#ifdef EAP_PAX
++ if (ret == 0)
++ ret = eap_peer_pax_register();
++#endif /* EAP_PAX */
++
++#ifdef EAP_SAKE
++ if (ret == 0)
++ ret = eap_peer_sake_register();
++#endif /* EAP_SAKE */
++
++#ifdef EAP_GPSK
++ if (ret == 0)
++ ret = eap_peer_gpsk_register();
++#endif /* EAP_GPSK */
++
++#ifdef EAP_WSC
++ if (ret == 0)
++ ret = eap_peer_wsc_register();
++#endif /* EAP_WSC */
++
++#ifdef EAP_IKEV2
++ if (ret == 0)
++ ret = eap_peer_ikev2_register();
++#endif /* EAP_IKEV2 */
++
++#ifdef EAP_VENDOR_TEST
++ if (ret == 0)
++ ret = eap_peer_vendor_test_register();
++#endif /* EAP_VENDOR_TEST */
++
++#ifdef EAP_TNC
++ if (ret == 0)
++ ret = eap_peer_tnc_register();
++#endif /* EAP_TNC */
++
++ return ret;
++}
++
++
++/**
+ * eap_peer_unregister_methods - Unregister EAP peer methods
+ *
+ * This function is called at program termination to unregister all EAP peer
+diff --git a/src/eap_peer/eap_methods.h b/src/eap_peer/eap_methods.h
+index 384c61b..b83a46f 100644
+--- a/src/eap_peer/eap_methods.h
++++ b/src/eap_peer/eap_methods.h
+@@ -32,6 +32,7 @@ EapType eap_peer_get_type(const char *name, int *vendor);
+ const char * eap_get_name(int vendor, EapType type);
+ size_t eap_get_names(char *buf, size_t buflen);
+ char ** eap_get_names_as_string_array(size_t *num);
++int eap_peer_register_methods(void);
+ void eap_peer_unregister_methods(void);
+
+ #else /* IEEE8021X_EAPOL */
+diff --git a/src/eap_peer/libeap0.pc b/src/eap_peer/libeap0.pc
+new file mode 100644
+index 0000000..2f8463a
+--- /dev/null
++++ b/src/eap_peer/libeap0.pc
+@@ -0,0 +1,10 @@
++prefix=/usr
++exec_prefix=/usr
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include/eap_peer
++
++Name: libeap0
++Description: EAP Peer Library API
++Version: 0.7.2
++Libs: -L${libdir} -leap
++Cflags: -I${includedir}
+--
+1.6.6.1
+
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d b/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d
new file mode 100644
index 0000000..104b9dc
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d
@@ -0,0 +1,6 @@
+# conf.d file for wpa_supplicant
+#
+# Please check man 8 wpa_supplicant for more information about the options
+# wpa_supplicant accepts.
+#
+wpa_supplicant_args=""
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d b/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d
new file mode 100644
index 0000000..8429a37
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+
+command=/usr/sbin/wpa_supplicant
+: ${wpa_supplicant_conf:=/etc/wpa_supplicant/wpa_supplicant.conf}
+wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
+command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if"
+name="WPA Supplicant Daemon"
+
+depend()
+{
+ need localmount
+ use logger
+ after bootmisc modules
+ before dns dhcpcd net
+ keyword -shutdown
+}
+
+find_wireless()
+{
+ local iface=
+
+ case "$RC_UNAME" in
+ Linux)
+ for iface in /sys/class/net/*; do
+ if [ -e "$iface"/wireless -o \
+ -e "$iface"/phy80211 ]
+ then
+ echo "${iface##*/}"
+ return 0
+ fi
+ done
+ ;;
+ *)
+ for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
+ if ifconfig "${iface##*/}" 2>/dev/null | \
+ grep -q "[ ]*ssid "
+ then
+ echo "${iface##*/}"
+ return 0
+ fi
+ done
+ ;;
+ esac
+
+ return 1
+}
+
+append_wireless()
+{
+ local iface= i=
+
+ iface=$(find_wireless)
+ if [ -n "$iface" ]; then
+ for i in $iface; do
+ command_args="$command_args -i$i"
+ done
+ else
+ eerror "Could not find a wireless interface"
+ fi
+}
+
+start_pre()
+{
+ case " $command_args" in
+ *" -i"*) ;;
+ *) append_wireless;;
+ esac
+}
diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3-r3.ebuild b/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3-r3.ebuild
new file mode 100644
index 0000000..6d08243
--- /dev/null
+++ b/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3-r3.ebuild
@@ -0,0 +1,272 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3-r2.ebuild,v 1.2 2011/03/15 18:10:20 hwoarang Exp $
+
+EAPI="2"
+
+inherit eutils toolchain-funcs qt4-r2
+
+DESCRIPTION="IEEE 802.1X/WPA supplicant for secure wireless transfers"
+HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+LICENSE="|| ( GPL-2 BSD )"
+
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
+IUSE="dbus debug gnutls eap-sim fasteap madwifi ps3 qt4 readline ssl wimax wps kernel_linux kernel_FreeBSD"
+
+RDEPEND="dbus? ( sys-apps/dbus )
+ kernel_linux? (
+ eap-sim? ( sys-apps/pcsc-lite )
+ madwifi? ( ||
+ ( >net-wireless/madwifi-ng-tools-0.9.3
+ net-wireless/madwifi-old )
+ )
+ dev-libs/libnl
+ )
+ !kernel_linux? ( net-libs/libpcap )
+ qt4? ( x11-libs/qt-gui:4
+ x11-libs/qt-svg:4 )
+ readline? ( sys-libs/ncurses sys-libs/readline )
+ wimax? ( !net-wireless/libeap )
+ ssl? ( dev-libs/openssl )
+ !ssl? ( gnutls? ( net-libs/gnutls ) )
+ !ssl? ( !gnutls? ( dev-libs/libtommath ) )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/${P}/${PN}"
+
+pkg_setup() {
+ if use fasteap && (use gnutls || use ssl) ; then
+ die "If you use fasteap, you must build with wpa_supplicant's internal TLS implementation. That is, both 'gnutls' and 'ssl' USE flags must be disabled"
+ fi
+
+ if use gnutls && use ssl ; then
+ einfo "You have both 'gnutls' and 'ssl' USE flags enabled: defaulting to USE=\"ssl\""
+ fi
+}
+
+src_prepare() {
+ # net/bpf.h needed for net-libs/libpcap on Gentoo/FreeBSD
+ sed -i \
+ -e "s:\(#include <pcap\.h>\):#include <net/bpf.h>\n\1:" \
+ ../src/l2_packet/l2_packet_freebsd.c || die
+
+ # People seem to take the example configuration file too literally (bug #102361)
+ sed -i \
+ -e "s:^\(opensc_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_module_path\):#\1:" \
+ wpa_supplicant.conf || die
+
+ # Change configuration to match Gentoo locations (bug #143750)
+ sed -i \
+ -e "s:/usr/lib/opensc:/usr/$(get_libdir):" \
+ -e "s:/usr/lib/pkcs11:/usr/$(get_libdir):" \
+ wpa_supplicant.conf || die
+
+ epatch "${FILESDIR}/${P}-dbus_path_fix.patch"
+
+ if use wimax; then
+ cd "${WORKDIR}/${P}"
+ epatch "${FILESDIR}/${P}-generate-libeap-peer.patch"
+ fi
+
+ # bug (320097)
+ epatch "${FILESDIR}/do-not-call-dbus-functions-with-NULL-path.patch"
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=644634
+ epatch "${FILESDIR}/${P}-dbus-api-changes.patch"
+}
+
+src_configure() {
+ # Toolchain setup
+ echo "CC = $(tc-getCC)" > .config
+
+ # Basic setup
+ echo "CONFIG_CTRL_IFACE=y" >> .config
+ echo "CONFIG_BACKEND=file" >> .config
+
+ # Basic authentication methods
+ # NOTE: we don't set GPSK or SAKE as they conflict
+ # with the below options
+ echo "CONFIG_EAP_GTC=y" >> .config
+ echo "CONFIG_EAP_MD5=y" >> .config
+ echo "CONFIG_EAP_OTP=y" >> .config
+ echo "CONFIG_EAP_PAX=y" >> .config
+ echo "CONFIG_EAP_PSK=y" >> .config
+ echo "CONFIG_EAP_TLV=y" >> .config
+ echo "CONFIG_IEEE8021X_EAPOL=y" >> .config
+ echo "CONFIG_PKCS12=y" >> .config
+ echo "CONFIG_PEERKEY=y" >> .config
+ echo "CONFIG_EAP_LEAP=y" >> .config
+ echo "CONFIG_EAP_MSCHAPV2=y" >> .config
+ echo "CONFIG_EAP_PEAP=y" >> .config
+ echo "CONFIG_EAP_TLS=y" >> .config
+ echo "CONFIG_EAP_TTLS=y" >> .config
+
+ if use dbus ; then
+ echo "CONFIG_CTRL_IFACE_DBUS=y" >> .config
+ echo "CONFIG_CTRL_IFACE_DBUS_NEW=y" >> .config
+ echo "CONFIG_CTRL_IFACE_DBUS_INTRO=y" >> .config
+ fi
+
+ if use debug ; then
+ echo "CONFIG_DEBUG_FILE=y" >> .config
+ fi
+
+ if use eap-sim ; then
+ # Smart card authentication
+ echo "CONFIG_EAP_SIM=y" >> .config
+ echo "CONFIG_EAP_AKA=y" >> .config
+ echo "CONFIG_EAP_AKA_PRIME=y" >> .config
+ echo "CONFIG_PCSC=y" >> .config
+ fi
+
+ if use fasteap ; then
+ echo "CONFIG_EAP_FAST=y" >> .config
+ fi
+
+ if use readline ; then
+ # readline/history support for wpa_cli
+ echo "CONFIG_READLINE=y" >> .config
+ fi
+
+ # SSL authentication methods
+ if use ssl ; then
+ echo "CONFIG_TLS=openssl" >> .config
+ echo "CONFIG_SMARTCARD=y" >> .config
+ elif use gnutls ; then
+ echo "CONFIG_TLS=gnutls" >> .config
+ echo "CONFIG_GNUTLS_EXTRA=y" >> .config
+ else
+ echo "CONFIG_TLS=internal" >> .config
+ fi
+
+ if use kernel_linux ; then
+ # Linux specific drivers
+ echo "CONFIG_DRIVER_ATMEL=y" >> .config
+ #echo "CONFIG_DRIVER_BROADCOM=y" >> .config
+ #echo "CONFIG_DRIVER_HERMES=y" >> .config
+ echo "CONFIG_DRIVER_HOSTAP=y" >> .config
+ echo "CONFIG_DRIVER_IPW=y" >> .config
+ echo "CONFIG_DRIVER_NDISWRAPPER=y" >> .config
+ echo "CONFIG_DRIVER_NL80211=y" >> .config
+ #echo "CONFIG_DRIVER_PRISM54=y" >> .config
+ echo "CONFIG_DRIVER_RALINK=y" >> .config
+ echo "CONFIG_DRIVER_WEXT=y" >> .config
+ echo "CONFIG_DRIVER_WIRED=y" >> .config
+
+ if use madwifi ; then
+ # Add include path for madwifi-driver headers
+ echo "CFLAGS += -I/usr/include/madwifi" >> .config
+ echo "CONFIG_DRIVER_MADWIFI=y" >> .config
+ fi
+
+ if use ps3 ; then
+ echo "CONFIG_DRIVER_PS3=y" >> .config
+ fi
+
+ elif use kernel_FreeBSD ; then
+ # FreeBSD specific driver
+ echo "CONFIG_DRIVER_BSD=y" >> .config
+ fi
+
+ # Wi-Fi Protected Setup (WPS)
+ if use wps ; then
+ echo "CONFIG_WPS=y" >> .config
+ fi
+
+ # Enable mitigation against certain attacks against TKIP
+ echo "CONFIG_DELAYED_MIC_ERROR_REPORT=y" >> .config
+
+ if use qt4 ; then
+ cd "${S}"/wpa_gui-qt4
+ eqmake4 wpa_gui.pro
+ fi
+}
+
+src_compile() {
+ einfo "Building wpa_supplicant"
+ emake || die "emake failed"
+
+ if use wimax; then
+ emake -C ../src/eap_peer clean || die "emake failed"
+ emake -C ../src/eap_peer || die "emake failed"
+ fi
+
+ if use qt4 ; then
+ cd "${S}"/wpa_gui-qt4
+ einfo "Building wpa_gui"
+ emake || die "wpa_gui compilation failed"
+ fi
+}
+
+src_install() {
+ dosbin wpa_supplicant || die
+ dobin wpa_cli wpa_passphrase || die
+
+ # baselayout-1 compat
+ if has_version "<sys-apps/baselayout-2.0.0"; then
+ dodir /sbin
+ dosym /usr/sbin/wpa_supplicant /sbin/wpa_supplicant || die
+ dodir /bin
+ dosym /usr/bin/wpa_cli /bin/wpa_cli || die
+ fi
+
+ if has_version ">=sys-apps/openrc-0.5.0"; then
+ newinitd "${FILESDIR}/${PN}-init.d" wpa_supplicant
+ newconfd "${FILESDIR}/${PN}-conf.d" wpa_supplicant
+ fi
+
+ exeinto /etc/wpa_supplicant/
+ newexe "${FILESDIR}/wpa_cli.sh" wpa_cli.sh
+
+ dodoc ChangeLog {eap_testing,todo}.txt README{,-WPS} \
+ wpa_supplicant.conf || die "dodoc failed"
+
+ doman doc/docbook/*.{5,8} || die "doman failed"
+
+ if use qt4 ; then
+ into /usr
+ dobin wpa_gui-qt4/wpa_gui || die
+ doicon wpa_gui-qt4/icons/wpa_gui.svg || die "Icon not found"
+ make_desktop_entry wpa_gui "WPA Supplicant Administration GUI" "wpa_gui" "Qt;Network;"
+ fi
+
+ if use wimax; then
+ emake DESTDIR="${D}" -C ../src/eap_peer install || die
+ fi
+
+ if use dbus ; then
+ cd "${S}"/dbus
+ insinto /etc/dbus-1/system.d
+ newins dbus-wpa_supplicant.conf wpa_supplicant.conf || die
+ insinto /usr/share/dbus-1/system-services
+ doins fi.epitest.hostap.WPASupplicant.service fi.w1.wpa_supplicant1.service || die
+ keepdir /var/run/wpa_supplicant
+ fi
+}
+
+pkg_postinst() {
+ einfo "If this is a clean installation of wpa_supplicant, you"
+ einfo "have to create a configuration file named"
+ einfo "/etc/wpa_supplicant/wpa_supplicant.conf"
+ einfo
+ einfo "An example configuration file is available for reference in"
+ einfo "/usr/share/doc/${PF}/"
+
+ if [[ -e ${ROOT}etc/wpa_supplicant.conf ]] ; then
+ echo
+ ewarn "WARNING: your old configuration file ${ROOT}etc/wpa_supplicant.conf"
+ ewarn "needs to be moved to ${ROOT}etc/wpa_supplicant/wpa_supplicant.conf"
+ fi
+
+ if use madwifi ; then
+ echo
+ einfo "This package compiles against the headers installed by"
+ einfo "madwifi-old, madwifi-ng or madwifi-ng-tools."
+ einfo "You should re-emerge ${PN} after upgrading these packages."
+ fi
+}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-03-20 3:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-20 3:49 [gentoo-commits] proj/gnome:master commit in: net-wireless/wpa_supplicant/files/, net-misc/networkmanager/, Nirbheek Chauhan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox