diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/networkmanager | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
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')
21 files changed, 2556 insertions, 0 deletions
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest new file mode 100644 index 000000000000..96ae1db3c177 --- /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 000000000000..d00b268537e1 --- /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 000000000000..e195ccc19687 --- /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 000000000000..4a99229654fa --- /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 000000000000..bd828b78dfd2 --- /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 000000000000..f8e0d5260014 --- /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 000000000000..6e6dfbe8ee29 --- /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 000000000000..35e9c04aff4b --- /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 000000000000..a84909c8253e --- /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 000000000000..5d66c3393c71 --- /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 000000000000..366627f7eb18 --- /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 000000000000..52325810f0b2 --- /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 000000000000..4d14ee7b8041 --- /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 000000000000..ed6d30f37115 --- /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 000000000000..df2a5a4b58d3 --- /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 000000000000..ad313eaab0a8 --- /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 000000000000..ec2d35afd307 --- /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 000000000000..4d6eca62c023 --- /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 000000000000..fae9c40fedc2 --- /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 000000000000..c36fad64d061 --- /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 000000000000..3e3557772dd9 --- /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 +} |