From e96bf74866476d3683584d09091d2f63933fc977fb8ac7f575591cacb1aa5f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Mon, 28 Dec 2015 14:31:18 +0000 Subject: [PATCH] Accepting request 350952 from home:Zaitor Fixup OBS-URL: https://build.opensuse.org/request/show/350952 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-session?expand=0&rev=220 --- ...ostart-app-give-every-app-journal-id.patch | 99 +++++++++++++++++++ gnome-session.changes | 6 ++ gnome-session.spec | 3 + 3 files changed, 108 insertions(+) create mode 100644 gnome-session-autostart-app-give-every-app-journal-id.patch diff --git a/gnome-session-autostart-app-give-every-app-journal-id.patch b/gnome-session-autostart-app-give-every-app-journal-id.patch new file mode 100644 index 0000000..933642b --- /dev/null +++ b/gnome-session-autostart-app-give-every-app-journal-id.patch @@ -0,0 +1,99 @@ +From 5449174a1618cc7637f8c3a96c0eeae679c55248 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 5 Nov 2015 09:41:16 -0500 +Subject: autostart-app: give ever app its own journal id + +Right now all session output gets attributed to +gnome-session which isn't very useful. + +This commit makes sure launched apps each get +their own journal identifier. + +https://bugzilla.gnome.org/show_bug.cgi?id=757571 +--- + gnome-session/gsm-autostart-app.c | 44 ++++++++++++++++++++++++++++++++++++++- + 1 file changed, 43 insertions(+), 1 deletion(-) + +diff --git a/gnome-session/gsm-autostart-app.c b/gnome-session/gsm-autostart-app.c +index 75008fe..08a434b 100644 +--- a/gnome-session/gsm-autostart-app.c ++++ b/gnome-session/gsm-autostart-app.c +@@ -32,6 +32,11 @@ + #include + #endif + ++#ifdef HAVE_SYSTEMD ++#include ++#include ++#endif ++ + #include "gsm-autostart-app.h" + #include "gsm-util.h" + +@@ -1014,6 +1019,34 @@ app_launched (GAppLaunchContext *ctx, + app->priv->startup_id = sn_id; + } + ++#ifdef HAVE_SYSTEMD ++static void ++on_child_setup (GsmAutostartApp *app) ++{ ++ int standard_output, standard_error; ++ ++ /* The FALSE means programs aren't expected to prefix each ++ * line with prefix to specify priority. ++ */ ++ standard_output = sd_journal_stream_fd (app->priv->desktop_id, ++ LOG_INFO, ++ FALSE); ++ standard_error = sd_journal_stream_fd (app->priv->desktop_id, ++ LOG_WARNING, ++ FALSE); ++ ++ if (standard_output >= 0) { ++ dup2 (standard_output, STDOUT_FILENO); ++ close (standard_output); ++ } ++ ++ if (standard_error >= 0) { ++ dup2 (standard_error, STDERR_FILENO); ++ close (standard_error); ++ } ++} ++#endif ++ + static gboolean + autostart_app_start_spawn (GsmAutostartApp *app, + GError **error) +@@ -1022,6 +1055,8 @@ autostart_app_start_spawn (GsmAutostartApp *app, + GError *local_error; + const char *startup_id; + GAppLaunchContext *ctx; ++ GSpawnChildSetupFunc child_setup_func = NULL; ++ gpointer child_setup_data = NULL; + guint handler; + + startup_id = gsm_app_peek_startup_id (GSM_APP (app)); +@@ -1041,12 +1076,19 @@ autostart_app_start_spawn (GsmAutostartApp *app, + g_app_launch_context_setenv (ctx, "DESKTOP_AUTOSTART_ID", startup_id); + } + ++#ifdef HAVE_SYSTEMD ++ if (sd_booted () > 0) { ++ child_setup_func = (GSpawnChildSetupFunc) on_child_setup; ++ child_setup_data = app; ++ } ++#endif ++ + handler = g_signal_connect (ctx, "launched", G_CALLBACK (app_launched), app); + success = g_desktop_app_info_launch_uris_as_manager (app->priv->app_info, + NULL, + ctx, + G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, +- NULL, NULL, ++ child_setup_func, child_setup_data, + NULL, NULL, + &local_error); + g_signal_handler_disconnect (ctx, handler); +-- +cgit v0.11.2 diff --git a/gnome-session.changes b/gnome-session.changes index b9fdbfa..2983b45 100644 --- a/gnome-session.changes +++ b/gnome-session.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 26 03:09:47 UTC 2015 - zaitor@opensuse.org + +- Add gnome-session-autostart-app-give-every-app-journal-id.patch: + Give every app it's own journald-id. Patch from upstream. + ------------------------------------------------------------------- Mon Nov 9 12:28:16 UTC 2015 - dimstar@opensuse.org diff --git a/gnome-session.spec b/gnome-session.spec index 33fa78a..79e81ea 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -30,6 +30,8 @@ Source1: gnome Source2: gnome.desktop # PATCH-FIX-UPSTREAM gnome-session-ice-auth-for-suid.patch hpj@novell.com -- Carries ICE auth over to other UIDs in this session using an env var. Patch0: gnome-session-ice-auth-for-suid.patch +# PATCH-FIX-UPSTREAM gnome-session-autostart-app-give-every-app-journal-id.patch zaitor@opensuse.org -- Patch from upstream git. +Patch1: gnome-session-autostart-app-give-every-app-journal-id.patch BuildRequires: fdupes BuildRequires: gnome-common BuildRequires: hicolor-icon-theme @@ -119,6 +121,7 @@ functional GNOME desktop. # Disabled, as it fails #translation-update-upstream %patch0 -p1 +%patch1 -p1 %build NOCONFIGURE=1 gnome-autogen.sh