From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Q19eY-0006Fp-9H for garchives@archives.gentoo.org; Sun, 20 Mar 2011 03:50:07 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 066FBE039A; Sun, 20 Mar 2011 03:49:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 7FEC3E039A for ; Sun, 20 Mar 2011 03:49:57 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C1A421B40E4 for ; Sun, 20 Mar 2011 03:49:56 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 399CB8006A for ; Sun, 20 Mar 2011 03:49:56 +0000 (UTC) From: "Nirbheek Chauhan" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Nirbheek Chauhan" Message-ID: <5412514e73f058e59bb8b38d9669abcdda5cfbda.nirbheek@gentoo> Subject: [gentoo-commits] proj/gnome:master commit in: net-wireless/wpa_supplicant/files/, net-misc/networkmanager/, ... X-VCS-Repository: proj/gnome X-VCS-Files: net-misc/networkmanager/networkmanager-0.8.996-r1.ebuild net-wireless/wpa_supplicant/files/do-not-call-dbus-functions-with-NULL-path.patch net-wireless/wpa_supplicant/files/wpa_cli.sh net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus-api-changes.patch net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-dbus_path_fix.patch net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-generate-libeap-peer.patch net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d net-wireless/wpa_supplicant/files/wpa_supplicant-init.d net-wireless/wpa_supplicant/wpa_supplicant-0.7.3-r3.ebuild X-VCS-Directories: net-wireless/wpa_supplicant/files/ net-misc/networkmanager/ net-wireless/wpa_supplicant/ X-VCS-Committer: nirbheek X-VCS-Committer-Name: Nirbheek Chauhan X-VCS-Revision: 5412514e73f058e59bb8b38d9669abcdda5cfbda Date: Sun, 20 Mar 2011 03:49:56 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: af9e3ca3a6320358e6b20ff2c98adcdb commit: 5412514e73f058e59bb8b38d9669abcdda5cfbda Author: Nirbheek Chauhan gentoo org> AuthorDate: Sun Mar 20 03:42:12 2011 +0000 Commit: Nirbheek Chauhan gentoo org> CommitDate: Sun Mar 20 03:48:42 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gnome.git;a=3D= commit;h=3D5412514e 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/n= et-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=3D" dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )" =20 # 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=3D">=3Dsys-apps/dbus-1.2 >=3Ddev-libs/dbus-glib-0.75 >=3Dnet-wireless/wireless-tools-28_pre9 @@ -34,7 +35,7 @@ RDEPEND=3D">=3Dsys-apps/dbus-1.2 >=3Dsys-auth/polkit-0.96 >=3Ddev-libs/libnl-1.1 >=3Dnet-misc/modemmanager-0.4 - >=3Dnet-wireless/wpa_supplicant-0.7.2[dbus] + >=3Dnet-wireless/wpa_supplicant-0.7.3-r3[dbus] bluetooth? ( >=3Dnet-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-dbu= s-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-N= ULL-path.patch @@ -0,0 +1,53 @@ +diff --git a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbu= s/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 =3D 0; +=20 +- if (iface =3D=3D NULL) ++ if (iface =3D=3D NULL || path =3D=3D NULL) + return; +=20 + dbus_connection_get_object_path_data(iface->con, path, +diff --git a/wpa_supplicant/dbus/dbus_old.c b/wpa_supplicant/dbus/dbus_o= ld.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; +=20 + /* Do nothing if the control interface is not turned on */ +- if (iface =3D=3D NULL) ++ if (iface =3D=3D NULL || wpa_s->dbus_path =3D=3D NULL) + return; +=20 + _signal =3D 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 =3D=3D NULL) + return; + iface =3D wpa_s->global->dbus; +- if (iface =3D=3D NULL) ++ if (iface =3D=3D NULL || wpa_s->dbus_path =3D=3D NULL) + return; +=20 + /* 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 =3D wpa_s->scanning ? TRUE : FALSE; +=20 + /* Do nothing if the control interface is not turned on */ +- if (iface =3D=3D NULL) ++ if (iface =3D=3D NULL || wpa_s->dbus_path =3D=3D NULL) + return; +=20 + _signal =3D 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 =3D=3D NULL) + return; + iface =3D wpa_s->global->dbus; +- if (iface =3D=3D NULL) ++ if (iface =3D=3D NULL || wpa_s->dbus_path =3D=3D NULL) + return; +=20 + _signal =3D 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 +# 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=3D"$1" +ACTION=3D"$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=3D"/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=3D"${EXEC} start" + ;; + DISCONNECTED) + EXEC=3D"${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=3Dtrue + +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-cha= nges.patch @@ -0,0 +1,66 @@ +Taken from: + +https://bugzilla.gnome.org/show_bug.cgi?id=3D644634 + + +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_n= ew.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_suppl= icant *wpa_s, + wpas_dbus_getter_current_network; + prop =3D "CurrentNetwork"; + break; ++ case WPAS_DBUS_PROP_BSSS: ++ getter =3D (WPADBusPropertyAccessor) wpas_dbus_getter_bsss; ++ prop =3D "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, + } +=20 + wpas_dbus_signal_bss_removed(wpa_s, bss_obj_path); ++ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS); +=20 + return 0; + } +@@ -1263,6 +1268,7 @@ int wpas_dbus_register_bss(struct wpa_supplicant *= wpa_s, + } +=20 + wpas_dbus_signal_bss_added(wpa_s, bss_obj_path); ++ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS); +=20 + return 0; +=20 +diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_n= ew.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, + }; +=20 + enum wpas_dbus_bss_prop { +--=20 +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-d= bus_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_fi= x.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.9= 69507889 -0500 +@@ -1,4 +1,4 @@ + [D-BUS Service] + Name=3Dfi.epitest.hostap.WPASupplicant +-Exec=3D/sbin/wpa_supplicant -u ++Exec=3D/usr/sbin/wpa_supplicant -u + User=3Droot +--- dbus/fi.w1.wpa_supplicant1.service 2010-09-07 10:43:39.000000000 -0= 500 ++++ dbus/fi.w1.wpa_supplicant1.service 2011-01-08 19:42:12.420246349= -0500 +@@ -1,4 +1,4 @@ + [D-BUS Service] + Name=3Dfi.w1.wpa_supplicant1 +-Exec=3D/sbin/wpa_supplicant -u ++Exec=3D/usr/sbin/wpa_supplicant -u + User=3Droot diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-0.7.3-gener= ate-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-lib= eap-peer.patch @@ -0,0 +1,395 @@ +From 3de5e59b291b6f58317bb16736f8c0271754378e Mon Sep 17 00:00:00 2001 +From: Inaky Perez-Gonzalez +Date: Sat, 2 Oct 2010 00:11:51 -0700 +Subject: [PATCH] eap_peer: create a libeap library, with header files an= d 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 +--- + 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 =3D libeap ++LIBEAP_CURRENT =3D 0 ++LIBEAP_REVISION =3D 0 ++LIBEAP_AGE =3D 0 ++ ++LIBEAP =3D $(LIBEAP_NAME).so.$(LIBEAP_CURRENT).$(LIBEAP_REVISION).$(LIB= EAP_AGE) ++LIBEAP_SO =3D $(LIBEAP_NAME).so.$(LIBEAP_CURRENT) ++ ++.PHONY: all clean install uninstall ++ ++all: $(LIBEAP) ++ ++ifndef CC ++CC=3Dgcc ++endif ++ ++ifndef CFLAGS ++CFLAGS =3D -MMD -O0 -Wall -g ++endif ++ ++CONFIG_TLS=3Dopenssl ++ ++INCLUDE_INSTALL_DIR=3D/usr/include/eap_peer ++ ++# Got to use override all across the board, otherwise a 'make ++# CFLAGS=3DXX' will kill us because the command line's CFLAGS will ++# overwrite Make's and we'll loose all the infrastructure it sets. ++override CFLAGS +=3D -I. -I.. -I../crypto -I../utils -I../common ++ ++# at least for now, need to include config_ssid.h and config_blob.h fro= m ++# wpa_supplicant directory ++override CFLAGS +=3D -I ../../wpa_supplicant ++ ++OBJS_both +=3D ../utils/common.o ++OBJS_both +=3D ../utils/os_unix.o ++OBJS_both +=3D ../utils/wpa_debug.o ++OBJS_both +=3D ../utils/base64.o ++OBJS_both +=3D ../utils/wpabuf.o ++OBJS_both +=3D ../crypto/md5.o ++OBJS_both +=3D ../crypto/sha1.o ++OBJS_both +=3D ../crypto/sha1-tlsprf.o ++OBJS_both +=3D ../crypto/aes-encblock.o ++OBJS_both +=3D ../crypto/aes-wrap.o ++OBJS_both +=3D ../crypto/aes-ctr.o ++OBJS_both +=3D ../crypto/aes-eax.o ++OBJS_both +=3D ../crypto/aes-omac1.o ++OBJS_both +=3D ../crypto/ms_funcs.o ++OBJS_both +=3D ../crypto/sha256.o ++ ++ ++OBJS_both +=3D ../eap_common/eap_peap_common.o ++OBJS_both +=3D ../eap_common/eap_psk_common.o ++OBJS_both +=3D ../eap_common/eap_pax_common.o ++OBJS_both +=3D ../eap_common/eap_sake_common.o ++OBJS_both +=3D ../eap_common/eap_gpsk_common.o ++OBJS_both +=3D ../eap_common/chap.o ++ ++OBJS_peer +=3D ../eap_peer/eap_tls.o ++OBJS_peer +=3D ../eap_peer/eap_peap.o ++OBJS_peer +=3D ../eap_peer/eap_ttls.o ++OBJS_peer +=3D ../eap_peer/eap_md5.o ++OBJS_peer +=3D ../eap_peer/eap_mschapv2.o ++OBJS_peer +=3D ../eap_peer/mschapv2.o ++OBJS_peer +=3D ../eap_peer/eap_otp.o ++OBJS_peer +=3D ../eap_peer/eap_gtc.o ++OBJS_peer +=3D ../eap_peer/eap_leap.o ++OBJS_peer +=3D ../eap_peer/eap_psk.o ++OBJS_peer +=3D ../eap_peer/eap_pax.o ++OBJS_peer +=3D ../eap_peer/eap_sake.o ++OBJS_peer +=3D ../eap_peer/eap_gpsk.o ++OBJS_peer +=3D ../eap_peer/eap.o ++OBJS_peer +=3D ../eap_common/eap_common.o ++OBJS_peer +=3D ../eap_peer/eap_methods.o ++OBJS_peer +=3D ../eap_peer/eap_tls_common.o ++ ++override CFLAGS +=3D -DEAP_TLS ++override CFLAGS +=3D -DEAP_PEAP ++override CFLAGS +=3D -DEAP_TTLS ++override CFLAGS +=3D -DEAP_MD5 ++override CFLAGS +=3D -DEAP_MSCHAPv2 ++override CFLAGS +=3D -DEAP_GTC ++override CFLAGS +=3D -DEAP_OTP ++override CFLAGS +=3D -DEAP_LEAP ++override CFLAGS +=3D -DEAP_PSK ++override CFLAGS +=3D -DEAP_PAX ++override CFLAGS +=3D -DEAP_SAKE ++override CFLAGS +=3D -DEAP_GPSK -DEAP_GPSK_SHA256 ++override CFLAGS +=3D -DEAP_TLS_FUNCS ++ ++override CFLAGS +=3D -DIEEE8021X_EAPOL ++ ++ifeq ($(CONFIG_TLS), openssl) ++override CFLAGS +=3D -DEAP_TLS_OPENSSL ++OBJS_both +=3D ../crypto/tls_openssl.o ++OBJS_both +=3D ../crypto/crypto_openssl.o ++LIBS +=3D -lssl -lcrypto ++override CFLAGS +=3D -DINTERNAL_SHA256 ++endif ++ ++ifeq ($(CONFIG_TLS), internal) ++OBJS_both +=3D ../crypto/tls_internal.o ++OBJS_both +=3D ../tls/tlsv1_common.o ../../tls/tlsv1_record.o ++OBJS_both +=3D ../tls/tlsv1_cred.o ++OBJS_both +=3D ../tls/asn1.o ../../tls/x509v3.o ++OBJS_both +=3D ../crypto/crypto_internal.o ../../tls/rsa.o ../../tls/bi= gnum.o ++ ++OBJS_peer +=3D ../tls/tlsv1_client.o ++OBJS_peer +=3D ../tls/tlsv1_client_write.o ../../tls/tlsv1_client_read.= o ++override CFLAGS +=3D -DCONFIG_TLS_INTERNAL_CLIENT ++ ++OBJS_server +=3D ../tls/tlsv1_server.o ++OBJS_server +=3D ../tls/tlsv1_server_write.o ../../tls/tlsv1_server_rea= d.o ++override CFLAGS +=3D -DCONFIG_TLS_INTERNAL_SERVER ++ ++override CFLAGS +=3D -DCONFIG_TLS_INTERNAL ++override CFLAGS +=3D -DCONFIG_CRYPTO_INTERNAL ++override CFLAGS +=3D -DCONFIG_INTERNAL_X509 ++override CFLAGS +=3D -DINTERNAL_AES ++override CFLAGS +=3D -DINTERNAL_SHA1 ++override CFLAGS +=3D -DINTERNAL_SHA256 ++override CFLAGS +=3D -DINTERNAL_MD5 ++override CFLAGS +=3D -DINTERNAL_MD4 ++override CFLAGS +=3D -DINTERNAL_DES ++ifdef CONFIG_INTERNAL_LIBTOMMATH ++override CFLAGS +=3D -DCONFIG_INTERNAL_LIBTOMMATH ++else ++LIBS +=3D -ltommath ++endif ++endif ++ ++ifndef LDO ++LDO=3D$(CC) ++endif ++ ++ ++OBJS_lib=3D$(OBJS_both) $(OBJS_peer) ++ ++ #$(OBJS_server) ++ ++override CFLAGS +=3D -fPIC -DPIC ++LDFLAGS +=3D -shared ++ ++$(LIBEAP): $(OBJS_lib) ++ $(LDO) $(LDFLAGS) $(OBJS_lib) -Wl,-soname -Wl,$(LIBEAP_SO) -o $(LIBEAP= ) $(LIBS) ++ ++ ++UTIL_HEADERS =3D ../utils/includes.h ../utils/common.h \ ++ ../utils/wpabuf.h ../utils/build_config.h \ ++ ../utils/os.h ../utils/wpa_debug.h ++COMMON_HEADERS =3D ../common/defs.h=20 ++EAP_COMMON_HEADERS =3D ../eap_common/eap_defs.h=20 ++MAIN_HEADERS =3D eap.h eap_methods.h eap_config.h ++CRYPTO_HEADERS =3D ../crypto/tls.h =20 ++ ++install:=20 ++ ++ 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 subfo= lder 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)/co= mmon ++ install -m 0644 $(CRYPTO_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/cr= ypto ++ 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:=20 ++ ++ rm $(DESTDIR)/usr/lib/$(LIBEAP) ++ rm -fr $(DESTDIR)/$(INCLUDE_INSTALL_DIR) ++ rm -f $(DESTDIR)/usr/lib/pkgconfig/libeap0.pc +=20 + clean: +- rm -f *~ *.o *.so *.d ++ rm -f *~ *.o *.so *.d libeap.a $(LIBEAP) $(OBJS_lib) +=20 +-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=3D%.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 *me= thod) +=20 +=20 + /** ++ * 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 =3D 0; ++ ++#ifdef EAP_MD5 ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_md5_register(); ++#endif /* EAP_MD5 */ ++ ++#ifdef EAP_TLS ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_tls_register(); ++#endif /* EAP_TLS */ ++ ++#ifdef EAP_MSCHAPv2 ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_mschapv2_register(); ++#endif /* EAP_MSCHAPv2 */ ++ ++#ifdef EAP_PEAP ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_peap_register(); ++#endif /* EAP_PEAP */ ++ ++#ifdef EAP_TTLS ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_ttls_register(); ++#endif /* EAP_TTLS */ ++ ++#ifdef EAP_GTC ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_gtc_register(); ++#endif /* EAP_GTC */ ++ ++#ifdef EAP_OTP ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_otp_register(); ++#endif /* EAP_OTP */ ++ ++#ifdef EAP_SIM ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_sim_register(); ++#endif /* EAP_SIM */ ++ ++#ifdef EAP_LEAP ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_leap_register(); ++#endif /* EAP_LEAP */ ++ ++#ifdef EAP_PSK ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_psk_register(); ++#endif /* EAP_PSK */ ++ ++#ifdef EAP_AKA ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_aka_register(); ++#endif /* EAP_AKA */ ++ ++#ifdef EAP_AKA_PRIME ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_aka_prime_register(); ++#endif /* EAP_AKA_PRIME */ ++ ++#ifdef EAP_FAST ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_fast_register(); ++#endif /* EAP_FAST */ ++ ++#ifdef EAP_PAX ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_pax_register(); ++#endif /* EAP_PAX */ ++ ++#ifdef EAP_SAKE ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_sake_register(); ++#endif /* EAP_SAKE */ ++ ++#ifdef EAP_GPSK ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_gpsk_register(); ++#endif /* EAP_GPSK */ ++ ++#ifdef EAP_WSC ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_wsc_register(); ++#endif /* EAP_WSC */ ++ ++#ifdef EAP_IKEV2 ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_ikev2_register(); ++#endif /* EAP_IKEV2 */ ++ ++#ifdef EAP_VENDOR_TEST ++ if (ret =3D=3D 0) ++ ret =3D eap_peer_vendor_test_register(); ++#endif /* EAP_VENDOR_TEST */ ++ ++#ifdef EAP_TNC ++ if (ret =3D=3D 0) ++ ret =3D 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 *vendo= r); + 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); +=20 + #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=3D/usr ++exec_prefix=3D/usr ++libdir=3D${exec_prefix}/lib ++includedir=3D${prefix}/include/eap_peer ++ ++Name: libeap0 ++Description: EAP Peer Library API ++Version: 0.7.2 ++Libs: -L${libdir} -leap ++Cflags: -I${includedir} +--=20 +1.6.6.1 + diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d b/ne= t-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 optio= ns +# wpa_supplicant accepts. +# +wpa_supplicant_args=3D"" diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d b/ne= t-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 +# All rights reserved. Released under the 2-clause BSD license. + +command=3D/usr/sbin/wpa_supplicant +: ${wpa_supplicant_conf:=3D/etc/wpa_supplicant/wpa_supplicant.conf} +wpa_supplicant_if=3D${wpa_supplicant_if:+-i}$wpa_supplicant_if +command_args=3D"$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supp= licant_if" +name=3D"WPA Supplicant Daemon" + +depend() +{ + need localmount + use logger + after bootmisc modules + before dns dhcpcd net + keyword -shutdown +} + +find_wireless() +{ + local iface=3D + + 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 +=09 + return 1 +} + +append_wireless() +{ + local iface=3D i=3D + + iface=3D$(find_wireless) + if [ -n "$iface" ]; then + for i in $iface; do + command_args=3D"$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_suppl= icant-0.7.3-r2.ebuild,v 1.2 2011/03/15 18:10:20 hwoarang Exp $ + +EAPI=3D"2" + +inherit eutils toolchain-funcs qt4-r2 + +DESCRIPTION=3D"IEEE 802.1X/WPA supplicant for secure wireless transfers" +HOMEPAGE=3D"http://hostap.epitest.fi/wpa_supplicant/" +SRC_URI=3D"http://hostap.epitest.fi/releases/${P}.tar.gz" +LICENSE=3D"|| ( GPL-2 BSD )" + +SLOT=3D"0" +KEYWORDS=3D"amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd" +IUSE=3D"dbus debug gnutls eap-sim fasteap madwifi ps3 qt4 readline ssl w= imax wps kernel_linux kernel_FreeBSD" + +RDEPEND=3D"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=3D"${RDEPEND} + dev-util/pkgconfig" + +S=3D"${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=3D\"ssl\"" + fi +} + +src_prepare() { + # net/bpf.h needed for net-libs/libpcap on Gentoo/FreeBSD + sed -i \ + -e "s:\(#include \):#include \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=3D644634 + epatch "${FILESDIR}/${P}-dbus-api-changes.patch" +} + +src_configure() { + # Toolchain setup + echo "CC =3D $(tc-getCC)" > .config + + # Basic setup + echo "CONFIG_CTRL_IFACE=3Dy" >> .config + echo "CONFIG_BACKEND=3Dfile" >> .config + + # Basic authentication methods + # NOTE: we don't set GPSK or SAKE as they conflict + # with the below options + echo "CONFIG_EAP_GTC=3Dy" >> .config + echo "CONFIG_EAP_MD5=3Dy" >> .config + echo "CONFIG_EAP_OTP=3Dy" >> .config + echo "CONFIG_EAP_PAX=3Dy" >> .config + echo "CONFIG_EAP_PSK=3Dy" >> .config + echo "CONFIG_EAP_TLV=3Dy" >> .config + echo "CONFIG_IEEE8021X_EAPOL=3Dy" >> .config + echo "CONFIG_PKCS12=3Dy" >> .config + echo "CONFIG_PEERKEY=3Dy" >> .config + echo "CONFIG_EAP_LEAP=3Dy" >> .config + echo "CONFIG_EAP_MSCHAPV2=3Dy" >> .config + echo "CONFIG_EAP_PEAP=3Dy" >> .config + echo "CONFIG_EAP_TLS=3Dy" >> .config + echo "CONFIG_EAP_TTLS=3Dy" >> .config + + if use dbus ; then + echo "CONFIG_CTRL_IFACE_DBUS=3Dy" >> .config + echo "CONFIG_CTRL_IFACE_DBUS_NEW=3Dy" >> .config + echo "CONFIG_CTRL_IFACE_DBUS_INTRO=3Dy" >> .config + fi + + if use debug ; then + echo "CONFIG_DEBUG_FILE=3Dy" >> .config + fi + + if use eap-sim ; then + # Smart card authentication + echo "CONFIG_EAP_SIM=3Dy" >> .config + echo "CONFIG_EAP_AKA=3Dy" >> .config + echo "CONFIG_EAP_AKA_PRIME=3Dy" >> .config + echo "CONFIG_PCSC=3Dy" >> .config + fi + + if use fasteap ; then + echo "CONFIG_EAP_FAST=3Dy" >> .config + fi + + if use readline ; then + # readline/history support for wpa_cli + echo "CONFIG_READLINE=3Dy" >> .config + fi + + # SSL authentication methods + if use ssl ; then + echo "CONFIG_TLS=3Dopenssl" >> .config + echo "CONFIG_SMARTCARD=3Dy" >> .config + elif use gnutls ; then + echo "CONFIG_TLS=3Dgnutls" >> .config + echo "CONFIG_GNUTLS_EXTRA=3Dy" >> .config + else + echo "CONFIG_TLS=3Dinternal" >> .config + fi + + if use kernel_linux ; then + # Linux specific drivers + echo "CONFIG_DRIVER_ATMEL=3Dy" >> .config + #echo "CONFIG_DRIVER_BROADCOM=3Dy" >> .config + #echo "CONFIG_DRIVER_HERMES=3Dy" >> .config + echo "CONFIG_DRIVER_HOSTAP=3Dy" >> .config + echo "CONFIG_DRIVER_IPW=3Dy" >> .config + echo "CONFIG_DRIVER_NDISWRAPPER=3Dy" >> .config + echo "CONFIG_DRIVER_NL80211=3Dy" >> .config + #echo "CONFIG_DRIVER_PRISM54=3Dy" >> .config + echo "CONFIG_DRIVER_RALINK=3Dy" >> .config + echo "CONFIG_DRIVER_WEXT=3Dy" >> .config + echo "CONFIG_DRIVER_WIRED=3Dy" >> .config + + if use madwifi ; then + # Add include path for madwifi-driver headers + echo "CFLAGS +=3D -I/usr/include/madwifi" >> .config + echo "CONFIG_DRIVER_MADWIFI=3Dy" >> .config + fi + + if use ps3 ; then + echo "CONFIG_DRIVER_PS3=3Dy" >> .config + fi + + elif use kernel_FreeBSD ; then + # FreeBSD specific driver + echo "CONFIG_DRIVER_BSD=3Dy" >> .config + fi + + # Wi-Fi Protected Setup (WPS) + if use wps ; then + echo "CONFIG_WPS=3Dy" >> .config + fi + + # Enable mitigation against certain attacks against TKIP + echo "CONFIG_DELAYED_MIC_ERROR_REPORT=3Dy" >> .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 "=3Dsys-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_gu= i" "Qt;Network;" + fi + + if use wimax; then + emake DESTDIR=3D"${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.se= rvice || 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.c= onf" + 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 +}