From e2e5bc0000ab616f5de2d9270a0a4c0b98c220d3 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 12 Aug 2006 22:06:52 +0000 Subject: Install service files for the presence service --- 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 -- cgit v0.9.1