--- 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 ---

Reply via email to