Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsugar-emulator6
-rw-r--r--sugar/activity/bundleregistry.py7
-rw-r--r--sugar/env.py12
3 files changed, 20 insertions, 5 deletions
diff --git a/sugar-emulator b/sugar-emulator
index 16e9da4..e9ba62c 100755
--- a/sugar-emulator
+++ b/sugar-emulator
@@ -70,9 +70,9 @@ for i in range(1, len(sys.argv)):
emulator = Emulator(fullscreen)
emulator.start()
-# FIXME temporary until dbus support services in home dir
-if not os.path.isdir('/tmp/sugar-services'):
- os.mkdir('/tmp/sugar-services')
+if env.get_dbus_version() < '0.95':
+ if not os.path.isdir('/tmp/sugar-services'):
+ os.mkdir('/tmp/sugar-services')
os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session',
'--config-file=%s' % env.get_dbus_config(), program)
diff --git a/sugar/activity/bundleregistry.py b/sugar/activity/bundleregistry.py
index 582c340..c6d0531 100644
--- a/sugar/activity/bundleregistry.py
+++ b/sugar/activity/bundleregistry.py
@@ -10,10 +10,13 @@ class _ServiceParser(ConfigParser):
class _ServiceManager(object):
def __init__(self):
- self._path = '/tmp/sugar-services'
+ if env.get_dbus_version() < '0.95':
+ self._path = '/tmp/sugar-services'
+ else:
+ self._path = os.path.expanduser('~/.local/share/dbus-1/services')
if not os.path.isdir(self._path):
- os.mkdir(self._path)
+ os.makedirs(self._path)
def add(self, bundle):
name = bundle.get_service_name()
diff --git a/sugar/env.py b/sugar/env.py
index f776865..3f958b2 100644
--- a/sugar/env.py
+++ b/sugar/env.py
@@ -56,3 +56,15 @@ def get_dbus_config():
def get_shell_bin_dir():
return sugar_shell_bin_dir
+
+_dbus_version = None
+def get_dbus_version():
+ global _dbus_version
+ if _dbus_version == None:
+ f = os.popen('dbus-daemon --version')
+ version_line = f.readline()
+ if version_line:
+ splitted_line = version_line.split()
+ _dbus_version = splitted_line[len(splitted_line) - 1]
+ f.close()
+ return _dbus_version