Re: Debian way de modifier un fichier de config d'un autre paquet
Ludovic Rousseau wrote:
> J'ai empaqueter un driver (gp-core) [1] qui est utilisé par un driver
> d'asbtraction supérieure (pcscd) [2].
>
> Mon driver gp-core doit indiquer sa présence en modifiant le fichier de
> configuration /etc/reader.conf qui appartient à l'autre paquet pcscd en
> incluant des lignes du genre :
>
> FRIENDLYNAME "Gemplus GemPC410"
> DEVICENAME GEMCORE
> LIBPATH /usr/lib/pcsc/drivers/libgp_core.so.2.0
> CHANNELID 0x0103F8
>
> Ma question est : comment faire proprement l'ajout de ces lignes à
> l'installation du paquet et l'effacement de ces même lignes lorsque le
> paquet est enlevé
Attention, il n'est pas permi pour un paquet de modifier
directement le fichier de configuration d'un autre paquet:
11.7.4. Sharing configuration files
-----------------------------------
Packages which specify the same file as a `conffile' must be tagged as
_conflicting_ with each other. (This is an instance of the general
rule about not sharing files. Note that neither alternatives nor
diversions are likely to be appropriate in this case; in particular,
`dpkg' does not handle diverted `conffile's well.)
The maintainer scripts must not alter a `conffile' of _any_ package,
including the one the scripts belong to.
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.)
Reply to: