On Tue, 26 Feb 2008, Ian Jackson wrote:

Tim Abbott writes ("Re: Debian Configuration Packaging System"):
 applying dpkg-divert to configuration files.

Yikes.

At the moment, there are no choices for doing site configuration that are general enough to change arbitrary configuration options and don't destroy whatever configuration state the machine had before configuring it (as well as suffering from a version of every bad interaction with existing maintainer scripts that our system has).

All of the important problems with our dpkg-divert based configuration package system that have been discussed in this forum are problems for any configuration mechanism other than debconf preseeding. Debconf preseeding is unacceptable for site configuration because it is insufficiently general (often things need to be configured that are not set up as debconf options).

Any system that is not based on debconf pre-seeding (or maintaining a fork of all the relevant packages containing the relevant configuration files, which is unmaintainable) will have all the problems with maintainer scripts that our system has. Further, any configuration system that does not use dpkg-divert will have to fight with dpkg over control of conffiles (a problem that our system does not have).

It turns out that our system also works for almost all the other configuration files that we've wanted to change (in particular, those whose packages don't overwrite manual changes with answers from the debconf database on package upgrades, something the Debian Policy Manual forbids anyway).


So, anything attempting to achieve the functionality we want has to use dpkg-divert, and I think the best way to remove the problems with dealing with configuration files that are not conffiles should probably involve making maintainer scripts that do overwrite existing configuration files follow diversions when doing so (though one mechanism or another).

Tim Abbott writes ("Re: Debian Configuration Packaging System"):
I'll note that we wrap our dpkg-divert calls with a bunch of
error-handling code that we found quite important for correctly recovering
from  people hitting ^C in the middle of installation (see
<http://debathena.mit.edu/config-packages/code/config-package-dev-4.2/divert.sh.in>
for the code).  Earlier iterations that did not do this were plagued with
problems whenever there were errors in installation.

Yikes.

Those earlier iterations date to 2004 and were never deployed beyond a testing environment. The particular shell code we're using now has been basically unchanged since we wrote it back in Summer 2006, and has not been a problem for us since.

        -Tim Abbott



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to