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

Re: [desktop] Unix configuration nightmare

Branden Robinson <branden@debian.org> wrote:
> * hates and fears text config files and will not touch them
> * will read and edit a text config file

> But there is such a third group:

> * will edit a text config file, but only given very precise and explicit
>  instructions -- will not read manpages, will not read the config file
>  itself, has tunnel vision, will only take action on suggestions like
>  "right after the line that says Driver "mga" in your XFree config
>  file[sic], add a line that says Option "WhizzBang" and you'll be able
>  to use the special Tomb Raider hack that let you play Lara Croft
>  without any clothes on, and adds lots of mirrors to the level maps"

This one not only sent me rolling on the floor but managed to amuse
my sister, too, although she'snot interested in computer stuff. Please
keep it up.

> So, like I said, it's my fault.  I didn't think many such people
> existed.  They do, and because they are numerous it's my responsibility
> as a Debian package maintainer to accomodate their needs.  What you want
> to do will still be possible, but you'll have to use interdiff or
> something.  An easy thing will be made hard -- or at least tedious -- so
> that a different easy thing can be made even easier than it was, because
> even "easy" was too hard for some people.

We had the same problem with debconfization of exim v4 but could not
use your original workaround to allow user-modifications, because you
cannot have sections two times in exim.conf. That's when I came up with
the scheme of saving the results of the debconf-questions to a simple
parseable variable=value file, and automatically generating the final
configuration-file in /var/lib/exim4 from this file and the
dpkg-conffile /etc/exim4/exim4.conf.template with a simple script
update-exim4.conf(8). The template file is a normal exim.conf file
with additional magic-strings that are replaced by the update script
with the values from the debconf-results file.

| hostlist relay_from_hosts = : ::::1 : DEBCONFrelay_netsDEBCONF
| qualify_domain = DEBCONFvisiblenameDEBCONF
| acl_smtp_rcpt = acl_check_rcpt
| never_users = root

Of course the user can put a file without the magic-strings in
/etc/exim4/exim4.conf.template and it'll be used unmodified.

This is a variation of your original system with some added value:
- correct debconf support, the file that is managed with debconf is
  simply parseable, so user modifications outside debconf are easy to
- /etc/exim4/exim4.conf.template has dpkg conffile managment, user
  modifications are easy to preserve.
- everthing in /etc/ can be edited.

Of course this scheme is bound to fail if our little tomb-raider
friend starts editing /var/lib/exim4/exim4.conf directly but I hope
that he simply won't find it because it is hidden in a non-standard
location.  And I am not sure if this might work X too, XF86Config has
a very complex structure.
              cu andreas
Hey, da ist ein Ballonautomat auf der Toilette!
Unofficial _Debian-packages_ of latest unstable _tin_

Reply to: