SYSCONFTOOL |
sysconftool
is a development utility that helps to install
application configuration files. sysconftool
allows an existing
application to be upgraded without losing the older version's configuration
settings.
sysconftool
was originally developed to aid in the hellish
task of upgrading Courier, which
has many configuration files with many different settings. The Standard
Operating Procedure (SOP) was to install a default set of configuration files
during an upgrade. New versions often include new and modified options. By
keeping configuration files from the previous version of Courier there's a
risk that nothing will work any more, due to the absence of a new, required,
configuration setting.
Thus came sysconftool
. sysconftool
is available
to be used by any application that is packaged by autoconf, and
automake.
There's nothing in sysconftool
itself that really ties it to
autoconf and automake, it can be used just as well with a home-cooked
configuration and installation script, except that you'll have to do some
extra work by yourself.
The old way was to install a configuration file,
$sysconfdir/$filename
, in a straight manner. The new way is to
install $sysconfdir/$filename.dist
, and run the
sysconftool
script. The script reads
$filename.dist
, the existing $filename
configuration file, then creates a new $filename
configuration
file that keeps the previous version's configuration, as long as it is
compatible with the new version. This logic is driven by specially formatted
keywords in $filename.dist
that direct sysconftool which
configuration settings from the previous version of the application are safe
to keep.
A more detailed explanation of what sysconftool
does, and why
you might want to use it, can be found in the online version of
sysconftool
's manual pages:
The current version of sysconftool
can be downloaded from
http://www.courier-mta.org/download.php#sysconftool
.
To source code for sysconftool
can also be grabbed from
anonymous CVS:
CVSROOT=:pserver:anonymous@cvs.courier.sourceforge.net:/cvsroot/courier export CVSROOT cvs login cvs -z3 checkout sysconftool
NOTE: The CVS repository only includes configure.in
and
Makefile.am
. All the other files (including
sysconftool
's own configure
script) must be
generated by your autoconf
and automake
. There's a
very convenient script that you will get from CVS called
autobloat
, and it will actually do it for you.
sysconftool
is such a minor utility that I don't think it
needs to have an entire mailing list dedicated to sysconftool's
existence. If needed, questions about sysconftool
can be sent to
the general courier-users
mailing list. You should subscribe to this list first, most replies will not
be CCed back to the sender.