[MacPorts] #35653: gconf 2.28.1_3 +quartz connections from client to gconfd fail

MacPorts noreply at macports.org
Mon Aug 13 05:25:07 PDT 2012


#35653: gconf 2.28.1_3 +quartz connections from client to gconfd fail
---------------------------------+------------------------------------------
 Reporter:  wagner.sim88@…       |       Owner:  macports-tickets@…                   
     Type:  defect               |      Status:  new                                  
 Priority:  Normal               |   Milestone:                                       
Component:  ports                |     Version:  2.1.2                                
 Keywords:                       |        Port:  gconf                                
---------------------------------+------------------------------------------
 When using the +quartz variant of gconf, the gconfd can't be reached by
 the clients.

 The error message is:
 Failed to contact configuration server; some possible causes are that you
 need to enable TCP/IP networking for ORBit, or you have stale NFS locks
 due to a system crash. See http://projects.gnome.org/gconf/ for
 information. (Details - 1: Not running within active session)

 Apparently the following lines in gconf-internals.c at the function
 get_ior are causing the issue:

 {{{
 /* if the bus isn't running and we don't want to start gconfd then
          * we don't want to autolaunch the bus either, so bail early.
          */
         if (g_getenv ("DBUS_SESSION_BUS_ADDRESS") == NULL &&
            (!start_if_not_found || g_getenv ("DISPLAY") == NULL)) {
                 if (failure_log)
                     g_string_append_printf (failure_log,
                                             _("Not running within active
 session"));
                 return NULL;
         }
 }}}

 As DBUS_SESSION_BUS_ADDRESS is not set (because dbus is started via
 launchd and does set DBUS_LAUNCHD_SESSION_BUS_SOCKET but not
 DBUS_SESSION_BUS_ADDRESS) and no DISPLAY is available (as we are using
 quartz and not X11) the expression evaluates to true and the gconf client
 thinks, that dbus is not available and quits.

 I fixed this by testing, wether DBUS_LAUNCHD_SESSION_BUS_SOCKET is set
 {{{
 g_getenv ("DBUS_SESSION_BUS_ADDRESS") == NULL && g_getenv
 ("DBUS_LAUNCHD_SESSION_BUS_SOCKET") == NULL &&
            (!start_if_not_found || g_getenv ("DISPLAY") == NULL)
 }}}

 Please take a look into wether this is the correct way to fix this.

 Patch with the fix is attached.

-- 
Ticket URL: <https://trac.macports.org/ticket/35653>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list