aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2011-08-15 02:46:03 +0400
committerAlexey Shvetsov <alexxy@gentoo.org>2011-08-15 02:46:03 +0400
commit98838c11d9002dd0c89ee2d6774bf220d0786d78 (patch)
tree5971c5eb624c0adf588ca1e93a374b17f7677365 /net-misc
parent[app-cdr/k3b] Sync with tree (diff)
downloadkde-98838c11d9002dd0c89ee2d6774bf220d0786d78.tar.gz
kde-98838c11d9002dd0c89ee2d6774bf220d0786d78.tar.bz2
kde-98838c11d9002dd0c89ee2d6774bf220d0786d78.zip
[net-misc] Sync nm ebuilds with gnome overlay
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/networkmanager-openswan/Manifest2
-rw-r--r--net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild52
-rw-r--r--net-misc/networkmanager-openvpn/Manifest2
-rw-r--r--net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild50
-rw-r--r--net-misc/networkmanager-pptp/Manifest2
-rw-r--r--net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild54
-rw-r--r--net-misc/networkmanager-vpnc/Manifest2
-rw-r--r--net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild56
-rw-r--r--net-misc/networkmanager/Manifest39
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch80
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch502
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch29
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch109
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch280
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch29
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch70
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch211
-rw-r--r--net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch32
-rw-r--r--net-misc/networkmanager/files/networkmanager-fix-tests.patch18
-rw-r--r--net-misc/networkmanager/files/nm-system-settings.conf-ifnet6
-rw-r--r--net-misc/networkmanager/metadata.xml15
-rw-r--r--net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild (renamed from net-misc/networkmanager/networkmanager-0.8.9997.ebuild)80
-rw-r--r--net-misc/networkmanager/networkmanager-9999.ebuild148
23 files changed, 1642 insertions, 226 deletions
diff --git a/net-misc/networkmanager-openswan/Manifest b/net-misc/networkmanager-openswan/Manifest
new file mode 100644
index 0000000000..709fdd0d45
--- /dev/null
+++ b/net-misc/networkmanager-openswan/Manifest
@@ -0,0 +1,2 @@
+DIST NetworkManager-openswan-0.8.999.tar.bz2 347155 RMD160 e4808f1499898375c0c56f1d438e359dfe509ddb SHA1 e96290d527b7436d46785e0f97e4edec1deec6dd SHA256 d4eb8f26ed259a52718f3564086b6278cbd147636fc6b8d13eec7707fd3cbdeb
+EBUILD networkmanager-openswan-0.8.999.ebuild 992 RMD160 c56c142a7b84116192191bcdceef649c7cd7175a SHA1 72d59eba58f0ef7c9ee1a5e3a53862b645cb0afb SHA256 e93ff5eaa8ce85e10f0f8866f805b8b03cd9d2b0173fcc2641f7ffee51b7d63a
diff --git a/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild b/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
new file mode 100644
index 0000000000..3fe1c4dc2a
--- /dev/null
+++ b/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager Openswan plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome"
+
+RDEPEND="
+ >=net-misc/networkmanager-${PV}
+ >=dev-libs/dbus-glib-0.74
+ >=net-misc/vpnc-0.5
+ gnome? (
+ >=x11-libs/gtk+-3.0.0:3
+ gnome-base/gnome-keyring
+ )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ dev-util/intltool
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+ ECONF="--disable-more-warnings
+ --disable-static
+ --with-dist-version=Gentoo
+ --with-gtkver=3.0
+ $(use_with gnome)"
+
+ econf ${ECONF}
+}
+
+src_install() {
+ default
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} +
+}
diff --git a/net-misc/networkmanager-openvpn/Manifest b/net-misc/networkmanager-openvpn/Manifest
new file mode 100644
index 0000000000..a7a53e9da0
--- /dev/null
+++ b/net-misc/networkmanager-openvpn/Manifest
@@ -0,0 +1,2 @@
+DIST NetworkManager-openvpn-0.8.9997.tar.xz 357808 RMD160 d51e5e483908c256bba36e59c907a946dd12e7a4 SHA1 c7843c340ddb4ed3e8fe1866d8a2eddd8a0f28dd SHA256 47aa4d73a3e2074cf7fe4c293213df00a2fd0f76e663b05e7178731a5faa2c02
+EBUILD networkmanager-openvpn-0.8.9997.ebuild 971 RMD160 fdd17e4575d042babb3690f088a1b18923b3b749 SHA1 afb37f6574aa2b780a3ea7718e799e33cbc257c3 SHA256 f574c027da0e0e849bf21a21ffb9cb6b107c61c71ed49ab8fe37cd0a1c55a963
diff --git a/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild b/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
new file mode 100644
index 0000000000..e4d0bddadd
--- /dev/null
+++ b/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+DESCRIPTION="NetworkManager OpenVPN plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+ >=dev-libs/dbus-glib-0.74
+ >=net-misc/networkmanager-${PV}
+ >=net-misc/openvpn-2.1_rc9
+ gnome? (
+ >=x11-libs/gtk+-2.91.4:3
+ gnome-base/gnome-keyring
+ )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ >=dev-util/intltool-0.35
+ dev-util/pkgconfig"
+
+# FAIL: (tls-import-data) unexpected 'ca' secret value
+#RESTRICT="test"
+
+src_configure() {
+ ECONF="--disable-more-warnings
+ --disable-static
+ --with-dist-version=Gentoo
+ --with-gtkver=3.0
+ $(use_with gnome)
+ $(use_with test tests)"
+
+ econf ${ECONF}
+}
+
+src_install() {
+ default
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} +
+}
diff --git a/net-misc/networkmanager-pptp/Manifest b/net-misc/networkmanager-pptp/Manifest
new file mode 100644
index 0000000000..7b05069cdb
--- /dev/null
+++ b/net-misc/networkmanager-pptp/Manifest
@@ -0,0 +1,2 @@
+DIST NetworkManager-pptp-0.8.999.tar.bz2 398827 RMD160 3063876b20a070a83d281398180f8ccd914fbd74 SHA1 5c758a68d2f9394c84e6863f9b35075605478927 SHA256 81cfbe647c1d155a9bf0e7e4d4f3fad4b54dce50fd7162964e7a0f5c85fb2325
+EBUILD networkmanager-pptp-0.8.999.ebuild 1037 RMD160 5e3cd98f0e531fd08a5f28b4d789607e36f2b354 SHA1 b692c45d6ae59e904fdf6976338d6fa78763cfcc SHA256 b790aa60e38968dca8670ef4ed779b00742b785040aa7b6bcaaa57e86ee1bd95
diff --git a/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild b/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
new file mode 100644
index 0000000000..8f5d0cb146
--- /dev/null
+++ b/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager PPTP plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+ >=net-misc/networkmanager-${PV}
+ >=dev-libs/dbus-glib-0.74
+ net-dialup/ppp
+ net-dialup/pptpclient
+ gnome? (
+ >=x11-libs/gtk+-2.91.4:3
+ gnome-base/gnome-keyring
+ )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ dev-util/intltool
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+ ECONF="--disable-more-warnings
+ --disable-static
+ --with-dist-version=Gentoo
+ --with-gtkver=3.0
+ $(use_with gnome)
+ $(use_with test tests)"
+
+ econf ${ECONF}
+}
+
+src_install() {
+ default
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} +
+}
diff --git a/net-misc/networkmanager-vpnc/Manifest b/net-misc/networkmanager-vpnc/Manifest
new file mode 100644
index 0000000000..d95862c002
--- /dev/null
+++ b/net-misc/networkmanager-vpnc/Manifest
@@ -0,0 +1,2 @@
+DIST NetworkManager-vpnc-0.8.999.tar.bz2 404078 RMD160 9a507b6188834eb7369d3bc3123696e27af452f2 SHA1 370a2d0b96eb041eb4e99744b61090224c291758 SHA256 b3802070fb25872c9cc59d82bee27b6f8ec3c3feb36b5fd148a7da2b6371c3f3
+EBUILD networkmanager-vpnc-0.8.999.ebuild 1093 RMD160 a89ae1b76e0a479e22e9272c34f336e24f0b2241 SHA1 a13f880dbba87e8cec21ddd8216549953d56edbc SHA256 275a44fec8957f97bbfb81edbfb3ce24460622397c5d5746cb9f9708900249db
diff --git a/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild b/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
new file mode 100644
index 0000000000..fa094133c7
--- /dev/null
+++ b/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager VPNC plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+ >=net-misc/networkmanager-${PV}
+ >=dev-libs/dbus-glib-0.74
+ >=net-misc/vpnc-0.5
+ gnome? (
+ >=x11-libs/gtk+-2.91.4:3
+ gnome-base/gnome-keyring
+ )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ dev-util/intltool
+ dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# XXX: https://bugzilla.gnome.org/show_bug.cgi?id=608348
+RESTRICT="test"
+
+src_configure() {
+ ECONF="--disable-more-warnings
+ --disable-static
+ --with-dist-version=Gentoo
+ --with-gtkver=3.0
+ $(use_with gnome)
+ $(use_with test tests)"
+
+ econf ${ECONF}
+}
+
+src_install() {
+ default
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} +
+}
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
index 06ffdecdec..65e171cb09 100644
--- a/net-misc/networkmanager/Manifest
+++ b/net-misc/networkmanager/Manifest
@@ -1,26 +1,15 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
+AUX 0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch 2897 RMD160 9c785fc9b55e2ab9547032fff530bed630b50aaf SHA1 ac462296fd75a1c3eb495073b914f8fb0c22c712 SHA256 b922468b3f0589d26bac91e357850e36fd4f5e2ef83a97260e22efeba15853df
+AUX 0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch 17368 RMD160 97a93f397a761c3ddabf4794b1c03f08cd8896a0 SHA1 961ab01a8e82d28210317586b8b81e2ce92a5644 SHA256 3af098a5f4976ebc6d6ddb48be5729459b671fe405803c73dc3abbbd41237879
+AUX 0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch 1001 RMD160 bb7e53f91317edc5c7d115f7b9050d453b4f8a37 SHA1 5664c768c268855900a3c1cc48b256fad0809173 SHA256 b615c9229e8db73232748eed32ccd79a43ddbd2ef0bc1840d16d6b9bb0554168
+AUX 0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch 4004 RMD160 5053ad9599c631bfe2a66003fca611a2df2d1904 SHA1 8538c631cad4345b426d001096417b5fee24a51e SHA256 71a08f0268e2770ac9caedf1a28c73d1cea52e0eafde10b018b7ed9f6fe19f19
+AUX 0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch 10428 RMD160 77721681e949772e70198615d5a7d6be80eb9268 SHA1 9749850390e03f94377ce7d1c6fda49615570770 SHA256 caca893f99b30fbf49ef5ecffb2d3ce807870764dab08ee1157d012fdf0ad81f
+AUX 0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch 1096 RMD160 d56e28db9ccc10c477dea9776820df058302fc17 SHA1 2865a254813760909f2766b5e3ad5d3409422d85 SHA256 b8f237e738b44a915f107bd041fef9411842fbe81682670787eb5e1fcdfb456c
+AUX 0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch 2287 RMD160 4898529deb4f9130a147f46e5f46f7adf857f9fd SHA1 e442a4b172a0870cb8fab1c90971f7c71c8cacf4 SHA256 3a039c42b6bf4fcddd9976fd0ce0df511beee287fbac182cc81513bf495c6e50
+AUX 0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch 7194 RMD160 acccb59b7a334bd4b316926d091dc694361130d2 SHA1 775a4b24a0c4042b469e68c5097f207d6cab4dda SHA256 4a98509d78aa81231e4728921a6ff4ef38ab7936f1b616dce60114ef0e118e0d
+AUX 0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch 1297 RMD160 821f0406cfbf979fc8551aa64ff866c39146cbd7 SHA1 8befa6f47f2e0719c6a24e54cc006abb9c82581c SHA256 61582200e497e52fdd4ccb622628aca28065293e09e868e0d2d6e81b6fb6fd4f
+AUX networkmanager-fix-tests.patch 589 RMD160 a63f0d4f908a32356baf78c7e7c9a68cd9e4d68c SHA1 9f1ed4418b124bae89f9849ce2560dd713565abc SHA256 c03a97751762864dc4dcfa6d9eeee1ea70b986bcd5830a6777cd7514ba647540
AUX nm-system-settings.conf 70 RMD160 c0d2be147383999b62cead86ab4333169e4ef277 SHA1 679ec8052b610969c148a2d34cd4da7a41484a76 SHA256 34f53d9ac1ad65eda6942dc3059117f60f6321059ca23f4fbfcc2f2edcae151f
-DIST NetworkManager-0.8.9997.tar.bz2 1292433 RMD160 5bc989f181785cd3f2bbbc48dc4fdda4bd1437fa SHA1 98ad0b812e274603de2b803d279377fea0aacda4 SHA256 82556bcd52fbb0fce8fd1341549250cc4abedc4c0f6952d8139671bac2ed1418
-DIST ifnet-0.9.tar.bz2 5351 RMD160 a936dcd50fca5d8b89cd119223f4c4c9c6a8fc68 SHA1 f2fe16ee3b36698977ac48bbd17d60373336214d SHA256 e23addc579ec2f40ad8babb5073f15abc5f2368c6313e4a983999c54ef9479ed
-EBUILD networkmanager-0.8.9997.ebuild 4022 RMD160 68cec0bbd549aa377ef7395d0b326d50e692f27a SHA1 4f28ff29301e635c175e56c72f4eb4054ee6c142 SHA256 72b43da802e93e181178af6cb39abfc70861a29d7ed88f4ae3162a69faedf74f
-EBUILD networkmanager-9999.ebuild 4022 RMD160 68cec0bbd549aa377ef7395d0b326d50e692f27a SHA1 4f28ff29301e635c175e56c72f4eb4054ee6c142 SHA256 72b43da802e93e181178af6cb39abfc70861a29d7ed88f4ae3162a69faedf74f
-MISC metadata.xml 1290 RMD160 1285a26b775a35451982a7c19e16dfd7b2d59554 SHA1 c530542e8a292173ca722cb6d96ced7ceb55dabf SHA256 924b5245838d35e16b8b99ba6585c434fd6938c6f99b4abec0d8ea8d0fad17ce
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-iQIcBAEBCAAGBQJN/lkRAAoJEOf+E+/4L5LmpHgP/RLE0fgc+RMT/Xj10HjEexiG
-SQrcWdrs5inW70LbRHcw5uDorrAU1KfWLDERAhDuVEgn67KGRK/KqhiN/o3PAF22
-AaxFeWJ6SGSQ3cHdADf7iCDTKIkGhn1CwupBEApdaP8egOkLI17zphpXn2y0NvBM
-RzNy+Yl4fgmSVVm37YXgPEe9NfLFP+eFrO7YSovMBSQCDQ/XbgSlYJXNODVF5MQJ
-smoMRBEjf05jEFGPAS4K+BbSCJV0ry6+xTjeJ6wytGAoj1o+H73VXSHNLTsjZevQ
-6z55mCaz7+dBUq9GcuFO2a5N6F0Cl2RXVakypX2rFD5GbH7PAcFs3mL0skEhsr/c
-n0wP+KtFrGzCy80jVI1h866OChhvlf+zZZZfcjwNRPyVWSa4jzXAnuPNpEE130xo
-xVeqvcju1YiKje3Y05+hiBORuD7JeJcZER/bCvCTk9boogl8ptSNJAsHwRS2SZAU
-ncKAeV+h6c8//o+OUO9ypWX/T6Fg4jKldO9asZOmM/T5w2vu+79cscBNDfTMLybv
-zjEr5S4FjyxDfsfRFLZtrcVNParbDirrM4KTU7r5ZEAFXD83FonjI95sQr8N7gUa
-tX5nPHzkr+FNdnSYyKGhD5MCwIGN37K78Y/yK271ICYvC/oWFvOHAOfzkuehhT/1
-i7oypXYFel3h4bfsi2ep
-=w1/C
------END PGP SIGNATURE-----
+AUX nm-system-settings.conf-ifnet 70 RMD160 c0d2be147383999b62cead86ab4333169e4ef277 SHA1 679ec8052b610969c148a2d34cd4da7a41484a76 SHA256 34f53d9ac1ad65eda6942dc3059117f60f6321059ca23f4fbfcc2f2edcae151f
+DIST NetworkManager-0.8.9997.tar.xz 1700224 RMD160 f239535e89d456f3ad447f1300ed6ba80da2669f SHA1 77862c75821d9ff7e463ead61aa64e5544b72ee0 SHA256 68ca2912788eea6f3ed3048d48c76870862a8e640d6751ce280eee5ab51d7469
+EBUILD networkmanager-0.8.9997-r1.ebuild 3983 RMD160 0741f2c3c2cff402daa17810c4a9a7796eae6ba2 SHA1 1ffa1c94e75690c72fdbf76bdccd68aeed65af98 SHA256 496b409f553610117f620f05a0a881dc8e28a7e65344ede50f5ece3b3b35fc74
+MISC metadata.xml 1134 RMD160 36a4dacde74c89bc1af7f157ef207fa230a59b51 SHA1 4e390cba7624e7cbaab4fb2e9e1ee46878233855 SHA256 85772e89ece963160cad01865cb9c4a15020ad2eb0063ae53ab86daa38723799
diff --git a/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch b/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
new file mode 100644
index 0000000000..f6eb6bcdda
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
@@ -0,0 +1,80 @@
+From 9aa7efcf28a0230876fc6fc5be6dfee5f35d0630 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Mon, 30 May 2011 12:07:41 +0100
+Subject: [PATCH] core: reset auto retries counter when cable is replugged
+
+When re-plugging we may be in a different network. So we should try the
+compatible connections again.
+
+Based on a patch from Mikhail Efremov.
+---
+ src/nm-policy.c | 21 +++++++++++++++------
+ 1 files changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index 194d111..b98fe32 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -817,13 +817,17 @@ hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+ }
+
+ static void
+-reset_retries_all (NMSettings *settings)
++reset_retries_all (NMSettings *settings, NMDevice *device)
+ {
+ GSList *connections, *iter;
++ GError *error = NULL;
+
+ connections = nm_settings_get_connections (settings);
+- for (iter = connections; iter; iter = g_slist_next (iter))
+- set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++ for (iter = connections; iter; iter = g_slist_next (iter)) {
++ if (!device || nm_device_interface_check_connection_compatible (NM_DEVICE_INTERFACE (device), iter->data, &error))
++ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++ g_clear_error (&error);
++ }
+ g_slist_free (connections);
+ }
+
+@@ -838,7 +842,7 @@ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+
+ /* Reset retries on all connections so they'll checked on wakeup */
+ if (sleeping || !enabled)
+- reset_retries_all (policy->settings);
++ reset_retries_all (policy->settings, NULL);
+ }
+
+ static void
+@@ -932,6 +936,11 @@ device_state_changed (NMDevice *device,
+ update_routing_and_dns (policy, FALSE);
+ break;
+ case NM_DEVICE_STATE_DISCONNECTED:
++ /* Clear INVALID_TAG when carrier on. If cable was unplugged
++ * and plugged again, we should try to reconnect */
++ if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
++ reset_retries_all (policy->settings, device);
++
+ /* Device is now available for auto-activation */
+ update_routing_and_dns (policy, FALSE);
+ schedule_activate_check (policy, device, 0);
+@@ -1058,7 +1067,7 @@ connections_loaded (NMSettings *settings, gpointer user_data)
+ // that by calling reset_retries_all() in nm_policy_new()
+
+ /* Initialize connections' auto-retries */
+- reset_retries_all (settings);
++ reset_retries_all (settings, NULL);
+
+ schedule_activate_all ((NMPolicy *) user_data);
+ }
+@@ -1188,7 +1197,7 @@ nm_policy_new (NMManager *manager,
+ connection_visibility_changed);
+
+ /* Initialize connections' auto-retries */
+- reset_retries_all (policy->settings);
++ reset_retries_all (policy->settings, NULL);
+
+ initialized = TRUE;
+ return policy;
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch b/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
new file mode 100644
index 0000000000..565b01b973
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
@@ -0,0 +1,502 @@
+From 9549c70d943e3709694c4b0eb2595af11962c0eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Fri, 27 May 2011 17:32:40 +0200
+Subject: [PATCH] core: fix auto-connect to hidden SSIDs (rh #707406)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Previously (in NM 0.8.x) most WiFi connection were from user settings service.
+And the service updated 'seen-bssids' property when got connected.
+But the settings service in 0.9 don't do that. That inhibits auto-connecting to
+hidden networks. This commit takes care of updating 'seen-bssids'. However, we
+don't want to write out the conection each time it's activated (touching /etc).
+So, seen BSSIDs are kept separately from the connection in a look-aside file.
+
+Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
+---
+ src/nm-device-wifi.c | 30 +++++-
+ src/nm-manager.c | 44 ++-----
+ src/settings/nm-settings-connection.c | 216 +++++++++++++++++++++++++++++++--
+ src/settings/nm-settings-connection.h | 9 ++
+ src/settings/nm-settings.c | 3 +
+ 5 files changed, 256 insertions(+), 46 deletions(-)
+
+diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
+index 7a6e752..7f9b5d2 100644
+--- a/src/nm-device-wifi.c
++++ b/src/nm-device-wifi.c
+@@ -55,6 +55,7 @@
+ #include "nm-setting-ip4-config.h"
+ #include "nm-setting-ip6-config.h"
+ #include "nm-system.h"
++#include "nm-settings-connection.h"
+
+ static gboolean impl_device_get_access_points (NMDeviceWifi *device,
+ GPtrArray **aps,
+@@ -978,6 +979,28 @@ get_active_ap (NMDeviceWifi *self,
+ }
+
+ static void
++update_seen_bssids_cache (NMDeviceWifi *self, NMAccessPoint *ap)
++{
++ NMActRequest *req;
++ NMConnection *connection;
++
++ g_return_if_fail (ap != NULL);
++
++ /* Don't cache the BSSID for Ad-Hoc APs */
++ if (nm_ap_get_mode (ap) != NM_802_11_MODE_INFRA)
++ return;
++
++ if (nm_device_get_state (NM_DEVICE (self)) == NM_DEVICE_STATE_ACTIVATED) {
++ req = nm_device_get_act_request (NM_DEVICE (self));
++ if (req) {
++ connection = nm_act_request_get_connection (req);
++ nm_settings_connection_add_seen_bssid (NM_SETTINGS_CONNECTION (connection),
++ nm_ap_get_address (ap));
++ }
++ }
++}
++
++static void
+ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
+ {
+ NMDeviceWifiPrivate *priv;
+@@ -1003,6 +1026,9 @@ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
+ */
+ priv->ap_list = g_slist_remove (priv->ap_list, new_ap);
+ priv->ap_list = g_slist_prepend (priv->ap_list, new_ap);
++
++ /* Update seen BSSIDs cache */
++ update_seen_bssids_cache (self, priv->current_ap);
+ }
+
+ /* Unref old AP here to ensure object lives if new_ap == old_ap */
+@@ -3436,11 +3462,13 @@ activation_success_handler (NMDevice *dev)
+ done:
+ periodic_update (self);
+
++ /* Update seen BSSIDs cache with the connected AP */
++ update_seen_bssids_cache (self, priv->current_ap);
++
+ /* Reset scan interval to something reasonable */
+ priv->scan_interval = SCAN_INTERVAL_MIN + (SCAN_INTERVAL_STEP * 2);
+ }
+
+-
+ static void
+ activation_failure_handler (NMDevice *dev)
+ {
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 5a3f7f7..a15e4b7 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -63,6 +63,7 @@
+ #include "nm-settings-connection.h"
+ #include "nm-manager-auth.h"
+ #include "NetworkManagerUtils.h"
++#include "nm-utils.h"
+
+ #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
+ #define NM_AUTOIP_DBUS_IFACE "org.freedesktop.nm_avahi_autoipd"
+@@ -1040,52 +1041,27 @@ manager_hidden_ap_found (NMDeviceInterface *device,
+ {
+ NMManager *manager = NM_MANAGER (user_data);
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
+- const struct ether_addr *ap_addr;
+- const GByteArray *ap_ssid;
++ const struct ether_addr *bssid;
+ GSList *iter;
+ GSList *connections;
+ gboolean done = FALSE;
+
+- ap_ssid = nm_ap_get_ssid (ap);
+- if (ap_ssid && ap_ssid->len)
+- return;
++ g_return_if_fail (nm_ap_get_ssid (ap) == NULL);
+
+- ap_addr = nm_ap_get_address (ap);
+- g_assert (ap_addr);
++ bssid = nm_ap_get_address (ap);
++ g_assert (bssid);
+
+ /* Look for this AP's BSSID in the seen-bssids list of a connection,
+ * and if a match is found, copy over the SSID */
+ connections = nm_settings_get_connections (priv->settings);
+-
+ for (iter = connections; iter && !done; iter = g_slist_next (iter)) {
+ NMConnection *connection = NM_CONNECTION (iter->data);
+- NMSettingWireless *s_wireless;
+- const GByteArray *ssid;
+- guint32 num_bssids;
+- guint32 i;
+-
+- s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
+- if (!s_wireless)
+- continue;
+-
+- num_bssids = nm_setting_wireless_get_num_seen_bssids (s_wireless);
+- if (num_bssids < 1)
+- continue;
+-
+- ssid = nm_setting_wireless_get_ssid (s_wireless);
+- g_assert (ssid);
+-
+- for (i = 0; i < num_bssids && !done; i++) {
+- const char *seen_bssid = nm_setting_wireless_get_seen_bssid (s_wireless, i);
+- struct ether_addr seen_addr;
++ NMSettingWireless *s_wifi;
+
+- if (ether_aton_r (seen_bssid, &seen_addr)) {
+- if (memcmp (ap_addr, &seen_addr, sizeof (struct ether_addr)) == 0) {
+- /* Copy the SSID from the connection to the AP */
+- nm_ap_set_ssid (ap, ssid);
+- done = TRUE;
+- }
+- }
++ s_wifi = nm_connection_get_setting_wireless (connection);
++ if (s_wifi) {
++ if (nm_settings_connection_has_seen_bssid (NM_SETTINGS_CONNECTION (connection), bssid))
++ nm_ap_set_ssid (ap, nm_setting_wireless_get_ssid (s_wifi));
+ }
+ }
+ g_slist_free (connections);
+diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
+index 828a036..c20ba82 100644
+--- a/src/settings/nm-settings-connection.c
++++ b/src/settings/nm-settings-connection.c
+@@ -22,6 +22,7 @@
+ #include "config.h"
+
+ #include <string.h>
++#include <netinet/ether.h>
+
+ #include <NetworkManager.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -38,8 +39,10 @@
+ #include "nm-manager-auth.h"
+ #include "nm-marshal.h"
+ #include "nm-agent-manager.h"
++#include "NetworkManagerUtils.h"
+
+ #define SETTINGS_TIMESTAMPS_FILE LOCALSTATEDIR"/lib/NetworkManager/timestamps"
++#define SETTINGS_SEEN_BSSIDS_FILE LOCALSTATEDIR"/lib/NetworkManager/seen-bssids"
+
+ static void impl_settings_connection_get_settings (NMSettingsConnection *connection,
+ DBusGMethodInvocation *context);
+@@ -91,7 +94,8 @@ typedef struct {
+ NMSessionMonitor *session_monitor;
+ guint session_changed_id;
+
+- guint64 timestamp; /* Up-to-date timestamp of connection use */
++ guint64 timestamp; /* Up-to-date timestamp of connection use */
++ GHashTable *seen_bssids; /* Up-to-date BSSIDs that's been seen for the connection */
+ } NMSettingsConnectionPrivate;
+
+ /**************************************************************/
+@@ -455,12 +459,20 @@ commit_changes (NMSettingsConnection *connection,
+ }
+
+ static void
+-remove_timestamp_from_db (NMSettingsConnection *connection)
++remove_entry_from_db (NMSettingsConnection *connection, const char* db_name)
+ {
+- GKeyFile *timestamps_file;
++ GKeyFile *key_file;
++ const char *db_file;
+
+- timestamps_file = g_key_file_new ();
+- if (g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
++ if (strcmp (db_name, "timestamps") == 0)
++ db_file = SETTINGS_TIMESTAMPS_FILE;
++ else if (strcmp (db_name, "seen-bssids") == 0)
++ db_file = SETTINGS_SEEN_BSSIDS_FILE;
++ else
++ return;
++
++ key_file = g_key_file_new ();
++ if (g_key_file_load_from_file (key_file, db_file, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
+ const char *connection_uuid;
+ char *data;
+ gsize len;
+@@ -468,18 +480,18 @@ remove_timestamp_from_db (NMSettingsConnection *connection)
+
+ connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
+
+- g_key_file_remove_key (timestamps_file, "timestamps", connection_uuid, NULL);
+- data = g_key_file_to_data (timestamps_file, &len, &error);
++ g_key_file_remove_key (key_file, db_name, connection_uuid, NULL);
++ data = g_key_file_to_data (key_file, &len, &error);
+ if (data) {
+- g_file_set_contents (SETTINGS_TIMESTAMPS_FILE, data, len, &error);
++ g_file_set_contents (db_file, data, len, &error);
+ g_free (data);
+ }
+ if (error) {
+- nm_log_warn (LOGD_SETTINGS, "error writing timestamps file '%s': %s", SETTINGS_TIMESTAMPS_FILE, error->message);
++ nm_log_warn (LOGD_SETTINGS, "error writing %s file '%s': %s", db_name, db_file, error->message);
+ g_error_free (error);
+ }
+ }
+- g_key_file_free (timestamps_file);
++ g_key_file_free (key_file);
+ }
+
+ static void
+@@ -499,7 +511,10 @@ do_delete (NMSettingsConnection *connection,
+ nm_agent_manager_delete_secrets (priv->agent_mgr, for_agents, FALSE, 0);
+
+ /* Remove timestamp from timestamps database file */
+- remove_timestamp_from_db (connection);
++ remove_entry_from_db (connection, "timestamps");
++
++ /* Remove connection from seen-bssids database file */
++ remove_entry_from_db (connection, "seen-bssids");
+
+ /* Signal the connection is removed and deleted */
+ g_signal_emit (connection, signals[REMOVED], 0);
+@@ -1440,6 +1455,181 @@ nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection
+ g_key_file_free (timestamps_file);
+ }
+
++static guint
++mac_hash (gconstpointer v)
++{
++ const guint8 *p = v;
++ guint32 i, h = 5381;
++
++ for (i = 0; i < ETH_ALEN; i++)
++ h = (h << 5) + h + p[i];
++ return h;
++}
++
++static gboolean
++mac_equal (gconstpointer a, gconstpointer b)
++{
++ return memcmp (a, b, ETH_ALEN) == 0;
++}
++
++static guint8 *
++mac_dup (const struct ether_addr *old)
++{
++ guint8 *new;
++
++ g_return_val_if_fail (old != NULL, NULL);
++
++ new = g_malloc0 (ETH_ALEN);
++ memcpy (new, old, ETH_ALEN);
++ return new;
++}
++
++/**
++ * nm_settings_connection_has_seen_bssid:
++ * @connection: the #NMSettingsConnection
++ * @bssid: the BSSID to check the seen BSSID list for
++ *
++ * Returns: TRUE if the given @bssid is in the seen BSSIDs list
++ **/
++gboolean
++nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
++ const struct ether_addr *bssid)
++{
++ g_return_val_if_fail (connection != NULL, FALSE);
++ g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (connection), FALSE);
++ g_return_val_if_fail (bssid != NULL, FALSE);
++
++ return !!g_hash_table_lookup (NM_SETTINGS_CONNECTION_GET_PRIVATE (connection)->seen_bssids, bssid);
++}
++
++/**
++ * nm_settings_connection_add_seen_bssid:
++ * @connection: the #NMSettingsConnection
++ * @seen_bssid: BSSID to set into the connection and to store into
++ * the seen-bssids database
++ *
++ * Updates the connection and seen-bssids database with the provided BSSID.
++ **/
++void
++nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
++ const struct ether_addr *seen_bssid)
++{
++ NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
++ const char *connection_uuid;
++ GKeyFile *seen_bssids_file;
++ char *data, *bssid_str;
++ const char **list;
++ gsize len;
++ GError *error = NULL;
++ GHashTableIter iter;
++ guint n;
++
++ g_return_if_fail (seen_bssid != NULL);
++
++ if (g_hash_table_lookup (priv->seen_bssids, seen_bssid))
++ return; /* Already in the list */
++
++ /* Add the new BSSID; let the hash take ownership of the allocated BSSID string */
++ bssid_str = nm_ether_ntop (seen_bssid);
++ g_return_if_fail (bssid_str != NULL);
++ g_hash_table_insert (priv->seen_bssids, mac_dup (seen_bssid), bssid_str);
++
++ /* Build up a list of all the BSSIDs in string form */
++ n = 0;
++ list = g_malloc0 (g_hash_table_size (priv->seen_bssids) * sizeof (char *));
++ g_hash_table_iter_init (&iter, priv->seen_bssids);
++ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &bssid_str))
++ list[n++] = bssid_str;
++
++ /* Save BSSID to seen-bssids file */
++ seen_bssids_file = g_key_file_new ();
++ g_key_file_set_list_separator (seen_bssids_file, ',');
++ if (!g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
++ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
++ nm_log_warn (LOGD_SETTINGS, "error parsing seen-bssids file '%s': %s",
++ SETTINGS_SEEN_BSSIDS_FILE, error->message);
++ }
++ g_clear_error (&error);
++ }
++
++ connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
++ g_key_file_set_string_list (seen_bssids_file, "seen-bssids", connection_uuid, list, n);
++ g_free (list);
++
++ data = g_key_file_to_data (seen_bssids_file, &len, &error);
++ if (data) {
++ g_file_set_contents (SETTINGS_SEEN_BSSIDS_FILE, data, len, &error);
++ g_free (data);
++ }
++ g_key_file_free (seen_bssids_file);
++
++ if (error) {
++ nm_log_warn (LOGD_SETTINGS, "error saving seen-bssids to file '%s': %s",
++ SETTINGS_SEEN_BSSIDS_FILE, error->message);
++ g_error_free (error);
++ }
++}
++
++static void
++add_seen_bssid_string (NMSettingsConnection *self, const char *bssid)
++{
++ struct ether_addr mac;
++
++ g_return_if_fail (bssid != NULL);
++ if (ether_aton_r (bssid, &mac)) {
++ g_hash_table_insert (NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->seen_bssids,
++ mac_dup (&mac),
++ g_strdup (bssid));
++ }
++}
++
++/**
++ * nm_settings_connection_read_and_fill_seen_bssids:
++ * @connection: the #NMSettingsConnection
++ *
++ * Retrieves seen BSSIDs of the connection from database file and stores then into the
++ * connection private data.
++ **/
++void
++nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection)
++{
++ NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
++ const char *connection_uuid;
++ GKeyFile *seen_bssids_file;
++ char **tmp_strv = NULL;
++ gsize i, len = 0;
++ NMSettingWireless *s_wifi;
++
++ /* Get seen BSSIDs from database file */
++ seen_bssids_file = g_key_file_new ();
++ g_key_file_set_list_separator (seen_bssids_file, ',');
++ if (g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
++ connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
++ tmp_strv = g_key_file_get_string_list (seen_bssids_file, "seen-bssids", connection_uuid, &len, NULL);
++ }
++ g_key_file_free (seen_bssids_file);
++
++ /* Update connection's seen-bssids */
++ if (tmp_strv) {
++ g_hash_table_remove_all (priv->seen_bssids);
++ for (i = 0; i < len; i++)
++ add_seen_bssid_string (connection, tmp_strv[i]);
++ g_strfreev (tmp_strv);
++ } else {
++ /* If this connection didn't have an entry in the seen-bssids database,
++ * maybe this is the first time we've read it in, so populate the
++ * seen-bssids list from the deprecated seen-bssids property of the
++ * wifi setting.
++ */
++ s_wifi = nm_connection_get_setting_wireless (NM_CONNECTION (connection));
++ if (s_wifi) {
++ len = nm_setting_wireless_get_num_seen_bssids (s_wifi);
++ for (i = 0; i < len; i++)
++ add_seen_bssid_string (connection, nm_setting_wireless_get_seen_bssid (s_wifi, i));
++ }
++ }
++}
++
+ /**************************************************************/
+
+ static void
+@@ -1463,6 +1653,8 @@ nm_settings_connection_init (NMSettingsConnection *self)
+ self);
+
+ priv->agent_mgr = nm_agent_manager_get ();
++
++ priv->seen_bssids = g_hash_table_new_full (mac_hash, mac_equal, g_free, g_free);
+ }
+
+ static void
+@@ -1490,6 +1682,8 @@ dispose (GObject *object)
+ nm_agent_manager_cancel_secrets (priv->agent_mgr, GPOINTER_TO_UINT (iter->data));
+ g_slist_free (priv->reqs);
+
++ g_hash_table_destroy (priv->seen_bssids);
++
+ set_visible (self, FALSE);
+
+ if (priv->session_changed_id)
+diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
+index 116bfdc..af90c51 100644
+--- a/src/settings/nm-settings-connection.h
++++ b/src/settings/nm-settings-connection.h
+@@ -24,6 +24,7 @@
+
+ #include <nm-connection.h>
+ #include "nm-settings-flags.h"
++#include <net/ethernet.h>
+
+ G_BEGIN_DECLS
+
+@@ -124,6 +125,14 @@ void nm_settings_connection_update_timestamp (NMSettingsConnection *connection,
+
+ void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection);
+
++gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
++ const struct ether_addr *bssid);
++
++void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
++ const struct ether_addr *seen_bssid);
++
++void nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection);
++
+ G_END_DECLS
+
+ #endif /* NM_SETTINGS_CONNECTION_H */
+diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
+index e23e8d1..8329780 100644
+--- a/src/settings/nm-settings.c
++++ b/src/settings/nm-settings.c
+@@ -773,6 +773,9 @@ claim_connection (NMSettings *self,
+ /* Read timestamp from look-aside file and put it into the connection's data */
+ nm_settings_connection_read_and_fill_timestamp (connection);
+
++ /* Read seen-bssids from look-aside file and put it into the connection's data */
++ nm_settings_connection_read_and_fill_seen_bssids (connection);
++
+ /* Ensure it's initial visibility is up-to-date */
+ nm_settings_connection_recheck_visibility (connection);
+
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch b/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
new file mode 100644
index 0000000000..8cc16c4541
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
@@ -0,0 +1,29 @@
+From b4a72d1ad794aef4c623fd530fc38ceb9b95456d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Tue, 14 Jun 2011 19:39:23 +0200
+Subject: [PATCH] libnm-glib: fix crash for AddAndActivateConnection() D-Bus
+ call (bgo #652512)
+
+When a partial connection is passed to nm_client_add_and_activate_connection(),
+but it doesn't contain any settings, nm_connection_to_hash() returns NULL and
+there's a crash later on the NULL hash.
+---
+ libnm-glib/nm-client.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
+index 644af3e..752510a 100644
+--- a/libnm-glib/nm-client.c
++++ b/libnm-glib/nm-client.c
+@@ -763,7 +763,7 @@ nm_client_add_and_activate_connection (NMClient *client,
+
+ if (partial)
+ hash = nm_connection_to_hash (partial, NM_SETTING_HASH_FLAG_ALL);
+- else
++ if (!hash)
+ hash = g_hash_table_new (g_str_hash, g_str_equal);
+
+ priv = NM_CLIENT_GET_PRIVATE (client);
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch b/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
new file mode 100644
index 0000000000..f2af25e1d5
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
@@ -0,0 +1,109 @@
+From fdfbe00aac3f17b19bb8d84cba1c8f210d90e8a0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Fri, 17 Jun 2011 12:43:28 +0200
+Subject: [PATCH] policy: remove "invalid mark" for failed connections after 5
+ mins
+
+If there is a temporary connection failure (e.g. due to unavailable DHCP), the
+connection is marked as invalid after several retries. Reset the flag after
+5 mins to allow next auto-reconnection.
+---
+ src/nm-policy.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 45 insertions(+), 2 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index 3eead41..e3c899f 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -66,12 +66,16 @@ struct NMPolicy {
+
+ HostnameThread *lookup;
+
++ gint reset_retries_id; /* idle handler for resetting the retries count */
++
+ char *orig_hostname; /* hostname at NM start time */
+ char *cur_hostname; /* hostname we want to assign */
+ };
+
+ #define RETRIES_TAG "autoconnect-retries"
+ #define RETRIES_DEFAULT 4
++#define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
++#define RESET_RETRIES_TIMER 300
+
+ static NMDevice *
+ get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
+@@ -870,6 +874,37 @@ schedule_activate_check (NMPolicy *policy, NMDevice *device, guint delay_seconds
+ }
+ }
+
++static gboolean
++reset_connections_retries (gpointer user_data)
++{
++ NMPolicy *policy = (NMPolicy *) user_data;
++ GSList *connections, *iter;
++ time_t con_stamp, min_stamp, now;
++
++ policy->reset_retries_id = 0;
++
++ min_stamp = now = time (NULL);
++ connections = nm_settings_get_connections (policy->settings);
++ for (iter = connections; iter; iter = g_slist_next (iter)) {
++ con_stamp = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG));
++ if (con_stamp == 0)
++ continue;
++ if (con_stamp + RESET_RETRIES_TIMER <= now) {
++ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++ g_object_set_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER (0));
++ continue;
++ }
++ if (con_stamp < min_stamp)
++ min_stamp = con_stamp;
++ }
++ g_slist_free (connections);
++
++ /* Schedule the handler again if there are some stamps left */
++ if (min_stamp != now)
++ policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER - (now - min_stamp), reset_connections_retries, policy);
++ return FALSE;
++}
++
+ static NMConnection *
+ get_device_connection (NMDevice *device)
+ {
+@@ -914,8 +949,13 @@ device_state_changed (NMDevice *device,
+ set_connection_auto_retries (connection, tries - 1);
+ }
+
+- if (get_connection_auto_retries (connection) == 0)
++ if (get_connection_auto_retries (connection) == 0) {
+ nm_log_info (LOGD_DEVICE, "Marking connection '%s' invalid.", nm_connection_get_id (connection));
++ /* Schedule a handler to reset retries count */
++ g_object_set_data (G_OBJECT (connection), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER ((gsize) time (NULL)));
++ if (!policy->reset_retries_id)
++ policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER, reset_connections_retries, policy);
++ }
+ nm_connection_clear_secrets (connection);
+ }
+ schedule_activate_check (policy, device, 3);
+@@ -938,7 +978,7 @@ device_state_changed (NMDevice *device,
+ update_routing_and_dns (policy, FALSE);
+ break;
+ case NM_DEVICE_STATE_DISCONNECTED:
+- /* Clear INVALID_TAG when carrier on. If cable was unplugged
++ /* Reset RETRIES_TAG when carrier on. If cable was unplugged
+ * and plugged again, we should try to reconnect */
+ if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
+ reset_retries_all (policy->settings, device);
+@@ -1246,6 +1286,9 @@ nm_policy_destroy (NMPolicy *policy)
+ }
+ g_slist_free (policy->dev_ids);
+
++ if (policy->reset_retries_id)
++ g_source_remove (policy->reset_retries_id);
++
+ g_free (policy->orig_hostname);
+ g_free (policy->cur_hostname);
+
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch b/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
new file mode 100644
index 0000000000..f43cf24ba6
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
@@ -0,0 +1,280 @@
+From 69b767bbf0ef8e038dd8bd0bcb35586c0f91ade7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Tue, 28 Jun 2011 15:48:12 +0200
+Subject: [PATCH] core: connections failed due to missing secrets are re-tried
+ when an secret agent registers (rh #706204)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use case:
+A user has an auto-activatable connection with secrets in a keyring. While
+booting NM starts and tries to activate the connection, but it fails because of
+missing secrets. Then the user logs in, but the connection is marked as invalid
+and is not tried again.
+
+This commit solves the issue by removing invalid flag and activating the
+connection when a secret agent registers.
+
+Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
+---
+ src/nm-policy.c | 40 +++++++++++++++++++++++++++++++++++++++
+ src/settings/nm-agent-manager.c | 22 +++++++++++++++++++++
+ src/settings/nm-agent-manager.h | 4 +++
+ src/settings/nm-settings.c | 25 ++++++++++++++++++++++++
+ src/settings/nm-settings.h | 6 ++++-
+ 5 files changed, 96 insertions(+), 1 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index e3c899f..44f5e1f 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -76,6 +76,7 @@ struct NMPolicy {
+ #define RETRIES_DEFAULT 4
+ #define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
+ #define RESET_RETRIES_TIMER 300
++#define FAILURE_REASON_TAG "failure-reason"
+
+ static NMDevice *
+ get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
+@@ -838,6 +839,23 @@ reset_retries_all (NMSettings *settings, NMDevice *device)
+ }
+
+ static void
++reset_retries_for_failed_secrets (NMSettings *settings)
++{
++ GSList *connections, *iter;
++
++ connections = nm_settings_get_connections (settings);
++ for (iter = connections; iter; iter = g_slist_next (iter)) {
++ NMDeviceStateReason reason = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (iter->data), FAILURE_REASON_TAG));
++
++ if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
++ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++ g_object_set_data (G_OBJECT (iter->data), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
++ }
++ }
++ g_slist_free (connections);
++}
++
++static void
+ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+ {
+ NMPolicy *policy = user_data;
+@@ -927,6 +945,9 @@ device_state_changed (NMDevice *device,
+ NMPolicy *policy = (NMPolicy *) user_data;
+ NMConnection *connection = get_device_connection (device);
+
++ if (connection)
++ g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
++
+ switch (new_state) {
+ case NM_DEVICE_STATE_FAILED:
+ /* Mark the connection invalid if it failed during activation so that
+@@ -941,6 +962,11 @@ device_state_changed (NMDevice *device,
+ * automatically retrying because it's just going to fail anyway.
+ */
+ set_connection_auto_retries (connection, 0);
++
++ /* Mark the connection as failed due to missing secrets so that we can reset
++ * RETRIES_TAG and automatically re-try when an secret agent registers.
++ */
++ g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (NM_DEVICE_STATE_REASON_NO_SECRETS));
+ } else if (tries > 0) {
+ /* Otherwise if it's a random failure, just decrease the number
+ * of automatic retries so that the connection gets tried again
+@@ -1173,6 +1199,19 @@ connection_visibility_changed (NMSettings *settings,
+ }
+
+ static void
++secret_agent_registered (NMSettings *settings,
++ NMSecretAgent *agent,
++ gpointer user_data)
++{
++ /* The registered secret agent may provide some missing secrets. Thus we
++ * reset retries count here and schedule activation, so that the
++ * connections failed due to missing secrets may re-try auto-connection.
++ */
++ reset_retries_for_failed_secrets (settings);
++ schedule_activate_all ((NMPolicy *) user_data);
++}
++
++static void
+ _connect_manager_signal (NMPolicy *policy, const char *name, gpointer callback)
+ {
+ guint id;
+@@ -1240,6 +1279,7 @@ nm_policy_new (NMManager *manager,
+ _connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_REMOVED, connection_removed);
+ _connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED,
+ connection_visibility_changed);
++ _connect_settings_signal (policy, NM_SETTINGS_SIGNAL_AGENT_REGISTERED, secret_agent_registered);
+
+ /* Initialize connections' auto-retries */
+ reset_retries_all (policy->settings, NULL);
+diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
+index 9b9e189..1693ae2 100644
+--- a/src/settings/nm-agent-manager.c
++++ b/src/settings/nm-agent-manager.c
+@@ -57,6 +57,14 @@ typedef struct {
+ GHashTable *requests;
+ } NMAgentManagerPrivate;
+
++enum {
++ AGENT_REGISTERED,
++
++ LAST_SIGNAL
++};
++static guint signals[LAST_SIGNAL] = { 0 };
++
++
+ typedef struct _Request Request;
+
+ static void request_add_agent (Request *req,
+@@ -277,6 +285,9 @@ impl_agent_manager_register (NMAgentManager *self,
+ nm_secret_agent_get_description (agent));
+ dbus_g_method_return (context);
+
++ /* Signal an agent was registered */
++ g_signal_emit (self, signals[AGENT_REGISTERED], 0, agent);
++
+ /* Add this agent to any in-progress secrets requests */
+ g_hash_table_iter_init (&iter, priv->requests);
+ while (g_hash_table_iter_next (&iter, NULL, &data))
+@@ -1363,6 +1374,17 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class)
+ /* virtual methods */
+ object_class->dispose = dispose;
+
++ /* Signals */
++ signals[AGENT_REGISTERED] =
++ g_signal_new ("agent-registered",
++ G_OBJECT_CLASS_TYPE (object_class),
++ G_SIGNAL_RUN_FIRST,
++ G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered),
++ NULL, NULL,
++ g_cclosure_marshal_VOID__OBJECT,
++ G_TYPE_NONE, 1,
++ G_TYPE_OBJECT);
++
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (agent_manager_class),
+ &dbus_glib_nm_agent_manager_object_info);
+
+diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
+index 788a917..287413a 100644
+--- a/src/settings/nm-agent-manager.h
++++ b/src/settings/nm-agent-manager.h
+@@ -25,6 +25,7 @@
+ #include <glib-object.h>
+ #include <nm-connection.h>
+ #include "nm-settings-flags.h"
++#include "nm-secret-agent.h"
+
+ #define NM_TYPE_AGENT_MANAGER (nm_agent_manager_get_type ())
+ #define NM_AGENT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManager))
+@@ -39,6 +40,9 @@ typedef struct {
+
+ typedef struct {
+ GObjectClass parent;
++
++ /* Signals */
++ void (*agent_registered) (NMAgentManager *agent_mgr, NMSecretAgent *agent);
+ } NMAgentManagerClass;
+
+ GType nm_agent_manager_get_type (void);
+diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
+index 8329780..733e914 100644
+--- a/src/settings/nm-settings.c
++++ b/src/settings/nm-settings.c
+@@ -135,6 +135,7 @@ enum {
+ CONNECTION_REMOVED,
+ CONNECTION_VISIBILITY_CHANGED,
+ CONNECTIONS_LOADED,
++ AGENT_REGISTERED,
+
+ NEW_CONNECTION, /* exported, not used internally */
+ LAST_SIGNAL
+@@ -699,6 +700,18 @@ connection_visibility_changed (NMSettingsConnection *connection,
+ connection);
+ }
+
++static void
++secret_agent_registered (NMAgentManager *agent_mgr,
++ NMSecretAgent *agent,
++ gpointer user_data)
++{
++ /* Re-emit for listeners like NMPolicy */
++ g_signal_emit (NM_SETTINGS (user_data),
++ signals[AGENT_REGISTERED],
++ 0,
++ agent);
++}
++
+ #define NM_DBUS_SERVICE_OPENCONNECT "org.freedesktop.NetworkManager.openconnect"
+ #define NM_OPENCONNECT_KEY_GATEWAY "gateway"
+ #define NM_OPENCONNECT_KEY_COOKIE "cookie"
+@@ -1530,6 +1543,8 @@ nm_settings_init (NMSettings *self)
+ * recreated often.
+ */
+ priv->agent_mgr = nm_agent_manager_get ();
++
++ g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
+ }
+
+ static void
+@@ -1693,6 +1708,16 @@ nm_settings_class_init (NMSettingsClass *class)
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
++ signals[AGENT_REGISTERED] =
++ g_signal_new (NM_SETTINGS_SIGNAL_AGENT_REGISTERED,
++ G_OBJECT_CLASS_TYPE (object_class),
++ G_SIGNAL_RUN_FIRST,
++ G_STRUCT_OFFSET (NMSettingsClass, agent_registered),
++ NULL, NULL,
++ g_cclosure_marshal_VOID__OBJECT,
++ G_TYPE_NONE, 1, G_TYPE_OBJECT);
++
++
+ signals[NEW_CONNECTION] =
+ g_signal_new ("new-connection",
+ G_OBJECT_CLASS_TYPE (object_class),
+diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
+index a5cb4d7..66d41cc 100644
+--- a/src/settings/nm-settings.h
++++ b/src/settings/nm-settings.h
+@@ -19,7 +19,7 @@
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+- * (C) Copyright 2007 - 2010 Red Hat, Inc.
++ * (C) Copyright 2007 - 2011 Red Hat, Inc.
+ * (C) Copyright 2008 Novell, Inc.
+ */
+
+@@ -31,6 +31,7 @@
+ #include "nm-settings-connection.h"
+ #include "nm-system-config-interface.h"
+ #include "nm-device.h"
++#include "nm-secret-agent.h"
+
+ #define NM_TYPE_SETTINGS (nm_settings_get_type ())
+ #define NM_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTINGS, NMSettings))
+@@ -48,6 +49,7 @@
+ #define NM_SETTINGS_SIGNAL_CONNECTION_REMOVED "connection-removed"
+ #define NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED "connection-visibility-changed"
+ #define NM_SETTINGS_SIGNAL_CONNECTIONS_LOADED "connections-loaded"
++#define NM_SETTINGS_SIGNAL_AGENT_REGISTERED "agent-registered"
+
+ typedef struct {
+ GObject parent_instance;
+@@ -68,6 +70,8 @@ typedef struct {
+ void (*connection_visibility_changed) (NMSettings *self, NMSettingsConnection *connection);
+
+ void (*connections_loaded) (NMSettings *self);
++
++ void (*agent_registered) (NMSettings *self, NMSecretAgent *agent);
+ } NMSettingsClass;
+
+ GType nm_settings_get_type (void);
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch b/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
new file mode 100644
index 0000000000..b01842f6ec
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
@@ -0,0 +1,29 @@
+From 5b650f9ae3c5a2972b0b018b8b75d02d815f2c3a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Thu, 7 Jul 2011 12:51:22 +0200
+Subject: [PATCH] settings: do not crash on GetSecrets() in case of missing
+ secrets
+
+When secrets are flagged as agent-owned in a connection configuration file, but
+actually not available, we have to return an empty hash (nm_connection_to_hash()
+returns NULL).
+---
+ src/settings/nm-settings-connection.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
+index a14b159..f0f9c1a 100644
+--- a/src/settings/nm-settings-connection.c
++++ b/src/settings/nm-settings-connection.c
+@@ -1339,6 +1339,8 @@ dbus_get_agent_secrets_cb (NMSettingsConnection *self,
+ update_secrets_cache (self);
+
+ hash = nm_connection_to_hash (NM_CONNECTION (self), NM_SETTING_HASH_FLAG_ONLY_SECRETS);
++ if (!hash)
++ hash = g_hash_table_new (NULL, NULL);
+ dbus_g_method_return (context, hash);
+ g_hash_table_destroy (hash);
+ }
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch b/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
new file mode 100644
index 0000000000..4206df112c
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
@@ -0,0 +1,70 @@
+From 30c41a4b800408150edcca9047a3996fa1d6ae68 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Thu, 7 Jul 2011 15:25:11 +0200
+Subject: [PATCH] keyfile: distinguish better between string x int list
+ formats (bgo #649422)
+
+This commit enhances get_uchar_array() to better differentiate between string
+ad integer list formats. This allows using ';' character in SSIDs.
+---
+ src/settings/plugins/keyfile/reader.c | 28 +++++++++++++---------------
+ 1 files changed, 13 insertions(+), 15 deletions(-)
+
+diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
+index 4b28965..7da6e1a 100644
+--- a/src/settings/plugins/keyfile/reader.c
++++ b/src/settings/plugins/keyfile/reader.c
+@@ -16,7 +16,7 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+- * Copyright (C) 2008 - 2010 Red Hat, Inc.
++ * Copyright (C) 2008 - 2011 Red Hat, Inc.
+ */
+
+ #include <errno.h>
+@@ -736,29 +736,27 @@ get_uchar_array (GKeyFile *keyfile,
+ const char *key)
+ {
+ GByteArray *array = NULL;
+- char *p, *tmp_string;
++ char *tmp_string;
+ gint *tmp_list;
+ gsize length;
+ int i;
+
+- /* New format: just a string. We try parsing the new format if there are
+- * no ';' in the string or it's not just numbers.
++ /* New format: just a string
++ * Old format: integer list; e.g. 11;25;38
+ */
+- p = tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
++ tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
+ if (tmp_string) {
+ gboolean new_format = FALSE;
++ GRegex *regex;
++ GMatchInfo *match_info;
++ const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
+
+- if (strchr (p, ';') == NULL)
+- new_format = TRUE;
+- else {
++ regex = g_regex_new (pattern, 0, 0, NULL);
++ g_regex_match (regex, tmp_string, 0, &match_info);
++ if (!g_match_info_matches (match_info))
+ new_format = TRUE;
+- while (p && *p) {
+- if (!isdigit (*p++)) {
+- new_format = FALSE;
+- break;
+- }
+- }
+- }
++ g_match_info_free (match_info);
++ g_regex_unref (regex);
+
+ if (new_format) {
+ array = g_byte_array_sized_new (strlen (tmp_string));
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch b/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
new file mode 100644
index 0000000000..b4e0ef0712
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
@@ -0,0 +1,211 @@
+From 9cdc5021ab0b94dbf1a0d1994bc2e5ba4049caf9 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 20 Jul 2011 17:44:14 -0500
+Subject: [PATCH 1/2] keyfile: fix integer list SSID parsing after
+ 30c41a4b800408150edcca9047a3996fa1d6ae68
+
+The regex was capturing integers larger than 3 digits, which aren't
+valid SSID integer list items because each byte of the SSID cannot be
+larger than 255. Add an explicit testcase for intlist SSIDs too.
+The previous regex was causing a testcase failure with an SSID of
+'1337' which it was interpreting as a single element intlist, but
+should have been interpreted as a string since it's clear > 255.
+---
+ src/settings/plugins/keyfile/reader.c | 2 +-
+ .../plugins/keyfile/tests/keyfiles/Makefile.am | 1 +
+ .../keyfile/tests/keyfiles/Test_Intlist_SSID | 11 ++
+ src/settings/plugins/keyfile/tests/test-keyfile.c | 128 ++++++++++++++++++++
+ 4 files changed, 141 insertions(+), 1 deletions(-)
+ create mode 100644 src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+
+diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
+index 7da6e1a..c4136e0 100644
+--- a/src/settings/plugins/keyfile/reader.c
++++ b/src/settings/plugins/keyfile/reader.c
+@@ -749,7 +749,7 @@ get_uchar_array (GKeyFile *keyfile,
+ gboolean new_format = FALSE;
+ GRegex *regex;
+ GMatchInfo *match_info;
+- const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
++ const char *pattern = "^[[:space:]]*[[:digit:]]{1,3}[[:space:]]*(;[[:space:]]*[[:digit:]]{1,3}[[:space:]]*)*(;[[:space:]]*)?$";
+
+ regex = g_regex_new (pattern, 0, 0, NULL);
+ g_regex_match (regex, tmp_string, 0, &match_info);
+diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
+index ce5ff99..302db86 100644
+--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
+@@ -7,6 +7,7 @@ KEYFILES = \
+ ATT_Data_Connect_BT \
+ ATT_Data_Connect_Plain \
+ Test_String_SSID \
++ Test_Intlist_SSID \
+ Test_Wired_TLS_Old \
+ Test_Wired_TLS_New \
+ Test_Wired_TLS_Blob \
+diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+new file mode 100644
+index 0000000..6d2bc0f
+--- /dev/null
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+@@ -0,0 +1,11 @@
++[connection]
++id=Test
++uuid=2f962388-e5f3-45af-a62c-ac220b8f7baa
++type=802-11-wireless
++
++[802-11-wireless]
++ssid=98;108;97;104;49;50;51;52;
++
++[ipv4]
++method=auto
++
+diff --git a/src/settings/plugins/keyfile/tests/test-keyfile.c b/src/settings/plugins/keyfile/tests/test-keyfile.c
+index 6cdd198..3bbaaae 100644
+--- a/src/settings/plugins/keyfile/tests/test-keyfile.c
++++ b/src/settings/plugins/keyfile/tests/test-keyfile.c
+@@ -1438,6 +1438,131 @@ test_write_string_ssid (void)
+ g_object_unref (connection);
+ }
+
++#define TEST_INTLIST_SSID_FILE TEST_KEYFILES_DIR"/Test_Intlist_SSID"
++
++static void
++test_read_intlist_ssid (void)
++{
++ NMConnection *connection;
++ NMSettingWireless *s_wifi;
++ GError *error = NULL;
++ gboolean success;
++ const GByteArray *array;
++ const char *expected_ssid = "blah1234";
++
++ connection = nm_keyfile_plugin_connection_from_file (TEST_INTLIST_SSID_FILE, &error);
++ g_assert_no_error (error);
++ g_assert (connection);
++
++ success = nm_connection_verify (connection, &error);
++ g_assert_no_error (error);
++ g_assert (success);
++
++ /* SSID */
++ s_wifi = nm_connection_get_setting_wireless (connection);
++ g_assert (s_wifi);
++
++ array = nm_setting_wireless_get_ssid (s_wifi);
++ g_assert (array != NULL);
++ g_assert_cmpint (array->len, ==, strlen (expected_ssid));
++ g_assert_cmpint (memcmp (array->data, expected_ssid, strlen (expected_ssid)), ==, 0);
++
++ g_object_unref (connection);
++}
++
++static void
++test_write_intlist_ssid (void)
++{
++ NMConnection *connection;
++ NMSettingConnection *s_con;
++ NMSettingWireless *s_wifi;
++ NMSettingIP4Config *s_ip4;
++ char *uuid, *testfile = NULL;
++ GByteArray *ssid;
++ unsigned char tmpssid[] = { 65, 49, 50, 51, 0, 50, 50 };
++ gboolean success;
++ NMConnection *reread;
++ GError *error = NULL;
++ pid_t owner_grp;
++ uid_t owner_uid;
++ GKeyFile *keyfile;
++ gint *intlist;
++ gsize len = 0, i;
++
++ connection = nm_connection_new ();
++ g_assert (connection);
++
++ /* Connection setting */
++
++ s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
++ g_assert (s_con);
++ nm_connection_add_setting (connection, NM_SETTING (s_con));
++
++ uuid = nm_utils_uuid_generate ();
++ g_object_set (s_con,
++ NM_SETTING_CONNECTION_ID, "Intlist SSID Test",
++ NM_SETTING_CONNECTION_UUID, uuid,
++ NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
++ NULL);
++ g_free (uuid);
++
++ /* Wireless setting */
++ s_wifi = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
++ g_assert (s_wifi);
++ nm_connection_add_setting (connection, NM_SETTING (s_wifi));
++
++ ssid = g_byte_array_sized_new (sizeof (tmpssid));
++ g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
++ g_object_set (s_wifi, NM_SETTING_WIRELESS_SSID, ssid, NULL);
++ g_byte_array_free (ssid, TRUE);
++
++ /* IP4 setting */
++ s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
++ g_assert (s_ip4);
++ nm_connection_add_setting (connection, NM_SETTING (s_ip4));
++ g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
++
++ /* Write out the connection */
++ owner_uid = geteuid ();
++ owner_grp = getegid ();
++ success = nm_keyfile_plugin_write_test_connection (connection, TEST_SCRATCH_DIR, owner_uid, owner_grp, &testfile, &error);
++ g_assert_no_error (error);
++ g_assert (success);
++ g_assert (testfile != NULL);
++
++ /* Ensure the SSID was written out as an int list */
++ keyfile = g_key_file_new ();
++ success = g_key_file_load_from_file (keyfile, testfile, 0, &error);
++ g_assert_no_error (error);
++ g_assert (success);
++
++ intlist = g_key_file_get_integer_list (keyfile, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, &len, &error);
++ g_assert_no_error (error);
++ g_assert (intlist);
++ g_assert_cmpint (len, ==, sizeof (tmpssid));
++
++ for (i = 0; i < len; i++)
++ g_assert_cmpint (intlist[i], ==, tmpssid[i]);
++ g_free (intlist);
++
++ g_key_file_free (keyfile);
++
++ /* Read the connection back in and compare it to the one we just wrote out */
++ reread = nm_keyfile_plugin_connection_from_file (testfile, &error);
++ g_assert_no_error (error);
++ g_assert (reread);
++
++ success = nm_connection_compare (connection, reread, NM_SETTING_COMPARE_FLAG_EXACT);
++ g_assert (success);
++
++ g_clear_error (&error);
++ unlink (testfile);
++ g_free (testfile);
++
++ g_object_unref (reread);
++ g_object_unref (connection);
++}
++
+ #define TEST_BT_DUN_FILE TEST_KEYFILES_DIR"/ATT_Data_Connect_BT"
+
+ static void
+@@ -2488,6 +2613,9 @@ int main (int argc, char **argv)
+ test_read_string_ssid ();
+ test_write_string_ssid ();
+
++ test_read_intlist_ssid ();
++ test_write_intlist_ssid ();
++
+ test_read_bt_dun_connection ();
+ test_write_bt_dun_connection ();
+
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch b/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
new file mode 100644
index 0000000000..4a3c6fcc8d
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
@@ -0,0 +1,32 @@
+From 36db194ae95e35cc7b8f431ab984780dea24656d Mon Sep 17 00:00:00 2001
+From: Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
+Date: Wed, 20 Jul 2011 23:56:48 -0500
+Subject: [PATCH 2/2] libnm-util: default to allowing IPv6 connections to fail
+
+Allow IPv6 connections to fail by changing the default value of the may-fail
+property for ipv6 settings to TRUE.
+
+This makes sure connections created manually using nm-connection-editor
+will default to having the "Require ..." checkbox unchecked; in other words,
+IPv6 timing out will still allow the interface to be configured if
+IPv4 succeeds.
+---
+ libnm-util/nm-setting-ip6-config.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c
+index e911639..4dc8f46 100644
+--- a/libnm-util/nm-setting-ip6-config.c
++++ b/libnm-util/nm-setting-ip6-config.c
+@@ -1056,7 +1056,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
+ "this property to TRUE allows the overall network "
+ "configuration to succeed if IPv6 configuration "
+ "fails but IPv4 configuration completes successfully.",
+- FALSE,
++ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
+ }
+
+--
+1.7.6
+
diff --git a/net-misc/networkmanager/files/networkmanager-fix-tests.patch b/net-misc/networkmanager/files/networkmanager-fix-tests.patch
new file mode 100644
index 0000000000..7bd8a2bc0a
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-fix-tests.patch
@@ -0,0 +1,18 @@
+--- configure.ac
++++ configure.ac
+@@ -577,7 +577,6 @@
+ src/settings/plugins/ifupdown/Makefile
+ src/settings/plugins/ifupdown/tests/Makefile
+ src/settings/plugins/ifnet/Makefile
+-src/settings/plugins/ifnet/tests/Makefile
+ src/settings/plugins/ifcfg-rh/Makefile
+ src/settings/plugins/ifcfg-rh/tests/Makefile
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile
+--- src/settings/plugins/ifnet/Makefile.am
++++ src/settings/plugins/ifnet/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = . tests
++SUBDIRS = .
+ INCLUDES = \
+ -I$(top_srcdir)/src/settings \
+ -I$(top_srcdir)/include \
diff --git a/net-misc/networkmanager/files/nm-system-settings.conf-ifnet b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
new file mode 100644
index 0000000000..4d14ee7b80
--- /dev/null
+++ b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
@@ -0,0 +1,6 @@
+[main]
+plugins=ifnet,keyfile
+
+[ifnet]
+managed=true
+auto_refresh=false
diff --git a/net-misc/networkmanager/metadata.xml b/net-misc/networkmanager/metadata.xml
index 7d8b3b476c..7d32afff1f 100644
--- a/net-misc/networkmanager/metadata.xml
+++ b/net-misc/networkmanager/metadata.xml
@@ -10,18 +10,17 @@
<email>rbu@gentoo.org</email>
<name>Robert Buchholz</name>
</maintainer>
- <maintainer>
- <email>dagger@gentoo.org</email>
- <name>Robert Piasek</name>
- </maintainer>
+ <maintainer>
+ <email>dagger@gentoo.org</email>
+ <name>Robert Piasek</name>
+ </maintainer>
<use>
- <flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag>
- <flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag>
+ <flag name="ppp">Enable support for mobile broadband and PPPoE connections using <pkg>net-dialup/ppp</pkg>.</flag>
+ <flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag>
<flag name="dhcpcd">Use <pkg>net-misc/dhcpcd</pkg> for getting ip.</flag>
- <flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg> for introspection</flag>
<flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography.</flag>
- <flag name="ppp">Enable support for mobile broadband and PPPoE connections using <pkg>net-dialup/ppp</pkg>.</flag>
<flag name="resolvconf">Use <pkg>net-dns/openresolv</pkg> for managing DNS information</flag>
+ <flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag>
<flag name="wimax">Enable WiMAX support. Requires <pkg>net-wireless/wimax</pkg>.</flag>
</use>
</pkgmetadata>
diff --git a/net-misc/networkmanager/networkmanager-0.8.9997.ebuild b/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
index 12617d739a..0a1b561109 100644
--- a/net-misc/networkmanager/networkmanager-0.8.9997.ebuild
+++ b/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
@@ -1,44 +1,34 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.8.995.ebuild,v 1.1 2011/03/09 07:56:21 qiaomuf Exp $
EAPI="4"
+GNOME_ORG_MODULE="NetworkManager"
-# NetworkManager likes itself with capital letters
-MY_PN=${PN/networkmanager/NetworkManager}
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
- git_eclass="git-2"
- EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
- KEYWORDS=""
-else
- SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
- KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit autotools eutils linux-info ${git_eclass}
+inherit autotools eutils gnome.org linux-info systemd
DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-SRC_URI="${SRC_URI}
- http://dev.gentoo.org/~dagger/files/ifnet-0.9.tar.bz2
- "
LICENSE="GPL-2"
SLOT="0"
-IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection kernel_linux +ppp resolvconf connection-sharing wimax"
+IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection
+kernel_linux +ppp resolvconf connection-sharing wimax"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
REQUIRED_USE="
- nss? ( !gnutls ) !nss? ( gnutls )
- dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )"
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )"
-RDEPEND=">=sys-apps/dbus-1.2
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# make consolekit and/or polkit support optional ?
+COMMON_DEPEND=">=sys-apps/dbus-1.2
>=dev-libs/dbus-glib-0.75
>=net-wireless/wireless-tools-28_pre9
- >=sys-fs/udev-147[extras]
+ || ( >=sys-fs/udev-171[gudev] >=sys-fs/udev-147[extras] )
>=dev-libs/glib-2.26
- >=sys-auth/polkit-0.96
+ >=sys-auth/polkit-0.97
>=dev-libs/libnl-1.1
>=net-misc/modemmanager-0.4
>=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
@@ -58,14 +48,15 @@ RDEPEND=">=sys-apps/dbus-1.2
net-firewall/iptables )
wimax? ( >=net-wireless/wimax-1.5.1 )"
-DEPEND="${RDEPEND}
+RDEPEND="${COMMON_DEPEND}
+ sys-auth/consolekit"
+
+DEPEND="${COMMON_DEPEND}
dev-util/pkgconfig
- dev-util/intltool
- >=dev-util/gtk-doc-1.15
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
doc? ( >=dev-util/gtk-doc-1.8 )"
-S=${WORKDIR}/${MY_P}
-
sysfs_deprecated_check() {
ebegin "Checking for SYSFS_DEPRECATED support"
@@ -78,7 +69,7 @@ sysfs_deprecated_check() {
eend $?
}
-pkg_setup() {
+pkg_pretend() {
if use kernel_linux; then
get_version
if linux_config_exists; then
@@ -93,10 +84,14 @@ pkg_setup() {
}
src_prepare() {
- gtkdocize
- eautopoint --force
- intltoolize --force --automake --copy
- eautoreconf
+ # Add useful patches from upstream git (fixing crashes, SSID parsing bugs,
+ # and significant usability problems).
+ epatch "${FILESDIR}/${PV}/"*.patch
+
+ # Don't build tests
+ epatch "${FILESDIR}/${PN}-fix-tests.patch"
+ eautoreconf
+ default
}
src_configure() {
@@ -104,7 +99,7 @@ src_configure() {
--localstatedir=/var
--with-distro=gentoo
--with-dbus-sys-dir=/etc/dbus-1/system.d
- --with-udev-dir=/etc/udev
+ --with-udev-dir=/lib/udev
--with-iptables=/sbin/iptables
$(use_enable doc gtk-doc)
$(use_enable introspection)
@@ -113,7 +108,8 @@ src_configure() {
$(use_with dhclient)
$(use_with dhcpcd)
$(use_with doc docs)
- $(use_with resolvconf)"
+ $(use_with resolvconf)
+ $(systemd_with_unitdir)"
if use nss ; then
ECONF="${ECONF} $(use_with nss crypto=nss)"
@@ -132,17 +128,11 @@ src_install() {
# Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
keepdir /etc/NetworkManager/dispatcher.d
- dodoc AUTHORS ChangeLog NEWS README TODO || die "dodoc failed"
-
# Add keyfile plugin support
keepdir /etc/NetworkManager/system-connections
insinto /etc/NetworkManager
- newins "${FILESDIR}/nm-system-settings.conf" nm-system-settings.conf \
- || die "newins failed"
-}
+ newins "${FILESDIR}/nm-system-settings.conf-ifnet" nm-system-settings.conf
-pkg_postinst() {
- elog "You will need to reload DBus if this is your first time installing"
- elog "NetworkManager, or if you're upgrading from 0.7 or older."
- elog ""
+ # Remove useless .la files
+ find "${D}" -name '*.la' -exec rm -f {} +
}
diff --git a/net-misc/networkmanager/networkmanager-9999.ebuild b/net-misc/networkmanager/networkmanager-9999.ebuild
deleted file mode 100644
index 12617d739a..0000000000
--- a/net-misc/networkmanager/networkmanager-9999.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-
-# NetworkManager likes itself with capital letters
-MY_PN=${PN/networkmanager/NetworkManager}
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
- git_eclass="git-2"
- EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
- KEYWORDS=""
-else
- SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
- KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit autotools eutils linux-info ${git_eclass}
-
-DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-SRC_URI="${SRC_URI}
- http://dev.gentoo.org/~dagger/files/ifnet-0.9.tar.bz2
- "
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection kernel_linux +ppp resolvconf connection-sharing wimax"
-
-REQUIRED_USE="
- nss? ( !gnutls ) !nss? ( gnutls )
- dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )"
-
-RDEPEND=">=sys-apps/dbus-1.2
- >=dev-libs/dbus-glib-0.75
- >=net-wireless/wireless-tools-28_pre9
- >=sys-fs/udev-147[extras]
- >=dev-libs/glib-2.26
- >=sys-auth/polkit-0.96
- >=dev-libs/libnl-1.1
- >=net-misc/modemmanager-0.4
- >=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
- bluetooth? ( >=net-wireless/bluez-4.82 )
- avahi? ( net-dns/avahi[autoipd] )
- gnutls? (
- dev-libs/libgcrypt
- net-libs/gnutls )
- nss? ( >=dev-libs/nss-3.11 )
- dhclient? ( net-misc/dhcp )
- dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
- introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
- ppp? ( >=net-dialup/ppp-2.4.5 )
- resolvconf? ( net-dns/openresolv )
- connection-sharing? (
- net-dns/dnsmasq
- net-firewall/iptables )
- wimax? ( >=net-wireless/wimax-1.5.1 )"
-
-DEPEND="${RDEPEND}
- dev-util/pkgconfig
- dev-util/intltool
- >=dev-util/gtk-doc-1.15
- doc? ( >=dev-util/gtk-doc-1.8 )"
-
-S=${WORKDIR}/${MY_P}
-
-sysfs_deprecated_check() {
- ebegin "Checking for SYSFS_DEPRECATED support"
-
- if { linux_chkconfig_present SYSFS_DEPRECATED_V2; }; then
- eerror "Please disable SYSFS_DEPRECATED_V2 support in your kernel config and recompile your kernel"
- eerror "or NetworkManager will not work correctly."
- eerror "See http://bugs.gentoo.org/333639 for more info."
- die "CONFIG_SYSFS_DEPRECATED_V2 support detected!"
- fi
- eend $?
-}
-
-pkg_setup() {
- if use kernel_linux; then
- get_version
- if linux_config_exists; then
- sysfs_deprecated_check
- else
- ewarn "Was unable to determine your kernel .config"
- ewarn "Please note that if CONFIG_SYSFS_DEPRECATED_V2 is set in your kernel .config, NetworkManager will not work correctly."
- ewarn "See http://bugs.gentoo.org/333639 for more info."
- fi
-
- fi
-}
-
-src_prepare() {
- gtkdocize
- eautopoint --force
- intltoolize --force --automake --copy
- eautoreconf
-}
-
-src_configure() {
- ECONF="--disable-more-warnings
- --localstatedir=/var
- --with-distro=gentoo
- --with-dbus-sys-dir=/etc/dbus-1/system.d
- --with-udev-dir=/etc/udev
- --with-iptables=/sbin/iptables
- $(use_enable doc gtk-doc)
- $(use_enable introspection)
- $(use_enable ppp)
- $(use_enable wimax)
- $(use_with dhclient)
- $(use_with dhcpcd)
- $(use_with doc docs)
- $(use_with resolvconf)"
-
- if use nss ; then
- ECONF="${ECONF} $(use_with nss crypto=nss)"
- else
- ECONF="${ECONF} $(use_with gnutls crypto=gnutls)"
- fi
-
- econf ${ECONF}
-}
-
-src_install() {
- default
- # Need to keep the /var/run/NetworkManager directory
- keepdir /var/run/NetworkManager
-
- # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
- keepdir /etc/NetworkManager/dispatcher.d
-
- dodoc AUTHORS ChangeLog NEWS README TODO || die "dodoc failed"
-
- # Add keyfile plugin support
- keepdir /etc/NetworkManager/system-connections
- insinto /etc/NetworkManager
- newins "${FILESDIR}/nm-system-settings.conf" nm-system-settings.conf \
- || die "newins failed"
-}
-
-pkg_postinst() {
- elog "You will need to reload DBus if this is your first time installing"
- elog "NetworkManager, or if you're upgrading from 0.7 or older."
- elog ""
-}