Congratulations. This looks pretty cool. Running code! I've linked it into my unix config page.
I have some quick comments.
* your overview could be improved by describing how hiveconf is different from gconf and the windows registry (and for that matter linuxconf, webmin, dotfile, etc.)
* I think samba is a great place to start. Presumably you could at some point make up an unofficial patch which implements hiveconf as an option for samba. The simplest such patch might be just a symlink from smb.conf to smb.hconf!
Samba has some things which are pretty interwoven and hairy to configure, for example guest access to printers but with security = user. It owuld be interesting to explore how metadata might be able to help novice and or expert sysadmins to navigate the samba config.
* .hconf seems a bit clumsy to me as a file extension. .hiv ? But no matter, it's your right as coder to choose such aesthetics.
* one issue that could be important early on is how a user can determine whether hiveconf config data is being used by an application. There's nothing more frustrating that configuring a file only to have an application ignore it. A GUI could display a hiveconf logo or text or something when hiveconf is activated. But a daemon or console program would need some other way. It might output hiveconf info during a --version. Or a daemon might stamp a daemonname.hiv.run file with a date when the file was last read (you don't want to change the config file itself unless actual app config changes have been made). Or hiveconf could log when a particular config file was accessed and by which process. Or something. Stuff to think about.
This last issue is presumably where hiveconf might diverge from gconf, which (from afar) seems more oriented towards GUI apps.
All the best for your project!
Cheers, Matthew.
On Mon, 23 Jun 2003, Peter Astrand wrote:
I am happy to announce the first release of "Hiveconf", a UNIX configuration framework. Hiveconf is a system for storing configuration data (key-value pairs). The purpose is similiar to the Windows registry or GConf. Configuration data can be retrieved and modifyed via a simple API. The data is stored using different "backends". The default backend is using a text file format, similiar to smb.conf or Windows .INI files.
This first release includes a Python library implementation, and documentation of how the system is intended to work. Lot of work remains to be done, but the current implementation is mature enough to demonstrate the basic principles.
The implementation also includes a command-line tool ("hivetool"), which might be a useful tool for configuring any software that uses a Hiveconf compatible file format. This includes Samba and many KDE applications.
On the Hiveconf homepage, http://www.lysator.liu.se/~astrand/projects/hiveconf/, you will find links to the mailing list, CVS repository etc.
Comments are appreciated.
-- Peter Åstrand www.thinlinc.com Cendio Systems www.cendio.se Teknikringen 3 Phone: +46-13-21 46 00 583 30 Linköping