Attached patch applies over previous patch and can be found at:
http://kacper.doesntexist.org/hacks/meld-dbus-improvement-diff.patch
I've also prepared a patch against meld 1.1.3:
http://kacper.doesntexist.org/hacks/meld-dbus-improved.patch
def try_dbus():
bus = dbus.SessionBus()
@@ -902,7 +905,17 @@ def pass_args_dbus(args):
bus = dbus.SessionBus()
proxy = bus.get_object('net.sf.meld','/net/sf/meld')
iface = dbus.Interface(proxy, 'net.sf.meld')
+ # Following (proxy) call will fail with UnknownMethodException
+ # if the python-dbus bindings are installed while dbus itself isn't.
+ # Maybe there is a cleaner way detect this earlier?
iface.diff(args)
+ try:
+ pass
+ except DBusException:
+ print "meld: pydbus modules exist, but dbus itself is not available."
+ return 0
+ return 1
+