[66] in athena10

home help back first fref pref prev next nref lref last post

Making our CDBS modules portable to other sites

daemon@ATHENA.MIT.EDU (Tim Abbott)
Wed Jan 30 03:51:15 2008

Date: Wed, 30 Jan 2008 03:50:33 -0500 (EST)
From: Tim Abbott <tabbott@MIT.EDU>
To: athena10@MIT.EDU
Message-ID: <Pine.LNX.4.64L.0801300252060.23541@yaz-pistachio.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

I've been thinking about the problem of making our system for making 
Debian configuration packages (i.e. our CDBS modules) useful to other 
organizations.  The changes that I think would need to be done would 
include:

1) adding DEBATHENA_DIVERT_SUFFIX=.debathena to all our config package 
rules files, and making DEBATHENA_DIVERT_SUFFIX default to something more 
generically appropriate like .divert in debathena-divert.mk.

2) Renaming all the variables that start with DEBATHENA_ to start with 
DEBIAN_, to fit in with the other CDBS modules.  So, 
DEBATHENA_DIVERT_SUFFIX would become DEBIAN_DIVERT_SUFFIX.  This step 
would involve changing all of our packagings to use the new variable 
names, and thus only makes sense to do once our system ends up in Debian 
upstream.

3) Doing something intelligent if someone tries to install two different 
configuration packages that divert and expect to control a configuration 
file (say, /etc/ldap/ldap.conf).  One idea is to try to use the 
update-alternatives mechanism to allow users to select which such 
configuration file they get.  This probably can only lead to suffering, 
however, because when designing configuration packages one generally 
assumes some coupling between the packages that may be broken by this. 
The strategy that I currently prefer is to automatically add Provides: and 
Conflicts: lines for some encoding into valid package name characters of 
the diverted filename, i.e. add to anything diverting /etc/ldap/ldap.conf 
through our system something like:

Provides: configures-etc++ldap++ldap.conf
Conflicts: configures-etc++ldap++ldap.conf

(I have a general injective encoding in mind).  This would mean that any 
two packages from different sites using our system would conflict with 
each other if and only if they wanted to configure the same file.


I'd appreciate any comments on this (relatively long-term) plan.

 	-Tim Abbott

home help back first fref pref prev next nref lref last post