Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-11-02 19:16:36 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-11-02 19:16:36 (GMT)
commit561169809b92e29cfd762c3cd673def881764dcc (patch)
tree2f408cca1ff452b8d1a89cf40df3e80436c9f59f /sugar
parent59c777e1096d8b64b477b0647c336acb7b59f8ab (diff)
Install services in user dir if dbus is recent enough.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/bundleregistry.py7
-rw-r--r--sugar/env.py12
2 files changed, 17 insertions, 2 deletions
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