[Nix-dev] Python bindings to librsvg or gnome-desktop

Alexander Foremny alexanderforemny at googlemail.com
Tue Jun 19 10:51:07 CEST 2012


Hello,

I am trying to create a Nix expression for solfege [1] and got it
building fine using the  Nix expression available as Gist [2].
However, running the application fails with the following error,
cryptographic hashes replaced by dots.

> Traceback (most recent call last):
>   File "/nix/store/...-solfege-3.20.4/share/solfege/solfege/startup.py", line 159, in start_gui
>     solfege.win = w = MainWin(options, datadir)
>   File "/nix/store/...-solfege-3.20.4/share/solfege/solfege/mainwin.py", line 119, in __init__
>     stock.SolfegeIconFactory(self, datadir)
>   File "/nix/store/...-solfege-3.20.4/share/solfege/solfege/stock.py", line 71, in __init__
>     self.add_icons(d)
>   File "/nix/store/...-solfege-3.20.4/share/solfege/solfege/stock.py", line 33, in add_icons
>     iconset = gtk.IconSet(gtk.gdk.pixbuf_new_from_file(os.path.join(self.datadir, filename)))
> glib.GError: Couldn't recognize the image file format for file '/nix/store/..-solfege-3.20.4/share/solfege/graphics/solfege.svg'

This issue has been addressed [3] and appears to be an issue not
caused by solfege but by a missing python dependency [4]. It is solved
by making solfege depend on python-rsvg. However, I cannot find this
package in Nixpkgs. Further research revealed that this binding is now
part of the Python bindings to Gnome [5]. As observable in the current
NIx expression I added the dependency gnome_python hoping this would
solve the problem. However, it does not.

Is it correct that gnome_python are the Python bindings to Gnome
Desktop which should contain pyrsvg? If not, is pyrsvg already
packaged? If not, where can I find the sources of python-gnome-desktop
and where would be a good place to place a Nix expression for this?

Or could it be the case that this functionality should be supplied by
pygtk, but this (optional?) feature is disabled due to missing
dependencies?

Since I am already at it, why are some packages referenced by
pythonPackages.{package} and some solely by {package}? For instance,
the python sqlite3 module appears to be pythonPackages.sqlite3 whereas
python bindings to GTK+ are not available as pythonPackages.gtk or
pythonPackages.pygtk but as pygtk.

When creating a Nix expression that depends on python packages, Is it
more desirable to depend on pythonPackages or the inherit the
pythonPackages.* subpackages as necessary?

Regards,
Alexander Foremny


[1] http://solfege.org
[2] https://gist.github.com/2953069
[3] http://code.google.com/p/solfege/issues/detail?id=255
[4] https://bugs.launchpad.net/ubuntu/+source/solfege/+bug/1004485
[5] http://www.rittau.org/blog/20060418-00


More information about the nix-dev mailing list