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:
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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-desktop-list