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