summaryrefslogtreecommitdiff
path: root/net-misc/networkmanager
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/networkmanager
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-misc/networkmanager')
-rw-r--r--net-misc/networkmanager/Manifest5
-rw-r--r--net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules7
-rw-r--r--net-misc/networkmanager/files/10-openrc-status-r435
-rw-r--r--net-misc/networkmanager/files/conf.d.NetworkManager4
-rwxr-xr-xnet-misc/networkmanager/files/init.d.NetworkManager57
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.9.10.0-arpingpath.patch16
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.9.8.4-pre-sleep.patch131
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch47
-rw-r--r--net-misc/networkmanager/files/networkmanager-1.0.0-find-helpers.patch23
-rw-r--r--net-misc/networkmanager/files/networkmanager-1.0.0-lto-switch.patch36
-rw-r--r--net-misc/networkmanager/files/networkmanager-1.0.0-remove-bashisms.patch44
-rw-r--r--net-misc/networkmanager/files/networkmanager-1.0.2-configure-dhcpcd.patch31
-rw-r--r--net-misc/networkmanager/files/nm-system-settings.conf-ifnet6
-rw-r--r--net-misc/networkmanager/metadata.xml27
-rw-r--r--net-misc/networkmanager/networkmanager-0.9.10.1_pre20141101.ebuild302
-rw-r--r--net-misc/networkmanager/networkmanager-0.9.8.10-r1.ebuild252
-rw-r--r--net-misc/networkmanager/networkmanager-1.0.0.ebuild305
-rw-r--r--net-misc/networkmanager/networkmanager-1.0.2-r1.ebuild298
-rw-r--r--net-misc/networkmanager/networkmanager-1.0.2.ebuild292
-rw-r--r--net-misc/networkmanager/networkmanager-1.0.4-r1.ebuild342
-rw-r--r--net-misc/networkmanager/networkmanager-1.0.4.ebuild296
21 files changed, 2556 insertions, 0 deletions
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
new file mode 100644
index 00000000000..96ae1db3c17
--- /dev/null
+++ b/net-misc/networkmanager/Manifest
@@ -0,0 +1,5 @@
+DIST NetworkManager-0.9.10.1_pre20141101.tar.xz 2507248 SHA256 5f2e61c74713ce9ebb755c23c9aca279f321eb924247c282bdd50c2c8337fe40 SHA512 0cc4ec34e5933229a9b25e25b26d7619ac1a61275cd4c33a658c98578e6a27d4d2b1337c1e839467c625739a6ae2175ab6d883c4bfbe35642dbbafb7b11a421d WHIRLPOOL 1d0fb976ffc26aba74fc8b8bee081efc236ea647da0970a5564730522f2f837bfa5cd0853268d5098126810a4429b2ff7840f9cf66e6faa3bd5829b175679681
+DIST NetworkManager-0.9.8.10.tar.xz 2015492 SHA256 064d27223d3824859df12e1fb25b787fec1c68bbc864dc52a0289b9211c4c972 SHA512 8688b8dceadf87d26b76bdda76ecb0b383ecaa7991487e6f6ddc150cf311f2f0cb3487afd91f19ecde2925585e8d53c8761fd45743f25c488eff6a7811ca4200 WHIRLPOOL 29c4f2189eb812c23e8c1cfbce728c525282ad3f04d3c9c25b3a80a043c95f2a9419fa71ac6f8a59d7abde8a30275e68e3ef615b74f78c07846757d92f114e1c
+DIST NetworkManager-1.0.0.tar.xz 3210884 SHA256 3a66afec670c975edd9832e620b725a5f16ed267a1b9e1b2d51ef27250d85947 SHA512 7089496ce31bfdffe99c0f031b6326734d2e36b3bb9a2ed0ecbe3dad64bff0dc993b2e6bcac770b31bcfe634833bd8dbabc23d128356dbba8243a6d8fc489a5e WHIRLPOOL df928cb0a9be0782b1f853d808273f798ca62be5f0fd650caf033fb16b98ef696c7f90eaed90488ef7f6a9e607cf74cd865848523fbbf08cd26487e98b4a455a
+DIST NetworkManager-1.0.2.tar.xz 3210588 SHA256 359385707494bedbb48cfe0992ccfbcc4ac147dae1f7a47055c71e96439508ff SHA512 9c5884c75c2a2aae478d99bde4ecbb0dc4293b3f50dcf78a1579aa13e09ab95b01981a366f1dc58cd5d02fe77dc90fc0941f00142cd5ef1cea14c3b9d89f5c36 WHIRLPOOL 0a9f4bc6cc0f176bfc1c82294b45392c86b6d6a65cefe38fc80fce8f09584f275a23163d1909dfde9427405fe7b4086b8e2bc4995eded4cf441b8024fa00657d
+DIST NetworkManager-1.0.4.tar.xz 3364168 SHA256 e4099fa2f4f4b8d95d0ad9fdd03ec20960845085fa500bf79aecbf54cee018c9 SHA512 b07583ca654a95dc018a712626ba0065c2ff5d9904b326891be684b32526f360f287b46cbd11026277a385558c1b55e38a086ae2b0aab059b63a4f3e11566cb1 WHIRLPOOL d6a612a855e216b7b46c620a85ceb3b3893029cf83bb9699ed0ba1c2d349abdeb4ee8921155216fb8285ac369cea64704836984e86bbf3813d8287b4803fc49a
diff --git a/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules b/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules
new file mode 100644
index 00000000000..d00b268537e
--- /dev/null
+++ b/net-misc/networkmanager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules
@@ -0,0 +1,7 @@
+// Let users in plugdev group modify NetworkManager
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" &&
+ subject.isInGroup("plugdev") && subject.active) {
+ return "yes";
+ }
+});
diff --git a/net-misc/networkmanager/files/10-openrc-status-r4 b/net-misc/networkmanager/files/10-openrc-status-r4
new file mode 100644
index 00000000000..e195ccc1968
--- /dev/null
+++ b/net-misc/networkmanager/files/10-openrc-status-r4
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Copyright (c) 2012 Alexandre Rostovtsev
+# Released under the 2-clause BSD license.
+
+# Ensures that the NetworkManager OpenRC service is marked as started and
+# providing net only when it has a successful connection.
+
+if [ ! -e "/run/openrc/softlevel" ]; then
+ # OpenRC is not running
+ exit 0
+fi
+
+# Ensure rc-service is in PATH
+PATH="${PATH}:@EPREFIX@/sbin:@EPREFIX@/usr/sbin"
+
+# Exit if the NetworkManager OpenRC service is not running
+rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inactive|stopping)" || exit 0
+
+# Call rc-service in background mode so that the start/stop functions update
+# NetworkManager service status to started or inactive instead of actually
+# starting or stopping the daemon
+export IN_BACKGROUND=YES
+
+case "$2" in
+ up) nm-online -t 0 -x &&
+ ! rc-service NetworkManager status 2>&1 | grep -q started &&
+ exec rc-service NetworkManager start ;;
+ down) nm-online -t 0 -x ||
+ rc-service NetworkManager status 2>&1 | grep -q stopped ||
+ exec rc-service NetworkManager stop ;;
+ pre-sleep) rc-service NetworkManager status 2>&1 | grep -q stopped ||
+ exec rc-service NetworkManager stop ;;
+esac
+exit 0
+# vim: set ts=4:
diff --git a/net-misc/networkmanager/files/conf.d.NetworkManager b/net-misc/networkmanager/files/conf.d.NetworkManager
new file mode 100644
index 00000000000..4a99229654f
--- /dev/null
+++ b/net-misc/networkmanager/files/conf.d.NetworkManager
@@ -0,0 +1,4 @@
+# If NetworkManager does not establish a connection within $INACTIVE_TIMEOUT
+# seconds after starting, the service will be marked as inactive, and it will
+# continue to wait for a connection in background mode.
+INACTIVE_TIMEOUT=1
diff --git a/net-misc/networkmanager/files/init.d.NetworkManager b/net-misc/networkmanager/files/init.d.NetworkManager
new file mode 100755
index 00000000000..bd828b78dfd
--- /dev/null
+++ b/net-misc/networkmanager/files/init.d.NetworkManager
@@ -0,0 +1,57 @@
+#!/sbin/runscript
+# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org>
+# Distributed under the terms of the GNU General Purpose License v2
+# $Id$
+
+description="NetworkManager daemon. The service is marked as started only \
+when a network connection is established."
+
+depend() {
+ need dbus
+ provide net
+}
+
+start() {
+ # If we are re-called by a dispatcher event, we want to mark the service
+ # as started without starting the daemon again
+ yesno "${IN_BACKGROUND}" && return 0
+
+ [ -z "${INACTIVE_TIMEOUT}" ] && INACTIVE_TIMEOUT="1"
+
+ ebegin "Starting NetworkManager"
+ start-stop-daemon --start --quiet --pidfile /run/NetworkManager/NetworkManager.pid \
+ --exec /usr/sbin/NetworkManager -- --pid-file /run/NetworkManager/NetworkManager.pid
+ local _retval=$?
+ eend "${_retval}"
+ if [ "x${_retval}" = 'x0' ] && ! nm-online -t "${INACTIVE_TIMEOUT}"; then
+ einfo "Marking NetworkManager as inactive. It will automatically be marked"
+ einfo "as started after a network connection has been established."
+ mark_service_inactive
+ fi
+ return "${_retval}"
+}
+
+stop() {
+ # If we are re-called by a dispatcher event, we want to mark the service
+ # as inactive without stopping the daemon
+ if yesno "${IN_BACKGROUND}"; then
+ mark_service_inactive "${SVCNAME}"
+ return 0
+ fi
+
+ ebegin "Stopping NetworkManager"
+ local pidfile=/run/NetworkManager/NetworkManager.pid
+ if [ ! -e "${pidfile}" ] && [ -e /var/run/NetworkManager.pid ]; then
+ # Try stopping the pid file used by <0.9.7
+ pidfile=/var/run/NetworkManager.pid
+ start-stop-daemon --stop --quiet --pidfile "${pidfile}"
+ ret=$?
+ [ ${ret} = 0 ] && [ -e "${pidfile}" ] && rm "${pidfile}"
+ eend ${ret}
+ else
+ start-stop-daemon --stop --quiet --pidfile "${pidfile}"
+ eend $?
+ fi
+}
+
+# vim: set ft=gentoo-init-d ts=4 :
diff --git a/net-misc/networkmanager/files/networkmanager-0.9.10.0-arpingpath.patch b/net-misc/networkmanager/files/networkmanager-0.9.10.0-arpingpath.patch
new file mode 100644
index 00000000000..f8e0d526001
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.9.10.0-arpingpath.patch
@@ -0,0 +1,16 @@
+Source: Timo Gurr <tgurr@exherbo.org>
+Upstream: Reported, https://bugzilla.gnome.org/show_bug.cgi?id=734131
+Reason: fix hardcoded path to arping
+
+diff -Naur NetworkManager-0.9.10.0.old/src/devices/nm-device.c NetworkManager-0.9.10.0/src/devices/nm-device.c
+--- NetworkManager-0.9.10.0.old/src/devices/nm-device.c 2014-07-04 02:44:19.000000000 +0200
++++ NetworkManager-0.9.10.0/src/devices/nm-device.c 2014-09-01 17:35:29.656282068 +0200
+@@ -4429,7 +4429,7 @@
+ static void
+ send_arps (NMDevice *self, const char *mode_arg)
+ {
+- const char *argv[] = { "/sbin/arping", mode_arg, "-q", "-I", nm_device_get_ip_iface (self), "-c", "1", NULL, NULL };
++ const char *argv[] = { "/bin/arping", mode_arg, "-q", "-I", nm_device_get_ip_iface (self), "-c", "1", NULL, NULL };
+ int ip_arg = G_N_ELEMENTS (argv) - 2;
+ NMConnection *connection;
+ NMSettingIP4Config *s_ip4;
diff --git a/net-misc/networkmanager/files/networkmanager-0.9.8.4-pre-sleep.patch b/net-misc/networkmanager/files/networkmanager-0.9.8.4-pre-sleep.patch
new file mode 100644
index 00000000000..6e6dfbe8ee2
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.9.8.4-pre-sleep.patch
@@ -0,0 +1,131 @@
+From ffb08fa288cea4c9ac8f18fd83e063b2e86ac51b Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sun, 27 Jan 2013 23:39:56 -0500
+Subject: [PATCH] Implement "pre-sleep" action dispatch
+
+Based on work by Christian Becke <christianbecke@gmail.com> in
+https://bugzilla.gnome.org/show_bug.cgi?id=387832
+---
+ callouts/nm-dispatcher-utils.c | 3 ++-
+ src/nm-dispatcher.c | 8 ++++++--
+ src/nm-dispatcher.h | 3 ++-
+ src/nm-manager.c | 28 +++++++++++++++++++++-------
+ 4 files changed, 31 insertions(+), 11 deletions(-)
+
+diff --git a/callouts/nm-dispatcher-utils.c b/callouts/nm-dispatcher-utils.c
+index 8824295..66cbc4b 100644
+--- a/callouts/nm-dispatcher-utils.c
++++ b/callouts/nm-dispatcher-utils.c
+@@ -409,7 +409,8 @@ nm_dispatcher_utils_construct_envp (const char *action,
+ g_return_val_if_fail (*out_iface == NULL, NULL);
+
+ /* Hostname changes don't require a device nor contain a connection */
+- if (!strcmp (action, "hostname"))
++ if (!strcmp (action, "hostname") ||
++ !strcmp (action, "pre-sleep"))
+ return g_new0 (char *, 1);
+
+ /* Canonicalize the VPN interface name; "" is used when passing it through
+diff --git a/src/nm-dispatcher.c b/src/nm-dispatcher.c
+index 12cd0f0..42d7e12 100644
+--- a/src/nm-dispatcher.c
++++ b/src/nm-dispatcher.c
+@@ -237,6 +237,8 @@ action_to_string (DispatcherAction action)
+ return "dhcp4-change";
+ case DISPATCHER_ACTION_DHCP6_CHANGE:
+ return "dhcp6-change";
++ case DISPATCHER_ACTION_PRE_SLEEP:
++ return "pre-sleep";
+ default:
+ break;
+ }
+@@ -269,7 +271,8 @@ _dispatcher_call (DispatcherAction action,
+ DispatchInfo *info;
+
+ /* All actions except 'hostname' require a device */
+- if (action != DISPATCHER_ACTION_HOSTNAME)
++ if (action != DISPATCHER_ACTION_HOSTNAME &&
++ action != DISPATCHER_ACTION_PRE_SLEEP)
+ g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
+ /* VPN actions require at least an IPv4 config (for now) */
+ if (action == DISPATCHER_ACTION_VPN_UP)
+@@ -308,7 +311,8 @@ _dispatcher_call (DispatcherAction action,
+ vpn_ip6_props = value_hash_create ();
+
+ /* hostname actions only send the hostname */
+- if (action != DISPATCHER_ACTION_HOSTNAME) {
++ if (action != DISPATCHER_ACTION_HOSTNAME &&
++ action != DISPATCHER_ACTION_PRE_SLEEP) {
+ fill_device_props (device,
+ device_props,
+ device_ip4_props,
+diff --git a/src/nm-dispatcher.h b/src/nm-dispatcher.h
+index 05a6c87..8e95834 100644
+--- a/src/nm-dispatcher.h
++++ b/src/nm-dispatcher.h
+@@ -39,7 +39,8 @@ typedef enum {
+ DISPATCHER_ACTION_VPN_PRE_DOWN,
+ DISPATCHER_ACTION_VPN_DOWN,
+ DISPATCHER_ACTION_DHCP4_CHANGE,
+- DISPATCHER_ACTION_DHCP6_CHANGE
++ DISPATCHER_ACTION_DHCP6_CHANGE,
++ DISPATCHER_ACTION_PRE_SLEEP = 999,
+ } DispatcherAction;
+
+ typedef void (*DispatcherFunc) (gconstpointer call, gpointer user_data);
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 811f49d..f52956d 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -73,6 +73,7 @@
+ #include "nm-sleep-monitor.h"
+ #include "nm-connectivity.h"
+ #include "nm-policy.h"
++#include "nm-dispatcher.h"
+
+
+ #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
+@@ -3350,6 +3351,23 @@ impl_manager_deactivate_connection (NMManager *self,
+ }
+
+ static void
++pre_sleep_dispatcher_done (gpointer call, gpointer user_data)
++{
++ NMManager *self = (NMManager *) user_data;
++ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
++ GSList *iter;
++
++ /* Just deactivate and down all devices from the device list,
++ * to keep things fast the device list will get resynced when
++ * the manager wakes up.
++ */
++ for (iter = priv->devices; iter; iter = iter->next)
++ nm_device_set_managed (NM_DEVICE (iter->data), FALSE, NM_DEVICE_STATE_REASON_SLEEPING);
++
++ nm_manager_update_state (self);
++}
++
++static void
+ do_sleep_wake (NMManager *self)
+ {
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
+@@ -3359,13 +3377,9 @@ do_sleep_wake (NMManager *self)
+ if (manager_sleeping (self)) {
+ nm_log_info (LOGD_SUSPEND, "sleeping or disabling...");
+
+- /* Just deactivate and down all devices from the device list,
+- * to keep things fast the device list will get resynced when
+- * the manager wakes up.
+- */
+- for (iter = priv->devices; iter; iter = iter->next)
+- nm_device_set_managed (NM_DEVICE (iter->data), FALSE, NM_DEVICE_STATE_REASON_SLEEPING);
+-
++ nm_dispatcher_call (DISPATCHER_ACTION_PRE_SLEEP, NULL, NULL,
++ pre_sleep_dispatcher_done, self);
++ return;
+ } else {
+ nm_log_info (LOGD_SUSPEND, "waking up and re-enabling...");
+
+--
+1.8.3.2
+
diff --git a/net-misc/networkmanager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch b/net-misc/networkmanager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch
new file mode 100644
index 00000000000..35e9c04aff4
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch
@@ -0,0 +1,47 @@
+From 4099c9242b091604466dda081dc5f6909354258b Mon Sep 17 00:00:00 2001
+From: M. Vefa Bicakci <m.v.b@runbox.com>
+Date: Sat, 24 May 2014 23:37:00 +0000
+Subject: core: fix crash during Wi-Fi rescan by emitting NM_DEVICE_AUTH_REQUEST signal correctly
+
+Fixes regression introduced by commit da59b6d2229b85afbb9e14846931376340dc6030.
+
+https://mail.gnome.org/archives/networkmanager-list/2014-May/msg00038.html
+
+Backport-of: d9653484859c426f707b4759bc9882f7a57c1152
+[thaller@redhat.com: original patch modified in nm-device-wifi.c to pass no
+ connection, as it is done on master]
+Signed-off-by: Thomas Haller <thaller@redhat.com>
+---
+diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
+index 8ca5278..052d68f 100644
+--- a/src/nm-device-wifi.c
++++ b/src/nm-device-wifi.c
+@@ -1563,6 +1563,7 @@ impl_device_request_scan (NMDeviceWifi *self,
+ g_signal_emit_by_name (device,
+ NM_DEVICE_AUTH_REQUEST,
+ context,
++ NULL,
+ NM_AUTH_PERMISSION_NETWORK_CONTROL,
+ TRUE,
+ request_scan_cb,
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 9037e64..96bf3b4 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -1874,10 +1874,10 @@ device_auth_request_cb (NMDevice *device,
+ }
+
+ /* Ensure the subject has permissions for this connection */
+- if (!nm_auth_uid_in_acl (connection,
+- priv->session_monitor,
+- sender_uid,
+- &error_desc)) {
++ if (connection != NULL && !nm_auth_uid_in_acl (connection,
++ priv->session_monitor,
++ sender_uid,
++ &error_desc)) {
+ error = g_error_new_literal (NM_MANAGER_ERROR,
+ NM_MANAGER_ERROR_PERMISSION_DENIED,
+ error_desc);
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/net-misc/networkmanager/files/networkmanager-1.0.0-find-helpers.patch b/net-misc/networkmanager/files/networkmanager-1.0.0-find-helpers.patch
new file mode 100644
index 00000000000..a84909c8253
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-1.0.0-find-helpers.patch
@@ -0,0 +1,23 @@
+From 6f643d2761650e53fd3b647526110a8473138b5d Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller@redhat.com>
+Date: Thu, 8 Jan 2015 11:55:50 +0100
+Subject: core: add /bin to the default search path
+
+https://bugzilla.gnome.org/show_bug.cgi?id=742576
+(cherry picked from commit abbca50ca9d552a28eca792f12ec618df6128fff)
+
+diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
+index 2c291cd..6747b65 100644
+--- a/src/NetworkManagerUtils.c
++++ b/src/NetworkManagerUtils.c
+@@ -814,6 +814,7 @@ const char *const NM_PATHS_DEFAULT[] = {
+ "/sbin/",
+ "/usr/sbin/",
+ "/usr/local/sbin/",
++ "/bin/",
+ "/usr/bin/",
+ "/usr/local/bin/",
+ NULL,
+--
+cgit v0.10.2
+
diff --git a/net-misc/networkmanager/files/networkmanager-1.0.0-lto-switch.patch b/net-misc/networkmanager/files/networkmanager-1.0.0-lto-switch.patch
new file mode 100644
index 00000000000..5d66c3393c7
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-1.0.0-lto-switch.patch
@@ -0,0 +1,36 @@
+From cda2802fe960737abb4623166ca4f75a63b5fe5a Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller@redhat.com>
+Date: Thu, 8 Jan 2015 12:01:32 +0100
+Subject: build: fix --enable-lto configure option to allow disabling option
+ explicitly
+
+When specifying '--enable-lto=anything' or '--disable-lto',
+the configure script would always set enable_lto=yes.
+
+The only way to disable lto, was *not* specifying the
+configure option.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=742575
+(cherry picked from commit 6eccfda0face594f86dea495d2ed2546b0d37e77)
+
+diff --git a/configure.ac b/configure.ac
+index b6bf38e..b407686 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -821,10 +821,11 @@ AM_CONDITIONAL(BUILD_NMTUI, test "$build_nmtui" = yes)
+
+ NM_COMPILER_WARNINGS
+
+-AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto], [Enable Link Time Optimization for smaller size (default: no)]),
+- [enable_lto=yes], [enable_lto=no])
++AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto], [Enable Link Time Optimization for smaller size (default: no)]))
+ if (test "${enable_lto}" = "yes"); then
+ CFLAGS="-flto $CFLAGS"
++else
++ enable_lto='no'
+ fi
+
+
+--
+cgit v0.10.2
+
diff --git a/net-misc/networkmanager/files/networkmanager-1.0.0-remove-bashisms.patch b/net-misc/networkmanager/files/networkmanager-1.0.0-remove-bashisms.patch
new file mode 100644
index 00000000000..366627f7eb1
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-1.0.0-remove-bashisms.patch
@@ -0,0 +1,44 @@
+From 4c3c9a38272112fe7a6a248ba521d55ac1b66892 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <remi@gentoo.org>
+Date: Sun, 25 Jan 2015 13:02:19 +0100
+Subject: [PATCH] build: use POSIX-compliant 'printf' instead of 'echo'
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes the following error when running ./configure with dash:
+
+ checking for QT... yes
+ checking for moc-qt4... no
+ checking for moc... moc
+ configure: error: --with-udev-dir must be an absolute path or 'yes' or
+ 'no'. Instead it is '/lib/udev'
+
+As per the Autoconf Manual's section on "Limitations of Shell Builtins":
+
+ The simple echo is probably the most surprising source of portability
+ troubles. It is not possible to use ‘echo’ portably unless both
+ options and escape sequences are omitted.
+
+https://www.gnu.org/software/automake/faq/autoconf.html#echo
+https://bugs.gentoo.org/536540
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b407686..5c87c7e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -302,7 +302,7 @@ AM_CONDITIONAL(WITH_QT, test "${enable_qt}" = "yes")
+
+ AC_ARG_WITH(udev-dir, AS_HELP_STRING([--with-udev-dir=DIR], [Absolute path of the udev base directory. Set to 'no' not to install the udev rules]), [], [with_udev_dir="yes"])
+ if (test "$with_udev_dir" != 'no'); then
+- if (test "$with_udev_dir" != 'yes' && echo -n "$with_udev_dir" | grep -v -q '^/'); then
++ if (test "$with_udev_dir" != 'yes' && printf '%s' "$with_udev_dir" | grep -v -q '^/'); then
+ AC_MSG_ERROR([--with-udev-dir must be an absolute path or 'yes' or 'no'. Instead it is '$with_udev_dir'])
+ fi
+ if (test "$with_udev_dir" = 'yes'); then
+--
+2.2.1
+
diff --git a/net-misc/networkmanager/files/networkmanager-1.0.2-configure-dhcpcd.patch b/net-misc/networkmanager/files/networkmanager-1.0.2-configure-dhcpcd.patch
new file mode 100644
index 00000000000..52325810f0b
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-1.0.2-configure-dhcpcd.patch
@@ -0,0 +1,31 @@
+From 6baca260d11b4c2f92e8765ff0f66786e507022a Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Tue, 26 May 2015 18:21:31 -0500
+Subject: Partially revert "dhcp: gracefully recover from failed DHCP BOUND
+ state transitions (bgo #743700)"
+
+This reverts commit 7daf63461de4195b1626ca15f835fc7cbc56e847.
+
+Turns out the removal of the second set of [] in configure.ac causes the command
+to be wrong in 'configure' and the test to be incorrect.
+
+diff --git a/configure.ac b/configure.ac
+index ba22057..d9a90c1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -668,10 +668,10 @@ fi
+ if test "$with_dhcpcd" = "yes"; then
+ AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
+ if test "$with_dhcpcd" != "no"; then
+- if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [456789]\."; then
++ if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[456789]]\."; then
+ AC_MSG_WARN([Cannot use dhcpcd, version 4.x or higher is required])
+ with_dhcpcd=no
+- elif $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [6789]\."; then
++ elif $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[6789]]\."; then
+ AC_DEFINE(DHCPCD_SUPPORTS_IPV6, 1, [Define if dhcpcd supports IPv6 (6.x+)])
+ fi
+ fi
+--
+cgit v0.10.2
+
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 00000000000..4d14ee7b804
--- /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
new file mode 100644
index 00000000000..ed6d30f3711
--- /dev/null
+++ b/net-misc/networkmanager/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+ <use>
+ <flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and
+ <pkg>net-firewall/iptables</pkg> for connection sharing</flag>
+ <flag name="consolekit">Use <pkg>sys-auth/consolekit</pkg> for session
+ tracking</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="modemmanager">Enable support for mobile broadband devices
+ using <pkg>net-misc/modemmanager</pkg></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="teamd">Enable Teamd control support</flag>
+ <flag name="wifi">Enable support for wifi and 802.1x security using
+ <pkg>net-wireless/wpa_supplicant</pkg></flag>
+ <flag name="wext">Enable support for the deprecated Wext (Wireless
+ Extensions) API; needed for some older drivers (e.g. ipw2200,
+ ndiswrapper)</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-misc/networkmanager/networkmanager-0.9.10.1_pre20141101.ebuild b/net-misc/networkmanager/networkmanager-0.9.10.1_pre20141101.ebuild
new file mode 100644
index 00000000000..df2a5a4b58d
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-0.9.10.1_pre20141101.ebuild
@@ -0,0 +1,302 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+
+# Tests need python2, https://bugzilla.gnome.org/show_bug.cgi?id=739448
+PYTHON_COMPAT=( python2_7 )
+
+inherit bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd user readme.gentoo toolchain-funcs vala versionator virtualx udev
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+SRC_URI="http://dev.gentoo.org/~pacho/gnome/${GNOME_ORG_MODULE}-${PV}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="amd64 arm ~ppc ~ppc64 x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+S="${WORKDIR}/${GNOME_ORG_MODULE}-0.9.10.1"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+#
+# iputils version needed due path changes (#523632). Upstream fixed
+# it with a major refactor committed to 'master' for handling different
+# paths for arping and other tools and, then, the version requirement
+# will be able to be dropped on next major NM version
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.32:2
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ >=net-misc/iputils-20121221-r1
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( =net-misc/dhcp-4*[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-183:0= )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+ || ( sys-power/upower sys-power/upower-pm-utils >=sys-apps/systemd-183 )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Find arping at proper place, bug #523632
+ epatch "${FILESDIR}/${PN}-0.9.10.0-arpingpath.patch"
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local myconf
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}"
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf="${myconf} "$(systemd_with_unitdir)""
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ --with-libsoup=yes \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable bluetooth bluez5-dun) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with ncurses nmtui) \
+ $(use_with resolvconf) \
+ $(use_with selinux) \
+ $(use_enable teamd teamdctl) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ --without-valgrind \
+ $(use_with wext) \
+ ${myconf}
+}
+
+src_test() {
+ python_setup
+ Xemake check
+}
+
+src_install() {
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+
+ readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-0.9.8.10-r1.ebuild b/net-misc/networkmanager/networkmanager-0.9.8.10-r1.ebuild
new file mode 100644
index 00000000000..ad313eaab0a
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-0.9.8.10-r1.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GNOME_ORG_MODULE="NetworkManager"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+
+inherit bash-completion-r1 gnome.org linux-info systemd user readme.gentoo toolchain-funcs vala virtualx udev eutils
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="http://projects.gnome.org/NetworkManager/"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+IUSE="avahi bluetooth connection-sharing consolekit dhclient +dhcpcd gnutls +introspection kernel_linux +nss +modemmanager +ppp resolvconf systemd test vala +wext +wifi" # wimax
+
+KEYWORDS="~alpha amd64 arm ~ia64 ppc ppc64 ~sparc x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.94
+ >=dev-libs/glib-2.30
+ >=dev-libs/libnl-3.2.7:3=
+ >=sys-auth/polkit-0.106
+ >=net-libs/libsoup-2.26:2.4=
+ virtual/libgudev:=
+ bluetooth? ( >=net-wireless/bluez-4.82 )
+ avahi? ( net-dns/avahi:=[autoipd] )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( =net-misc/dhcp-4*[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
+ ppp? ( >=net-dialup/ppp-2.4.5[ipv6] )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-183:0= )
+ || ( sys-power/upower sys-power/upower-pm-utils >=sys-apps/systemd-183 )
+"
+RDEPEND="${COMMON_DEPEND}
+ virtual/udev
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ dev-lang/python:2.7
+ dev-python/dbus-python[python_targets_python2_7]
+ dev-python/pygobject:2[python_targets_python2_7] )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Bug #402085, https://bugzilla.gnome.org/show_bug.cgi?id=387832
+ epatch "${FILESDIR}/${PN}-0.9.8.4-pre-sleep.patch"
+
+ # https://www.mail-archive.com/networkmanager-list@gnome.org/msg24038.html
+ epatch "${FILESDIR}/${PN}-0.9.8.9-fix-crash-on-wifi-rescan.patch"
+
+ # Use python2.7 shebangs for test scripts
+ sed -e 's@\(^#!.*python\)@\12.7@' \
+ -i */tests/*.py || die
+
+ # Fix completiondir, avoid eautoreconf, bug #465100
+ sed -i "s|^completiondir =.*|completiondir = $(get_bashcompdir)|" \
+ cli/completion/Makefile.in || die "sed completiondir failed"
+
+ ## Force use of /run, avoid eautoreconf
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+}
+
+src_configure() {
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # We are not ready for bluez5 yet
+ econf \
+ --enable-bluez4 \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ $(usex systemd '--disable-ifnet' '--enable-ifnet') \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-iptables=/sbin/iptables \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with resolvconf) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ $(use_with wext) \
+ "$(systemd_with_unitdir)"
+}
+
+src_test() {
+ # bug #????
+ cp libnm-util/tests/certs/test_ca_cert.pem src/settings/plugins/ifnet/tests/ || die
+ Xemake check
+}
+
+src_install() {
+ default
+
+ readme.gentoo_create_doc
+
+ # Gentoo init script
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ # Default conf.d file
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # Add keyfile plugin support
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ if ! use systemd; then
+ insinto /etc/NetworkManager
+ newins "${FILESDIR}/nm-system-settings.conf-ifnet" NetworkManager.conf
+ fi
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+
+ prune_libtool_files --modules
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ if use systemd; then
+ if [[ ${REPLACING_VERSIONS} < 0.9.8.6 ]]; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks."
+ fi
+
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep -q plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used when running under Systemd, you will need to stop setting"
+ ewarn "ifnet plugin there to allow NetworkManager to work."
+ fi
+ fi
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-1.0.0.ebuild b/net-misc/networkmanager/networkmanager-1.0.0.ebuild
new file mode 100644
index 00000000000..ec2d35afd30
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-1.0.0.ebuild
@@ -0,0 +1,305 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+
+# Tests need python2, https://bugzilla.gnome.org/show_bug.cgi?id=739448
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd \
+ user readme.gentoo toolchain-funcs vala versionator virtualx udev
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="~alpha amd64 arm ~arm64 ppc ppc64 ~sparc x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.32:2
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ net-misc/iputils
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( =net-misc/dhcp-4*[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-209:0= )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+ || ( sys-power/upower sys-power/upower-pm-utils >=sys-apps/systemd-209 )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gdbus-codegen
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Find arping in our paths, upstream bug #742576 (from 1.0 branch)
+ epatch "${FILESDIR}"/${PN}-1.0.0-find-helpers.patch
+
+ # Fix lto configure switch, upstream bug #742575 (from 1.0 branch)
+ epatch "${FILESDIR}"/${PN}-1.0.0-lto-switch.patch
+
+ # Fix build with /bin/sh != bash, see bug #536540, upstream bug #743480
+ epatch "${FILESDIR}/${PN}-1.0.0-remove-bashisms.patch"
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local myconf
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}"
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf="${myconf} "$(systemd_with_unitdir)""
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-lto \
+ --disable-config-plugin-ibft \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ --with-libsoup=yes \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable bluetooth bluez5-dun) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with ncurses nmtui) \
+ $(use_with resolvconf) \
+ $(use_with selinux) \
+ $(use_enable teamd teamdctl) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ --without-valgrind \
+ $(use_with wext) \
+ ${myconf}
+}
+
+src_test() {
+ python_setup
+ Xemake check
+}
+
+src_install() {
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+
+ readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+ rmdir -v "${ED}/var/run" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-1.0.2-r1.ebuild b/net-misc/networkmanager/networkmanager-1.0.2-r1.ebuild
new file mode 100644
index 00000000000..4d6eca62c02
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-1.0.2-r1.ebuild
@@ -0,0 +1,298 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd \
+ user readme.gentoo toolchain-funcs vala versionator virtualx udev
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="~alpha amd64 arm ~arm64 ~ppc ppc64 ~sparc x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.32:2
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ net-misc/iputils
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( >=net-misc/dhcp-4[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3:= )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-209:0= )
+ !systemd? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gdbus-codegen
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ # Partially revert commit that breaks dhcpcd detection, bug #549970
+ epatch "${FILESDIR}"/${PN}-1.0.2-configure-dhcpcd.patch
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local myconf
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}"
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf="${myconf} "$(systemd_with_unitdir)""
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-lto \
+ --disable-config-plugin-ibft \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ --with-libsoup=yes \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable bluetooth bluez5-dun) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with ncurses nmtui) \
+ $(use_with resolvconf) \
+ $(use_with selinux) \
+ $(use_enable teamd teamdctl) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ --without-valgrind \
+ $(use_with wext) \
+ ${myconf}
+}
+
+src_test() {
+ python_setup
+ Xemake check
+}
+
+src_install() {
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+
+ ! use systemd && readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+ rmdir -v "${ED}/var/run" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ ! use systemd && readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-1.0.2.ebuild b/net-misc/networkmanager/networkmanager-1.0.2.ebuild
new file mode 100644
index 00000000000..fae9c40fedc
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-1.0.2.ebuild
@@ -0,0 +1,292 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd \
+ user readme.gentoo toolchain-funcs vala versionator virtualx udev
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="~alpha amd64 arm ~arm64 ppc ppc64 ~sparc x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.32:2
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ net-misc/iputils
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( >=net-misc/dhcp-4[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3:= )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-209:0= )
+ !systemd? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gdbus-codegen
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local myconf
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}"
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf="${myconf} "$(systemd_with_unitdir)""
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-lto \
+ --disable-config-plugin-ibft \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ --with-libsoup=yes \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable bluetooth bluez5-dun) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with ncurses nmtui) \
+ $(use_with resolvconf) \
+ $(use_with selinux) \
+ $(use_enable teamd teamdctl) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ --without-valgrind \
+ $(use_with wext) \
+ ${myconf}
+}
+
+src_test() {
+ python_setup
+ Xemake check
+}
+
+src_install() {
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+
+ ! use systemd && readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+ rmdir -v "${ED}/var/run" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ ! use systemd && readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-1.0.4-r1.ebuild b/net-misc/networkmanager/networkmanager-1.0.4-r1.ebuild
new file mode 100644
index 00000000000..c36fad64d06
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-1.0.4-r1.ebuild
@@ -0,0 +1,342 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_USE_DEPEND="vapigen"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd \
+ user readme.gentoo toolchain-funcs vala versionator virtualx udev multilib-minimal
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ wext? ( wifi )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2[${MULTILIB_USEDEP}]
+ >=dev-libs/dbus-glib-0.100[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.37.6:2[${MULTILIB_USEDEP}]
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ net-misc/iputils
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=[${MULTILIB_USEDEP}]
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:=[${MULTILIB_USEDEP}] )
+ dhclient? ( >=net-misc/dhcp-4[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3:= )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-209:0= )
+ !systemd? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gdbus-codegen
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139, fixed in 'master'
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+multilib_src_configure() {
+ local myconf=()
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf+=( --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER} )
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf+=( "$(systemd_with_unitdir)" )
+
+ if multilib_is_native_abi; then
+ # work-around man out-of-source brokenness, must be done before configure
+ mkdir man || die
+ find "${S}"/man -name '*.?' -exec ln -s {} man/ ';' || die
+ else
+ # libnl, libndp are only used for executables, not libraries
+ myconf+=( LIB{NL,NDP}_{CFLAGS,LIBS}=' ' )
+ fi
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ ECONF_SOURCE=${S} \
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-lto \
+ --disable-config-plugin-ibft \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ $(multilib_native_with libsoup) \
+ $(multilib_native_enable concheck) \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(multilib_native_usex systemd systemd $(multilib_native_usex consolekit consolekit no)) \
+ --with-suspend-resume=$(multilib_native_usex systemd systemd upower) \
+ $(multilib_native_use_enable bluetooth bluez5-dun) \
+ $(multilib_native_use_enable introspection) \
+ $(multilib_native_use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(multilib_native_use_with modemmanager modem-manager-1) \
+ $(multilib_native_use_with ncurses nmtui) \
+ $(multilib_native_use_with resolvconf) \
+ $(multilib_native_use_with selinux) \
+ $(multilib_native_use_enable teamd teamdctl) \
+ $(multilib_native_use_enable test tests) \
+ $(multilib_native_use_enable vala) \
+ --without-valgrind \
+ $(multilib_native_use_with wext) \
+ $(multilib_native_use_enable wifi) \
+ "${myconf[@]}"
+
+ # work-around gtk-doc out-of-source brokedness
+ if multilib_is_native_abi; then
+ local d
+ for d in api libnm libnm-util libnm-glib; do
+ ln -s "${S}"/docs/${d}/html docs/${d}/html || die
+ done
+ fi
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake all-am
+ emake -C include
+ emake -C introspection # generated headers, needed for libnm
+ emake -C libnm-core
+ emake -C libnm
+ emake -C libnm-util
+ emake -C libnm-glib
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ python_setup
+ Xemake check
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+ else
+ emake DESTDIR="${D}" install-am
+ emake DESTDIR="${D}" install -C include
+ emake DESTDIR="${D}" install -C introspection
+ emake DESTDIR="${D}" install -C libnm-core
+ emake DESTDIR="${D}" install -C libnm
+ emake DESTDIR="${D}" install -C libnm-util
+ emake DESTDIR="${D}" install -C libnm-glib
+ fi
+}
+
+multilib_src_install_all() {
+ ! use systemd && readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+ rmdir -v "${ED}/var/run" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ ! use systemd && readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}
diff --git a/net-misc/networkmanager/networkmanager-1.0.4.ebuild b/net-misc/networkmanager/networkmanager-1.0.4.ebuild
new file mode 100644
index 00000000000..3e3557772dd
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-1.0.4.ebuild
@@ -0,0 +1,296 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME_ORG_MODULE="NetworkManager"
+GNOME2_LA_PUNT="yes"
+VALA_USE_DEPEND="vapigen"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools bash-completion-r1 eutils gnome2 linux-info multilib python-any-r1 systemd \
+ user readme.gentoo toolchain-funcs vala versionator virtualx udev
+
+DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
+HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager"
+
+LICENSE="GPL-2+"
+SLOT="0" # add subslot if libnm-util.so.2 or libnm-glib.so.4 bumps soname version
+
+IUSE="bluetooth connection-sharing consolekit +dhclient dhcpcd gnutls +introspection \
+kernel_linux +nss +modemmanager ncurses +ppp resolvconf selinux systemd teamd test \
+vala +wext +wifi zeroconf" # wimax
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+
+REQUIRED_USE="
+ modemmanager? ( ppp )
+ wext? ( wifi )
+ ^^ ( nss gnutls )
+ ^^ ( dhclient dhcpcd )
+"
+
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# TODO: Qt support?
+COMMON_DEPEND="
+ >=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.37.6:2
+ >=dev-libs/libnl-3.2.8:3=
+ >=sys-auth/polkit-0.106
+ net-libs/libndp
+ >=net-libs/libsoup-2.26:2.4=
+ net-misc/iputils
+ sys-libs/readline:0
+ >=virtual/libgudev-165:=
+ bluetooth? ( >=net-wireless/bluez-5 )
+ connection-sharing? (
+ net-dns/dnsmasq[dhcp]
+ net-firewall/iptables )
+ gnutls? (
+ dev-libs/libgcrypt:0=
+ net-libs/gnutls:= )
+ modemmanager? ( >=net-misc/modemmanager-0.7.991 )
+ ncurses? ( >=dev-libs/newt-0.52.15 )
+ nss? ( >=dev-libs/nss-3.11:= )
+ dhclient? ( >=net-misc/dhcp-4[client] )
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ introspection? ( >=dev-libs/gobject-introspection-0.10.3:= )
+ ppp? ( >=net-dialup/ppp-2.4.5:=[ipv6] net-dialup/rp-pppoe )
+ resolvconf? ( net-dns/openresolv )
+ systemd? ( >=sys-apps/systemd-209:0= )
+ !systemd? ( || ( sys-power/upower sys-power/upower-pm-utils ) )
+ teamd? ( >=net-misc/libteam-1.9 )
+ zeroconf? ( net-dns/avahi:=[autoipd] )
+"
+RDEPEND="${COMMON_DEPEND}
+ consolekit? ( sys-auth/consolekit )
+ wifi? ( >=net-wireless/wpa_supplicant-0.7.3-r3[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gdbus-codegen
+ dev-util/gtk-doc-am
+ >=dev-util/intltool-0.40
+ >=sys-devel/gettext-0.17
+ >=sys-kernel/linux-headers-2.6.29
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]')
+ )
+"
+
+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_pretend() {
+ 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
+}
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ DOC_CONTENTS="To modify system network connections without needing to enter the
+ root password, add your user account to the 'plugdev' group."
+
+ # Force use of /run, avoid eautoreconf, upstream bug #737139, fixed in 'master'
+ sed -e 's:$localstatedir/run/:/run/:' -i configure || die
+
+ use vala && vala_src_prepare
+
+ epatch_user # don't remove, users often want custom patches for NM
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local myconf
+
+ # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986
+ if use ppp; then
+ local PPPD_VER=`best_version net-dialup/ppp`
+ PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR}
+ PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision
+ myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}"
+ fi
+
+ # unit files directory needs to be passed only when systemd is enabled,
+ # otherwise systemd support is not disabled completely, bug #524534
+ use systemd && myconf="${myconf} "$(systemd_with_unitdir)""
+
+ # TODO: enable wimax when we have a libnl:3 compatible revision of it
+ # wimax will be removed, bug #522822
+ # ifnet plugin always disabled until someone volunteers to actively
+ # maintain and fix it
+ gnome2_src_configure \
+ --disable-more-warnings \
+ --disable-static \
+ --localstatedir=/var \
+ --disable-lto \
+ --disable-config-plugin-ibft \
+ --disable-ifnet \
+ --without-netconfig \
+ --with-dbus-sys-dir=/etc/dbus-1/system.d \
+ --with-udev-dir="$(get_udevdir)" \
+ --with-config-plugins-default=keyfile \
+ --with-iptables=/sbin/iptables \
+ --with-libsoup=yes \
+ --enable-concheck \
+ --with-crypto=$(usex nss nss gnutls) \
+ --with-session-tracking=$(usex systemd systemd $(usex consolekit consolekit no)) \
+ --with-suspend-resume=$(usex systemd systemd upower) \
+ $(use_enable bluetooth bluez5-dun) \
+ $(use_enable introspection) \
+ $(use_enable ppp) \
+ --disable-wimax \
+ $(use_with dhclient) \
+ $(use_with dhcpcd) \
+ $(use_with modemmanager modem-manager-1) \
+ $(use_with ncurses nmtui) \
+ $(use_with resolvconf) \
+ $(use_with selinux) \
+ $(use_enable teamd teamdctl) \
+ $(use_enable test tests) \
+ $(use_enable vala) \
+ --without-valgrind \
+ $(use_with wext) \
+ $(use_enable wifi) \
+ ${myconf}
+}
+
+src_test() {
+ python_setup
+ Xemake check
+}
+
+src_install() {
+ # Install completions at proper place, bug #465100
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+
+ ! use systemd && readme.gentoo_create_doc
+
+ newinitd "${FILESDIR}/init.d.NetworkManager" NetworkManager
+ newconfd "${FILESDIR}/conf.d.NetworkManager" NetworkManager
+
+ # /var/run/NetworkManager is used by some distros, but not by Gentoo
+ rmdir -v "${ED}/var/run/NetworkManager" || die "rmdir failed"
+ rmdir -v "${ED}/var/run" || die "rmdir failed"
+
+ # Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
+ keepdir /etc/NetworkManager/dispatcher.d
+
+ # Provide openrc net dependency only when nm is connected
+ exeinto /etc/NetworkManager/dispatcher.d
+ newexe "${FILESDIR}/10-openrc-status-r4" 10-openrc-status
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" \
+ -i "${ED}/etc/NetworkManager/dispatcher.d/10-openrc-status" || die
+
+ keepdir /etc/NetworkManager/system-connections
+ chmod 0600 "${ED}"/etc/NetworkManager/system-connections/.keep* # bug #383765
+
+ # Allow users in plugdev group to modify system connections
+ insinto /usr/share/polkit-1/rules.d/
+ doins "${FILESDIR}/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ ! use systemd && readme.gentoo_print_elog
+
+ if [[ -e "${EROOT}etc/NetworkManager/nm-system-settings.conf" ]]; then
+ ewarn "The ${PN} system configuration file has moved to a new location."
+ ewarn "You must migrate your settings from ${EROOT}/etc/NetworkManager/nm-system-settings.conf"
+ ewarn "to ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn
+ ewarn "After doing so, you can remove ${EROOT}etc/NetworkManager/nm-system-settings.conf"
+ fi
+
+ # The polkit rules file moved to /usr/share
+ old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 574d0cfa7e911b1f7792077003060240* )
+ # Automatically delete the old rules.d file if the user did not change it
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually"
+ ;;
+ * )
+ elog "The ${old_rules}"
+ elog "file moved to /usr/share/polkit-1/rules.d/ in >=networkmanager-0.9.4.0-r4"
+ elog "If you edited ${old_rules}"
+ elog "without changing its behavior, you may want to remove it."
+ ;;
+ esac
+ fi
+
+ # ifnet plugin was disabled for systemd users with 0.9.8.6 version
+ # and for all people with 0.9.10.0-r1 (see ChangeLog for full explanations)
+ if use systemd; then
+ if ! version_is_at_least 0.9.8.6 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin won't be used with systemd support enabled"
+ ewarn "as it is meant to be used with openRC and can cause collisions"
+ ewarn "(like bug #485658)."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ else
+ if ! version_is_at_least 0.9.10.0-r1 ${REPLACING_VERSIONS}; then
+ ewarn "Ifnet plugin is now disabled because of it being unattended"
+ ewarn "and unmaintained for a long time, leading to some unfixed bugs"
+ ewarn "and new problems appearing. We will now use upstream 'keyfile'"
+ ewarn "plugin."
+ ewarn "Because of this, you will likely need to reconfigure some of"
+ ewarn "your networks. To do this you can rely on Gnome control center,"
+ ewarn "nm-connection-editor or nmtui tools for example once updated"
+ ewarn "NetworkManager version is installed."
+ fi
+ fi
+
+ # NM fallbacks to plugin specified at compile time (upstream bug #738611)
+ # but still show a warning to remember people to have cleaner config file
+ if [[ -e "${EROOT}etc/NetworkManager/NetworkManager.conf" ]]; then
+ if grep plugins "${EROOT}etc/NetworkManager/NetworkManager.conf" | grep -q ifnet; then
+ ewarn
+ ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
+ ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."
+ ewarn
+ fi
+ fi
+
+ # NM shows lots of errors making nmcli neither unusable, bug #528748 upstream bug #690457
+ if grep -r "psk-flags=1" "${EROOT}"/etc/NetworkManager/; then
+ ewarn "You have psk-flags=1 setting in above files, you will need to"
+ ewarn "either reconfigure affected networks or, at least, set the flag"
+ ewarn "value to '0'."
+ fi
+}