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/patches') 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/patches') 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 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 --- ...n-t-make-NetworkManager-D-Bus-activatable.patch | 40 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 41 insertions(+) create mode 100644 debian/patches/0019-Don-t-make-NetworkManager-D-Bus-activatable.patch (limited to 'debian/patches') 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. --- ...-network.target-on-NetworkManager-wait-on.patch | 57 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 58 insertions(+) create mode 100644 debian/patches/0020-Don-t-block-network.target-on-NetworkManager-wait-on.patch (limited to 'debian/patches') 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