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

Re: Debian Configuration Packaging System

Timothy G Abbott <tabbott <at> MIT.EDU> writes:

> Anders Kaseorg and I created a system of CDBS modules (which we've 
> tentatively packaged as the config-package-dev package) for creating 
> Debian configuration packages.  By configuration packages, we mean 
> packages that configure an existing Debian system by applying dpkg-divert 
> to configuration files.  Our configuration package system makes the 
> process of creating configuration packages efficient.

Uh, you can dpkg-divert conffiles, but not generally configuration files, since
many won't even be known to dpkg.  I must admit I'm a bit sceptical about a
proposal on configuration, written by someone who lets this important
distinction slip by... 

Later on you wrote something about symlinks, do you use them, too?  Here's one
more complication: While I think that "preserve local changes" also includes the
symlink-or-not state of a file and thus must be respected by maintainer scripts,
I do not think that this is usually done.  In particular, every configuration
file handling that was first written for sarge (where sed -i wouldn't work)
probably used tempfiles and mv, and I have not seen a single case where the
script checked whether it was dealing with a symlink.

> Since this package is adding a new feature to Debian itself, we think our 
> system should be discussed before we submit an ITP bug.  There are some 
> changes to Debian that would enhance the effectiveness of this system, 
> (such as having all packages include md5sums and making ucf interact well 
> with dpkg-divert'ed configuration files), which should perhaps be 
> discussed in this context as well.

It's not just ucf, it's also perfectly possible that a maintainer script edits a
configuration file, e.g. after debconf prompting, in order to take over user
changes from a related package's configuration file, or similar. 

How do you deal with that?

Regards, Frank

Reply to: