[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-desktop-list
Subject:    Re: musings on session service mgmt
From:       Colin Walters <walters () redhat ! com>
Date:       2008-01-04 17:01:41
Message-ID: 1199466101.6858.28.camel () space-ghost ! verbum ! private
[Download RAW message or body]

On Fri, 2008-01-04 at 11:37 -0500, David Zeuthen wrote:
> On Fri, 2008-01-04 at 11:35 -0500, Colin Walters wrote:
> > Oh I see, I was wrong; yes David was talking about automatically killing
> > all processes.  That is wrong, I agree with you.
> 
> Care to explain why this is wrong?

See my other mail.

> > As Havoc said, having them connect to X11 or DBus, or using a babysitter
> > that does is the right way.
> 
> So in order to avoid having a process linger we now need to patch it?
> Good luck with that....

Don't need luck in the original case you were talking about, just an
editor and commit access to the upstream =)

Here's a patch for GConf:



["gconf-dbus-exit-with-session.patch" (gconf-dbus-exit-with-session.patch)]

Index: configure.in
===================================================================
--- configure.in	(revision 2500)
+++ configure.in	(working copy)
@@ -131,7 +131,7 @@
 
 AC_ARG_ENABLE(gtk, [  --enable-gtk          Enable GTK+ support (for \
gconf-sanity-check) [default=auto]], enable_gtk="$enableval", enable_gtk=auto)  
-PKGCONFIG_MODULES='glib-2.0 > 2.9.0 gmodule-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0 \
ORBit-2.0 >= 2.4.0' +PKGCONFIG_MODULES='glib-2.0 > 2.9.0 gmodule-2.0 >= 2.7.0 \
gobject-2.0 >= 2.7.0 ORBit-2.0 >= 2.4.0 dbus-1 >= 1.0'  \
PKGCONFIG_MODULES_WITH_XML="$PKGCONFIG_MODULES libxml-2.0"  \
PKGCONFIG_MODULES_WITH_GTK=" $PKGCONFIG_MODULES gtk+-2.0 >= 2.0.0"  \
                PKGCONFIG_MODULES_WITH_XML_AND_GTK=" $PKGCONFIG_MODULES gtk+-2.0 \
                libxml-2.0"
Index: gconf/gconfd.c
===================================================================
--- gconf/gconfd.c	(revision 2500)
+++ gconf/gconfd.c	(working copy)
@@ -27,6 +27,8 @@
 
 #include <config.h>
 
+#include <dbus/dbus.h>
+
 #include "gconf-internals.h"
 #include "gconf-sources.h"
 #include "gconf-listeners.h"
@@ -597,6 +599,8 @@
 #endif
   CORBA_Environment ev;
   CORBA_ORB orb;
+  DBusConnection *connection;
+  DBusError dbus_error;
   gchar* logname;
   const gchar* username;
   gchar* ior;
@@ -732,6 +736,13 @@
   gconf_set_daemon_ior (ior);
   CORBA_free (ior);
 
+  dbus_error_init (&dbus_error);
+  /* Now connect to D-BUS so we get scoped to the session */
+  connection = dbus_bus_get (DBUS_BUS_SESSION, &dbus_error);
+  if (dbus_error_is_set (&dbus_error)) {
+    gconf_log (GCL_ERR, _("Failed to connect to session bus: %s"), \
dbus_error.message); +  }
+
   gconfd_dir = gconf_get_daemon_dir ();
   lock_dir = gconf_get_lock_dir ();
   



-- 
Fedora-desktop-list mailing list
Fedora-desktop-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-desktop-list

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic