Debian specific virtual facilities for init.d dependencies

This is the list of proposed Debian specific virtual facilities for use with dependency based boot sequencing.

Name

Description

$mail-transport-agent

The MTA is operational. Useful for packages providing the virtual package mail-transport-agent.

$x-font-server

The X Font Servers are operational.

$x-display-manager

Display managers (starting X). Useful for packages providing the virtual package x-display-manager.

Debian package maintainers are expected to work out new debian specific virtual facilities among themselves, but it is important that you talk to the sysvinit maintainers if you want to make a new virtual facility, to avoid name conflicts. If possible, the name of the virtual facility should match the name of the virtual package name it represent, if such virtual package name exist. See the updated list of virtual packages in Debian for such virtual package names..

Why virtual facilities and not provide strings

When two packages uses init.d headers like this, the dependency based boot sequencing system detect dupliate provides and refuses to install one of the packages if the other was installed earlier and have not been purged yet, because the init.d script is still present on the system.

# Provides: xmail mail-transport-agent

# Provides: postfix mail-transport-agent

If instead, a virtual facility is defined for these two packages, no provide conflict is present and it become possible to switch between packages without purging the other.

There are two ways to implement this. Either one can specify the definition of the virtual facility in /etc/insserv.conf, or in files in /etc/insserv.conf.d/. The file /etc/insserv.conf is used for the LSB defined virtual facilies, while Debian specific ones should be defined in package specific files in the /etc/insserv.conf.d/ directory.

For example, postfix could add a file /etc/insserv.conf.d/postfix with this content

$mail-transport-agent postfix

And xmail could add a similar file /etc/insserv.conf.d/xmail with this content

$mail-transport-agent xmail

The resulting definition for $mail-transport-agent will be both postfix and xmail, and all script having a relationship on $mail-transport-agent will have a relationship to both postfix and xmail, and any other package providing their own addition to the virtual facility.