Codebase list cdebconf / lintian-fixes/main doc / design.txt
lintian-fixes/main

Tree @lintian-fixes/main (Download .tar.gz)

design.txt @lintian-fixes/mainraw · history · blame

C-DebConf
---------

This is rewrite of DebConf in C. The main design goals are:
1) A smaller implementation that does not depend on perl
2) A modular, extensible implementation that takes into account the flexibility
   afforded by the Debian configuration management specification [*1]

Given the above goals, the basic strategy is to adopt an object oriented design
so that new modules (for different frontends and backends) can be "plugged
in" without bloating the basic system.

The system consists of the following objects:
* Template - definition of a piece of configuration info
* Question - instantiation of a template -- with answer from the user, etc
* Frontend - UI that interacts with the user to get answers to questions
* TemplateDb - database for storing template data
* QuestionDb - database for storing configuration data ("questions")
* ConfModule - interface to config script

This closely follows the existing object hierarchy in perl-DebConf, though
the actual interfaces between the modules will not be exactly the same.

The "Frontend" and "Database" objects are "pluggable", and are configurable
via a configuration file. This follows the spirit of the specification,
although the current implementation aims to be somewhat less ambitious.

[*1] _Configuration Management_, revision 6.2 (draft) by Wichert Akkerman
     and Joey Hess