Exams are over, so I started playing around with the database. I noted
my current proposal (and all other suggestions) have a bit of a problem.
We agreed that we need to have something like a debian/control entry for
each variable that is stored in the database. An example:
Variable: hostname
Default: debian
Type: hostname
Description: hostname of this computer
This is the fully qualified hostname of your computer.
Each package should list all the variables it uses in a file
debian/vars.
Now the problem: we don't know in advance which variables we need. An
example: take a server with 3 virtual domains. Each domain needs its own
configuration. I propose we add a new level of indirection: we create a
list of variable-templates, with the same syntax as shown above, and a
seperate list that maps variables to templates. Then we add a command
somewhere to create a new variable in the database using a predefined
template. That means we can do things like:
Template: alias-file
Default: /etc/aliases
Type: string
Description: location of aliases-file for your maildomain
The location where the aliases-file for a maildomain is stored.
For single-domain systems this will usually be /etc/aliases. For
multi-domain system you can define this for each domain
seperately.
And then register the actual variable as follows:
mail-transfer-agent/alias-file alias-file
This will create a variable mail-transfer-agent/alias-file using the
template alias-file, which will be used by all maildomains unless we
override it. Now we add a new variable for a specific domain:
dpkg-db createvar mail-transfer-agent/my.new.domain/alias-file alias-file
Wichert.
--
==============================================================================
This combination of bytes forms a message written to you by Wichert Akkerman.
E-Mail: wakkerma@cs.leidenuniv.nl
WWW: http://www.wi.leidenuniv.nl/~wichert/
Attachment:
pgp8ykHCBObAD.pgp
Description: PGP signature