Open Source closed minds.
I am an OpenSource apologist, I use Linux, I program Perl, I use inkscape, I have an opensource gnome application, I write GPL software and OpenSource perl modules.
Meanwhile, I see a lot of closed minds in the open-source community, which makes project fail. In the extended entry for this post you can see my fight with two different open-source communities (Perl and Gtk+/Gnome) to make them interact, and the results I had.
I am writting an hybrid application. It includes Perl modules, and it includes C applications. I need a common configuration file format to be read by C applications, and created and changed by Perl modules.
Instead of re-inventing the whell, why not just re-use software? Well, I searched first for a Perl module for configuration files and found Config::Simple, an interesting module which reads three kind of configuration file formats. One of those is a kind of .ini files (.ini subset).
Then, noticed that glib (the utility library for Gtk+) includes a parser for configuration files very similar to .ini files. In fact, I think they are more powerful than .ini files, and is a kind of standard freedesktop is trying to promote to join efforts between Kde, Gnome and other desktop applications (good stuff).
Main problem is that while .ini files support both '#' and ';' as comment characters, Config::Simple uses ';' when wrtting down the config information. And, this is a problem because the standard freedesktop is trying to promote just understands '#' as comment character.
Then, my fight started.
Mailed Config::Simple author asking for changing from ';' to '#' when saving the file (both are supported when loading, so, no big deal). Got no answer. Mailed him again with a patch, no answer again.
Ok, then. Let's fight the other side.
Filled a bug report (feature request) into glib bugzilla asking for supporting ';' as comment character, as it is supported by .ini files. Their answer is that the parser in glib does not intent to be a genral .ini parser but a parser just for the specification freedesktop is promoting.
Now, why these glib closed mind does not understand that a simple change like this can make glib usable in a LOT more situations? Is just, erm.... four or five characters in the C source code...
Lost the fight. I need to hack to solve the problem (adding an intermediate conversion) or just drop one of the tools. As I am using glib for other things (yes, glib is nice in its globality) I am dropping Config::Simple and implementing a simple parser (for a much simpler configuration file format) to include in my application.
Leave a comment