32
32
bus = dbus.SessionBus()
33
crypto = dbus.Interface(bus.get_object(BUS_NAME, CRYPTO_PATH),
35
openpgp = dbus.Interface(bus.get_object(BUS_NAME, OPENPGP_PATH),
37
33
except dbus.exceptions.DBusException, e:
38
34
get_name = getattr(e, 'get_dbus_name', None)
39
35
if get_name is not None:
42
38
name = getattr(e, '_dbus_error_name', None)
45
args = getattr(e, 'args', None) # This is case for old python-dbus-0.62
46
if args == ("Unable to determine the address of the message bus (try 'man dbus-launch' and 'man dbus-daemon' for help)",):
49
39
# DBus sometimes fails like this, just treat it as if seahorse is not
50
40
# available rather than crashing.
51
if name in ("org.freedesktop.DBus.Error.Spawn.ExecFailed",
52
"org.freedesktop.DBus.Error.ServiceUnknown",
53
"org.freedesktop.DBus.Error.NotSupported"):
41
if name == "org.freedesktop.DBus.Error.Spawn.ExecFailed":
46
if hasattr(bus, 'list_activatable_names'):
47
bus_names = bus.list_activatable_names()
49
bus_object = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
50
bus_names = bus_object.ListNames(dbus_interface='org.freedesktop.DBus')
52
if BUS_NAME not in bus_names:
55
crypto = dbus.Interface(bus.get_object(BUS_NAME, CRYPTO_PATH),
57
openpgp = dbus.Interface(bus.get_object(BUS_NAME, OPENPGP_PATH),
58
60
FLAG_VALID = 0x0001
59
61
FLAG_CAN_ENCRYPT = 0x0002
60
62
FLAG_CAN_SIGN = 0x0004