[gnome-shell] jhbuild wrapper: don't muck with session activated services
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] jhbuild wrapper: don't muck with session activated services
- Date: Tue, 24 Apr 2012 19:21:23 +0000 (UTC)
commit 0f37b22cdb08d0ffec9038c9b05668d4941c8972
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Thu Apr 12 19:46:51 2012 +0200
jhbuild wrapper: don't muck with session activated services
dconf-daemon is available since 2.32, so there is no need to
start it manually (and in fact, it should not be running normally).
Similarly, notify-osd and notification-daemon should not be
dbus activated, but rather autostarted by gnome-session, and
therefore not running in a gnome-shell session.
src/gnome-shell-jhbuild.in | 105 --------------------------------------------
1 files changed, 0 insertions(+), 105 deletions(-)
---
diff --git a/src/gnome-shell-jhbuild.in b/src/gnome-shell-jhbuild.in
index 03b8679..13359a7 100755
--- a/src/gnome-shell-jhbuild.in
+++ b/src/gnome-shell-jhbuild.in
@@ -79,95 +79,6 @@ def get_running_session_environs():
result[key] = environs[key]
return result
-_bus = None
-_bus_iface = None
-_name_owner_changed_hook = None
-
-def on_name_owner_changed(name, prev_owner, new_owner):
- if _name_owner_changed_hook:
- _name_owner_changed_hook(name, prev_owner, new_owner)
-
-def get_bus():
- global _bus
- if _bus is None:
- dbus_loop = DBusGMainLoop()
- _bus = dbus.SessionBus(mainloop=dbus_loop)
- return _bus
-
-def get_bus_iface():
- global _bus_iface
- if _bus_iface is None:
- bus = get_bus()
- bus_proxy = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
- _bus_iface = dbus.Interface(bus_proxy, 'org.freedesktop.DBus')
- _bus_iface.connect_to_signal('NameOwnerChanged', on_name_owner_changed)
- return _bus_iface
-
-def wait_for_dbus_name(wait_name):
- global _name_owner_changed_hook
-
- bus_iface = get_bus_iface()
- loop = gobject.MainLoop()
-
- def on_name_owner_changed(name, prev_owner, new_owner):
- if not (name == wait_name and new_owner != ''):
- return
- loop.quit()
- return
- _name_owner_changed_hook = on_name_owner_changed
-
- def on_timeout():
- print "\nFailed to start %s: timed out" % (wait_name,)
- sys.exit(1)
- gobject.timeout_add_seconds(7, on_timeout)
-
- loop.run()
- _name_owner_changed_hook = None
-
-def start_dconf_await_service():
- DCONF_NAME = 'ca.desrt.dconf'
-
- bus = get_bus()
- get_bus_iface() # connect to NameOwnerChanged signal
-
- # See if the service is already running or normal D-Bus activation works
- need_manual_activate = False
- try:
- dconf_proxy = bus.get_object(DCONF_NAME, '/')
- dconf_proxy.Ping(dbus_interface='org.freedesktop.DBus.Peer')
- except dbus.exceptions.DBusException, e:
- if e.get_dbus_name() == 'org.freedesktop.DBus.Error.ServiceUnknown':
- need_manual_activate = True
- else:
- raise e
-
- if not need_manual_activate:
- return
-
- # At this point, it looks like we just have a jhbuild install
- # of dconf, not known to the session dbus-daemon, so we start
- # it manually and wait for it to join the bus
-
- print "Starting dconf-service... ",
- sys.stdout.flush()
-
- # dconf is linked without libtool, so unlike other GNOME modules,
- # won't have an embedded rpath for its library directory.
- env = dict(os.environ)
- if 'LD_LIBRARY_PATH' in env and env['LD_LIBRARY_PATH']:
- ld_library_path = '@libdir@:' + env['LD_LIBRARY_PATH']
- else:
- ld_library_path = '@libdir@'
- env['LD_LIBRARY_PATH'] = ld_library_path
-
- dconf_path = os.path.join('@libexecdir@', 'dconf-service')
- try:
- subprocess.Popen([dconf_path, '--keep-alive'], env=env)
- except OSError, e:
- print "\nFailed to start %s: %s" % (dconf_path, e)
- sys.exit(1)
-
- wait_for_dbus_name (DCONF_NAME)
def start_shell():
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
@@ -226,21 +137,6 @@ def start_shell():
args.append('--sync')
return subprocess.Popen(args, env=env)
-def _killall(processname):
- subprocess.call(['pkill', '-u', '%d' % (os.getuid(), ),
- '-f', r'^([^ ]*/)?' + re.escape(processname) + '($| )'])
-
-def ensure_desktop_infrastructure_state():
- # This is a collection of random hacks necessary to make sure
- # that we can run in jhbuild scenarios or when dynamically
- # replacing GNOME 2.
-
- start_dconf_await_service()
-
- # We need to terminate notification-daemon
- _killall('notification-daemon')
- _killall('notify-osd')
-
def run_shell():
if options.debug:
# Record initial terminal state so we can reset it to that
@@ -365,7 +261,6 @@ elif options.debug:
normal_exit = False
try:
- ensure_desktop_infrastructure_state()
normal_exit = run_shell()
finally:
if options.replace and not normal_exit:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]