rhclib - Red Hat configuration library - config tool engine - admin lib
=======================================================================

Can be used as general lib to read, write and change config files and is
released under the GPL.

http://people.redhat.com/~laroche/rhclib
ftp://ftp.redhat.de/pub/rh-addons/config-tool/
mail: config-tools@redhat.de

general design goals:
---------------------
- GUI independent - could support X11, web and text console
- robust and race-condition free - no halfway written files
- [network-transparent - no, not yet!]
- [transaction based (?? really ??) - no!]
- backup and rollback support
- should work with native config files on disk and should allow admins to
  edit files with an editor without loosing these changes later
- add a small lib that allows as many as possible apps to read their
  config file from an LDAP server instead of the local disk
  this will be implemented in an extra lib
- a module interface that is common for kcontrol and control-center for
  the configuration applets


more detailed design comments:
==============================

- we don't yet have a plan on how sync different revisions of config files.
  just adding revision numbers is not enough and in general we should look
  at using a standard tool for this. rsync-protocol or bit-keeper?
  A smaller solution would be to select the file last modified and try to
  sync several locations immediately in the config engine.
  ?? comments on this problem ??
- Building of shared libs is disabled since we would then have to
  package each of the newt/qt/gtk/gnome shared libs into their own
  rpm package. Not a ideal solution, but working ok...
- how files are written:
	- uid/gid/perms are preserved
	- write temp files and rename at the end
	- make backup files
- many things are here recoded instead of using glib. I don't like some
  glib codings, though we might do unnecessary work now...
- low-level routines just return -1 on error and set errno. mid-level
  routines should have some stack of error messages.


TODO:
=====
- add more parsers
- change API and make it more consistent
- add comments to rhutil.h
- write some html docu
- finish better logging system: syslog/file, fine-grained
- come up with some generic UI dialog menues
- code support for a stack of error messages like in debian apt.
- ReadFile() inconsistency noted by Tim Waugh
- add generic http/ftp/ldap support from rpmio/apt


Authors:
========

Harald Hoyer <Harald.Hoyer@redhat.de>
Bernhard Rosenkraenzer <Bernhard.Rosenkraenzer@redhat.de>
Florian La Roche <Florian.LaRoche@redhat.de>

