Package: debian-policy Version: 2.5.0.0 The policy manual still talks about providing scripts so that other programs may modify dpkg 'conffiles'. This badly conflicts with both the conffile mechanism and current accepted practice. I propose the following changes to paragraphs 4-6 of section 4.7.
==== Old version ========================================================= If two or more packages use the same configuration file, one of these packages has to be defined as _owner_ of the configuration file, i.e., it has to list the file as `conffile' and has to provide a program that modifies the configuration file. The other packages have to depend on the _owner_ package and use that program to update the configuration file. Sometimes it's appropriate to build a new package, which just provides the basic _infrastructure_ for the other packages and which manages the shared configuration files. (Check out the `sgml-base' package as an example.) ==== New Version ========================================================= If two or more packages use the same configuration file, one of these packages has to be defined as _owner_ of the configuration file, i.e., it has to list the file as `conffile'. The other packages have to depend on the owner package. 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 done: a) do _not_ distribute the configuration file with the any of the related packages. Instead, the postinst script of the core related packages should ensure that the file is created (e.g. by copying an base version from /usr/doc/<pkg>/example, or by an interactive script). Of course, the creation should only occur if there is no existing configuration file. b) do _not_ mark the configuration file as a dpkg 'conffile'. c) the core package should provide a program that the other packages may use to modify the configuration file. d) the related packages have to depend on the core package, and use the provided program to make any modifications to the configuration file Sometimes it's appropriate to build a new package, which just provides the basic _infrastructure_ for the other packages and which manages the shared configuration files. (Check out the `sgml-base' package as an example.) ========================================================================== Steve Greenland