[mate-screensaver] add mate-screensaver_systemd-login1-improvements.patch

Wolfgang Ulbrich raveit65 at fedoraproject.org
Sun Oct 13 00:59:09 UTC 2013


commit cb724c733b1a90336db3fe6b30cd1a234e29fbfb
Author: raveit65 <chat-to-me at raveit.de>
Date:   Sun Oct 13 02:57:57 2013 +0200

    add mate-screensaver_systemd-login1-improvements.patch

 mate-screensaver_systemd-login1-improvements.patch |  108 ++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 deletions(-)
---
diff --git a/mate-screensaver_systemd-login1-improvements.patch b/mate-screensaver_systemd-login1-improvements.patch
new file mode 100644
index 0000000..40ca8ea
--- /dev/null
+++ b/mate-screensaver_systemd-login1-improvements.patch
@@ -0,0 +1,108 @@
+diff -upr mate-screensaver-1.6.1-orig/configure.ac mate-screensaver-1.6.1/configure.ac
+--- mate-screensaver-1.6.1-orig/configure.ac	2013-08-02 15:59:17.000000000 +0200
++++ mate-screensaver-1.6.1/configure.ac	2013-10-07 12:37:17.872404000 +0200
+@@ -916,18 +916,32 @@ dnl ------------------------------------
+ 
+ AC_ARG_WITH(systemd,
+             AS_HELP_STRING([--with-systemd],
+-            [Add systemd support]),,
+-            with_systemd=auto)
++            [Add systemd support]),
++            [with_systemd=$withval], [with_systemd=auto])
+ 
+-use_systemd=no
+-if test "x$with_systemd" != "xno" ; then
+-    use_systemd=yes
+-    AC_DEFINE(WITH_SYSTEMD, 1, [systemd support])
++PKG_CHECK_MODULES(SYSTEMD,
++                  [libsystemd-login],
++                  [have_systemd=yes], [have_systemd=no])
+ 
+-    PKG_CHECK_MODULES(SYSTEMD, libsystemd-login libsystemd-daemon)
++if test "x$with_systemd" = "xauto" ; then
++        if test x$have_systemd = xno ; then
++                use_systemd=no
++        else
++                use_systemd=yes
++        fi
++else
++	use_systemd=$with_systemd
+ fi
+-AM_CONDITIONAL(WITH_SYSTEMD, test x$use_systemd = xyes)
+-AC_SUBST(WITH_SYSTEMD)
++
++if test "x$use_systemd" = "xyes"; then
++        if test "x$have_systemd" = "xno"; then
++                AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
++        fi
++
++        AC_DEFINE(WITH_SYSTEMD, 1, [systemd support])
++fi
++AC_SUBST(SYSTEMD_CFLAGS)
++AC_SUBST(SYSTEMD_LIBS)
+ 
+ dnl ---------------------------------------------------------------------------
+ dnl libmatekbd
+diff -upr mate-screensaver-1.6.1-orig/src/gs-listener-dbus.c mate-screensaver-1.6.1/src/gs-listener-dbus.c
+--- mate-screensaver-1.6.1-orig/src/gs-listener-dbus.c	2013-08-02 15:59:17.000000000 +0200
++++ mate-screensaver-1.6.1/src/gs-listener-dbus.c	2013-10-07 12:37:17.873404000 +0200
+@@ -25,6 +25,7 @@
+ #include <stdio.h>
+ #include <time.h>
+ #include <string.h>
++#include <unistd.h>
+ 
+ #include <glib/gi18n.h>
+ 
+@@ -33,7 +34,6 @@
+ #include <dbus/dbus-glib-lowlevel.h>
+ 
+ #ifdef WITH_SYSTEMD
+-#include <systemd/sd-daemon.h>
+ #include <systemd/sd-login.h>
+ #endif
+ 
+@@ -1677,14 +1677,14 @@ listener_dbus_handle_system_message (DBu
+ 
+ 		if (dbus_message_is_signal (message, SYSTEMD_LOGIND_SESSION_INTERFACE, "Unlock")) {
+ 			if (_listener_message_path_is_our_session (listener, message)) {
+-				gs_debug ("Console kit requested session unlock");
++				gs_debug ("systemd requested session unlock");
+ 				gs_listener_set_active (listener, FALSE);
+ 			}
+ 
+ 			return DBUS_HANDLER_RESULT_HANDLED;
+ 		} else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_SESSION_INTERFACE, "Lock")) {
+ 			if (_listener_message_path_is_our_session (listener, message)) {
+-				gs_debug ("ConsoleKit requested session lock");
++				gs_debug ("systemd requested session lock");
+ 				g_signal_emit (listener, signals [LOCK], 0);
+ 			}
+ 
+@@ -2311,7 +2311,7 @@ gs_listener_acquire (GSListener *listene
+ 					    ",member='PropertiesChanged'",
+ 					    NULL);
+ 
+-			goto finish;
++			return (acquired != -1);
+ 		}
+ #endif
+ 
+@@ -2339,7 +2339,6 @@ gs_listener_acquire (GSListener *listene
+ #endif
+ 	}
+ 
+-finish:
+ 	return (acquired != -1);
+ }
+ 
+@@ -2427,7 +2426,8 @@ gs_listener_init (GSListener *listener)
+ 	listener->priv = GS_LISTENER_GET_PRIVATE (listener);
+ 
+ #ifdef WITH_SYSTEMD
+-	listener->priv->have_systemd = sd_booted () > 0;
++	/* check if logind is running */
++        listener->priv->have_systemd = (access("/run/systemd/seats/", F_OK) >= 0);
+ #endif
+ 
+ 	gs_listener_dbus_init (listener);


More information about the scm-commits mailing list