Fixes errors such as this in the rootfs generation:

(gconftool-2.real:10095): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead

Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>

From b0895e1998ebc83ab030ec0f17c0685439f5b404 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 15 Apr 2013 09:57:34 -0400
Subject: [PATCH] dbus: Don't spew to console when unable to connect to dbus
 daemon

Instead pass the error up for the caller to decide what to do.

This prevent untrappable warning messages from showing up at the
console if gconftool --makefile-install-rule is called.
---
 gconf/gconf-dbus.c |   24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c
index 5610fcf..048e3ea 100644
--- a/gconf/gconf-dbus.c
+++ b/gconf/gconf-dbus.c
@@ -105,7 +105,7 @@ static GHashTable     *engines_by_db = NULL;
 static GHashTable     *engines_by_address = NULL;
 static gboolean        dbus_disconnected = FALSE;
 
-static gboolean     ensure_dbus_connection      (void);
+static gboolean     ensure_dbus_connection      (GError **error);
 static gboolean     ensure_service              (gboolean          start_if_not_found,
 						 GError          **err);
 static gboolean     ensure_database             (GConfEngine      *conf,
@@ -383,7 +383,7 @@ gconf_engine_detach (GConfEngine *conf)
 }
 
 static gboolean
-ensure_dbus_connection (void)
+ensure_dbus_connection (GError **err)
 {
   DBusError error;
 
@@ -392,7 +392,9 @@ ensure_dbus_connection (void)
 
   if (dbus_disconnected)
     {
-      g_warning ("The connection to DBus was broken. Can't reinitialize it.");
+      g_set_error (err, GCONF_ERROR,
+                   GCONF_ERROR_NO_SERVER,
+                   "The connection to DBus was broken. Can't reinitialize it.");
       return FALSE;
     }
 
@@ -402,7 +404,10 @@ ensure_dbus_connection (void)
   
   if (!global_conn) 
     {
-      g_warning ("Client failed to connect to the D-BUS daemon:\n%s", error.message);
+      g_set_error (err, GCONF_ERROR,
+                   GCONF_ERROR_NO_SERVER,
+                   "Client failed to connect to the D-BUS daemon:\n%s",
+                   error.message);
       
       dbus_error_free (&error);
       return FALSE;
@@ -431,13 +436,8 @@ ensure_service (gboolean  start_if_not_found,
 
   if (global_conn == NULL)
     {
-      if (!ensure_dbus_connection ())
-	{
-	  g_set_error (err, GCONF_ERROR,
-		       GCONF_ERROR_NO_SERVER,
-		       _("No D-BUS daemon running\n"));
-	  return FALSE;
-	}
+      if (!ensure_dbus_connection (err))
+        return FALSE;
 
       g_assert (global_conn != NULL);
     }
@@ -2512,7 +2512,7 @@ gconf_ping_daemon (void)
 {
   if (global_conn == NULL)
   {
-    if (!ensure_dbus_connection ())
+    if (!ensure_dbus_connection (NULL))
     {
       return FALSE;
     }
-- 
1.7.10.4

