Make virtual facility $all more intuitive?

Dr. Werner Fink werner at suse.de
Mon Aug 3 14:16:54 UTC 2009


On Mon, Aug 03, 2009 at 04:00:24PM +0200, Petter Reinholdtsen wrote:
> 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
> $all.
> 
> 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:http://bugs.debian.org/491391> 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.

Hmmm ... the facility $all is well documented in the manual page
of inserv:

  Beside the defined System Facilities in the configuration file
  /etc/insserv.conf, insserv also knows the special facility $all.
  This facility indicates that a service should be inserted at the
  end of all services.  Clearly all services using this facility
  will be grouped into one starting order.

changing this behaviour would break a lot of here in openSUSE.
If I change this and break the hard functional specification
from the development team I would run into trouble here.
Maybe I should add a warning or an error for things like
done in the script `c' above.

Any comments and/or opinions from your side?


     Werner

PS: There is no need to cite my PhD as prefere in the
    most case my first name (beside this my PhD was done
    in theoretical physics not in computer since:) ...
-- 
  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr



More information about the initscripts-ng-devel mailing list