Make virtual facility $all more intuitive?

Petter Reinholdtsen pere at
Mon Aug 3 14:00:24 UTC 2009

Hi.  A regular problem here in Debian, is the confusion caused by
depending on the virtual facility $all.  Most people expect normal
dependencies to be applied together with $all, and not the current
behaviour.  When three scripts have these headers:

  Provides: a

  Provides: b
  Required-Start: $all

  Provides: c
  Required-Start: b

The expected dependency three and ordering look like this:

  a <- b <- c

The current insserv implementation order them like this:

  a c b

The dependency graph look something like this:

  a <- (b) <- c <- $all <- b

(b) indicate where script b would have been located (and is assumed to
be located when dependency ordering is done) if it did not depend on

The reason is that $all override all dependency tracking and place the
scripts depending on it at a sequence point behind every script
without a dependency on $all.

Dr. Werner, is there any chance you would find time to modify insserv
to handle $all more intuitively.  I believe the scripts need to be
split in two separate sets, the ones without direct or indirect
dependencies on $all, and the ones that have direct or indirect
dependencies on $all.  Then the first set is ordered according to
their dependencies, and $all is made to depend on all of these, and
finally the second set is ordered according to their dependencies
without $all depending on them.  See
<URL:> for an example of the problems
triggered by the strange $all behaviour.  What is your view on this?
I guess $all should also be added to the LSB list of virtual
facilities with an improved definition.

Happy hacking,
Petter Reinholdtsen

More information about the initscripts-ng-devel mailing list