On Mon, 2016-02-22 at 14:56 +0900, Benda Xu wrote:
> Hi Svante,
> 
> Svante Signell <svante.sign...@gmail.com> writes:
> 
> > openrc 0.18.3-1 is marked for autoremoval from testing on 2016-02-26,
> > so there seems to more time left to fix #811708, than the previous date
> > given
> > 2016-02-18.
> 
> It turns out https://packages.qa.debian.org/o/openrc.html was lying.
> OpenRC has already been removed from testing.
> 
> Maintainers of init-system-helpers gave me no ack to update their
> package.  I think we should take the divert approach first and update a
> new version of OpenRC ASAP.

Attached is an updated debdiff patch. Please modify the changelog accordingly.
This would be a temporary solution to the bug. Please push the init-system-
helpers maintainers to consider your patch. Adam/Benda, can/will you make an NMU
of init-system-helpers if they don't want to cooperate?

Thanks!
diff -Nru openrc-0.18.3/debian/changelog openrc-0.18.3/debian/changelog
--- openrc-0.18.3/debian/changelog	2015-11-09 15:11:35.000000000 +0100
+++ openrc-0.18.3/debian/changelog	2016-02-11 17:22:14.000000000 +0100
@@ -1,3 +1,14 @@
+openrc (0.18.3-2) unstable; urgency=medium
+  * Update debian/openrc.postrm script to divert
+    update-rc.d + invoke-rc.d files to cooperate with
+    init-system-helpers >=1.25
+  * Create debian/openrc.preinst script to divert
+    update-rc.d + invoke-rc.d files to cooperate with
+    init-system-helpers >=1.25
+    (Closes: #811708)
+
+ -- Svante Signell <svante.sign...@gmail.com>  Tue, 09 Feb 2016 16:53:58 +0100
+
 openrc (0.18.3-1) unstable; urgency=medium
 
   [ Dmitry Yu Okunev ]
diff -Nru openrc-0.18.3/debian/openrc.postrm openrc-0.18.3/debian/openrc.postrm
--- openrc-0.18.3/debian/openrc.postrm	2015-11-09 15:11:35.000000000 +0100
+++ openrc-0.18.3/debian/openrc.postrm	2016-02-22 10:30:11.000000000 +0100
@@ -1,11 +1,73 @@
 #!/bin/sh
+# postrm script for openrc
 
 set -e
 
-if [ "${1}" = "purge" ] ; then
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+# see #811708, #805487
+undivert() {
+  dpkg-divert --package openrc --remove --rename \
+    --divert /usr/sbin/update-rc.d.init-system-helpers /usr/sbin/update-rc.d
+
+  dpkg-divert --package openrc --remove --rename \
+    --divert /usr/sbin/invoke-rc.d.init-system-helpers /usr/sbin/invoke-rc.d
+
+  dpkg-divert --package openrc --remove --rename \
+    --divert /usr/share/man/man8/update-rc.d.8.gz.init-system-helpers /usr/share/man/man8/update-rc.d.8.gz
+
+  dpkg-divert --package openrc --remove --rename \
+    --divert /usr/share/man/man8/invoke-rc.d.8.gz.init-system-helpers /usr/share/man/man8/invoke-rc.d.8.gz
+}
+
+case "$1" in
+    upgrade|failed-upgrade)
+    ;;
+
+    abort-upgrade)
+      if dpkg --compare-versions "$2" lt 0.18.3-2 ; then
+        undivert
+      fi
+    ;;
+
+    abort-install|disappear)
+        undivert
+    ;;
+
+    remove)
+        undivert
+
+	if [ ! -e /usr/sbin/update-rc.d ] ; then
+		ln -sf /usr/share/sysvinit/update-rc.d /usr/sbin/update-rc.d
+	fi
+	if [ ! -e /usr/sbin/invoke-rc.d ] ; then
+		ln -sf /usr/share/sysvinit/update-rc.d /usr/sbin/invoke-rc.d
+	fi
+    ;;
+
+    purge)
 	rm -rf /lib/rc /etc/runlevels
 	rm -f /etc/init.d/transit
-fi
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
 
 #DEBHELPER#
 
diff -Nru openrc-0.18.3/debian/openrc.preinst openrc-0.18.3/debian/openrc.preinst
--- openrc-0.18.3/debian/openrc.preinst	1970-01-01 01:00:00.000000000 +0100
+++ openrc-0.18.3/debian/openrc.preinst	2016-02-11 17:19:48.000000000 +0100
@@ -0,0 +1,58 @@
+#! /bin/sh
+# preinst script for openrc
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+#
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+# see #811708, #805487
+divert() {
+
+  dpkg-divert --package openrc --add --rename \
+      --divert /usr/sbin/update-rc.d.init-system-helpers /usr/sbin/update-rc.d
+
+  dpkg-divert --package openrc --add --rename \
+      --divert /usr/sbin/invoke-rc.d.init-system-helpers /usr/sbin/invoke-rc.d
+
+  dpkg-divert --package openrc --add --rename \
+      --divert /usr/share/man/man8/update-rc.d.8.gz.init-system-helpers /usr/share/man/man8/update-rc.d.8.gz
+
+  dpkg-divert --package openrc --add --rename \
+      --divert /usr/share/man/man8/invoke-rc.d.8.gz.init-system-helpers /usr/share/man/man8/invoke-rc.d.8.gz
+}
+
+case "$1" in
+    install)
+      divert
+    ;;
+
+    upgrade)
+      if dpkg --compare-versions "$2" lt 0.18.3-2 ; then
+        divert
+      fi
+   ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Reply via email to