diff options
Diffstat (limited to 'xfce-base/xfce4-session/files/xfce4-session-4.10.1-systemd.patch')
-rw-r--r-- | xfce-base/xfce4-session/files/xfce4-session-4.10.1-systemd.patch | 400 |
1 files changed, 0 insertions, 400 deletions
diff --git a/xfce-base/xfce4-session/files/xfce4-session-4.10.1-systemd.patch b/xfce-base/xfce4-session/files/xfce4-session-4.10.1-systemd.patch deleted file mode 100644 index e174e40d0355..000000000000 --- a/xfce-base/xfce4-session/files/xfce4-session-4.10.1-systemd.patch +++ /dev/null @@ -1,400 +0,0 @@ -http://pkgs.fedoraproject.org/cgit/xfce4-session.git/commit/xfce4-session-4.10.1-systemd.patch?id=9e8af8b3ee7e8e91817d087e80de29b1af6d4943 - -diff --git a/configure.ac b/configure.ac -index 46ff366..8feee0b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -98,7 +98,7 @@ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0]) - - dnl Check for polkit / systemd integration - XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100], -- [systemd], [Systemd support (through polit)]) -+ [systemd], [Systemd support (through polkit)]) - - dnl Check for debugging support - XDT_FEATURE_DEBUG([xfsm_debug_default]) -@@ -202,10 +202,10 @@ echo " * Legacy session management: yes" - else - echo " * Legacy session management: no" - fi --if test x"$GNOME_KEYRING_FOUND" = x"yes"; then --echo " * Gnome Keyring support: yes" -+if test x"$SYSTEMD_FOUND" = x"yes"; then -+echo " * Systemd support (through polkit): yes" - else --echo " * Gnome Keyring support: no" -+echo " * Systemd support (through polkit): no" - fi - - echo -diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am -index 5472b33..ea706fd 100644 ---- a/xfce4-session/Makefile.am -+++ b/xfce4-session/Makefile.am -@@ -38,6 +38,8 @@ xfce4_session_SOURCES = \ - xfsm-compat-gnome.h \ - xfsm-compat-kde.c \ - xfsm-compat-kde.h \ -+ xfsm-consolekit.c \ -+ xfsm-consolekit.h \ - xfsm-dns.c \ - xfsm-dns.h \ - xfsm-error.c \ -@@ -67,10 +69,6 @@ if HAVE_SYSTEMD - xfce4_session_SOURCES += \ - xfsm-systemd.c \ - xfsm-systemd.h --else --xfce4_session_SOURCES += \ -- xfsm-consolekit.c \ -- xfsm-consolekit.h - endif - - xfce4_session_CFLAGS = \ -diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c -index 4c483a7..329c4f6 100644 ---- a/xfce4-session/xfsm-shutdown.c -+++ b/xfce4-session/xfsm-shutdown.c -@@ -63,6 +63,7 @@ - #include <xfce4-session/xfsm-shutdown.h> - #include <xfce4-session/xfsm-compat-gnome.h> - #include <xfce4-session/xfsm-compat-kde.h> -+#include <xfce4-session/xfsm-consolekit.h> - #include <xfce4-session/xfsm-fadeout.h> - #include <xfce4-session/xfsm-global.h> - #include <xfce4-session/xfsm-legacy.h> -@@ -70,8 +71,6 @@ - - #ifdef HAVE_SYSTEMD - #include <xfce4-session/xfsm-systemd.h> --#else --#include <xfce4-session/xfsm-consolekit.h> - #endif - - static void xfsm_shutdown_finalize (GObject *object); -@@ -98,9 +97,8 @@ struct _XfsmShutdown - - #ifdef HAVE_SYSTEMD - XfsmSystemd *systemd; --#else -- XfsmConsolekit *consolekit; - #endif -+ XfsmConsolekit *consolekit; - XfsmUPower *upower; - - /* kiosk settings */ -@@ -139,10 +137,14 @@ xfsm_shutdown_init (XfsmShutdown *shutdown) - XfceKiosk *kiosk; - - #ifdef HAVE_SYSTEMD -- shutdown->systemd = xfsm_systemd_get (); --#else -- shutdown->consolekit = xfsm_consolekit_get (); -+ shutdown->consolekit = NULL; -+ shutdown->systemd = NULL; -+ if (LOGIND_RUNNING()) -+ shutdown->systemd = xfsm_systemd_get (); -+ else - #endif -+ shutdown->consolekit = xfsm_consolekit_get (); -+ - shutdown->upower = xfsm_upower_get (); - shutdown->helper_state = SUDO_NOT_INITIAZED; - shutdown->helper_require_password = FALSE; -@@ -162,10 +164,11 @@ xfsm_shutdown_finalize (GObject *object) - XfsmShutdown *shutdown = XFSM_SHUTDOWN (object); - - #ifdef HAVE_SYSTEMD -- g_object_unref (G_OBJECT (shutdown->systemd)); --#else -- g_object_unref (G_OBJECT (shutdown->consolekit)); -+ if (shutdown->systemd != NULL) -+ g_object_unref (G_OBJECT (shutdown->systemd)); - #endif -+ if (shutdown->consolekit != NULL) -+ g_object_unref (G_OBJECT (shutdown->consolekit)); - g_object_unref (G_OBJECT (shutdown->upower)); - - /* close down helper */ -@@ -657,10 +660,11 @@ xfsm_shutdown_try_restart (XfsmShutdown *shutdown, - return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error); - else - #ifdef HAVE_SYSTEMD -- return xfsm_systemd_try_restart (shutdown->systemd, error); --#else -- return xfsm_consolekit_try_restart (shutdown->consolekit, error); -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_try_restart (shutdown->systemd, error); -+ else - #endif -+ return xfsm_consolekit_try_restart (shutdown->consolekit, error); - } - - -@@ -678,10 +682,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown *shutdown, - return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error); - else - #ifdef HAVE_SYSTEMD -- return xfsm_systemd_try_shutdown (shutdown->systemd, error); --#else -- return xfsm_consolekit_try_shutdown (shutdown->consolekit, error); -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_try_shutdown (shutdown->systemd, error); -+ else - #endif -+ return xfsm_consolekit_try_shutdown (shutdown->consolekit, error); - } - - -@@ -692,6 +697,11 @@ xfsm_shutdown_try_suspend (XfsmShutdown *shutdown, - { - g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE); - -+#ifdef HAVE_SYSTEMD -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_try_suspend (shutdown->systemd, error); -+ else -+#endif - return xfsm_upower_try_suspend (shutdown->upower, error); - } - -@@ -703,6 +713,11 @@ xfsm_shutdown_try_hibernate (XfsmShutdown *shutdown, - { - g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE); - -+#ifdef HAVE_SYSTEMD -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_try_hibernate (shutdown->systemd, error); -+ else -+#endif - return xfsm_upower_try_hibernate (shutdown->upower, error); - } - -@@ -722,10 +737,14 @@ xfsm_shutdown_can_restart (XfsmShutdown *shutdown, - } - - #ifdef HAVE_SYSTEMD -- if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error)) --#else -- if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error)) -+ if (shutdown->systemd != NULL) -+ { -+ if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error)) -+ return TRUE; -+ } -+ else - #endif -+ if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error)) - return TRUE; - - if (xfsm_shutdown_sudo_init (shutdown, error)) -@@ -753,10 +772,14 @@ xfsm_shutdown_can_shutdown (XfsmShutdown *shutdown, - } - - #ifdef HAVE_SYSTEMD -- if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error)) --#else -- if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error)) -+ if (shutdown->systemd != NULL) -+ { -+ if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error)) -+ return TRUE; -+ } -+ else - #endif -+ if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error)) - return TRUE; - - if (xfsm_shutdown_sudo_init (shutdown, error)) -@@ -784,6 +807,12 @@ xfsm_shutdown_can_suspend (XfsmShutdown *shutdown, - return TRUE; - } - -+#ifdef HAVE_SYSTEMD -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_can_suspend (shutdown->systemd, can_suspend, -+ auth_suspend, error); -+ else -+#endif - return xfsm_upower_can_suspend (shutdown->upower, can_suspend, - auth_suspend, error); - } -@@ -804,6 +833,12 @@ xfsm_shutdown_can_hibernate (XfsmShutdown *shutdown, - return TRUE; - } - -+#ifdef HAVE_SYSTEMD -+ if (shutdown->systemd != NULL) -+ return xfsm_systemd_can_hibernate (shutdown->systemd, can_hibernate, -+ auth_hibernate, error); -+ else -+#endif - return xfsm_upower_can_hibernate (shutdown->upower, can_hibernate, - auth_hibernate, error); - } -diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c -index 7bdd39d..f18fbf7 100644 ---- a/xfce4-session/xfsm-systemd.c -+++ b/xfce4-session/xfsm-systemd.c -@@ -24,6 +24,7 @@ - #include <dbus/dbus-glib.h> - #include <dbus/dbus-glib-lowlevel.h> - -+#include <libxfsm/xfsm-util.h> - #include <xfce4-session/xfsm-systemd.h> - - -@@ -33,8 +34,12 @@ - #define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" - #define SYSTEMD_REBOOT_ACTION "Reboot" - #define SYSTEMD_POWEROFF_ACTION "PowerOff" -+#define SYSTEMD_SUSPEND_ACTION "Suspend" -+#define SYSTEMD_HIBERNATE_ACTION "Hibernate" - #define SYSTEMD_REBOOT_TEST "org.freedesktop.login1.reboot" - #define SYSTEMD_POWEROFF_TEST "org.freedesktop.login1.power-off" -+#define SYSTEMD_SUSPEND_TEST "org.freedesktop.login1.suspend" -+#define SYSTEMD_HIBERNATE_TEST "org.freedesktop.login1.hibernate" - - - -@@ -93,6 +98,22 @@ xfsm_systemd_finalize (GObject *object) - } - - -+ -+static gboolean -+xfsm_systemd_lock_screen (GError **error) -+{ -+ XfconfChannel *channel; -+ gboolean ret = TRUE; -+ -+ channel = xfsm_open_config (); -+ if (xfconf_channel_get_bool (channel, "/shutdown/LockScreen", FALSE)) -+ ret = g_spawn_command_line_async ("xflock4", error); -+ -+ return ret; -+} -+ -+ -+ - static gboolean - xfsm_systemd_can_method (XfsmSystemd *systemd, - gboolean *can_method, -@@ -205,6 +226,34 @@ xfsm_systemd_try_shutdown (XfsmSystemd *systemd, - - - gboolean -+xfsm_systemd_try_suspend (XfsmSystemd *systemd, -+ GError **error) -+{ -+ if (!xfsm_systemd_lock_screen (error)) -+ return FALSE; -+ -+ return xfsm_systemd_try_method (systemd, -+ SYSTEMD_SUSPEND_ACTION, -+ error); -+} -+ -+ -+ -+gboolean -+xfsm_systemd_try_hibernate (XfsmSystemd *systemd, -+ GError **error) -+{ -+ if (!xfsm_systemd_lock_screen (error)) -+ return FALSE; -+ -+ return xfsm_systemd_try_method (systemd, -+ SYSTEMD_HIBERNATE_ACTION, -+ error); -+} -+ -+ -+ -+gboolean - xfsm_systemd_can_restart (XfsmSystemd *systemd, - gboolean *can_restart, - GError **error) -@@ -227,3 +276,39 @@ xfsm_systemd_can_shutdown (XfsmSystemd *systemd, - SYSTEMD_POWEROFF_TEST, - error); - } -+ -+ -+ -+gboolean -+xfsm_systemd_can_suspend (XfsmSystemd *systemd, -+ gboolean *can_suspend, -+ gboolean *auth_suspend, -+ GError **error) -+{ -+ gboolean ret = FALSE; -+ -+ ret = xfsm_systemd_can_method (systemd, -+ can_suspend, -+ SYSTEMD_SUSPEND_TEST, -+ error); -+ *auth_suspend = *can_suspend; -+ return ret; -+} -+ -+ -+ -+gboolean -+xfsm_systemd_can_hibernate (XfsmSystemd *systemd, -+ gboolean *can_hibernate, -+ gboolean *auth_hibernate, -+ GError **error) -+{ -+ gboolean ret = FALSE; -+ -+ ret = xfsm_systemd_can_method (systemd, -+ can_hibernate, -+ SYSTEMD_HIBERNATE_TEST, -+ error); -+ *auth_hibernate = *can_hibernate; -+ return ret; -+} -diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h -index 8223622..c5e74b5 100644 ---- a/xfce4-session/xfsm-systemd.h -+++ b/xfce4-session/xfsm-systemd.h -@@ -22,6 +22,8 @@ - #ifndef __XFSM_SYSTEMD_H__ - #define __XFSM_SYSTEMD_H__ - -+#define LOGIND_RUNNING() (access ("/run/systemd/seats/", F_OK) >= 0) -+ - typedef struct _XfsmSystemdClass XfsmSystemdClass; - typedef struct _XfsmSystemd XfsmSystemd; - -@@ -42,6 +44,12 @@ gboolean xfsm_systemd_try_restart (XfsmSystemd *systemd, - gboolean xfsm_systemd_try_shutdown (XfsmSystemd *systemd, - GError **error); - -+gboolean xfsm_systemd_try_suspend (XfsmSystemd *systemd, -+ GError **error); -+ -+gboolean xfsm_systemd_try_hibernate (XfsmSystemd *systemd, -+ GError **error); -+ - gboolean xfsm_systemd_can_restart (XfsmSystemd *systemd, - gboolean *can_restart, - GError **error); -@@ -50,6 +58,16 @@ gboolean xfsm_systemd_can_shutdown (XfsmSystemd *systemd, - gboolean *can_shutdown, - GError **error); - -+gboolean xfsm_systemd_can_suspend (XfsmSystemd *systemd, -+ gboolean *can_suspend, -+ gboolean *auth_suspend, -+ GError **error); -+ -+gboolean xfsm_systemd_can_hibernate (XfsmSystemd *systemd, -+ gboolean *can_hibernate, -+ gboolean *auth_hibernate, -+ GError **error); -+ - G_END_DECLS - - #endif /* __XFSM_SYSTEMD_H__ */ |