diff mate/mate-session-manager/systemd-dependency.patch @ 471:31b4a03cced1

mate/mate-session-manager: initial import, closes #1464
author David Demelier <markand@malikania.fr>
date Sat, 06 Apr 2019 13:24:26 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mate/mate-session-manager/systemd-dependency.patch	Sat Apr 06 13:24:26 2019 +0200
@@ -0,0 +1,67 @@
+From https://github.com/mate-desktop/mate-session-manager/commit/254a091b31517a25bc037b31daff27fbb74ac90d
+
+From 254a091b31517a25bc037b31daff27fbb74ac90d Mon Sep 17 00:00:00 2001
+From: Victor Kareh <vkareh@redhat.com>
+Date: Wed, 6 Mar 2019 09:20:36 -0500
+Subject: [PATCH] Guard against missing systemd
+
+---
+ mate-session/gsm-systemd.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/mate-session/gsm-systemd.c b/mate-session/gsm-systemd.c
+index da3f23b..d03cafd 100644
+--- a/mate-session/gsm-systemd.c
++++ b/mate-session/gsm-systemd.c
+@@ -429,16 +429,31 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager)
+         gboolean is_last_session;
+         int ret, i;
+ 
++#ifdef HAVE_SYSTEMD
+         ret = sd_pid_get_session (getpid (), &session);
++#endif
++
++        if (session == NULL) {
++                return FALSE;
++        }
+ 
+         if (ret != 0) {
++                free (session);
+                 return FALSE;
+         }
+ 
++#ifdef HAVE_SYSTEMD
+         ret = sd_uid_get_sessions (getuid (), FALSE, &sessions);
++#endif
++
++        if (sessions == NULL) {
++                free (session);
++                return FALSE;
++        }
+ 
+         if (ret <= 0) {
+                 free (session);
++                free (sessions);
+                 return FALSE;
+         }
+ 
+@@ -450,7 +465,9 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager)
+                 if (g_strcmp0 (sessions[i], session) == 0)
+                         continue;
+ 
++#ifdef HAVE_SYSTEMD
+                 ret = sd_session_get_state (sessions[i], &state);
++#endif
+ 
+                 if (ret != 0)
+                         continue;
+@@ -461,7 +478,9 @@ gsm_systemd_is_last_session_for_user (GsmSystemd *manager)
+                 }
+                 free (state);
+ 
++#ifdef HAVE_SYSTEMD
+                 ret = sd_session_get_type (sessions[i], &type);
++#endif
+ 
+                 if (ret != 0)
+                         continue;