summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-06-02 18:23:29 +0200
committerMichael Biebl <biebl@debian.org>2016-06-02 18:23:29 +0200
commitfc3f97d61cb0727ed4aaa70551b2c8298aa621ff (patch)
tree14afbf4ab50f6d7ecbd655b4e754bb6ede9067b2
parent602dd19588df87093a1469e19e82ab86bac275ec (diff)
Properly hook up network.target and network-online.target
* Let NetworkManager.service pull in network.target. This will provide a
  proper ordering on shutdown.
* Enable NetworkManager-wait-online.service. This ensures that mounting of
  network file systems works properly and SysV init scripts depending on
  $network will be delayed until network is available (or a timeout is
  reached).
-rw-r--r--debian/changelog11
-rw-r--r--debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch34
-rw-r--r--debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch54
-rw-r--r--debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch4
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/systemd-Add-Documentation-to-service-files.patch49
-rw-r--r--debian/patches/systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch30
-rw-r--r--debian/patches/systemd-Use-RemainAfterExit-yes-for-NetworkManager-wait-o.patch42
-rwxr-xr-xdebian/rules5
9 files changed, 137 insertions, 97 deletions
diff --git a/debian/changelog b/debian/changelog
index 49cac054..a69be41d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+network-manager (1.2.2-2) UNRELEASED; urgency=medium
+
+  * Let NetworkManager.service pull in network.target. This will provide a
+    proper ordering on shutdown.
+  * Enable NetworkManager-wait-online.service. This ensures that mounting of
+    network file systems works properly and SysV init scripts depending on
+    $network will be delayed until network is available (or a timeout is
+    reached).
+
+ -- Michael Biebl <biebl@debian.org>  Thu, 02 Jun 2016 18:17:28 +0200
+
 network-manager (1.2.2-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch b/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
deleted file mode 100644
index 449ae401..00000000
--- a/debian/patches/Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Wed, 2 Apr 2014 03:15:53 +0200
-Subject: Debian specific tweaks for NetworkManager systemd service file
-
-This patch is needed to avoid a dependency loop which is generated
-by early boot (rcS) SysV init scripts depending on the $network LSB
-system facility (either directly or indirectly via $remote_fs).
-
-The $network LSB system facility is mapped to network.target.
-
-Those rcS SysV init scripts are started in sysinit.target,
-NetworkManager.service is started via multi-user.target, which depends
-on sysinit.target.
-
-As long as we have rcS SysV init scripts which such a dependency on
-$remote_fs or $network we can not make NetworkManager.service a provider
-for network.target.
----
- data/NetworkManager.service.in | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
-index 7946ac1..a974432 100644
---- a/data/NetworkManager.service.in
-+++ b/data/NetworkManager.service.in
-@@ -1,8 +1,6 @@
- [Unit]
- Description=Network Manager
--Wants=network.target
- After=network-pre.target dbus.service
--Before=network.target @DISTRO_NETWORK_SERVICE@
- 
- [Service]
- Type=dbus
diff --git a/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch b/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch
deleted file mode 100644
index 4ee2e37e..00000000
--- a/debian/patches/Don-t-block-network.target-on-NetworkManager-wait-on.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-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 | 2 ++
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index 4ab4106..bbe6b32 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 8c4fa67..1753d20 100644
---- a/data/NetworkManager-wait-online.service.in
-+++ b/data/NetworkManager-wait-online.service.in
-@@ -1,5 +1,6 @@
- [Unit]
- Description=Network Manager Wait Online
-+Documentation=man:nm-online(1)
- Requisite=NetworkManager.service
- After=NetworkManager.service
- Before=network-online.target
-@@ -7,6 +8,7 @@ Before=network-online.target
- [Service]
- Type=oneshot
- ExecStart=@bindir@/nm-online -s -q --timeout=30
-+RemainAfterExit=yes
- 
- [Install]
- WantedBy=network-online.target
diff --git a/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch b/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
index e5eb82da..967d247a 100644
--- a/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
+++ b/debian/patches/Don-t-make-NetworkManager-D-Bus-activatable.patch
@@ -28,10 +28,10 @@ index ce059fc..4ab4106 100644
  	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 a974432..5a752b8 100644
+index 7946ac1..eaab677 100644
 --- a/data/NetworkManager.service.in
 +++ b/data/NetworkManager.service.in
-@@ -16,6 +16,5 @@ ProtectHome=read-only
+@@ -18,6 +18,5 @@ ProtectHome=read-only
  
  [Install]
  WantedBy=multi-user.target
diff --git a/debian/patches/series b/debian/patches/series
index 445a1b3d..842debff 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,8 +1,9 @@
-Debian-specific-tweaks-for-NetworkManager-systemd-se.patch
 Force-online-state-with-unmanaged-devices.patch
 Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
 fix-arping-path.patch
 Check-at-runtime-whether-to-start-ModemManager.patch
 Don-t-make-NetworkManager-D-Bus-activatable.patch
-Don-t-block-network.target-on-NetworkManager-wait-on.patch
+systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch
 Fix-iscsiadm-path.patch
+systemd-Add-Documentation-to-service-files.patch
+systemd-Use-RemainAfterExit-yes-for-NetworkManager-wait-o.patch
diff --git a/debian/patches/systemd-Add-Documentation-to-service-files.patch b/debian/patches/systemd-Add-Documentation-to-service-files.patch
new file mode 100644
index 00000000..41460def
--- /dev/null
+++ b/debian/patches/systemd-Add-Documentation-to-service-files.patch
@@ -0,0 +1,49 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Thu, 2 Jun 2016 17:41:29 +0200
+Subject: systemd: Add Documentation to service files
+
+Reference the nm-online and NetworkManager man page in the corresponding
+service files.
+
+https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Documentation=
+
+https://bugzilla.gnome.org/show_bug.cgi?id=767168
+---
+ data/NetworkManager-wait-online-systemd-pre200.service.in | 1 +
+ data/NetworkManager-wait-online.service.in                | 1 +
+ data/NetworkManager.service.in                            | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/data/NetworkManager-wait-online-systemd-pre200.service.in b/data/NetworkManager-wait-online-systemd-pre200.service.in
+index d145a79..8b54f48 100644
+--- a/data/NetworkManager-wait-online-systemd-pre200.service.in
++++ b/data/NetworkManager-wait-online-systemd-pre200.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Network Manager Wait Online
++Documentation=man:nm-online(1)
+ Requisite=NetworkManager.service
+ After=NetworkManager.service
+ Wants=network.target
+diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in
+index 8c4fa67..4df854c 100644
+--- a/data/NetworkManager-wait-online.service.in
++++ b/data/NetworkManager-wait-online.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Network Manager Wait Online
++Documentation=man:nm-online(1)
+ Requisite=NetworkManager.service
+ After=NetworkManager.service
+ Before=network-online.target
+diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
+index eaab677..4f07180 100644
+--- a/data/NetworkManager.service.in
++++ b/data/NetworkManager.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Network Manager
++Documentation=man:NetworkManager(8)
+ Wants=network.target
+ After=network-pre.target dbus.service
+ Before=network.target @DISTRO_NETWORK_SERVICE@
diff --git a/debian/patches/systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch b/debian/patches/systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch
new file mode 100644
index 00000000..c822c2d5
--- /dev/null
+++ b/debian/patches/systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch
@@ -0,0 +1,30 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Sun, 29 Mar 2015 22:58:43 +0200
+Subject: systemd: Don't enable NetworkManager-wait-online.service statically
+
+Instead we are going to hook up the service in network-online.target
+dynamically via
+
+[Install]
+WantedBy=network-online.target
+
+This way the user can easily disable the service.
+---
+ data/Makefile.am | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 4ab4106..bbe6b32 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/debian/patches/systemd-Use-RemainAfterExit-yes-for-NetworkManager-wait-o.patch b/debian/patches/systemd-Use-RemainAfterExit-yes-for-NetworkManager-wait-o.patch
new file mode 100644
index 00000000..39c28b7c
--- /dev/null
+++ b/debian/patches/systemd-Use-RemainAfterExit-yes-for-NetworkManager-wait-o.patch
@@ -0,0 +1,42 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Thu, 2 Jun 2016 17:58:35 +0200
+Subject: systemd: Use RemainAfterExit=yes for
+ NetworkManager-wait-online.service
+
+RemainAfterExit=yes is typically used for Type=oneshot services.
+systemd-networkd-wait-online.service uses it, so we should as well.
+
+See
+https://www.freedesktop.org/software/systemd/man/systemd.service.html#RemainAfterExit=
+https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=
+
+https://bugzilla.gnome.org/show_bug.cgi?id=767170
+---
+ data/NetworkManager-wait-online-systemd-pre200.service.in | 1 +
+ data/NetworkManager-wait-online.service.in                | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/data/NetworkManager-wait-online-systemd-pre200.service.in b/data/NetworkManager-wait-online-systemd-pre200.service.in
+index 8b54f48..55e4508 100644
+--- a/data/NetworkManager-wait-online-systemd-pre200.service.in
++++ b/data/NetworkManager-wait-online-systemd-pre200.service.in
+@@ -9,6 +9,7 @@ Before=network.target
+ [Service]
+ Type=oneshot
+ ExecStart=@bindir@/nm-online -s -q --timeout=30
++RemainAfterExit=yes
+ 
+ [Install]
+ WantedBy=network.target
+diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in
+index 4df854c..1753d20 100644
+--- a/data/NetworkManager-wait-online.service.in
++++ b/data/NetworkManager-wait-online.service.in
+@@ -8,6 +8,7 @@ Before=network-online.target
+ [Service]
+ Type=oneshot
+ ExecStart=@bindir@/nm-online -s -q --timeout=30
++RemainAfterExit=yes
+ 
+ [Install]
+ WantedBy=network-online.target
diff --git a/debian/rules b/debian/rules
index a4d31b02..a0d0af51 100755
--- a/debian/rules
+++ b/debian/rules
@@ -64,11 +64,6 @@ override_dh_makeshlibs:
 override_dh_strip:
 	dh_strip --dbgsym-migration='network-manager-dbg (<< 1.1.91-2~)'
 
-override_dh_systemd_enable:
-	dh_systemd_enable -pnetwork-manager NetworkManager-dispatcher.service
-	dh_systemd_enable -pnetwork-manager --no-enable NetworkManager-wait-online.service
-	dh_systemd_enable -pnetwork-manager NetworkManager.service
-
 override_dh_systemd_start:
 	dh_link lib/systemd/system/NetworkManager.service \
 		lib/systemd/system/network-manager.service