[arch-commits] Commit in networkmanager/repos (12 files)

Jan Steffens heftig at archlinux.org
Sat Aug 23 12:57:43 UTC 2014


    Date: Saturday, August 23, 2014 @ 14:57:41
  Author: heftig
Revision: 220602

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  networkmanager/repos/testing-i686/
  networkmanager/repos/testing-i686/NetworkManager.conf
    (from rev 220601, networkmanager/trunk/NetworkManager.conf)
  networkmanager/repos/testing-i686/PKGBUILD
    (from rev 220601, networkmanager/trunk/PKGBUILD)
  networkmanager/repos/testing-i686/disable_set_hostname.patch
    (from rev 220601, networkmanager/trunk/disable_set_hostname.patch)
  networkmanager/repos/testing-i686/git-fixes.patch
    (from rev 220601, networkmanager/trunk/git-fixes.patch)
  networkmanager/repos/testing-i686/networkmanager.install
    (from rev 220601, networkmanager/trunk/networkmanager.install)
  networkmanager/repos/testing-x86_64/
  networkmanager/repos/testing-x86_64/NetworkManager.conf
    (from rev 220601, networkmanager/trunk/NetworkManager.conf)
  networkmanager/repos/testing-x86_64/PKGBUILD
    (from rev 220601, networkmanager/trunk/PKGBUILD)
  networkmanager/repos/testing-x86_64/disable_set_hostname.patch
    (from rev 220601, networkmanager/trunk/disable_set_hostname.patch)
  networkmanager/repos/testing-x86_64/git-fixes.patch
    (from rev 220601, networkmanager/trunk/git-fixes.patch)
  networkmanager/repos/testing-x86_64/networkmanager.install
    (from rev 220601, networkmanager/trunk/networkmanager.install)

-------------------------------------------+
 testing-i686/NetworkManager.conf          |   10 +
 testing-i686/PKGBUILD                     |  113 +++++++++++
 testing-i686/disable_set_hostname.patch   |   19 ++
 testing-i686/git-fixes.patch              |  265 ++++++++++++++++++++++++++++
 testing-i686/networkmanager.install       |    9 
 testing-x86_64/NetworkManager.conf        |   10 +
 testing-x86_64/PKGBUILD                   |  113 +++++++++++
 testing-x86_64/disable_set_hostname.patch |   19 ++
 testing-x86_64/git-fixes.patch            |  265 ++++++++++++++++++++++++++++
 testing-x86_64/networkmanager.install     |    9 
 10 files changed, 832 insertions(+)

Copied: networkmanager/repos/testing-i686/NetworkManager.conf (from rev 220601, networkmanager/trunk/NetworkManager.conf)
===================================================================
--- testing-i686/NetworkManager.conf	                        (rev 0)
+++ testing-i686/NetworkManager.conf	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,10 @@
+[main]
+plugins=keyfile
+
+## Set static hostname
+#[keyfile]
+#hostname=foobar
+
+## HTTP-based connectivity check
+#[connectivity]
+#uri=http://nmcheck.gnome.org/check_network_status.txt

