--- Begin Message ---
On Fri, 2016-02-12 at 00:47 +0900, Benda Xu wrote:
> Hey guys,
>
> Thanks for the report. update-rc.d in OpenRC is a hack based on that
> from sysv-rc. I think the right way forward is to extend
> init-system-helpers to support OpenRC.
>
> I will try to figure it out. If I couldn't make it in time, Svante's
> patch will be upload to close this bug.
Hello,
I took a look at the diff between openrc's and init-system-helper's invoke-rc.d
and update-rc.d scripts. They don't seem to differ to much to make them merge-
able.
However, in case i divert is needed, attached is a debdiff of openrc-0.18.3-1
and openrc-0.18.3-2.
Maybe even the following ar not needed from the purge) target of openrc.postrm
+ rm -f /var/backups/rc-links.tar.gz \
+ /etc/runlevel.conf /etc/runlevel.fallback
+ echo Please purge /var/backups/rc.* manually.
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-11 17:19:38.000000000 +0100
@@ -1,11 +1,76 @@
#!/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 -f /var/backups/rc-links.tar.gz \
+ /etc/runlevel.conf /etc/runlevel.fallback
rm -rf /lib/rc /etc/runlevels
rm -f /etc/init.d/transit
-fi
+ echo Please purge /var/backups/rc.* manually.
+ ;;
+
+ *)
+ 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
--- End Message ---