public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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