Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-08-12 22:06:52 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-08-12 22:06:52 (GMT)
commite2e5bc0000ab616f5de2d9270a0a4c0b98c220d3 (patch)
tree21b0431951551c0e0fd5f44df90d9896959434d5
parente57f4da027bfcf0d9427cf15ab1f78778b3000bd (diff)
Install service files for the presence service
-rw-r--r--.gitignore1
-rw-r--r--shell/PresenceService/Makefile.am7
-rw-r--r--shell/PresenceService/org.laptop.Presence.service.in4
-rw-r--r--shell/session/Session.py19
-rw-r--r--sugar/__installed__.py.in1
-rw-r--r--sugar/__uninstalled__.py7
-rw-r--r--sugar/env.py7
7 files changed, 25 insertions, 21 deletions
diff --git a/.gitignore b/.gitignore
index 60a7497..44f16b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,4 @@ po/sugar.pot
po/*.gmo
sugar/__installed__.py
tools/sugar-setup-activity
+shell/PresenceService/org.laptop.Presence.service
diff --git a/shell/PresenceService/Makefile.am b/shell/PresenceService/Makefile.am
index e3cced4..da37f89 100644
--- a/shell/PresenceService/Makefile.am
+++ b/shell/PresenceService/Makefile.am
@@ -1,3 +1,10 @@
+servicedir = $(datadir)/dbus-1/services
+service_in_files = org.laptop.Presence.service.in
+service_DATA = $(service_in_files:.service.in=.service)
+
+$(service_DATA): $(service_in_files) Makefile
+ @sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+
sugardir = $(pkgdatadir)/shell/PresenceService
sugar_PYTHON = \
__init__.py \
diff --git a/shell/PresenceService/org.laptop.Presence.service.in b/shell/PresenceService/org.laptop.Presence.service.in
new file mode 100644
index 0000000..3739d9e
--- /dev/null
+++ b/shell/PresenceService/org.laptop.Presence.service.in
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name = org.laptop.Presence
+Exec = @bindir@/sugar-presence-service
+
diff --git a/shell/session/Session.py b/shell/session/Session.py
index de6b514..66a085f 100644
--- a/shell/session/Session.py
+++ b/shell/session/Session.py
@@ -44,22 +44,6 @@ class MatchboxProcess(Process):
def get_name(self):
return 'Matchbox'
-class PresenceServiceProcess(Process):
- def __init__(self):
- Process.__init__(self, "sugar-presence-service")
-
- def get_name(self):
- return "PresenceService"
-
- def start(self):
- Process.start(self)
- bus = dbus.Bus()
- ret = False
- # Wait for the presence service to start up
- while not ret:
- ret = dbus.dbus_bindings.bus_name_has_owner(bus._connection, PresenceService.DBUS_SERVICE)
- time.sleep(0.2)
-
class Session:
"""Takes care of running the shell and all the sugar processes"""
def __init__(self, registry):
@@ -76,9 +60,6 @@ class Session:
process = MatchboxProcess()
process.start()
- process = PresenceServiceProcess()
- process.start()
-
shell = Shell(self._registry)
shell.set_console(console)
shell.start()
diff --git a/sugar/__installed__.py.in b/sugar/__installed__.py.in
index b3edd7f..06d787d 100644
--- a/sugar/__installed__.py.in
+++ b/sugar/__installed__.py.in
@@ -1,6 +1,7 @@
sugar_source_dir = None
sugar_data_dir = '@prefix@/share/sugar'
sugar_activities_dir = '@prefix@/share/sugar/activities'
+sugar_services_dir = '@prefix@/share/sugar/services'
sugar_dbus_config = '@prefix@/share/sugar/dbus-installed.conf'
sugar_python_path = ['@prefix@/share/sugar/shell',
diff --git a/sugar/__uninstalled__.py b/sugar/__uninstalled__.py
index b34ffaf..3069752 100644
--- a/sugar/__uninstalled__.py
+++ b/sugar/__uninstalled__.py
@@ -2,9 +2,12 @@ import os
import tempfile
sugar_source_dir = os.path.dirname(os.path.dirname(__file__))
+sugar_data_dir = os.path.join(sugar_source_dir, 'shell/data')
+
+__tmpdir = os.path.join(tempfile.gettempdir(), 'sugar')
+sugar_activities_dir = __tmpdir
+sugar_service_dir = __tmpdir
-sugar_data_dir = os.path.join(sugar_source_dir, 'shell/data')
-sugar_activities_dir = os.path.join(tempfile.gettempdir(), 'sugar')
sugar_dbus_config = os.path.join(sugar_source_dir, 'dbus-uninstalled.conf')
sugar_python_path = []
diff --git a/sugar/env.py b/sugar/env.py
index 6d5fba0..2a29daa 100644
--- a/sugar/env.py
+++ b/sugar/env.py
@@ -34,6 +34,10 @@ def setup():
source = os.path.join(sugar_source_dir, 'activities')
runner = os.path.join(sugar_source_dir, 'shell/sugar-activity-factory')
sugar.setup.setup_activities(source, get_activities_dir(), runner)
+
+ bin = os.path.join(sugar_source_dir, 'shell/sugar-presence-service')
+ sugar.setup.write_service('org.laptop.Presence', bin,
+ get_services_dir())
def get_user_dir():
if os.environ.has_key('SUGAR_NICK_NAME'):
@@ -59,3 +63,6 @@ def get_data_file(filename):
def get_activities_dir():
return sugar_activities_dir
+
+def get_services_dir():
+ return sugar_activities_dir