Blob Blame History Raw
From 7cdf11b1b4b04f8cd366316f6c50a9bd0b4e67d3 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 6 May 2020 13:45:50 -0400
Subject: [PATCH] main: only log check-accelerated errors when debugging
 enabled

The journal currently gets spammed with messages like:

gnome-session: gnome-session-check-accelerated: GL Helper exited with code 512
gnome-session: libEGL warning: DRI2: failed to authenticate
gnome-session: gnome-session-check-accelerated: GLES Helper exited with code 512

if a the machine lacks accelerated graphics.  But lacking accelerated
graphics isn't actually an error (many servers do).

This commit changes the messages to only show when debugging is enabled.
---
 gnome-session/main.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnome-session/main.c b/gnome-session/main.c
index b1ac3850..0e75eecf 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -193,72 +193,78 @@ require_dbus_session (int      argc,
         g_return_val_if_fail (!g_str_has_prefix (argv[0], "dbus-launch"),
                               TRUE);
 
         /* +2 for our new arguments, +1 for NULL */
         new_argv = g_malloc ((argc + 3) * sizeof (*argv));
 
         new_argv[0] = "dbus-launch";
         new_argv[1] = "--exit-with-session";
         for (i = 0; i < argc; i++) {
                 new_argv[i + 2] = argv[i];
         }
         new_argv[i + 2] = NULL;
         
         if (!execvp ("dbus-launch", new_argv)) {
                 g_set_error (error, 
                              G_SPAWN_ERROR,
                              G_SPAWN_ERROR_FAILED,
                              "No session bus and could not exec dbus-launch: %s",
                              g_strerror (errno));
                 return FALSE;
         }
 
         /* Should not be reached */
         return TRUE;
 }
 
 static gboolean
 check_gl (GError **error)
 {
         int status;
+        g_autofree char *error_output = NULL;
+
         char *argv[] = { LIBEXECDIR "/gnome-session-check-accelerated", NULL };
 
         if (getenv ("DISPLAY") == NULL) {
                 /* Not connected to X11, someone else will take care of checking GL */
                 return TRUE;
         }
 
-        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, NULL,
+        if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, &error_output,
                            &status, error)) {
                 return FALSE;
         }
 
+        if (error_output != NULL) {
+            g_debug ("%s", error_output);
+        }
+
         return g_spawn_check_exit_status (status, error);
 }
 
 static void
 initialize_gio (void)
 {
         char *disable_fuse = NULL;
         char *use_vfs = NULL;
 
         disable_fuse = g_strdup (g_getenv ("GVFS_DISABLE_FUSE"));
         use_vfs = g_strdup (g_getenv ("GIO_USE_VFS"));
 
         g_setenv ("GVFS_DISABLE_FUSE", "1", TRUE);
         g_setenv ("GIO_USE_VFS", "local", TRUE);
         g_vfs_get_default ();
 
         if (use_vfs) {
                 g_setenv ("GIO_USE_VFS", use_vfs, TRUE);
                 g_free (use_vfs);
         } else {
                 g_unsetenv ("GIO_USE_VFS");
         }
 
         if (disable_fuse) {
                 g_setenv ("GVFS_DISABLE_FUSE", disable_fuse, TRUE);
                 g_free (disable_fuse);
         } else {
                 g_unsetenv ("GVFS_DISABLE_FUSE");
         }
 }
-- 
2.33.1