init: API

Paul A Houle ph18 at cornell.edu
Thu Nov 17 20:39:14 UTC 2005


Joe Desbonnet wrote:

>XML would be the obvious choice (it is both human and machine
>readable), but I did see a recent post here that requested "anything
>but XML". I can understand why someone would not like XML (not easy to
>read, difficult to edit with vi without breaking the file). But one of
>the things I hate about unix like OSes is that every application has a
>different config file format, making writing admin tools very
>difficult.
>
>  
>
    I second "everything but XML",  for the most part.

    Some people I work with developed a library that works with a 
commercial CMS,  that hooks up sites in the CMS with a campus-wide 
authentication system.  This has an XML configuration file -- when we 
add a new site,  we only need to change one parameter...  which is 
entered twice into a 50-line block of XML.  We continuously have 
problems when somebody edits the file,  doesn't respect tag nesting,  
and the system breaks.

    Contrast this to Apache configuration files,  where I can write a 
script that (i) creates a new configuration file for a virtual host,  
and (ii) adds something at the end of the main conf file to activate the 
vhost,  and (iii) kicks the server...  You don't even need perl to do 
this,  I can do this in bash without looking at the man page.

    I suppose that Boy Wonder and Data Dog can spend three days to write 
a 3000 line program that does the same thing with libxml,  or you could 
bring in a consultant to do it with XSLT,  but I'm left feeling that 
this is a step back.  If I'm going to do that,  I might as well program 
for Windows -- I hear Visual Basic has a better visual app builder than 
anything that runs on Linux...

>If not XML then what? Obviously the project owner gets to choose, but
>in the absence of personal preferences I think it make sense for
>Fedora Core project to make a recommendation so as to make the
>development of admin tools easier.
>
>  
>
    It's not just a matter of XML -- XML answers a lot of tough 
questions (foreign character coding,  quoting,  container relationships) 
but it doesn't answer all of them.  You'd have to create an XML dialect 
(schema) for encoding configuration information,  which is probably 
going to be key-value pairs.  You also need some system for describing 
the ontology of your conf files....  It ends up sound a lot like the 
Windows Registry or...  gconf!

    (Stated more positively,  people who want a system where it's easy 
to configure things graphically ought to bark up the gconf tree)

    RH/Fedora could certainly change the conf files for things they are 
responsible for (XML /etc/sysconfig,  for instance,)   but they can't do 
much to change the behavior of other developers.  Just try getting the 
Apache team to change the organization,  never mind the format,  of the 
default configuration files...




More information about the devel mailing list