[Rhythmbox-devel] Python bindings are broken when you don't have Track Transfer


When you compile Rhythmbox (from SVN, any recent revision) without Track
Transfer support (ENABLE_TRACK_TRANSFER symbol in C sources), the python
bindings will still assume that the function
'rb_removable_media_manager_queue_transfer' exists (see
bindings/python/rb.defs and it being called in bindings/python/rb.override).
When the main program (rhythmbox itself) is being compiled, it will complain
that the bindings can't find this symbol (which is correct, since we use
#ifdef to throw it out from the source).

It seems that's the only case when a feature not present cause a function to
"disappear" from the code. I'm willing to patch this thing, but I'm not sure
what would be the right way to do it:

* Change the #ifdef so the function still exists but do nothing.
* Change the rb.override to include #ifdef there and don't call the
  missing function when don't have TRACK_TRANSFER.
* Look for a way to make the bindings ignore somehow the function when
  the symbol ENABLE_TRACK_TRANSFER doesn't exist. (Python .def files have
  the "ignore-glob" section, but I really have no idea how to wire this
  with the feature being enable or not, maybe there are other ways)
* Another idea?

PS: The short-term solution was just installing gnome-media-devel package to
enable Track Transfer :-)

 Caio Marcelo

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]