Copied: networkmanager/repos/testing-i686/PKGBUILD (from rev 220601, networkmanager/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,113 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Maintainer: Jan de Groot <jgc at archlinxu.org>
+# Contributor: Wael Nasreddine <gandalf at siemens-mobiles.org>
+# Contributor: Tor Krill <tor at krill.nu>
+# Contributor: Will Rea <sillywilly at gmail.com>
+# Contributor: Valentine Sinitsyn <e_val at inbox.ru>
+
+pkgbase=networkmanager
+pkgname=(networkmanager libnm-glib)
+pkgver=0.9.10.0
+pkgrel=3
+pkgdesc="Network Management daemon"
+arch=(i686 x86_64)
+license=(GPL2 LGPL2.1)
+url="http://www.gnome.org/projects/NetworkManager/"
+_pppver=2.4.6
+makedepends=(intltool dhcpcd dhclient iptables gobject-introspection gtk-doc git "ppp=$_pppver"
+             modemmanager dbus-glib iproute2 libnl nss polkit wpa_supplicant dhcp-client libsoup
+             systemd libmm-glib rp-pppoe libnewt libndp libteam vala)
+checkdepends=(libx11 python-gobject python-dbus)
+#source=(git://anongit.freedesktop.org/NetworkManager/NetworkManager#commit=93c1041
+source=(http://ftp.gnome.org/pub/gnome/sources/NetworkManager/${pkgver:0:3}/NetworkManager-$pkgver.tar.xz
+        NetworkManager.conf disable_set_hostname.patch git-fixes.patch)
+sha256sums=('66a88346bb04d4f402540281181340313b2ec433e75aa9d9ea13f31697f9487e'
+            '759db295ddae7a6dc6b29211fc0ec08695f875584d456dd146d3679e2c33e2e3'
+            '25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460'
+            '854b5f06fed30cbab2d71544197d53a8aacdeee12ec78a7f48acb9ff31b40889')
+
+prepare() {
+  cd NetworkManager-$pkgver
+  patch -Np1 -i ../git-fixes.patch
+  patch -Np1 -i ../disable_set_hostname.patch
+  NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+  cd NetworkManager-$pkgver
+  ./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --localstatedir=/var \
+    --sbindir=/usr/bin \
+    --libexecdir=/usr/lib/networkmanager \
+    --with-crypto=nss \
+    --with-dhclient=/usr/bin/dhclient \
+    --with-dhcpcd=/usr/bin/dhcpcd \
+    --with-dnsmasq=/usr/bin/dnsmasq \
+    --with-iptables=/usr/bin/iptables \
+    --with-systemdsystemunitdir=/usr/lib/systemd/system \
+    --with-udev-dir=/usr/lib/udev \
+    --with-resolvconf=/usr/bin/resolvconf \
+    --with-pppd=/usr/bin/pppd \
+    --with-pppd-plugin-dir=/usr/lib/pppd/$_pppver \
+    --with-pppoe=/usr/bin/pppoe \
+    --with-kernel-firmware-dir=/usr/lib/firmware \
+    --with-session-tracking=systemd \
+    --with-modem-manager-1 \
+    --disable-static \
+    --enable-more-warnings=no \
+    --disable-wimax \
+    --enable-modify-system \
+    --enable-doc
+
+  make
+}
+
+check() {
+  cd NetworkManager-$pkgver
+  make -k check
+}
+
+package_networkmanager() {
+  depends=(libnm-glib iproute2 libnl polkit wpa_supplicant dhcp-client libsoup libmm-glib libnewt
+           libndp libteam)
+  optdepends=('dhclient: DHCPv6 support'
+              'dnsmasq: connection sharing'
+              'bluez: Bluetooth support'
+              'openresolv: resolvconf support'
+              'ppp: dialup connection support'
+              'rp-pppoe: ADSL support'
+              'modemmanager: cellular network support')
+  install=networkmanager.install
+  backup=('etc/NetworkManager/NetworkManager.conf')
+
+  cd NetworkManager-$pkgver
+  make DESTDIR="$pkgdir" install
+  make DESTDIR="$pkgdir" -C libnm-glib uninstall
+  make DESTDIR="$pkgdir" -C libnm-util uninstall
+  make DESTDIR="$pkgdir" -C vapi uninstall
+
+  # Some stuff to move is left over
+  mv "$pkgdir/usr/include" ..
+  mv "$pkgdir/usr/lib/pkgconfig" ..
+
+  install -m644 ../NetworkManager.conf "$pkgdir/etc/NetworkManager/"
+  install -m755 -d "$pkgdir/etc/NetworkManager/dnsmasq.d"
+
+  rm -r "$pkgdir/var/run"
+}
+
+package_libnm-glib() {
+  pkgdesc="NetworkManager library"
+  depends=(libsystemd nss dbus-glib libutil-linux)
+
+  install -d "$pkgdir/usr/lib"
+  mv include "$pkgdir/usr"
+  mv pkgconfig "$pkgdir/usr/lib"
+
+  cd NetworkManager-$pkgver
+  make DESTDIR="$pkgdir" -C libnm-util install
+  make DESTDIR="$pkgdir" -C libnm-glib install
+  make DESTDIR="$pkgdir" -C vapi install
+}

Copied: networkmanager/repos/testing-i686/disable_set_hostname.patch (from rev 220601, networkmanager/trunk/disable_set_hostname.patch)
===================================================================
--- testing-i686/disable_set_hostname.patch	                        (rev 0)
+++ testing-i686/disable_set_hostname.patch	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c
+--- NetworkManager-0.9.0.orig/src/nm-policy.c	2011-08-23 06:41:02.099686450 +0000
++++ NetworkManager-0.9.0/src/nm-policy.c	2011-08-23 06:43:38.227791737 +0000
+@@ -302,6 +302,7 @@
+ 		return;
+ 	}
+ 
++#if 0
+ 	/* Try automatically determined hostname from the best device's IP config */
+ 	if (!best4)
+ 		best4 = get_best_ip4_device (policy->manager, &best_req4);
+@@ -356,6 +357,7 @@
+ 		}
+ 	}
+ 
++#endif
+ 	/* If no automatically-configured hostname, try using the hostname from
+ 	 * when NM started up.
+ 	 */

