Bug#541980: redhat-cluster: Incorrect provides, dependencies and runlevels in init.d scripts
I had a closer look at the package, and here is an updated patch which
should reproduce the order of the init.d scripts before dependency
based boot sequencing.
I've uploaded a package with this patch to the 2 day delayed queue.
diff -ruN ../redhat-cluster-2.20081102/debian/changelog ../redhat-cluster-2.20081102-pere/debian/changelog
--- ../redhat-cluster-2.20081102/debian/changelog 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/changelog 2009-09-16 21:40:42.000000000 +0200
@@ -1,3 +1,12 @@
+redhat-cluster (2.20081102-1.1) unstable; urgency=low
+
+ * Non-maintainer upload to fix release goal.
+ * Fix init.d script provides, runlevels and dependency headers
+ and add code in postinst to recover from installations with
+ incorrect runlevels enabled (Closes: #541980).
+
+ -- Petter Reinholdtsen <pere@debian.org> Wed, 16 Sep 2009 19:53:08 +0200
+
redhat-cluster (2.20081102-1) unstable; urgency=medium
* New upstream release version 2.03.09.
diff -ruN ../redhat-cluster-2.20081102/debian/cman.init ../redhat-cluster-2.20081102-pere/debian/cman.init
--- ../redhat-cluster-2.20081102/debian/cman.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/cman.init 2009-09-16 20:55:55.000000000 +0200
@@ -1,13 +1,13 @@
#!/bin/sh
### BEGIN INIT INFO
-# Provides: cluster manager
+# Provides: cman
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
-# Should-Start: $named $time $syslog ssh
-# Should-Stop: $named $time $syslog ssh
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Should-Start: $time
+# Should-Stop: $time
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: Starts and stops cman
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/cman.postinst ../redhat-cluster-2.20081102-pere/debian/cman.postinst
--- ../redhat-cluster-2.20081102/debian/cman.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/cman.postinst 2009-09-16 20:25:11.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing cman before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]cman ] && [ ! -f /etc/rcS.d/S[0-9][0-9]cman ]
+then
+ update-rc.d -f cman remove
+fi
+
+#DEBHELPER#
diff -ruN ../redhat-cluster-2.20081102/debian/gfs-tools.init ../redhat-cluster-2.20081102-pere/debian/gfs-tools.init
--- ../redhat-cluster-2.20081102/debian/gfs-tools.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/gfs-tools.init 2009-09-16 21:02:23.000000000 +0200
@@ -1,11 +1,13 @@
#!/bin/sh
### BEGIN INIT INFO
-# Provides: global filesystem
-# Required-Start: cman
-# Required-Stop: cman
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Provides: gfs-tools
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Should-Start: cman gnbd-server gnbd-client
+# Should-Stop: cman gnbd-server gnbd-client
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: mount and unmount GFS shares
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/gfs-tools.postinst ../redhat-cluster-2.20081102-pere/debian/gfs-tools.postinst
--- ../redhat-cluster-2.20081102/debian/gfs-tools.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/gfs-tools.postinst 2009-09-16 20:32:19.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing gfs-tools before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]gfs-tools ] && [ ! -f /etc/rcS.d/S[0-9][0-9]gfs-tools ]
+then
+ update-rc.d -f gfs-tools remove
+fi
+
+#DEBHELPER#
diff -ruN ../redhat-cluster-2.20081102/debian/gfs2-tools.init ../redhat-cluster-2.20081102-pere/debian/gfs2-tools.init
--- ../redhat-cluster-2.20081102/debian/gfs2-tools.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/gfs2-tools.init 2009-09-16 21:07:55.000000000 +0200
@@ -1,11 +1,13 @@
#!/bin/sh
### BEGIN INIT INFO
-# Provides: global filesystem version 2
-# Required-Start: cman
-# Required-Stop: cman
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Provides: gfs2-tools
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Should-Start: cman gnbd-server gnbd-client gfs-tools
+# Should-Stop: cman gnbd-server gnbd-client gfs-tools
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: mount and unmount GFS v2 shares
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/gfs2-tools.postinst ../redhat-cluster-2.20081102-pere/debian/gfs2-tools.postinst
--- ../redhat-cluster-2.20081102/debian/gfs2-tools.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/gfs2-tools.postinst 2009-09-16 20:32:09.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing gfs2-tools before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]gfs2-tools ] && [ ! -f /etc/rcS.d/S[0-9][0-9]gfs2-tools ]
+then
+ update-rc.d -f gfs2-tools remove
+fi
+
+#DEBHELPER#
diff -ruN ../redhat-cluster-2.20081102/debian/gnbd-client.init ../redhat-cluster-2.20081102-pere/debian/gnbd-client.init
--- ../redhat-cluster-2.20081102/debian/gnbd-client.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/gnbd-client.init 2009-09-16 21:02:35.000000000 +0200
@@ -1,11 +1,13 @@
#! /bin/sh
### BEGIN INIT INFO
-# Provides: global network block device client
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Provides: gnbd-client
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Should-Start: cman gnbd-server
+# Should-Stop: cman gnbd-server
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: start and stop gnbd client
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/gnbd-client.postinst ../redhat-cluster-2.20081102-pere/debian/gnbd-client.postinst
--- ../redhat-cluster-2.20081102/debian/gnbd-client.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/gnbd-client.postinst 2009-09-16 20:31:54.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing gnbd-client before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]gnbd-client ] && [ ! -f /etc/rcS.d/S[0-9][0-9]gnbd-client ]
+then
+ update-rc.d -f gnbd-client remove
+fi
+
+#DEBHELPER#
diff -ruN ../redhat-cluster-2.20081102/debian/gnbd-server.init ../redhat-cluster-2.20081102-pere/debian/gnbd-server.init
--- ../redhat-cluster-2.20081102/debian/gnbd-server.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/gnbd-server.init 2009-09-16 21:00:24.000000000 +0200
@@ -1,11 +1,13 @@
#! /bin/sh
### BEGIN INIT INFO
-# Provides: global network block device server
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Provides: gnbd-server
+# Required-Start: $remote_fs $network
+# Required-Stop: $remote_fs $network
+# Should-Start: cman
+# Should-Stop: cman
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: start and stop the gnbd server
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/gnbd-server.postinst ../redhat-cluster-2.20081102-pere/debian/gnbd-server.postinst
--- ../redhat-cluster-2.20081102/debian/gnbd-server.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/gnbd-server.postinst 2009-09-16 20:31:43.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing gnbd-server before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]gnbd-server ] && [ ! -f /etc/rcS.d/S[0-9][0-9]gnbd-server ]
+then
+ update-rc.d -f gnbd-server remove
+fi
+
+#DEBHELPER#
diff -ruN ../redhat-cluster-2.20081102/debian/rgmanager.init ../redhat-cluster-2.20081102-pere/debian/rgmanager.init
--- ../redhat-cluster-2.20081102/debian/rgmanager.init 2009-09-16 20:11:35.000000000 +0200
+++ ../redhat-cluster-2.20081102-pere/debian/rgmanager.init 2009-09-16 19:52:42.000000000 +0200
@@ -1,13 +1,13 @@
#!/bin/sh
### BEGIN INIT INFO
-# Provides: cluster service manager
-# Required-Start: cman
-# Required-Stop: cman
+# Provides: rgmanager
+# Required-Start: $remote_fs cman
+# Required-Stop: $remote_fs cman
# Should-Start: clvm gfs-tools gfs2-tools
# Should-Stop: clvm gfs-tools gfs2-tools
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Default-Start: S
+# Default-Stop: 0 6
# Short-Description: start and stop the cluster service manager
### END INIT INFO
diff -ruN ../redhat-cluster-2.20081102/debian/rgmanager.postinst ../redhat-cluster-2.20081102-pere/debian/rgmanager.postinst
--- ../redhat-cluster-2.20081102/debian/rgmanager.postinst 1970-01-01 01:00:00.000000000 +0100
+++ ../redhat-cluster-2.20081102-pere/debian/rgmanager.postinst 2009-09-16 20:31:12.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing rgmanager before version 2.20081102-1.1 would have wrong
+# runlevel symlinks. Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.20081102-1.1" \
+ && [ -f /etc/rc2.d/S[0-9][0-9]rgmanager ] && [ ! -f /etc/rcS.d/S[0-9][0-9]rgmanager ]
+then
+ update-rc.d -f rgmanager remove
+fi
+
+#DEBHELPER#
Happy hacking,
--
Petter Reinholdtsen
Reply to: