[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Dependency-based boot ordering and sysvinit in unstable


If you're using unstable and you're using static boot ordering with
sysv-rc, you might have run into #676463/#676520.

We've been using dynamic dependency-based boot ordering by default for
quite some time now.  However, if you had a lenny (or earlier) system,
prior to sysv-rc 2.88dsf-23, users had a choice between opting to
remain using the old static legacy boot ordering, or to enable dynamic
dependency-based boot ordering.  In 2.88dsf-23, the question is
removed, and dynamic boot ordering will be enabled on all systems.

For the majority of users, this won't cause any problems at all.
However, if you have any lingering scripts without any LSB headers,
you'll need to fix them up or remove them to allow dynamic boot
ordering to be enabled.  This is obviously not too desirable, since
it requires fixing things up by hand.  But it doesn't break anything
either (other than requiring you to fix things to continue--the boot
ordering will be unaffected until the migration can proceed).

Ideally, we would be able to skip the sanity checks and just enable it
anyway, with the non-LSB scripts getting ordered after all the LSB
scripts.  This should satisfy the (absent) dependencies in all but the
most insane of cases.  But this does require testing carefully, which
is why it's not done at the present time [it wasn't supposed to leave
experimental until this was done, but the competing demands of fixing
/tmp and other things such as upstart integration meant that it did, so
apologies for that].

I'm away for the next 10 days, but I will be looking into this as soon
as I get back.  In the meantime, if anyone would like to test the
safety of removing the sanity check, that would be very useful.

The reason for making this change is that packages provide both LSB
dependency information, and they also have to separately provide
static ordering information when running update-rc.d.  However, now
the vast majority of systems use dynamic ordering, the static ordering
is bitrotting.  It's not tested properly, and it will only get worse.
Rather than let the quality of the static ordering decline until it
results in inevitable breakage, requiring all systems to use
dynamic ordering means that all systems will be using the same, sane
LSB dependencies, making booting rather more robust, and removing the
requirement for maintainers to invent some fictional static order,
which isn't being tested by them to ensure it's correct in any case.

All the other init systems use dependency-based ordering, and this
additionally makes migration to other init systems easier given their
use of LSB dependencies for compatibility.  The only exception is
perhaps file-rc, and this should probably be using insserv to order
the scripts even if it doesn't use startpar to run them in parallel,
so that it can use LSB dependency ordering as well.


  .''`.  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

Reply to: