Congratulations. This looks pretty cool. Running code! I've linked it into my unix config page.
Great. Where is this web 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.)
The OpenOffice presentation hiveconf.sxi describes some of this.
- 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!
Have you found out about /etc/hiveconf.d/samba.hconf? It makes it possible to use "hivetool" for reading/setting the Samba settings.
Making Samba use the Hiveconf API would be difficult right now, since there is not C library yet.
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.
Yes, interesting.
- .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.
Actually, the files were called ".hive" earlier, but the feedback I got was that this was a bad name. One advantage of .hconf is that it gives a hint of that the file is a configuration file.
This last issue is presumably where hiveconf might diverge from gconf, which (from afar) seems more oriented towards GUI apps.
Yes. Also, it has lots of dependencies to GNOME2:
$ ldd /usr/lib/libgconf-2.so.4 libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x42ce2000) libm.so.6 => /lib/tls/libm.so.6 (0x41152000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x427ff000) libdl.so.2 => /lib/libdl.so.2 (0x4114d000) liblinc.so.1 => /usr/lib/liblinc.so.1 (0x42d26000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x42505000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x42957000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x42472000) libc.so.6 => /lib/tls/libc.so.6 (0x41018000) libpopt.so.0 => /usr/lib/libpopt.so.0 (0x41e8f000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x412af000)
All the best for your project!
Thanks.