[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: