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