tags 668312 + pending
thanks

On Fri, Apr 20, 2012 at 10:06:42PM +0200, Petter Reinholdtsen wrote:
> 
> [Roger Leigh]
> > I don't see any other use of this file in any other packages such
> > as file-rc, so the comment in the postrm is probably not needed.
> 
> Actually, I suspect that file and related code is some leftover code, as
> I have vague memories of switching to using the existence of S* symlinks
> in one of rc0.d or rc6.d to indicate that legacy boot ordering was in
> effect.
> 
> But I might be wrong, as this happened a long time ago.

>From what I can see, it checks for S* symlinks, and then creates
.legacy-bootordering if it exists.  The check in the prerm looked
bogus--it created the file before doing the reversion, so it wasn't
actually providing any real safety.  I've made a shell function
to do the S* check, and used that in both places.

I hope this is OK with you.


Regards,
Roger


commit e263a1c5fd84f5c2ae7d956a6f0ebc7f3ba628f6
Author: Roger Leigh <rle...@debian.org>
Date:   Fri Apr 20 22:42:41 2012 +0100

    debian: Remove use of .legacy-bootordering and close #668312

diff --git a/debian/changelog b/debian/changelog
index 009beba..f69acec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -64,6 +64,7 @@ sysvinit (2.88dsf-23) experimental; urgency=low
       for wheezy.
     - Migrate users of obsolete static boot ordering to dynamic boot
       ordering.
+    - Remove use of /etc/init.d/.legacy-bootordering.  Closes: #668312.
     - Improve help text of debconf message when it is not possible to
       automatically enable dynamic boot ordering.  Provide explicit
       instructions for how to purge obsolete init scripts.
@@ -111,7 +112,7 @@ sysvinit (2.88dsf-23) experimental; urgency=low
     - Don't restart or perform initctl migration if systemd is
       running.
 
- -- Roger Leigh <rle...@debian.org>  Thu, 19 Apr 2012 20:26:41 +0100
+ -- Roger Leigh <rle...@debian.org>  Fri, 20 Apr 2012 22:37:35 +0100
 
 sysvinit (2.88dsf-22.1) unstable; urgency=low
 
diff --git a/debian/sysv-rc.postinst b/debian/sysv-rc.postinst
index 858ef20..62498f2 100644
--- a/debian/sysv-rc.postinst
+++ b/debian/sysv-rc.postinst
@@ -8,7 +8,6 @@ db_version 2.0
 now=`date +%Y%m%dT%H%M`
 logdir=/var/lib/insserv
 logfile="$logdir/run-$now.log"
-flagfile=/etc/init.d/.legacy-bootordering
 
 # Make sure insserv is in path
 PATH=/sbin:$PATH
@@ -63,6 +62,16 @@ add_suggestion() {
     fi
 }
 
+legacy_bootordering() {
+    for f in /etc/rc0.d/S* ; do
+       if [ -f $f ] ; then
+           return 0
+       fi
+    done
+
+    return 1
+}
+
 is_unsafe_to_activate() {
     retval=1
     # Refuse to convert when there are obsolete init.d scripts left
@@ -155,19 +164,11 @@ try_to_convert() {
 
 case "$1" in
     configure)
-       # Detect migrations away from file-rc, where the legacy boot
-       # ordering is used but the flag file to indicated legacy boot
-       # ordering is missing.  Can not do this in preinst, as preinst
-       # might be executed before the postinst of file-rc creatingthe
-       # files in /etc/rc?.d/.
-       for f in /etc/rc0.d/S* ; do
-           if [ ! -f $flagfile ] && [ -f $f ] ; then
-               touch $flagfile
-               break
-           fi
-       done
+       if dpkg --compare-versions "$2" lt "2.88dsf-23"
+           rm -f /etc/init.d/.legacy-bootordering
+       fi
 
-       if [ -f $flagfile ] ; then
+       if legacy_bootordering ; then
            # Still using legacy ordering, try to convert
            if try_to_convert ; then
                :
diff --git a/debian/sysv-rc.postrm b/debian/sysv-rc.postrm
index 036e492..e0335ef 100755
--- a/debian/sysv-rc.postrm
+++ b/debian/sysv-rc.postrm
@@ -29,9 +29,6 @@ if [ ! -e /usr/sbin/invoke-rc.d ] ; then
     ln -sf /usr/share/sysvinit/update-rc.d /usr/sbin/invoke-rc.d
 fi
 
-# Do not remove /etc/init.d/.legacy-bootordering, to allow those
-# taking over to know where to continue.
-
 #DEBHELPER#
 
 # Remove the recorded update-rc.d
diff --git a/debian/sysv-rc.prerm b/debian/sysv-rc.prerm
index 9d6f41a..efba30e 100755
--- a/debian/sysv-rc.prerm
+++ b/debian/sysv-rc.prerm
@@ -5,6 +5,16 @@
 
 set -e
 
+legacy_bootordering() {
+    for f in /etc/rc0.d/S* ; do
+       if [ -f $f ] ; then
+           return 0
+       fi
+    done
+
+    return 1
+}
+
 revert_to_legacy_ordering() {
     # First, check that we have all the needed actions recorded
     present=""
@@ -70,7 +80,6 @@ EOF
     # Enable legacy boot ordering, remove all start and stop symlinks,
     # and register all scripts again.
     echo "warning: reverting to legacy boot ordering"
-    touch /etc/init.d/.legacy-bootordering
     for script in $present ; do
        rm /etc/rc?.d/[KS][0-9][0-9]$script
        sh /var/lib/update-rc.d/$script > /dev/null
@@ -88,7 +97,9 @@ case "$1" in
        remove)
             # Refuse to be uninstalled unless all the needed
             # update-rc.d calls are recorded already.
-           if [ ! -f /etc/init.d/.legacy-bootordering ] ; then
+           if legacy_bootordering ; then
+               :
+           else
                revert_to_legacy_ordering
                exit $?
            fi

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux    http://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-    GPG Public Key      F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to