(debian-policy.info)Sharing configuration files


Next: User configuration files “dotfiles” Prev: Behavior Up: Configuration files
Enter node , (file) or (file)node

10.7.4 Sharing configuration files
----------------------------------

If two or more packages use the same configuration file and it is
reasonable for both to be installed at the same time, one of these
packages must be defined as `owner' of the configuration file, i.e., it
will be the package which handles that file as a configuration file.
Other packages that use the configuration file must depend on the owning
package if they require the configuration file to operate.  If the other
package will use the configuration file if present, but is capable of
operating without it, no dependency need be declared.

If it is desirable for two or more related packages to share a
configuration file `and' for all of the related packages to be able to
modify that configuration file, then the following should be done:

  1. One of the related packages (the “owning” package) will manage the
     configuration file with maintainer scripts as described in the
     previous section.

  2. The owning package should also provide a program that the other
     packages may use to modify the configuration file.

  3. The related packages must use the provided program to make any
     desired modifications to the configuration file.  They should
     either depend on the core package to guarantee that the
     configuration modifier program is available or accept gracefully
     that they cannot modify the configuration file if it is not.  (This
     is in addition to the fact that the configuration file may not even
     be present in the latter scenario.)

Sometimes it’s appropriate to create a new package which provides the
basic infrastructure for the other packages and which manages the shared
configuration files.  (The ‘sgml-base’ package is a good example.)

If the configuration file cannot be shared as described above, the
packages must be marked as conflicting with each other.  Two packages
that specify the same file as a ‘conffile’ must conflict.  This is an
instance of the general rule about not sharing files.  Neither
alternatives nor diversions are likely to be appropriate in this case;
in particular, ‘dpkg’ does not handle diverted ‘conffile’s well.

When two packages both declare the same ‘conffile’, they may see
left-over configuration files from each other even though they conflict
with each other.  If a user removes (without purging) one of the
packages and installs the other, the new package will take over the
‘conffile’ from the old package.  If the file was modified by the user,
it will be treated the same as any other locally modified ‘conffile’
during an upgrade.

The maintainer scripts must not alter a ‘conffile’ of `any' package,
including the one the scripts belong to.


automatically generated by info2www version 1.2.2.9