Update to 0.9.7.997 (0.9.8-beta2)
This commit is contained in:
parent
ca0bea6c3e
commit
3bbea25ab4
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
%define glib2_version 2.24.0
|
%define glib2_version 2.24.0
|
||||||
%define wireless_tools_version 1:28-0pre9
|
%define wireless_tools_version 1:28-0pre9
|
||||||
%define libnl3_version 3.2.6
|
%define libnl3_version 3.2.7
|
||||||
%define ppp_version 2.4.5
|
%define ppp_version 2.4.5
|
||||||
|
|
||||||
%define snapshot .git20121211
|
%define snapshot %{nil}
|
||||||
%define realversion 0.9.7.0
|
%define realversion 0.9.7.997
|
||||||
|
|
||||||
%if 0%{?fedora} && 0%{?fedora} < 17
|
%if 0%{?fedora} && 0%{?fedora} < 17
|
||||||
%define systemd_dir /lib/systemd/system
|
%define systemd_dir /lib/systemd/system
|
||||||
@ -18,8 +18,8 @@
|
|||||||
Name: NetworkManager
|
Name: NetworkManager
|
||||||
Summary: Network connection manager and user applications
|
Summary: Network connection manager and user applications
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 0.9.7.0
|
Version: 0.9.7.997
|
||||||
Release: 13%{snapshot}%{?dist}
|
Release: 2%{snapshot}%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.gnome.org/projects/NetworkManager/
|
URL: http://www.gnome.org/projects/NetworkManager/
|
||||||
@ -28,7 +28,6 @@ Source: %{name}-%{realversion}%{snapshot}.tar.bz2
|
|||||||
Source1: NetworkManager.conf
|
Source1: NetworkManager.conf
|
||||||
Patch1: explain-dns1-dns2.patch
|
Patch1: explain-dns1-dns2.patch
|
||||||
Patch2: nss-error.patch
|
Patch2: nss-error.patch
|
||||||
Patch3: rh876218-killmode.patch
|
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
@ -67,7 +66,6 @@ BuildRequires: gobject-introspection-devel >= 0.10.3
|
|||||||
BuildRequires: gettext-devel
|
BuildRequires: gettext-devel
|
||||||
BuildRequires: /usr/bin/autopoint
|
BuildRequires: /usr/bin/autopoint
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: iptables
|
|
||||||
BuildRequires: wpa_supplicant
|
BuildRequires: wpa_supplicant
|
||||||
BuildRequires: libnl3-devel >= %{libnl3_version}
|
BuildRequires: libnl3-devel >= %{libnl3_version}
|
||||||
BuildRequires: perl(XML::Parser)
|
BuildRequires: perl(XML::Parser)
|
||||||
@ -155,7 +153,6 @@ NetworkManager functionality from applications that use glib.
|
|||||||
|
|
||||||
%patch1 -p1 -b .explain-dns1-dns2
|
%patch1 -p1 -b .explain-dns1-dns2
|
||||||
%patch2 -p1 -b .nss-error
|
%patch2 -p1 -b .nss-error
|
||||||
%patch3 -p1 -b .killmode
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -167,17 +164,19 @@ autopoint --force
|
|||||||
intltoolize --force
|
intltoolize --force
|
||||||
%configure \
|
%configure \
|
||||||
--disable-static \
|
--disable-static \
|
||||||
--with-distro=redhat \
|
|
||||||
--with-dhclient=yes \
|
--with-dhclient=yes \
|
||||||
--with-dhcpcd=no \
|
--with-dhcpcd=no \
|
||||||
--with-crypto=nss \
|
--with-crypto=nss \
|
||||||
--enable-more-warnings=yes \
|
--enable-more-warnings=yes \
|
||||||
|
--enable-ppp=yes \
|
||||||
|
--enable-vala=yes \
|
||||||
%ifnarch s390 s390x
|
%ifnarch s390 s390x
|
||||||
--enable-wimax=yes \
|
--enable-wimax=yes \
|
||||||
%endif
|
%endif
|
||||||
--enable-polkit=yes \
|
--enable-polkit=yes \
|
||||||
--enable-modify-system=yes \
|
--enable-modify-system=yes \
|
||||||
--with-session-tracking=systemd \
|
--with-session-tracking=systemd \
|
||||||
|
--with-suspend-resume=systemd \
|
||||||
--with-docs=yes \
|
--with-docs=yes \
|
||||||
--with-system-ca-path=/etc/pki/tls/certs \
|
--with-system-ca-path=/etc/pki/tls/certs \
|
||||||
--with-tests=yes \
|
--with-tests=yes \
|
||||||
@ -212,6 +211,7 @@ make install DESTDIR=$RPM_BUILD_ROOT
|
|||||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/pppd/%{ppp_version}/*.la
|
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/pppd/%{ppp_version}/*.la
|
||||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/NetworkManager/*.la
|
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/NetworkManager/*.la
|
||||||
|
%{__rm} -f $RPM_BUILD_ROOT%{_datadir}/NetworkManager/gdb-cmd
|
||||||
|
|
||||||
install -m 0755 test/.libs/nm-online %{buildroot}/%{_bindir}
|
install -m 0755 test/.libs/nm-online %{buildroot}/%{_bindir}
|
||||||
|
|
||||||
@ -295,10 +295,8 @@ exit 0
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
%{_mandir}/man5/*
|
%{_mandir}/man5/*
|
||||||
%{_mandir}/man8/*
|
%{_mandir}/man8/*
|
||||||
|
%{_mandir}/manx/*
|
||||||
%dir %{_localstatedir}/lib/NetworkManager
|
%dir %{_localstatedir}/lib/NetworkManager
|
||||||
%{_prefix}/libexec/nm-crash-logger
|
|
||||||
%dir %{_datadir}/NetworkManager
|
|
||||||
%{_datadir}/NetworkManager/gdb-cmd
|
|
||||||
%dir %{_sysconfdir}/NetworkManager/system-connections
|
%dir %{_sysconfdir}/NetworkManager/system-connections
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service
|
||||||
%{_libdir}/pppd/%{ppp_version}/nm-pppd-plugin.so
|
%{_libdir}/pppd/%{ppp_version}/nm-pppd-plugin.so
|
||||||
@ -359,19 +357,21 @@ exit 0
|
|||||||
%{_datadir}/gtk-doc/html/libnm-util/*
|
%{_datadir}/gtk-doc/html/libnm-util/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun Jan 20 2013 Kalev Lember <kalevlember@gmail.com> - 0.9.7.0-13.git20121211
|
* Sat Feb 9 2013 Dan Williams <dcbw@redhat.com> - 0.9.7.997-2
|
||||||
- Rebuilt for libnl3
|
- core: use systemd for suspend/resume, not upower
|
||||||
|
|
||||||
* Mon Jan 14 2013 Dan Winship <danw@redhat.com> - 0.9.7.0-12.git20121211
|
* Fri Feb 8 2013 Dan Williams <dcbw@redhat.com> - 0.9.7.997-1
|
||||||
|
- Update to 0.9.8-beta2
|
||||||
|
- core: ignore bridges managed by other tools (rh #905035)
|
||||||
|
- core: fix libnl assert (rh #894653)
|
||||||
|
- wifi: always use Proactive Key Caching with WPA Enterprise (rh #834444)
|
||||||
|
- core: don't crash when Internet connection sharing fails to start (rh #883142)
|
||||||
|
|
||||||
|
* Fri Jan 4 2013 Dan Winship <danw@redhat.com> - 0.9.7.0-12.git20121004
|
||||||
- Set correct systemd KillMode to fix anaconda shutdown hangs (rh #876218)
|
- Set correct systemd KillMode to fix anaconda shutdown hangs (rh #876218)
|
||||||
|
|
||||||
* Tue Dec 11 2012 Jiří Klimeš <jklimes@redhat.com> - 0.9.7.0-11.git20121211
|
* Tue Dec 18 2012 Jiří Klimeš <jklimes@redhat.com> - 0.9.7.0-11.git20121004
|
||||||
- Update to git snapshot
|
- ifcfg-rh: write missing IPv6 setting as IPv6 with "auto" method (rh #830434)
|
||||||
- core: add support for bridge interfaces
|
|
||||||
- keyfile: improve IP addresses handling
|
|
||||||
- modem-manager: integrate the new `ModemManager1' interface support
|
|
||||||
- build: build system enhancements
|
|
||||||
- a lot of fixes
|
|
||||||
|
|
||||||
* Wed Dec 5 2012 Dan Winship <danw@redhat.com> - 0.9.7.0-10.git20121004
|
* Wed Dec 5 2012 Dan Winship <danw@redhat.com> - 0.9.7.0-10.git20121004
|
||||||
- Build vapi files and add them to the devel package
|
- Build vapi files and add them to the devel package
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
From ba48be3a344b64dfb808cb6f3e545829d9884bee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dan Winship <danw@gnome.org>
|
|
||||||
Date: Fri, 5 Oct 2012 16:41:02 -0400
|
|
||||||
Subject: [PATCH 1/2] core: fix NMDevice::state-changed emission of ACTIVATED
|
|
||||||
(bgo #685581)
|
|
||||||
|
|
||||||
NMPolicy was calling nm_device_state_changed() from inside its
|
|
||||||
NMDevice::state-changed handler, which caused the D-Bus signal to get
|
|
||||||
lost. Use nm_device_queue_state() instead.
|
|
||||||
---
|
|
||||||
src/nm-policy.c | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/nm-policy.c b/src/nm-policy.c
|
|
||||||
index 92f771d..6722fb6 100644
|
|
||||||
--- a/src/nm-policy.c
|
|
||||||
+++ b/src/nm-policy.c
|
|
||||||
@@ -1453,11 +1453,11 @@ device_state_changed (NMDevice *device,
|
|
||||||
|
|
||||||
/* Activate secondary (VPN) connections */
|
|
||||||
if (!activate_secondary_connections (policy, connection, device))
|
|
||||||
- nm_device_state_changed (device, NM_DEVICE_STATE_FAILED,
|
|
||||||
- NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED);
|
|
||||||
+ nm_device_queue_state (device, NM_DEVICE_STATE_FAILED,
|
|
||||||
+ NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED);
|
|
||||||
} else
|
|
||||||
- nm_device_state_changed (device, NM_DEVICE_STATE_ACTIVATED,
|
|
||||||
- NM_DEVICE_STATE_REASON_NONE);
|
|
||||||
+ nm_device_queue_state (device, NM_DEVICE_STATE_ACTIVATED,
|
|
||||||
+ NM_DEVICE_STATE_REASON_NONE);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
--
|
|
||||||
1.7.11.4
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From b95b6c8aa1b2e2d6a662e93843e50b50d5a9c6c6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
|
||||||
Date: Thu, 11 Oct 2012 14:56:37 +0200
|
|
||||||
Subject: [PATCH] core: fix a crash due to GValueArray/GArray freeing mismatch
|
|
||||||
(rh #865009)
|
|
||||||
|
|
||||||
---
|
|
||||||
src/nm-dispatcher.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/nm-dispatcher.c b/src/nm-dispatcher.c
|
|
||||||
index 0f17ed9..61dfd7c 100644
|
|
||||||
--- a/src/nm-dispatcher.c
|
|
||||||
+++ b/src/nm-dispatcher.c
|
|
||||||
@@ -200,7 +200,7 @@ dispatcher_done_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data)
|
|
||||||
} else
|
|
||||||
nm_log_dbg (LOGD_CORE, "Dispatcher result element %d invalid type", i);
|
|
||||||
|
|
||||||
- g_array_unref ((GArray *) item);
|
|
||||||
+ g_value_array_free (item);
|
|
||||||
}
|
|
||||||
g_ptr_array_free (results, TRUE);
|
|
||||||
} else {
|
|
||||||
--
|
|
||||||
1.7.12.1
|
|
||||||
|
|
@ -1,246 +0,0 @@
|
|||||||
From a7eb3476557dae28880333544c797705ee2f5b5a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dan Winship <danw@gnome.org>
|
|
||||||
Date: Tue, 19 Jun 2012 10:07:17 -0400
|
|
||||||
Subject: [PATCH] ifcfg-rh: /etc/hostname should override
|
|
||||||
/etc/sysconfig/network
|
|
||||||
|
|
||||||
When determining the system hostname, /etc/hostname should override
|
|
||||||
/etc/sysconfig/network, so monitor both files.
|
|
||||||
|
|
||||||
When setting the hostname, set it in /etc/hostname, and delete the
|
|
||||||
/etc/sysconfig/network HOSTNAME entry if present.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=831735
|
|
||||||
---
|
|
||||||
src/settings/plugins/ifcfg-rh/plugin.c | 130 ++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 96 insertions(+), 34 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c
|
|
||||||
index 04d5463..50cbdf0 100644
|
|
||||||
--- a/src/settings/plugins/ifcfg-rh/plugin.c
|
|
||||||
+++ b/src/settings/plugins/ifcfg-rh/plugin.c
|
|
||||||
@@ -80,10 +80,12 @@ typedef struct {
|
|
||||||
|
|
||||||
gulong ih_event_id;
|
|
||||||
int sc_network_wd;
|
|
||||||
+ GFileMonitor *hostname_monitor;
|
|
||||||
+ guint hostname_monitor_id;
|
|
||||||
char *hostname;
|
|
||||||
|
|
||||||
- GFileMonitor *monitor;
|
|
||||||
- guint monitor_id;
|
|
||||||
+ GFileMonitor *ifcfg_monitor;
|
|
||||||
+ guint ifcfg_monitor_id;
|
|
||||||
|
|
||||||
DBusGConnection *bus;
|
|
||||||
} SCPluginIfcfgPrivate;
|
|
||||||
@@ -325,11 +327,11 @@ connection_new_or_changed (SCPluginIfcfg *self,
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-dir_changed (GFileMonitor *monitor,
|
|
||||||
- GFile *file,
|
|
||||||
- GFile *other_file,
|
|
||||||
- GFileMonitorEvent event_type,
|
|
||||||
- gpointer user_data)
|
|
||||||
+ifcfg_dir_changed (GFileMonitor *monitor,
|
|
||||||
+ GFile *file,
|
|
||||||
+ GFile *other_file,
|
|
||||||
+ GFileMonitorEvent event_type,
|
|
||||||
+ gpointer user_data)
|
|
||||||
{
|
|
||||||
SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data);
|
|
||||||
SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin);
|
|
||||||
@@ -379,8 +381,9 @@ setup_ifcfg_monitoring (SCPluginIfcfg *plugin)
|
|
||||||
g_object_unref (file);
|
|
||||||
|
|
||||||
if (monitor) {
|
|
||||||
- priv->monitor_id = g_signal_connect (monitor, "changed", G_CALLBACK (dir_changed), plugin);
|
|
||||||
- priv->monitor = monitor;
|
|
||||||
+ priv->ifcfg_monitor_id = g_signal_connect (monitor, "changed",
|
|
||||||
+ G_CALLBACK (ifcfg_dir_changed), plugin);
|
|
||||||
+ priv->ifcfg_monitor = monitor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -463,7 +466,8 @@ add_connection (NMSystemConfigInterface *config,
|
|
||||||
return (NMSettingsConnection *) added;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#define SC_NETWORK_FILE SYSCONFDIR"/sysconfig/network"
|
|
||||||
+#define SC_NETWORK_FILE "/etc/sysconfig/network"
|
|
||||||
+#define HOSTNAME_FILE "/etc/hostname"
|
|
||||||
|
|
||||||
static char *
|
|
||||||
plugin_get_hostname (SCPluginIfcfg *plugin)
|
|
||||||
@@ -472,6 +476,11 @@ plugin_get_hostname (SCPluginIfcfg *plugin)
|
|
||||||
char *hostname;
|
|
||||||
gboolean ignore_localhost;
|
|
||||||
|
|
||||||
+ if (g_file_get_contents (HOSTNAME_FILE, &hostname, NULL, NULL)) {
|
|
||||||
+ g_strchomp (hostname);
|
|
||||||
+ return hostname;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
network = svNewFile (SC_NETWORK_FILE);
|
|
||||||
if (!network) {
|
|
||||||
PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not get hostname: failed to read " SC_NETWORK_FILE);
|
|
||||||
@@ -500,34 +509,31 @@ plugin_set_hostname (SCPluginIfcfg *plugin, const char *hostname)
|
|
||||||
SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin);
|
|
||||||
shvarFile *network;
|
|
||||||
|
|
||||||
- network = svCreateFile (SC_NETWORK_FILE);
|
|
||||||
- if (!network) {
|
|
||||||
- PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not save hostname: failed to create/open " SC_NETWORK_FILE);
|
|
||||||
+ if (!g_file_set_contents (HOSTNAME_FILE, hostname, -1, NULL)) {
|
|
||||||
+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, "Could not save hostname: failed to create/open " HOSTNAME_FILE);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- svSetValue (network, "HOSTNAME", hostname, FALSE);
|
|
||||||
- svWriteFile (network, 0644);
|
|
||||||
- svCloseFile (network);
|
|
||||||
-
|
|
||||||
g_free (priv->hostname);
|
|
||||||
priv->hostname = g_strdup (hostname);
|
|
||||||
+
|
|
||||||
+ /* Remove "HOSTNAME" from SC_NETWORK_FILE, if present */
|
|
||||||
+ network = svNewFile (SC_NETWORK_FILE);
|
|
||||||
+ if (network) {
|
|
||||||
+ svSetValue (network, "HOSTNAME", NULL, FALSE);
|
|
||||||
+ svWriteFile (network, 0644);
|
|
||||||
+ svCloseFile (network);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-sc_network_changed_cb (NMInotifyHelper *ih,
|
|
||||||
- struct inotify_event *evt,
|
|
||||||
- const char *path,
|
|
||||||
- gpointer user_data)
|
|
||||||
+hostname_maybe_changed (SCPluginIfcfg *plugin)
|
|
||||||
{
|
|
||||||
- SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data);
|
|
||||||
SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin);
|
|
||||||
char *new_hostname;
|
|
||||||
|
|
||||||
- if (evt->wd != priv->sc_network_wd)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
new_hostname = plugin_get_hostname (plugin);
|
|
||||||
if ( (new_hostname && !priv->hostname)
|
|
||||||
|| (!new_hostname && priv->hostname)
|
|
||||||
@@ -539,6 +545,33 @@ sc_network_changed_cb (NMInotifyHelper *ih,
|
|
||||||
g_free (new_hostname);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+sc_network_changed_cb (NMInotifyHelper *ih,
|
|
||||||
+ struct inotify_event *evt,
|
|
||||||
+ const char *path,
|
|
||||||
+ gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data);
|
|
||||||
+ SCPluginIfcfgPrivate *priv = SC_PLUGIN_IFCFG_GET_PRIVATE (plugin);
|
|
||||||
+
|
|
||||||
+ if (evt->wd != priv->sc_network_wd)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ hostname_maybe_changed (plugin);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+hostname_changed_cb (GFileMonitor *monitor,
|
|
||||||
+ GFile *file,
|
|
||||||
+ GFile *other_file,
|
|
||||||
+ GFileMonitorEvent event_type,
|
|
||||||
+ gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ SCPluginIfcfg *plugin = SC_PLUGIN_IFCFG (user_data);
|
|
||||||
+
|
|
||||||
+ hostname_maybe_changed (plugin);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
impl_ifcfgrh_get_ifcfg_details (SCPluginIfcfg *plugin,
|
|
||||||
const char *in_ifcfg,
|
|
||||||
@@ -614,11 +647,29 @@ sc_plugin_ifcfg_init (SCPluginIfcfg *plugin)
|
|
||||||
NMInotifyHelper *ih;
|
|
||||||
GError *error = NULL;
|
|
||||||
gboolean success = FALSE;
|
|
||||||
+ GFile *file;
|
|
||||||
+ GFileMonitor *monitor;
|
|
||||||
+
|
|
||||||
+ /* We watch SC_NETWORK_FILE via NMInotifyHelper (which doesn't track file creation but
|
|
||||||
+ * *does* track modifications made via other hard links), since we expect it to always
|
|
||||||
+ * exist. But we watch HOSTNAME_FILE via GFileMonitor (which has the opposite
|
|
||||||
+ * semantics), since /etc/hostname might not exist, but is unlikely to have hard
|
|
||||||
+ * links. bgo 532815 is the bug for being able to just use GFileMonitor for both.
|
|
||||||
+ */
|
|
||||||
|
|
||||||
ih = nm_inotify_helper_get ();
|
|
||||||
priv->ih_event_id = g_signal_connect (ih, "event", G_CALLBACK (sc_network_changed_cb), plugin);
|
|
||||||
priv->sc_network_wd = nm_inotify_helper_add_watch (ih, SC_NETWORK_FILE);
|
|
||||||
|
|
||||||
+ file = g_file_new_for_path (HOSTNAME_FILE);
|
|
||||||
+ monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL);
|
|
||||||
+ g_object_unref (file);
|
|
||||||
+ if (monitor) {
|
|
||||||
+ priv->hostname_monitor_id =
|
|
||||||
+ g_signal_connect (monitor, "changed", G_CALLBACK (hostname_changed_cb), plugin);
|
|
||||||
+ priv->hostname_monitor = monitor;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
priv->hostname = plugin_get_hostname (plugin);
|
|
||||||
|
|
||||||
priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
|
|
||||||
@@ -674,24 +725,35 @@ dispose (GObject *object)
|
|
||||||
priv->bus = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
- ih = nm_inotify_helper_get ();
|
|
||||||
+ if (priv->ih_event_id) {
|
|
||||||
+ ih = nm_inotify_helper_get ();
|
|
||||||
+
|
|
||||||
+ g_signal_handler_disconnect (ih, priv->ih_event_id);
|
|
||||||
+ priv->ih_event_id = 0;
|
|
||||||
|
|
||||||
- g_signal_handler_disconnect (ih, priv->ih_event_id);
|
|
||||||
+ if (priv->sc_network_wd >= 0)
|
|
||||||
+ nm_inotify_helper_remove_watch (ih, priv->sc_network_wd);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (priv->hostname_monitor) {
|
|
||||||
+ if (priv->hostname_monitor_id)
|
|
||||||
+ g_signal_handler_disconnect (priv->hostname_monitor, priv->hostname_monitor_id);
|
|
||||||
|
|
||||||
- if (priv->sc_network_wd >= 0)
|
|
||||||
- nm_inotify_helper_remove_watch (ih, priv->sc_network_wd);
|
|
||||||
+ g_file_monitor_cancel (priv->hostname_monitor);
|
|
||||||
+ g_object_unref (priv->hostname_monitor);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
g_free (priv->hostname);
|
|
||||||
|
|
||||||
if (priv->connections)
|
|
||||||
g_hash_table_destroy (priv->connections);
|
|
||||||
|
|
||||||
- if (priv->monitor) {
|
|
||||||
- if (priv->monitor_id)
|
|
||||||
- g_signal_handler_disconnect (priv->monitor, priv->monitor_id);
|
|
||||||
+ if (priv->ifcfg_monitor) {
|
|
||||||
+ if (priv->ifcfg_monitor_id)
|
|
||||||
+ g_signal_handler_disconnect (priv->ifcfg_monitor, priv->ifcfg_monitor_id);
|
|
||||||
|
|
||||||
- g_file_monitor_cancel (priv->monitor);
|
|
||||||
- g_object_unref (priv->monitor);
|
|
||||||
+ g_file_monitor_cancel (priv->ifcfg_monitor);
|
|
||||||
+ g_object_unref (priv->ifcfg_monitor);
|
|
||||||
}
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (sc_plugin_ifcfg_parent_class)->dispose (object);
|
|
||||||
--
|
|
||||||
1.8.0
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
From 48d9bc40fb85afc8044b16400adbca7c8ff71a80 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
|
|
||||||
Date: Wed, 14 Nov 2012 14:48:07 +0100
|
|
||||||
Subject: [PATCH 1/2] policy: fix setting system hostname (rh #875085)
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Broken by commit 500315329765831d242d51d6a46f1e05869c15d2
|
|
||||||
(core: move DNS change handling to the policy and optimize DNS updates (bgo #676778))
|
|
||||||
It consolidated DNS update handling, but mistakenly removed hostname changing
|
|
||||||
from NM_DEVICE_STATE_ACTIVATED state handler.
|
|
||||||
|
|
||||||
Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
|
|
||||||
---
|
|
||||||
src/nm-policy.c | 14 ++++----------
|
|
||||||
1 file changed, 4 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/nm-policy.c b/src/nm-policy.c
|
|
||||||
index c847586..ca7e0dc 100644
|
|
||||||
--- a/src/nm-policy.c
|
|
||||||
+++ b/src/nm-policy.c
|
|
||||||
@@ -1430,22 +1430,16 @@ device_state_changed (NMDevice *device,
|
|
||||||
nm_dns_manager_begin_updates (dns_mgr, __func__);
|
|
||||||
|
|
||||||
ip4_config = nm_device_get_ip4_config (device);
|
|
||||||
- if (ip4_config) {
|
|
||||||
+ if (ip4_config)
|
|
||||||
nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, ip4_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT);
|
|
||||||
- update_ip4_dns (policy, dns_mgr);
|
|
||||||
- }
|
|
||||||
ip6_config = nm_device_get_ip6_config (device);
|
|
||||||
- if (ip6_config) {
|
|
||||||
+ if (ip6_config)
|
|
||||||
nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, ip6_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT);
|
|
||||||
- update_ip6_dns (policy, dns_mgr);
|
|
||||||
- }
|
|
||||||
+
|
|
||||||
+ update_routing_and_dns (policy, FALSE);
|
|
||||||
|
|
||||||
nm_dns_manager_end_updates (dns_mgr, __func__);
|
|
||||||
g_object_unref (dns_mgr);
|
|
||||||
-
|
|
||||||
- /* And make sure the best devices have the default route */
|
|
||||||
- update_ip4_routing (policy, FALSE);
|
|
||||||
- update_ip6_routing (policy, FALSE);
|
|
||||||
break;
|
|
||||||
case NM_DEVICE_STATE_UNMANAGED:
|
|
||||||
case NM_DEVICE_STATE_UNAVAILABLE:
|
|
||||||
--
|
|
||||||
1.7.11.7
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From 1d89bc0004ec27fbc0c89f17861118c78d7eeab5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dan Winship <danw@gnome.org>
|
|
||||||
Date: Fri, 4 Jan 2013 11:53:03 -0500
|
|
||||||
Subject: [PATCH] systemd: set KillMode=process
|
|
||||||
|
|
||||||
By default, when shutting NM down, systemd will kill everything in its
|
|
||||||
cgroup. But this can cause problems (eg, NM thinking that dhclient
|
|
||||||
crashed and then taking down an interface that it would otherwise have
|
|
||||||
left up). Fix this by setting KillMode=process, which tells systemd to
|
|
||||||
only kill NM itself, and let NM kill its children.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=876218
|
|
||||||
---
|
|
||||||
data/NetworkManager.service.in | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
|
|
||||||
index 9a5f125..16b53b6 100644
|
|
||||||
--- a/data/NetworkManager.service.in
|
|
||||||
+++ b/data/NetworkManager.service.in
|
|
||||||
@@ -12,6 +12,8 @@ ExecStart=@sbindir@/NetworkManager --no-daemon
|
|
||||||
# with LOG_PERROR when run in foreground. But systemd redirects stderr to
|
|
||||||
# syslog by default, which results in logging each message twice.
|
|
||||||
StandardError=null
|
|
||||||
+# NM doesn't want systemd to kill its children for it
|
|
||||||
+KillMode=process
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
--
|
|
||||||
1.8.0.1
|
|
||||||
|
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
2442913703295417da489d316db3f922 NetworkManager-0.9.7.0.git20121211.tar.bz2
|
1e672f496c8dac8e460ea52f24ff447a NetworkManager-0.9.7.997.tar.bz2
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
From 2e767e2399f5049b8bb5e7d9a02c78bdb962bb26 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Drake <dsd@laptop.org>
|
|
||||||
Date: Mon, 26 Nov 2012 13:09:35 -0600
|
|
||||||
Subject: [PATCH] core: don't activate uninitialized devices from udev
|
|
||||||
|
|
||||||
libgudev's device matching here by default can return devices which
|
|
||||||
udev has not yet finished initializing.
|
|
||||||
|
|
||||||
This was frequently causing boot-time races on the OLPC XO, where
|
|
||||||
NetworkManager would bring a device up before udev had renamed it,
|
|
||||||
causing the later rename to fail.
|
|
||||||
|
|
||||||
To solve this, filter the enumeration matches to only include
|
|
||||||
initialized devices. The devices that are present but uninitialized
|
|
||||||
at this time will arrive a short time later, via a uevent.
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=56929
|
|
||||||
---
|
|
||||||
src/nm-udev-manager.c | 14 ++++++++++++--
|
|
||||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/nm-udev-manager.c b/src/nm-udev-manager.c
|
|
||||||
index 792e53b..60f41aa 100644
|
|
||||||
--- a/src/nm-udev-manager.c
|
|
||||||
+++ b/src/nm-udev-manager.c
|
|
||||||
@@ -515,25 +515,35 @@ void
|
|
||||||
nm_udev_manager_query_devices (NMUdevManager *self)
|
|
||||||
{
|
|
||||||
NMUdevManagerPrivate *priv = NM_UDEV_MANAGER_GET_PRIVATE (self);
|
|
||||||
+ GUdevEnumerator *enumerator;
|
|
||||||
GList *devices, *iter;
|
|
||||||
|
|
||||||
g_return_if_fail (self != NULL);
|
|
||||||
g_return_if_fail (NM_IS_UDEV_MANAGER (self));
|
|
||||||
|
|
||||||
- devices = g_udev_client_query_by_subsystem (priv->client, "net");
|
|
||||||
+ enumerator = g_udev_enumerator_new (priv->client);
|
|
||||||
+ g_udev_enumerator_add_match_subsystem (enumerator, "net");
|
|
||||||
+ g_udev_enumerator_add_match_is_initialized (enumerator);
|
|
||||||
+
|
|
||||||
+ devices = g_udev_enumerator_execute (enumerator);
|
|
||||||
for (iter = devices; iter; iter = g_list_next (iter)) {
|
|
||||||
net_add (self, G_UDEV_DEVICE (iter->data));
|
|
||||||
g_object_unref (G_UDEV_DEVICE (iter->data));
|
|
||||||
}
|
|
||||||
g_list_free (devices);
|
|
||||||
+ g_object_unref (enumerator);
|
|
||||||
|
|
||||||
|
|
||||||
- devices = g_udev_client_query_by_subsystem (priv->client, "atm");
|
|
||||||
+ enumerator = g_udev_enumerator_new (priv->client);
|
|
||||||
+ g_udev_enumerator_add_match_subsystem (enumerator, "atm");
|
|
||||||
+ g_udev_enumerator_add_match_is_initialized (enumerator);
|
|
||||||
+ devices = g_udev_enumerator_execute (enumerator);
|
|
||||||
for (iter = devices; iter; iter = g_list_next (iter)) {
|
|
||||||
adsl_add (self, G_UDEV_DEVICE (iter->data));
|
|
||||||
g_object_unref (G_UDEV_DEVICE (iter->data));
|
|
||||||
}
|
|
||||||
g_list_free (devices);
|
|
||||||
+ g_object_unref (enumerator);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
--
|
|
||||||
1.7.11.7
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user