From 2111e80757fc0f7865154b97e2d2549f07f2fa04 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 9 Feb 2015 02:15:18 +0100 Subject: Detect at runtime whether to start ModemManager When not running under systemd, start ModemManager via dbus activation. Closes: #770871 --- ...-at-runtime-whether-to-start-ModemManager.patch | 71 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 72 insertions(+) create mode 100644 debian/patches/0017-Check-at-runtime-whether-to-start-ModemManager.patch (limited to 'debian') diff --git a/debian/patches/0017-Check-at-runtime-whether-to-start-ModemManager.patch b/debian/patches/0017-Check-at-runtime-whether-to-start-ModemManager.patch new file mode 100644 index 00000000..6c0942b9 --- /dev/null +++ b/debian/patches/0017-Check-at-runtime-whether-to-start-ModemManager.patch @@ -0,0 +1,71 @@ +From: Didier Raboud +Date: Mon, 2 Feb 2015 16:06:32 +0100 +Subject: Check at runtime whether to start ModemManager + +This makes NetworkManager use runtime detection to manage the +ModemManager lifecycle when not run by systemd. Under systemd, we expect +the ModemManager service to be started by systemd, under non-systemd, we +use the dbus activation feature to start ModemManager. + +Closes: #770871 +--- + src/devices/wwan/nm-modem-manager.c | 16 ++++++---------- + 1 file changed, 6 insertions(+), 10 deletions(-) + +diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c +index c481170..589fb5c 100644 +--- a/src/devices/wwan/nm-modem-manager.c ++++ b/src/devices/wwan/nm-modem-manager.c +@@ -21,6 +21,8 @@ + */ + + #include ++#include ++ + #include "config.h" + #include "nm-modem-manager.h" + #include "nm-logging.h" +@@ -466,10 +468,9 @@ modem_manager_1_name_owner_changed (MMManager *modem_manager_1, + if (!name_owner) { + nm_log_info (LOGD_MB, "ModemManager disappeared from bus"); + +-#if !HAVE_SYSTEMD + /* If not managed by systemd, schedule relaunch */ +- schedule_modem_manager_1_relaunch (self, 0); +-#endif ++ if (!sd_booted()) ++ schedule_modem_manager_1_relaunch (self, 0); + + return; + } +@@ -490,8 +491,6 @@ modem_manager_1_name_owner_changed (MMManager *modem_manager_1, + */ + } + +-#if !HAVE_SYSTEMD +- + static void + modem_manager_1_poke_cb (GDBusConnection *connection, + GAsyncResult *res, +@@ -540,8 +539,6 @@ modem_manager_1_poke (NMModemManager *self) + g_object_ref (self)); /* user_data */ + } + +-#endif /* HAVE_SYSTEMD */ +- + static void + modem_manager_1_check_name_owner (NMModemManager *self) + { +@@ -555,10 +552,9 @@ modem_manager_1_check_name_owner (NMModemManager *self) + return; + } + +-#if !HAVE_SYSTEMD + /* If the lifecycle is not managed by systemd, poke */ +- modem_manager_1_poke (self); +-#endif ++ if (!sd_booted()) ++ modem_manager_1_poke (self); + } + + static void diff --git a/debian/patches/series b/debian/patches/series index 12363620..873c3c1e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -14,3 +14,4 @@ 0014-log-DHCLIENT-exit-status-better.patch 0015-core-don-t-override-external-route-metrics.patch 0016-core-tell-systemd-to-restart-NetworkManager.service-.patch +0017-Check-at-runtime-whether-to-start-ModemManager.patch -- cgit 1.3.0-6-gf8a5 From ed9ab46ed52c8bde3307fee54eb4c7020031432d Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 9 Feb 2015 02:20:16 +0100 Subject: Do not assert when a device is enslaved externally Fixes crash when running something like 'brctl addif br0 eth0'. Closes: #773216 --- ...-assert-when-a-device-is-enslaved-externa.patch | 60 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 61 insertions(+) create mode 100644 debian/patches/0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch (limited to 'debian') diff --git a/debian/patches/0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch b/debian/patches/0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch new file mode 100644 index 00000000..fff5fd59 --- /dev/null +++ b/debian/patches/0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch @@ -0,0 +1,60 @@ +From: =?utf-8?q?Ji=C5=99=C3=AD_Klime=C5=A1?= +Date: Wed, 24 Sep 2014 16:02:37 +0200 +Subject: core: do not assert when a device is enslaved externally (rh + #1167345) + +Test case: + # ip link add name BR type bridge + # brctl addif BR eth0 + +Monitoring external master/slave changes was intruduced by +08e0cfb484dfc6aa6342871158ffe752c7c50f03. + +https://bugzilla.redhat.com/show_bug.cgi?id=1167345 + +(cherry picked from commit c9b9229c2e7de2bbb12e493a868921b7a788ee92) +--- + src/devices/nm-device.c | 4 ---- + src/nm-active-connection.c | 4 ++-- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c +index 24a1ff1..6ba681b 100644 +--- a/src/devices/nm-device.c ++++ b/src/devices/nm-device.c +@@ -2960,8 +2960,6 @@ act_stage3_ip4_config_start (NMDevice *self, + g_assert (connection); + + method = nm_utils_get_ip_config_method (connection, NM_TYPE_SETTING_IP4_CONFIG); +- if (priv->master) +- g_assert_cmpstr (method, ==, NM_SETTING_IP4_CONFIG_METHOD_DISABLED); + + if ( strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL) != 0 + && priv->is_master +@@ -3847,8 +3845,6 @@ act_stage3_ip6_config_start (NMDevice *self, + g_assert (connection); + + method = nm_utils_get_ip_config_method (connection, NM_TYPE_SETTING_IP6_CONFIG); +- if (priv->master) +- g_assert_cmpstr (method, ==, NM_SETTING_IP6_CONFIG_METHOD_IGNORE); + + if ( strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_MANUAL) != 0 + && priv->is_master +diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c +index 172aa61..91ba9a9 100644 +--- a/src/nm-active-connection.c ++++ b/src/nm-active-connection.c +@@ -360,11 +360,11 @@ device_master_changed (GObject *object, + return; + if (!nm_device_get_master (device)) + return; ++ if (!nm_active_connection_get_master (self)) ++ return; + g_signal_handlers_disconnect_by_func (device, G_CALLBACK (device_master_changed), self); + + master = nm_active_connection_get_master (self); +- g_assert (master); +- + master_state = nm_active_connection_get_state (master); + if (master_state >= NM_ACTIVE_CONNECTION_STATE_DEACTIVATING) { + /* Master failed before attaching the slave */ diff --git a/debian/patches/series b/debian/patches/series index 873c3c1e..f5f29b20 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -15,3 +15,4 @@ 0015-core-don-t-override-external-route-metrics.patch 0016-core-tell-systemd-to-restart-NetworkManager.service-.patch 0017-Check-at-runtime-whether-to-start-ModemManager.patch +0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch -- cgit 1.3.0-6-gf8a5 From 4d794153f5b9caf2360410dfa38e12cc740e9c85 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 9 Feb 2015 02:23:27 +0100 Subject: Update changelog --- debian/changelog | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 55051688..a831e07e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +network-manager (0.9.10.0-6) UNRELEASED; urgency=medium + + * Detect at runtime whether to start ModemManager. When not running under + systemd, start ModemManager via dbus activation. (Closes: #770871) + * Do not assert when a device is enslaved externally. Fixes crash when + running something like 'brctl addif br0 eth0'. (Closes: #773216) + + -- Michael Biebl Mon, 09 Feb 2015 02:22:49 +0100 + network-manager (0.9.10.0-5) unstable; urgency=medium * Cherry-pick upstream commit which prevents breaking PtP TUN interfaces by -- cgit 1.3.0-6-gf8a5 From e69604d483486e6b32d10c9e11fa306c36b35dac Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 9 Feb 2015 02:29:59 +0100 Subject: Release version 0.9.10.0-6 to unstable --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index a831e07e..97a668ba 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,11 @@ -network-manager (0.9.10.0-6) UNRELEASED; urgency=medium +network-manager (0.9.10.0-6) unstable; urgency=medium * Detect at runtime whether to start ModemManager. When not running under systemd, start ModemManager via dbus activation. (Closes: #770871) * Do not assert when a device is enslaved externally. Fixes crash when running something like 'brctl addif br0 eth0'. (Closes: #773216) - -- Michael Biebl Mon, 09 Feb 2015 02:22:49 +0100 + -- Michael Biebl Mon, 09 Feb 2015 02:29:46 +0100 network-manager (0.9.10.0-5) unstable; urgency=medium -- cgit 1.3.0-6-gf8a5 From e5b351239917dcb198990eb114ac8e226eec7f95 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Tue, 31 Mar 2015 07:03:05 +0200 Subject: Don't make NetworkManager D-Bus activatable If the daemon has been stopped manually, we don't want it to be autostarted by client requests. Closes: #760998 --- debian/changelog | 8 +++++ debian/network-manager.preinst | 6 ++++ ...n-t-make-NetworkManager-D-Bus-activatable.patch | 40 ++++++++++++++++++++++ debian/patches/series | 1 + 4 files changed, 55 insertions(+) create mode 100644 debian/patches/0019-Don-t-make-NetworkManager-D-Bus-activatable.patch (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 97a668ba..fa07a6b9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +network-manager (0.9.10.0-7) UNRELEASED; urgency=medium + + * Don't make NetworkManager D-Bus activatable. If the daemon has been + stopped manually, we don't want it to be autostarted by client requests. + (Closes: #760998) + + -- Michael Biebl Tue, 31 Mar 2015 06:58:04 +0200 + network-manager (0.9.10.0-6) unstable; urgency=medium * Detect at runtime whether to start ModemManager. When not running under diff --git a/debian/network-manager.preinst b/debian/network-manager.preinst index 62aadf1e..61916284 100644 --- a/debian/network-manager.preinst +++ b/debian/network-manager.preinst @@ -25,6 +25,12 @@ case "$1" in fi fi + if dpkg --compare-versions "$2" lt "0.9.10.0-7"; then + if [ -L /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service ]; then + rm -f /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service + fi + fi + # Upgrade from previous versions if dpkg --compare-versions "$2" lt "0.9.7.997-2"; then # Move old pid file to /var/run/NetworkManager so the init script diff --git a/debian/patches/0019-Don-t-make-NetworkManager-D-Bus-activatable.patch b/debian/patches/0019-Don-t-make-NetworkManager-D-Bus-activatable.patch new file mode 100644 index 00000000..ce028367 --- /dev/null +++ b/debian/patches/0019-Don-t-make-NetworkManager-D-Bus-activatable.patch @@ -0,0 +1,40 @@ +From: Michael Biebl +Date: Sun, 29 Mar 2015 22:57:50 +0200 +Subject: Don't make NetworkManager D-Bus activatable + +If the NetworkManager daemon has been stopped manually we don't want it +to be autostarted by a client request. +--- + data/Makefile.am | 7 ------- + data/NetworkManager.service.in | 1 - + 2 files changed, 8 deletions(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index e91361a..a7c8070 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -19,13 +19,6 @@ endif + NetworkManager-dispatcher.service: NetworkManager-dispatcher.service.in + $(edit) $< >$@ + +-servicedir = $(datadir)/dbus-1/system-services +-service_in_files = org.freedesktop.NetworkManager.service.in +-service_DATA = $(service_in_files:.service.in=.service) +- +-$(service_DATA): $(service_in_files) Makefile +- $(edit) $< >$@ +- + install-exec-local: + install -d $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants + ln -sf $(systemdsystemunitdir)/NetworkManager-wait-online.service $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants +diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in +index 1883b40..5282e5b 100644 +--- a/data/NetworkManager.service.in ++++ b/data/NetworkManager.service.in +@@ -11,6 +11,5 @@ KillMode=process + + [Install] + WantedBy=multi-user.target +-Alias=dbus-org.freedesktop.NetworkManager.service + Also=NetworkManager-dispatcher.service + diff --git a/debian/patches/series b/debian/patches/series index f5f29b20..144476cf 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -16,3 +16,4 @@ 0016-core-tell-systemd-to-restart-NetworkManager.service-.patch 0017-Check-at-runtime-whether-to-start-ModemManager.patch 0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch +0019-Don-t-make-NetworkManager-D-Bus-activatable.patch -- cgit 1.3.0-6-gf8a5 From 3d302b55086b5929b4719c2663f11d48a6d3669e Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Tue, 31 Mar 2015 07:05:08 +0200 Subject: Don't block network.target on NetworkManager-wait-online.service While at it, add a few other minor fixes like the addition of Documentation or RemainAfterExit=yes. --- debian/changelog | 3 ++ ...-network.target-on-NetworkManager-wait-on.patch | 57 ++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 61 insertions(+) create mode 100644 debian/patches/0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index fa07a6b9..83dd7424 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,9 @@ network-manager (0.9.10.0-7) UNRELEASED; urgency=medium * Don't make NetworkManager D-Bus activatable. If the daemon has been stopped manually, we don't want it to be autostarted by client requests. (Closes: #760998) + * Don't block network.target on NetworkManager-wait-online.service. While at + it, add a few other minor fixes like the addition of Documentation or + RemainAfterExit=yes. -- Michael Biebl Tue, 31 Mar 2015 06:58:04 +0200 diff --git a/debian/patches/0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch b/debian/patches/0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch new file mode 100644 index 00000000..1ddb666d --- /dev/null +++ b/debian/patches/0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch @@ -0,0 +1,57 @@ +From: Michael Biebl +Date: Sun, 29 Mar 2015 22:58:43 +0200 +Subject: Don't block network.target on NetworkManager-wait-online.service + +network.target is supposed to be a passive unit which is pulled in my +the network management service. + +Also, we want NetworkManager-wait-online.service be hooked up in +network-online.target, not multi-user.target. + +While at it, add a few other smaller fixes, like the addition of +Documentation= and RemainAfterExit=yes + +http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ +https://bugzilla.gnome.org/show_bug.cgi?id=746039 +--- + data/Makefile.am | 4 ---- + data/NetworkManager-wait-online.service.in | 7 ++++--- + 2 files changed, 4 insertions(+), 7 deletions(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index a7c8070..60443bf 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -18,10 +18,6 @@ endif + + NetworkManager-dispatcher.service: NetworkManager-dispatcher.service.in + $(edit) $< >$@ +- +-install-exec-local: +- install -d $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants +- ln -sf $(systemdsystemunitdir)/NetworkManager-wait-online.service $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants + endif + + examplesdir = $(docdir)/examples +diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in +index 6ad6942..1753d20 100644 +--- a/data/NetworkManager-wait-online.service.in ++++ b/data/NetworkManager-wait-online.service.in +@@ -1,13 +1,14 @@ + [Unit] + Description=Network Manager Wait Online ++Documentation=man:nm-online(1) + Requisite=NetworkManager.service + After=NetworkManager.service +-Wants=network.target +-Before=network.target network-online.target ++Before=network-online.target + + [Service] + Type=oneshot + ExecStart=@bindir@/nm-online -s -q --timeout=30 ++RemainAfterExit=yes + + [Install] +-WantedBy=multi-user.target ++WantedBy=network-online.target diff --git a/debian/patches/series b/debian/patches/series index 144476cf..dec25502 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -17,3 +17,4 @@ 0017-Check-at-runtime-whether-to-start-ModemManager.patch 0018-core-do-not-assert-when-a-device-is-enslaved-externa.patch 0019-Don-t-make-NetworkManager-D-Bus-activatable.patch +0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch -- cgit 1.3.0-6-gf8a5 From bb2f8764ee893b3dd02b9a4bcd2706ac763d2455 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Tue, 31 Mar 2015 07:06:20 +0200 Subject: Release version 0.9.10.0-7 to unstable --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 83dd7424..a03f7d58 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -network-manager (0.9.10.0-7) UNRELEASED; urgency=medium +network-manager (0.9.10.0-7) unstable; urgency=medium * Don't make NetworkManager D-Bus activatable. If the daemon has been stopped manually, we don't want it to be autostarted by client requests. @@ -7,7 +7,7 @@ network-manager (0.9.10.0-7) UNRELEASED; urgency=medium it, add a few other minor fixes like the addition of Documentation or RemainAfterExit=yes. - -- Michael Biebl Tue, 31 Mar 2015 06:58:04 +0200 + -- Michael Biebl Tue, 31 Mar 2015 07:06:07 +0200 network-manager (0.9.10.0-6) unstable; urgency=medium -- cgit 1.3.0-6-gf8a5