XML/XSD based configuration files.
Ian Reinhart Geiser
ian at geiseri.com
Tue Dec 7 15:38:22 GMT 2004
On Tuesday 07 December 2004 09:47 am, Waldo Bastian wrote:
> From the buzzword-department.
>
> See http://bugs.kde.org/show_bug.cgi?id=94611
>
> Anyone interested in looking into this? I most certainly do not want to
> *switch* configuration formats, but I think it's a viable strategy to offer
> an alternative configuration format to our users with great marketing
> potential.
The ability to swap out KConfig back ends is technically possible. I have been
playing with the idea of a dbm based KConfig backend to store user config
files (yes yes readable config files blah blah, our parser may be fast, but
is it faster than not parsing at all? This i want to know.).
At any rate, basicly the rubbing points come down to this:
1) how do we make a plugin interface that can work to resolve and load plugins
before kde is started. I have had a big problem with this part because I
don't understand KTrader enough to attack this.
2) KConfig seems optimised for reading and writing entire files. This makes
doing a sql/ldap/your mamas favorite directory server backends quite
difficult. Now this should be trivial to fix for KDE 4, and with a few minor
adjustments KDE could have better support for things like NDS than Winders.
Think KDE KIOSK + NDS based config objects with ACLS = Cross platform desktop
control. Makes NTs profile management look like a real booger ;) I could also
be missing ways of changing this behavior because the KConfig source is quite
odd in the way things are broken up.
3) Once all of the merging takes place we need to chose a back end that will
be the writer, since I don't see a good way to see the format of the key once
it is merged. This should not be much an issue though because ideally the
user will be only changing local entries. Globals would be the only corner
case... Its hard, but not impossible to have more than one back end merge
its map with another one, but I don't have a clear idea on what the overhead
of that would be.... I am assuming linear cause you have to iterate over the
maps and insert the keys into the master map, not sure though ideally thats
an implementation detail ;)
Now with wide eyes to the future there is another plan. Zack and I have been
kicking around the idea of using DCOP or some sort of IPC (xshm, dbus, your
mamas favorite IPC implementation) to keep a central config server, and we
can read entries individually from the service as we want them. This would
also make pushing out config changes trivial because we could push out
individual keys. I mean do we really need to parse kwriterc once for every
text document I have open? I wont even count the rc files kdebugrc and any
other global config files that EVERY kde application shares. If I anyone
cares to throw out some banter on context switches feel free to show me a
test case where the context switch is more overhead than parsing the files
over an over again from a few separate apps.
At any rate this is my dribble... I am sure Waldo and David have some good
answers for 1-3 and as for my plan, feel free to flame, I don't plan to
debate it until its implemented.
Cheers
-ian reinhart geiser
--
------(Ian Reinhart Geiser)-----<geiseri at yahoo.com>-----
The sun was born, and so it shall die, so only shadows comfort me...
-VNV Nation, Further
More information about the kde-core-devel
mailing list