gconf dependency and a build system

Asked by Jan M.

Python gconf bindings appear to be the only dependency that make arista not desktop-agnostic. Perhaps it could be dropped? Ideally, could some kind of build system (such as http://code.google.com/p/waf/ ) be used to let users and packagers make decisions regarding dependencies?

Question information

Language:
English Edit question
Status:
Solved
For:
Arista Transcoder Edit question
Assignee:
No assignee Edit question
Solved by:
Daniel G. Taylor
Solved:
Last query:
Last reply:
Revision history for this message
Daniel G. Taylor (danielgtaylor) said :
#1

I'll consider it if a decent alternative to gconf is proposed. Do you have any suggestions? I'll do a bit of googling about configuration systems, but at the moment it seems to be the best for the job. Note that Arista also depends on gio for finding icons for input sources based on your current icon theme in GNOME.

One of the advantages of gconf at the moment is that the updates happen in real time, e.g. open gconf-editor and change some settings under /apps/arista/ and they will update immediately in the GUI. I really like the MVC approach for preferences and using e.g. flat files will give that up.

Another thing to remember is that there is nothing stopping you from using gconf from XFCE, KDE, Fluxbox, etc.

In terms of a build system, perhaps this can be added to the distutils-based setup.py easily without introducing another system?

Revision history for this message
Jan M. (fijam7) said :
#2

Frankly, I am not an expert when it comes to configuration system I can, however, give you some feedback from a user's standpoint. As I am Archlinux user myself, all the information below are relevant to that distribution.

GIO appears to be a part of glib2, which is a popular (99.3% of users based on 5100 submissions) package with just a few dependencies (pcre) and I have absolutely no problem with that. python-gconf bindings, however, are supplied by a gnome-python package, which through its dependencies on libgnomeui and pyorbit fetches over 15 gnome-specific packages. Even setting this particular situation aside, arista would be the only package in my Xfce-based environment depending on gconf (and its own subset of dependencies).

The xfce-specific analogue of gconf appears to be xfconf but I doubt if supporting all possible configuration systems is the way to go. Some gnome-specific applications like for example gvfs can be build with --disable-gconf switch, I assume this causes the application to store its configuration data in plain files. While I see why you would like to avoid this, perhaps it might be a viable alternative to cover different environments.

As for the build system, by all means go with the one you are most comfortable with :)

Revision history for this message
Best Daniel G. Taylor (danielgtaylor) said :
#3

Alright, I've spent a while looking into this. You are right, from your perspective it does suck to have to install all those dependencies. I have openend a blueprint for making gconf optional and falling back to a simple file-based configuration system. See:

https://blueprints.launchpad.net/arista/+spec/new-config-system

xfconf looks pretty nice and provides a wonderful DBus interface so you need no extra libraries, but it's pretty specific to XFCE. I've found a patch for GConf that does the same, but it seems nobody is using it yet; perhaps in the future it will all use DBus and be much easier. Until then I think a simple file-based fallback is best.

I've marked the blueprint as normal priority with no timeframe for implementation. Any help is of course appreciated and I'll get to it when I can, hopefully before the 1.0 release.

Revision history for this message
Jan M. (fijam7) said :
#4

Thanks! I will be following your project closely, I find it a great addition to the software ecosystem.

Revision history for this message
Jan M. (fijam7) said :
#5

Thanks Daniel G. Taylor, that solved my question.