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]

Reply via email to