Hi Guillaume,
Yes! I finally got it to work ! But I had to make some more changes to the
codebase to get past certain stages.
I found how to disable some plugins, and in the end (for the time being) I
disabled these:
disabled_plugins = ['elisa-plugin-ipod', 'elisa-plugin-flickr',
'elisa-plugin-lirc', 'elisa-plugin-hal', 'elisa-plugin-avahi']
I noticed the on RHEL the avahi python bindings are inside the package
avahi-tools, but installing it would still make the plugin fail. More
about that later.
After doing that I got the following fatal error:
------
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/twisted/internet/gtk2reactor.py", line
226, in simulate
self.runUntilCurrent()
File "/usr/lib/python2.4/site-packages/twisted/internet/base.py", line 705,
in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/python2.4/site-packages/twisted/internet/task.py", line 251,
in _tick
result = iterator.next()
File "/usr/lib/python2.4/site-packages/elisa/core/manager.py", line 101, in
load_components_iter
dfr = plugin_registry.create_component(component_name)
--- <exception caught here> ---
File "/usr/lib/python2.4/site-packages/elisa/core/plugin_registry.py", line
940, in create_component
component_class = reflect.namedAny('%s.%s' % (module, klass))
File "/usr/lib/python2.4/site-packages/twisted/python/reflect.py", line 426,
in namedAny
topLevelPackage = _importAndCheckStack(trialname)
File "/usr/lib/python2.4/site-packages/twisted/python/reflect.py", line 377,
in _importAndCheckStack
return __import__(importName)
File
"/usr/lib/python2.4/site-packages/elisa/plugins/database/media_scanner.py",
line 40, in ?
from elisa.plugins.database.database_parser import DatabaseParser
File
"/usr/lib/python2.4/site-packages/elisa/plugins/database/database_parser.py",
line 27, in ?
from elisa.plugins.gstreamer.amp_master import GstMetadataAmpClient
File
"/usr/lib/python2.4/site-packages/elisa/plugins/gstreamer/amp_master.py", line
29, in ?
from elisa.plugins.gstreamer.gst_metadata import able_to_handle, \
File
"/usr/lib/python2.4/site-packages/elisa/plugins/gstreamer/gst_metadata.py",
line 35, in ?
from elisa.plugins.gstreamer.thumbnail import get_thumbnail_location
File "/usr/lib/python2.4/site-packages/elisa/plugins/gstreamer/thumbnail.py",
line 126, in ?
class PngImageSnapshotBin(ImageSnapshotMixIn, gst.Bin, Loggable):
File "/usr/lib/python2.4/site-packages/gtk-2.0/gobject/__init__.py", line 37,
in __init__
cls._type_register(cls.__dict__)
File "/usr/lib/python2.4/site-packages/gtk-2.0/gobject/__init__.py", line 49,
in _type_register
type_register(cls, namespace.get('__gtype_name__'))
exceptions.OverflowError: long int too large to convert to int (while
registering property 'width' for GType
'elisa+plugins+gstreamer+thumbnail+PngImageSnapshotBin')
------
If fixed this by changing elisa/plugins/gstreamer/thumbnail.py on line 51
and 53 into:
------
__gproperties__ = {
'width': (gobject.TYPE_UINT, 'width',
'Snapshot width', 16, (2**16) - 1, THUMBNAIL_SIZE,
gobject.PARAM_READWRITE),
'height': (gobject.TYPE_UINT, 'height',
'Snapshot height', 16, (2**16) - 1, THUMBNAIL_SIZE,
gobject.PARAM_READWRITE),
}
------
(2**31) - 1 works too, but for some reason (2**32) - 1 triggers python.
After that I got the following problem:
------
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/twisted/internet/gtk2reactor.py", line
186, in run
self.__run()
File "/usr/lib/python2.4/site-packages/twisted/internet/gtk2reactor.py", line
226, in simulate
self.runUntilCurrent()
File "/usr/lib/python2.4/site-packages/twisted/internet/base.py", line 705,
in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/python2.4/site-packages/twisted/internet/base.py", line 545,
in fireSystemEvent
event.fireEvent()
--- <exception caught here> ---
File "/usr/lib/python2.4/site-packages/twisted/internet/base.py", line 368,
in fireEvent
result = callable(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/elisa/core/application.py", line 562,
in stop
dfr = self.interface_controller.stop()
File "/usr/lib/python2.4/site-packages/elisa/core/interface_controller.py",
line 141, in stop
dfr = frontend.clean()
File
"/usr/lib/python2.4/site-packages/elisa/plugins/pigment/pigment_frontend.py",
line 695, in clean
if self.controller:
exceptions.AttributeError: 'PigmentFrontend' object has no attribute
'controller'
Exception exceptions.AttributeError: "'NoneType' object has no attribute 'bus_release_name'" in
<bound method BusName.__del__ of <dbus.service.BusName com.fluendo.Elisa on <dbus.Bus on SESSION
at 0x8e2918c> at 0x8e4e70c>> ignored
------
Which is caused by not having dbus, it seems dbus is mandatory by the
current implementation. However, I catched the exception and just
returned, which seems sufficient to get Elisa running.
In file elisa/plugins/database/dbus_browser.py on line 185 I added:
------
def __init__(self, browser, *args, **kw):
+ try:
dbus.service.Object.__init__(self, *args, **kw)
+ except:
+ return
self.impl = BrowserImpl(browser)
------
Now I have a working interface, but not everything is properly working
yet. I will go and add the missing requirements for some of the plugins.
Can you make the change to elisa/plugins/gstreamer/thumbnail.py ?
For the dbus problems, how would you proceed ? Make dbus optional instead
of mandatory, or rather make dbus work with an older release (1.2).
I'd prefer the second, but I can understand if there is no interest in
having the complexity.
Thanks,
--
-- dag wieers, [EMAIL PROTECTED], http://dag.wieers.com/ --
[Any errors in spelling, tact or fact are transmission errors]