Copied: networkmanager/repos/testing-i686/git-fixes.patch (from rev 220601, networkmanager/trunk/git-fixes.patch)
===================================================================
--- testing-i686/git-fixes.patch	                        (rev 0)
+++ testing-i686/git-fixes.patch	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,265 @@
+diff --git a/configure.ac b/configure.ac
+index 94b0758..e61657d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4,7 +4,7 @@ dnl The NM version number
+ m4_define([nm_major_version], [0])
+ m4_define([nm_minor_version], [9])
+ m4_define([nm_micro_version], [10])
+-m4_define([nm_nano_version],  [0])
++m4_define([nm_nano_version],  [1])
+ m4_define([nm_version],
+           [nm_major_version.nm_minor_version.nm_micro_version.nm_nano_version])
+ m4_define([nm_git_sha], [m4_esyscmd([ ( [ -d ./.git/ ] && [ "$(readlink -f ./.git/)" = "$(readlink -f "$(git rev-parse --git-dir 2>/dev/null)" 2>/dev/null)" ] && git rev-parse --verify -q HEAD 2>/dev/null ) || true ])])
+diff --git a/src/devices/nm-device-team.c b/src/devices/nm-device-team.c
+index f3b25e3..51778c1 100644
+--- a/src/devices/nm-device-team.c
++++ b/src/devices/nm-device-team.c
+@@ -51,7 +51,7 @@ G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE)
+ 
+ #define NM_DEVICE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TEAM, NMDeviceTeamPrivate))
+ 
+-#define NM_TEAM_ERROR (nm_team_error_quark ())
++#define NM_DEVICE_TEAM_ERROR (nm_device_team_error_quark ())
+ 
+ static gboolean teamd_start (NMDevice *dev, NMSettingTeam *s_team);
+ 
+@@ -75,7 +75,7 @@ enum {
+ /******************************************************************/
+ 
+ static GQuark
+-nm_team_error_quark (void)
++nm_device_team_error_quark (void)
+ {
+ 	static GQuark quark = 0;
+ 	if (!quark)
+@@ -890,5 +890,5 @@ nm_device_team_class_init (NMDeviceTeamClass *klass)
+ 	                                        G_TYPE_FROM_CLASS (klass),
+ 	                                        &dbus_glib_nm_device_team_object_info);
+ 
+-	dbus_g_error_domain_register (NM_TEAM_ERROR, NULL, NM_TYPE_TEAM_ERROR);
++	dbus_g_error_domain_register (NM_DEVICE_TEAM_ERROR, NULL, NM_TYPE_TEAM_ERROR);
+ }
+diff --git a/src/devices/nm-device-team.h b/src/devices/nm-device-team.h
+index fe1275c..32bc5fd 100644
+--- a/src/devices/nm-device-team.h
++++ b/src/devices/nm-device-team.h
+@@ -35,9 +35,9 @@ G_BEGIN_DECLS
+ #define NM_DEVICE_TEAM_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  NM_TYPE_DEVICE_TEAM, NMDeviceTeamClass))
+ 
+ typedef enum {
+-	NM_TEAM_ERROR_CONNECTION_NOT_TEAM = 0, /*< nick=ConnectionNotTeam >*/
+-	NM_TEAM_ERROR_CONNECTION_INVALID,      /*< nick=ConnectionInvalid >*/
+-	NM_TEAM_ERROR_CONNECTION_INCOMPATIBLE, /*< nick=ConnectionIncompatible >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_NOT_TEAM = 0, /*< nick=ConnectionNotTeam >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_INVALID,      /*< nick=ConnectionInvalid >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_INCOMPATIBLE, /*< nick=ConnectionIncompatible >*/
+ } NMTeamError;
+ 
+ #define NM_DEVICE_TEAM_SLAVES "slaves"
+diff --git a/src/dhcp-manager/nm-dhcp-dhclient-utils.c b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
+index 8527e6c..bc9de12 100644
+--- a/src/dhcp-manager/nm-dhcp-dhclient-utils.c
++++ b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
+@@ -225,7 +225,6 @@ nm_dhcp_dhclient_create_config (const char *interface,
+ 		add_also_request (alsoreq, "dhcp6.name-servers");
+ 		add_also_request (alsoreq, "dhcp6.domain-search");
+ 		add_also_request (alsoreq, "dhcp6.client-id");
+-		add_also_request (alsoreq, "dhcp6.server-id");
+ 	} else {
+ 		add_ip4_config (new_contents, dhcp_client_id, hostname);
+ 		add_also_request (alsoreq, "rfc3442-classless-static-routes");
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 09a1985..0cf78e3 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -1879,42 +1879,116 @@ factory_component_added_cb (NMDeviceFactory *factory,
+ #define PLUGIN_PATH_TAG "NMManager-plugin-path"
+ #define PLUGIN_TYPEFUNC_TAG "typefunc"
+ 
+-static void
+-load_device_factories (NMManager *self)
++struct read_device_factory_paths_data {
++	char *path;
++	struct stat st;
++};
++
++static gint
++read_device_factory_paths_sort_fcn (gconstpointer a, gconstpointer b)
++{
++	const struct read_device_factory_paths_data *da = a;
++	const struct read_device_factory_paths_data *db = b;
++	time_t ta, tb;
++
++	ta = MAX (da->st.st_mtime, da->st.st_ctime);
++	tb = MAX (db->st.st_mtime, db->st.st_ctime);
++
++	if (ta < tb)
++		return 1;
++	if (ta > tb)
++		return -1;
++	return 0;
++}
++
++static char**
++read_device_factory_paths ()
+ {
+-	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
+ 	GDir *dir;
+ 	GError *error = NULL;
+ 	const char *item;
+-	char *path;
+-	GSList *iter;
++	GArray *paths;
++	char **result;
++	guint i;
+ 
+ 	dir = g_dir_open (NMPLUGINDIR, 0, &error);
+ 	if (!dir) {
+-		nm_log_warn (LOGD_HW, "Failed to open plugin directory %s: %s",
++		nm_log_warn (LOGD_HW, "device plugin: failed to open directory %s: %s",
+ 		             NMPLUGINDIR,
+ 		             (error && error->message) ? error->message : "(unknown)");
+ 		g_clear_error (&error);
+-		return;
++		return NULL;
+ 	}
+ 
++	paths = g_array_new (FALSE, FALSE, sizeof (struct read_device_factory_paths_data));
++
+ 	while ((item = g_dir_read_name (dir))) {
+-		GModule *plugin;
+-		NMDeviceFactory *factory;
+-		NMDeviceFactoryCreateFunc create_func;
+-		NMDeviceFactoryDeviceTypeFunc type_func;
+-		NMDeviceType dev_type;
+-		const char *found = NULL;
++		struct read_device_factory_paths_data data;
+ 
+ 		if (!g_str_has_prefix (item, PLUGIN_PREFIX))
+ 			continue;
+ 		if (g_str_has_suffix (item, ".la"))
+ 			continue;
+ 
+-		path = g_module_build_path (NMPLUGINDIR, item);
+-		g_assert (path);
+-		plugin = g_module_open (path, G_MODULE_BIND_LOCAL);
+-		g_free (path);
++		data.path = g_build_filename (NMPLUGINDIR, item, NULL);
++
++		if (stat (data.path, &data.st) != 0)
++			goto continue_with_error;
++		if (!S_ISREG (data.st.st_mode))
++			goto continue_silently;
++		if (data.st.st_uid != 0)
++			goto continue_with_error;
++		if (data.st.st_mode & (S_IWGRP | S_IWOTH | S_ISUID))
++			goto continue_with_error;
++
++		g_array_append_val (paths, data);
++		continue;
++
++continue_with_error:
++		nm_log_dbg (LOGD_HW, "device plugin: skip invalid file %s", data.path);
++continue_silently:
++		g_free (data.path);
++	}
++	g_dir_close (dir);
++
++	/* sort filenames by modification time. */
++	g_array_sort (paths, read_device_factory_paths_sort_fcn);
++
++	result = g_new (char *, paths->len + 1);
++	for (i = 0; i < paths->len; i++)
++		result[i] = g_array_index (paths, struct read_device_factory_paths_data, i).path;
++	result[i] = NULL;
++
++	g_array_free (paths, TRUE);
++	return result;
++}
++
++static void
++load_device_factories (NMManager *self)
++{
++	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
++	char **path;
++	char **paths;
++
++	paths = read_device_factory_paths ();
++	if (!paths)
++		return;
++
++	for (path = paths; *path; path++) {
++		GError *error = NULL;
++		GModule *plugin;
++		NMDeviceFactory *factory;
++		NMDeviceFactoryCreateFunc create_func;
++		NMDeviceFactoryDeviceTypeFunc type_func;
++		NMDeviceType dev_type;
++		const char *found = NULL;
++		GSList *iter;
++		const char *item;
++
++		item = strrchr (*path, '/');
++		g_assert (item);
++
++		plugin = g_module_open (*path, G_MODULE_BIND_LOCAL);
+ 
+ 		if (!plugin) {
+ 			nm_log_warn (LOGD_HW, "(%s): failed to load plugin: %s", item, g_module_error ());
+@@ -1939,7 +2013,7 @@ load_device_factories (NMManager *self)
+ 			}
+ 		}
+ 		if (found) {
+-			nm_log_warn (LOGD_HW, "Found multiple device plugins for same type: %s vs %s",
++			nm_log_warn (LOGD_HW, "Found multiple device plugins for same type: use '%s' instead of '%s'",
+ 			             found, g_module_name (plugin));
+ 			g_module_close (plugin);
+ 			continue;
+@@ -1978,7 +2052,7 @@ load_device_factories (NMManager *self)
+ 
+ 		nm_log_info (LOGD_HW, "Loaded device plugin: %s", g_module_name (plugin));
+ 	};
+-	g_dir_close (dir);
++	g_strfreev (paths);
+ 
+ 	priv->factories = g_slist_reverse (priv->factories);
+ }
+diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
+index f73ff32..7b11a6b 100644
+--- a/src/platform/nm-linux-platform.c
++++ b/src/platform/nm-linux-platform.c
+@@ -1584,7 +1584,9 @@ announce_object (NMPlatform *platform, const struct nl_object *object, NMPlatfor
+ 			 */
+ 			switch (change_type) {
+ 			case NM_PLATFORM_SIGNAL_REMOVED:
+-				check_cache_items (platform, priv->route_cache, address.ifindex);
++				check_cache_items (platform,
++				                   priv->route_cache,
++				                   rtnl_addr_get_ifindex ((struct rtnl_addr *) object));
+ 				break;
+ 			default:
+ 				break;
+@@ -3500,7 +3502,8 @@ _route_match (struct rtnl_route *rtnlroute, int family, int ifindex)
+ 	    rtnl_route_get_table (rtnlroute) != RT_TABLE_MAIN ||
+ 	    rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL ||
+ 	    rtnl_route_get_family (rtnlroute) != family ||
+-	    rtnl_route_get_nnexthops (rtnlroute) != 1)
++	    rtnl_route_get_nnexthops (rtnlroute) != 1 ||
++	    rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED)
+ 		return FALSE;
+ 
+ 	nexthop = rtnl_route_nexthop_n (rtnlroute, 0);
+diff --git a/vapi/NMClient-1.0.metadata b/vapi/NMClient-1.0.metadata
+index 12f1469..2d894d8 100644
+--- a/vapi/NMClient-1.0.metadata
++++ b/vapi/NMClient-1.0.metadata
+@@ -1,6 +1,6 @@
+-RemoteSettings.new_async skip
++RemoteSettings.new_finish symbol_type="function"
+ RemoteConnection.updated#virtual_method skip
+-Client.new_async skip
++Client.new_finish symbol_type="function"
+ 
+ ACTIVE_CONNECTION_* cheader_filename="nm-active-connection.h" name="ACTIVE_CONNECTION_(.+)" parent="NM.ActiveConnection"
+ CLIENT_*            cheader_filename="nm-client.h"            name="CLIENT_(.+)"       parent="NM.Client"

Copied: networkmanager/repos/testing-i686/networkmanager.install (from rev 220601, networkmanager/trunk/networkmanager.install)
===================================================================
--- testing-i686/networkmanager.install	                        (rev 0)
+++ testing-i686/networkmanager.install	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,9 @@
+post_upgrade() {
+  (( $(vercmp 0.8.3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+  /etc/NetworkManager/nm-system-settings.conf has been replaced
+  by /etc/NetworkManager/NetworkManager.conf. Make sure you move
+  any custom settings to the new config file.
+MSG
+  true
+}

Copied: networkmanager/repos/testing-x86_64/NetworkManager.conf (from rev 220601, networkmanager/trunk/NetworkManager.conf)
===================================================================
--- testing-x86_64/NetworkManager.conf	                        (rev 0)
+++ testing-x86_64/NetworkManager.conf	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,10 @@
+[main]
+plugins=keyfile
+
+## Set static hostname
+#[keyfile]
+#hostname=foobar
+
+## HTTP-based connectivity check
+#[connectivity]
+#uri=http://nmcheck.gnome.org/check_network_status.txt

Copied: networkmanager/repos/testing-x86_64/PKGBUILD (from rev 220601, networkmanager/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,113 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Maintainer: Jan de Groot <jgc at archlinxu.org>
+# Contributor: Wael Nasreddine <gandalf at siemens-mobiles.org>
+# Contributor: Tor Krill <tor at krill.nu>
+# Contributor: Will Rea <sillywilly at gmail.com>
+# Contributor: Valentine Sinitsyn <e_val at inbox.ru>
+
+pkgbase=networkmanager
+pkgname=(networkmanager libnm-glib)
+pkgver=0.9.10.0
+pkgrel=3
+pkgdesc="Network Management daemon"
+arch=(i686 x86_64)
+license=(GPL2 LGPL2.1)
+url="http://www.gnome.org/projects/NetworkManager/"
+_pppver=2.4.6
+makedepends=(intltool dhcpcd dhclient iptables gobject-introspection gtk-doc git "ppp=$_pppver"
+             modemmanager dbus-glib iproute2 libnl nss polkit wpa_supplicant dhcp-client libsoup
+             systemd libmm-glib rp-pppoe libnewt libndp libteam vala)
+checkdepends=(libx11 python-gobject python-dbus)
+#source=(git://anongit.freedesktop.org/NetworkManager/NetworkManager#commit=93c1041
+source=(http://ftp.gnome.org/pub/gnome/sources/NetworkManager/${pkgver:0:3}/NetworkManager-$pkgver.tar.xz
+        NetworkManager.conf disable_set_hostname.patch git-fixes.patch)
+sha256sums=('66a88346bb04d4f402540281181340313b2ec433e75aa9d9ea13f31697f9487e'
+            '759db295ddae7a6dc6b29211fc0ec08695f875584d456dd146d3679e2c33e2e3'
+            '25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460'
+            '854b5f06fed30cbab2d71544197d53a8aacdeee12ec78a7f48acb9ff31b40889')
+
+prepare() {
+  cd NetworkManager-$pkgver
+  patch -Np1 -i ../git-fixes.patch
+  patch -Np1 -i ../disable_set_hostname.patch
+  NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+  cd NetworkManager-$pkgver
+  ./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --localstatedir=/var \
+    --sbindir=/usr/bin \
+    --libexecdir=/usr/lib/networkmanager \
+    --with-crypto=nss \
+    --with-dhclient=/usr/bin/dhclient \
+    --with-dhcpcd=/usr/bin/dhcpcd \
+    --with-dnsmasq=/usr/bin/dnsmasq \
+    --with-iptables=/usr/bin/iptables \
+    --with-systemdsystemunitdir=/usr/lib/systemd/system \
+    --with-udev-dir=/usr/lib/udev \
+    --with-resolvconf=/usr/bin/resolvconf \
+    --with-pppd=/usr/bin/pppd \
+    --with-pppd-plugin-dir=/usr/lib/pppd/$_pppver \
+    --with-pppoe=/usr/bin/pppoe \
+    --with-kernel-firmware-dir=/usr/lib/firmware \
+    --with-session-tracking=systemd \
+    --with-modem-manager-1 \
+    --disable-static \
+    --enable-more-warnings=no \
+    --disable-wimax \
+    --enable-modify-system \
+    --enable-doc
+
+  make
+}
+
+check() {
+  cd NetworkManager-$pkgver
+  make -k check
+}
+
+package_networkmanager() {
+  depends=(libnm-glib iproute2 libnl polkit wpa_supplicant dhcp-client libsoup libmm-glib libnewt
+           libndp libteam)
+  optdepends=('dhclient: DHCPv6 support'
+              'dnsmasq: connection sharing'
+              'bluez: Bluetooth support'
+              'openresolv: resolvconf support'
+              'ppp: dialup connection support'
+              'rp-pppoe: ADSL support'
+              'modemmanager: cellular network support')
+  install=networkmanager.install
+  backup=('etc/NetworkManager/NetworkManager.conf')
+
+  cd NetworkManager-$pkgver
+  make DESTDIR="$pkgdir" install
+  make DESTDIR="$pkgdir" -C libnm-glib uninstall
+  make DESTDIR="$pkgdir" -C libnm-util uninstall
+  make DESTDIR="$pkgdir" -C vapi uninstall
+
+  # Some stuff to move is left over
+  mv "$pkgdir/usr/include" ..
+  mv "$pkgdir/usr/lib/pkgconfig" ..
+
+  install -m644 ../NetworkManager.conf "$pkgdir/etc/NetworkManager/"
+  install -m755 -d "$pkgdir/etc/NetworkManager/dnsmasq.d"
+
+  rm -r "$pkgdir/var/run"
+}
+
+package_libnm-glib() {
+  pkgdesc="NetworkManager library"
+  depends=(libsystemd nss dbus-glib libutil-linux)
+
+  install -d "$pkgdir/usr/lib"
+  mv include "$pkgdir/usr"
+  mv pkgconfig "$pkgdir/usr/lib"
+
+  cd NetworkManager-$pkgver
+  make DESTDIR="$pkgdir" -C libnm-util install
+  make DESTDIR="$pkgdir" -C libnm-glib install
+  make DESTDIR="$pkgdir" -C vapi install
+}

Copied: networkmanager/repos/testing-x86_64/disable_set_hostname.patch (from rev 220601, networkmanager/trunk/disable_set_hostname.patch)
===================================================================
--- testing-x86_64/disable_set_hostname.patch	                        (rev 0)
+++ testing-x86_64/disable_set_hostname.patch	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c
+--- NetworkManager-0.9.0.orig/src/nm-policy.c	2011-08-23 06:41:02.099686450 +0000
++++ NetworkManager-0.9.0/src/nm-policy.c	2011-08-23 06:43:38.227791737 +0000
+@@ -302,6 +302,7 @@
+ 		return;
+ 	}
+ 
++#if 0
+ 	/* Try automatically determined hostname from the best device's IP config */
+ 	if (!best4)
+ 		best4 = get_best_ip4_device (policy->manager, &best_req4);
+@@ -356,6 +357,7 @@
+ 		}
+ 	}
+ 
++#endif
+ 	/* If no automatically-configured hostname, try using the hostname from
+ 	 * when NM started up.
+ 	 */

Copied: networkmanager/repos/testing-x86_64/git-fixes.patch (from rev 220601, networkmanager/trunk/git-fixes.patch)
===================================================================
--- testing-x86_64/git-fixes.patch	                        (rev 0)
+++ testing-x86_64/git-fixes.patch	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,265 @@
+diff --git a/configure.ac b/configure.ac
+index 94b0758..e61657d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4,7 +4,7 @@ dnl The NM version number
+ m4_define([nm_major_version], [0])
+ m4_define([nm_minor_version], [9])
+ m4_define([nm_micro_version], [10])
+-m4_define([nm_nano_version],  [0])
++m4_define([nm_nano_version],  [1])
+ m4_define([nm_version],
+           [nm_major_version.nm_minor_version.nm_micro_version.nm_nano_version])
+ m4_define([nm_git_sha], [m4_esyscmd([ ( [ -d ./.git/ ] && [ "$(readlink -f ./.git/)" = "$(readlink -f "$(git rev-parse --git-dir 2>/dev/null)" 2>/dev/null)" ] && git rev-parse --verify -q HEAD 2>/dev/null ) || true ])])
+diff --git a/src/devices/nm-device-team.c b/src/devices/nm-device-team.c
+index f3b25e3..51778c1 100644
+--- a/src/devices/nm-device-team.c
++++ b/src/devices/nm-device-team.c
+@@ -51,7 +51,7 @@ G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE)
+ 
+ #define NM_DEVICE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TEAM, NMDeviceTeamPrivate))
+ 
+-#define NM_TEAM_ERROR (nm_team_error_quark ())
++#define NM_DEVICE_TEAM_ERROR (nm_device_team_error_quark ())
+ 
+ static gboolean teamd_start (NMDevice *dev, NMSettingTeam *s_team);
+ 
+@@ -75,7 +75,7 @@ enum {
+ /******************************************************************/
+ 
+ static GQuark
+-nm_team_error_quark (void)
++nm_device_team_error_quark (void)
+ {
+ 	static GQuark quark = 0;
+ 	if (!quark)
+@@ -890,5 +890,5 @@ nm_device_team_class_init (NMDeviceTeamClass *klass)
+ 	                                        G_TYPE_FROM_CLASS (klass),
+ 	                                        &dbus_glib_nm_device_team_object_info);
+ 
+-	dbus_g_error_domain_register (NM_TEAM_ERROR, NULL, NM_TYPE_TEAM_ERROR);
++	dbus_g_error_domain_register (NM_DEVICE_TEAM_ERROR, NULL, NM_TYPE_TEAM_ERROR);
+ }
+diff --git a/src/devices/nm-device-team.h b/src/devices/nm-device-team.h
+index fe1275c..32bc5fd 100644
+--- a/src/devices/nm-device-team.h
++++ b/src/devices/nm-device-team.h
+@@ -35,9 +35,9 @@ G_BEGIN_DECLS
+ #define NM_DEVICE_TEAM_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  NM_TYPE_DEVICE_TEAM, NMDeviceTeamClass))
+ 
+ typedef enum {
+-	NM_TEAM_ERROR_CONNECTION_NOT_TEAM = 0, /*< nick=ConnectionNotTeam >*/
+-	NM_TEAM_ERROR_CONNECTION_INVALID,      /*< nick=ConnectionInvalid >*/
+-	NM_TEAM_ERROR_CONNECTION_INCOMPATIBLE, /*< nick=ConnectionIncompatible >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_NOT_TEAM = 0, /*< nick=ConnectionNotTeam >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_INVALID,      /*< nick=ConnectionInvalid >*/
++	NM_DEVICE_TEAM_ERROR_CONNECTION_INCOMPATIBLE, /*< nick=ConnectionIncompatible >*/
+ } NMTeamError;
+ 
+ #define NM_DEVICE_TEAM_SLAVES "slaves"
+diff --git a/src/dhcp-manager/nm-dhcp-dhclient-utils.c b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
+index 8527e6c..bc9de12 100644
+--- a/src/dhcp-manager/nm-dhcp-dhclient-utils.c
++++ b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
+@@ -225,7 +225,6 @@ nm_dhcp_dhclient_create_config (const char *interface,
+ 		add_also_request (alsoreq, "dhcp6.name-servers");
+ 		add_also_request (alsoreq, "dhcp6.domain-search");
+ 		add_also_request (alsoreq, "dhcp6.client-id");
+-		add_also_request (alsoreq, "dhcp6.server-id");
+ 	} else {
+ 		add_ip4_config (new_contents, dhcp_client_id, hostname);
+ 		add_also_request (alsoreq, "rfc3442-classless-static-routes");
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 09a1985..0cf78e3 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -1879,42 +1879,116 @@ factory_component_added_cb (NMDeviceFactory *factory,
+ #define PLUGIN_PATH_TAG "NMManager-plugin-path"
+ #define PLUGIN_TYPEFUNC_TAG "typefunc"
+ 
+-static void
+-load_device_factories (NMManager *self)
++struct read_device_factory_paths_data {
++	char *path;
++	struct stat st;
++};
++
++static gint
++read_device_factory_paths_sort_fcn (gconstpointer a, gconstpointer b)
++{
++	const struct read_device_factory_paths_data *da = a;
++	const struct read_device_factory_paths_data *db = b;
++	time_t ta, tb;
++
++	ta = MAX (da->st.st_mtime, da->st.st_ctime);
++	tb = MAX (db->st.st_mtime, db->st.st_ctime);
++
++	if (ta < tb)
++		return 1;
++	if (ta > tb)
++		return -1;
++	return 0;
++}
++
++static char**
++read_device_factory_paths ()
+ {
+-	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
+ 	GDir *dir;
+ 	GError *error = NULL;
+ 	const char *item;
+-	char *path;
+-	GSList *iter;
++	GArray *paths;
++	char **result;
++	guint i;
+ 
+ 	dir = g_dir_open (NMPLUGINDIR, 0, &error);
+ 	if (!dir) {
+-		nm_log_warn (LOGD_HW, "Failed to open plugin directory %s: %s",
++		nm_log_warn (LOGD_HW, "device plugin: failed to open directory %s: %s",
+ 		             NMPLUGINDIR,
+ 		             (error && error->message) ? error->message : "(unknown)");
+ 		g_clear_error (&error);
+-		return;
++		return NULL;
+ 	}
+ 
++	paths = g_array_new (FALSE, FALSE, sizeof (struct read_device_factory_paths_data));
++
+ 	while ((item = g_dir_read_name (dir))) {
+-		GModule *plugin;
+-		NMDeviceFactory *factory;
+-		NMDeviceFactoryCreateFunc create_func;
+-		NMDeviceFactoryDeviceTypeFunc type_func;
+-		NMDeviceType dev_type;
+-		const char *found = NULL;
++		struct read_device_factory_paths_data data;
+ 
+ 		if (!g_str_has_prefix (item, PLUGIN_PREFIX))
+ 			continue;
+ 		if (g_str_has_suffix (item, ".la"))
+ 			continue;
+ 
+-		path = g_module_build_path (NMPLUGINDIR, item);
+-		g_assert (path);
+-		plugin = g_module_open (path, G_MODULE_BIND_LOCAL);
+-		g_free (path);
++		data.path = g_build_filename (NMPLUGINDIR, item, NULL);
++
++		if (stat (data.path, &data.st) != 0)
++			goto continue_with_error;
++		if (!S_ISREG (data.st.st_mode))
++			goto continue_silently;
++		if (data.st.st_uid != 0)
++			goto continue_with_error;
++		if (data.st.st_mode & (S_IWGRP | S_IWOTH | S_ISUID))
++			goto continue_with_error;
++
++		g_array_append_val (paths, data);
++		continue;
++
++continue_with_error:
++		nm_log_dbg (LOGD_HW, "device plugin: skip invalid file %s", data.path);
++continue_silently:
++		g_free (data.path);
++	}
++	g_dir_close (dir);
++
++	/* sort filenames by modification time. */
++	g_array_sort (paths, read_device_factory_paths_sort_fcn);
++
++	result = g_new (char *, paths->len + 1);
++	for (i = 0; i < paths->len; i++)
++		result[i] = g_array_index (paths, struct read_device_factory_paths_data, i).path;
++	result[i] = NULL;
++
++	g_array_free (paths, TRUE);
++	return result;
++}
++
++static void
++load_device_factories (NMManager *self)
++{
++	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
++	char **path;
++	char **paths;
++
++	paths = read_device_factory_paths ();
++	if (!paths)
++		return;
++
++	for (path = paths; *path; path++) {
++		GError *error = NULL;
++		GModule *plugin;
++		NMDeviceFactory *factory;
++		NMDeviceFactoryCreateFunc create_func;
++		NMDeviceFactoryDeviceTypeFunc type_func;
++		NMDeviceType dev_type;
++		const char *found = NULL;
++		GSList *iter;
++		const char *item;
++
++		item = strrchr (*path, '/');
++		g_assert (item);
++
++		plugin = g_module_open (*path, G_MODULE_BIND_LOCAL);
+ 
+ 		if (!plugin) {
+ 			nm_log_warn (LOGD_HW, "(%s): failed to load plugin: %s", item, g_module_error ());
+@@ -1939,7 +2013,7 @@ load_device_factories (NMManager *self)
+ 			}
+ 		}
+ 		if (found) {
+-			nm_log_warn (LOGD_HW, "Found multiple device plugins for same type: %s vs %s",
++			nm_log_warn (LOGD_HW, "Found multiple device plugins for same type: use '%s' instead of '%s'",
+ 			             found, g_module_name (plugin));
+ 			g_module_close (plugin);
+ 			continue;
+@@ -1978,7 +2052,7 @@ load_device_factories (NMManager *self)
+ 
+ 		nm_log_info (LOGD_HW, "Loaded device plugin: %s", g_module_name (plugin));
+ 	};
+-	g_dir_close (dir);
++	g_strfreev (paths);
+ 
+ 	priv->factories = g_slist_reverse (priv->factories);
+ }
+diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
+index f73ff32..7b11a6b 100644
+--- a/src/platform/nm-linux-platform.c
++++ b/src/platform/nm-linux-platform.c
+@@ -1584,7 +1584,9 @@ announce_object (NMPlatform *platform, const struct nl_object *object, NMPlatfor
+ 			 */
+ 			switch (change_type) {
+ 			case NM_PLATFORM_SIGNAL_REMOVED:
+-				check_cache_items (platform, priv->route_cache, address.ifindex);
++				check_cache_items (platform,
++				                   priv->route_cache,
++				                   rtnl_addr_get_ifindex ((struct rtnl_addr *) object));
+ 				break;
+ 			default:
+ 				break;
+@@ -3500,7 +3502,8 @@ _route_match (struct rtnl_route *rtnlroute, int family, int ifindex)
+ 	    rtnl_route_get_table (rtnlroute) != RT_TABLE_MAIN ||
+ 	    rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL ||
+ 	    rtnl_route_get_family (rtnlroute) != family ||
+-	    rtnl_route_get_nnexthops (rtnlroute) != 1)
++	    rtnl_route_get_nnexthops (rtnlroute) != 1 ||
++	    rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED)
+ 		return FALSE;
+ 
+ 	nexthop = rtnl_route_nexthop_n (rtnlroute, 0);
+diff --git a/vapi/NMClient-1.0.metadata b/vapi/NMClient-1.0.metadata
+index 12f1469..2d894d8 100644
+--- a/vapi/NMClient-1.0.metadata
++++ b/vapi/NMClient-1.0.metadata
+@@ -1,6 +1,6 @@
+-RemoteSettings.new_async skip
++RemoteSettings.new_finish symbol_type="function"
+ RemoteConnection.updated#virtual_method skip
+-Client.new_async skip
++Client.new_finish symbol_type="function"
+ 
+ ACTIVE_CONNECTION_* cheader_filename="nm-active-connection.h" name="ACTIVE_CONNECTION_(.+)" parent="NM.ActiveConnection"
+ CLIENT_*            cheader_filename="nm-client.h"            name="CLIENT_(.+)"       parent="NM.Client"

Copied: networkmanager/repos/testing-x86_64/networkmanager.install (from rev 220601, networkmanager/trunk/networkmanager.install)
===================================================================
--- testing-x86_64/networkmanager.install	                        (rev 0)
+++ testing-x86_64/networkmanager.install	2014-08-23 12:57:41 UTC (rev 220602)
@@ -0,0 +1,9 @@
+post_upgrade() {
+  (( $(vercmp 0.8.3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+  /etc/NetworkManager/nm-system-settings.conf has been replaced
+  by /etc/NetworkManager/NetworkManager.conf. Make sure you move
+  any custom settings to the new config file.
+MSG
+  true
+}




More information about the arch-commits mailing list