Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 504044 | Differences between
and this patch

Collapse All | Expand All

(-)xfce4-session-4.10.1.orig/configure.ac (-4 / +4 lines)
Lines 103-109 Link Here
103
103
104
dnl Check for polkit / systemd integration
104
dnl Check for polkit / systemd integration
105
XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100],
105
XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100],
106
                           [systemd], [Systemd support (through polit)])
106
                           [systemd], [Systemd support (through polkit)])
107
107
108
dnl Check for debugging support
108
dnl Check for debugging support
109
XDT_FEATURE_DEBUG([xfsm_debug_default])
109
XDT_FEATURE_DEBUG([xfsm_debug_default])
Lines 207-216 Link Here
207
else
207
else
208
echo " * Legacy session management:      no"
208
echo " * Legacy session management:      no"
209
fi
209
fi
210
if test x"$GNOME_KEYRING_FOUND" = x"yes"; then
210
if test x"$SYSTEMD_FOUND" = x"yes"; then
211
echo " * Gnome Keyring support:          yes"
211
echo " * Systemd support (through polkit):          yes"
212
else
212
else
213
echo " * Gnome Keyring support:          no"
213
echo " * Systemd support (through polkit):          no"
214
fi
214
fi
215
215
216
echo
216
echo
(-)xfce4-session-4.10.1.orig/xfce4-session/Makefile.am (-4 / +2 lines)
Lines 38-43 Link Here
38
	xfsm-compat-gnome.h						\
38
	xfsm-compat-gnome.h						\
39
	xfsm-compat-kde.c						\
39
	xfsm-compat-kde.c						\
40
	xfsm-compat-kde.h						\
40
	xfsm-compat-kde.h						\
41
	xfsm-consolekit.c						\
42
	xfsm-consolekit.h						\
41
	xfsm-dns.c							\
43
	xfsm-dns.c							\
42
	xfsm-dns.h							\
44
	xfsm-dns.h							\
43
	xfsm-error.c							\
45
	xfsm-error.c							\
Lines 67-76 Link Here
67
xfce4_session_SOURCES +=						\
69
xfce4_session_SOURCES +=						\
68
	xfsm-systemd.c							\
70
	xfsm-systemd.c							\
69
	xfsm-systemd.h
71
	xfsm-systemd.h
70
else
71
xfce4_session_SOURCES +=						\
72
	xfsm-consolekit.c						\
73
	xfsm-consolekit.h
74
endif
72
endif
75
73
76
xfce4_session_CFLAGS =							\
74
xfce4_session_CFLAGS =							\
(-)xfce4-session-4.10.1.orig/xfce4-session/xfsm-shutdown.c (-16 / +51 lines)
Lines 63-68 Link Here
63
#include <xfce4-session/xfsm-shutdown.h>
63
#include <xfce4-session/xfsm-shutdown.h>
64
#include <xfce4-session/xfsm-compat-gnome.h>
64
#include <xfce4-session/xfsm-compat-gnome.h>
65
#include <xfce4-session/xfsm-compat-kde.h>
65
#include <xfce4-session/xfsm-compat-kde.h>
66
#include <xfce4-session/xfsm-consolekit.h>
66
#include <xfce4-session/xfsm-fadeout.h>
67
#include <xfce4-session/xfsm-fadeout.h>
67
#include <xfce4-session/xfsm-global.h>
68
#include <xfce4-session/xfsm-global.h>
68
#include <xfce4-session/xfsm-legacy.h>
69
#include <xfce4-session/xfsm-legacy.h>
Lines 70-77 Link Here
70
71
71
#ifdef HAVE_SYSTEMD
72
#ifdef HAVE_SYSTEMD
72
#include <xfce4-session/xfsm-systemd.h>
73
#include <xfce4-session/xfsm-systemd.h>
73
#else
74
#include <xfce4-session/xfsm-consolekit.h>
75
#endif
74
#endif
76
75
77
static void xfsm_shutdown_finalize  (GObject      *object);
76
static void xfsm_shutdown_finalize  (GObject      *object);
Lines 98-106 Link Here
98
97
99
#ifdef HAVE_SYSTEMD
98
#ifdef HAVE_SYSTEMD
100
  XfsmSystemd    *systemd;
99
  XfsmSystemd    *systemd;
101
#else
102
  XfsmConsolekit *consolekit;
103
#endif
100
#endif
101
  XfsmConsolekit *consolekit;
104
  XfsmUPower     *upower;
102
  XfsmUPower     *upower;
105
103
106
  /* kiosk settings */
104
  /* kiosk settings */
Lines 139-148 Link Here
139
  XfceKiosk *kiosk;
137
  XfceKiosk *kiosk;
140
138
141
#ifdef HAVE_SYSTEMD
139
#ifdef HAVE_SYSTEMD
140
  shutdown->consolekit = NULL;
141
  shutdown->systemd = NULL;
142
  if (LOGIND_RUNNING())
142
  shutdown->systemd = xfsm_systemd_get ();
143
  shutdown->systemd = xfsm_systemd_get ();
143
#else
144
  else
144
  shutdown->consolekit = xfsm_consolekit_get ();
145
#endif
145
#endif
146
  shutdown->consolekit = xfsm_consolekit_get ();
147
146
  shutdown->upower = xfsm_upower_get ();
148
  shutdown->upower = xfsm_upower_get ();
147
  shutdown->helper_state = SUDO_NOT_INITIAZED;
149
  shutdown->helper_state = SUDO_NOT_INITIAZED;
148
  shutdown->helper_require_password = FALSE;
150
  shutdown->helper_require_password = FALSE;
Lines 162-171 Link Here
162
  XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
164
  XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
163
165
164
#ifdef HAVE_SYSTEMD
166
#ifdef HAVE_SYSTEMD
167
  if (shutdown->systemd != NULL)
165
  g_object_unref (G_OBJECT (shutdown->systemd));
168
  g_object_unref (G_OBJECT (shutdown->systemd));
166
#else
167
  g_object_unref (G_OBJECT (shutdown->consolekit));
168
#endif
169
#endif
170
  if (shutdown->consolekit != NULL)
171
    g_object_unref (G_OBJECT (shutdown->consolekit));
169
  g_object_unref (G_OBJECT (shutdown->upower));
172
  g_object_unref (G_OBJECT (shutdown->upower));
170
173
171
  /* close down helper */
174
  /* close down helper */
Lines 657-666 Link Here
657
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
660
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
658
  else
661
  else
659
#ifdef HAVE_SYSTEMD
662
#ifdef HAVE_SYSTEMD
663
    if (shutdown->systemd != NULL)
660
    return xfsm_systemd_try_restart (shutdown->systemd, error);
664
    return xfsm_systemd_try_restart (shutdown->systemd, error);
661
#else
665
    else
662
    return xfsm_consolekit_try_restart (shutdown->consolekit, error);
663
#endif
666
#endif
667
    return xfsm_consolekit_try_restart (shutdown->consolekit, error);
664
}
668
}
665
669
666
670
Lines 678-687 Link Here
678
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
682
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
679
  else
683
  else
680
#ifdef HAVE_SYSTEMD
684
#ifdef HAVE_SYSTEMD
685
    if (shutdown->systemd != NULL)
681
    return xfsm_systemd_try_shutdown (shutdown->systemd, error);
686
    return xfsm_systemd_try_shutdown (shutdown->systemd, error);
682
#else
687
    else
683
    return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
684
#endif
688
#endif
689
    return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
685
}
690
}
686
691
687
692
Lines 692-697 Link Here
692
{
697
{
693
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
698
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
694
699
700
#ifdef HAVE_SYSTEMD
701
  if (shutdown->systemd != NULL)
702
    return xfsm_systemd_try_suspend (shutdown->systemd, error);
703
  else
704
#endif
695
  return xfsm_upower_try_suspend (shutdown->upower, error);
705
  return xfsm_upower_try_suspend (shutdown->upower, error);
696
}
706
}
697
707
Lines 703-708 Link Here
703
{
713
{
704
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
714
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
705
715
716
#ifdef HAVE_SYSTEMD
717
  if (shutdown->systemd != NULL)
718
    return xfsm_systemd_try_hibernate (shutdown->systemd, error);
719
  else
720
#endif
706
  return xfsm_upower_try_hibernate (shutdown->upower, error);
721
  return xfsm_upower_try_hibernate (shutdown->upower, error);
707
}
722
}
708
723
Lines 722-731 Link Here
722
    }
737
    }
723
738
724
#ifdef HAVE_SYSTEMD
739
#ifdef HAVE_SYSTEMD
740
  if (shutdown->systemd != NULL)
741
    {
725
  if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
742
  if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
726
#else
743
        return TRUE;
727
  if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
744
    }
745
  else
728
#endif
746
#endif
747
  if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
729
    return TRUE;
748
    return TRUE;
730
749
731
  if (xfsm_shutdown_sudo_init (shutdown, error))
750
  if (xfsm_shutdown_sudo_init (shutdown, error))
Lines 753-762 Link Here
753
    }
772
    }
754
773
755
#ifdef HAVE_SYSTEMD
774
#ifdef HAVE_SYSTEMD
775
  if (shutdown->systemd != NULL)
776
    {
756
  if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
777
  if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
757
#else
778
        return TRUE;
758
  if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
779
    }
780
  else
759
#endif
781
#endif
782
  if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
760
    return TRUE;
783
    return TRUE;
761
784
762
  if (xfsm_shutdown_sudo_init (shutdown, error))
785
  if (xfsm_shutdown_sudo_init (shutdown, error))
Lines 784-789 Link Here
784
      return TRUE;
807
      return TRUE;
785
    }
808
    }
786
809
810
#ifdef HAVE_SYSTEMD
811
  if (shutdown->systemd != NULL)
812
    return xfsm_systemd_can_suspend (shutdown->systemd, can_suspend,
813
                                     auth_suspend, error);
814
  else
815
#endif
787
  return xfsm_upower_can_suspend (shutdown->upower, can_suspend, 
816
  return xfsm_upower_can_suspend (shutdown->upower, can_suspend, 
788
                                  auth_suspend, error);
817
                                  auth_suspend, error);
789
}
818
}
Lines 804-809 Link Here
804
      return TRUE;
833
      return TRUE;
805
    }
834
    }
806
835
836
#ifdef HAVE_SYSTEMD
837
  if (shutdown->systemd != NULL)
838
    return xfsm_systemd_can_hibernate (shutdown->systemd, can_hibernate,
839
                                       auth_hibernate, error);
840
  else
841
#endif
807
  return xfsm_upower_can_hibernate (shutdown->upower, can_hibernate,
842
  return xfsm_upower_can_hibernate (shutdown->upower, can_hibernate,
808
                                    auth_hibernate, error);
843
                                    auth_hibernate, error);
809
}
844
}
(-)xfce4-session-4.10.1.orig/xfce4-session/xfsm-systemd.c (+85 lines)
Lines 24-29 Link Here
24
#include <dbus/dbus-glib.h>
24
#include <dbus/dbus-glib.h>
25
#include <dbus/dbus-glib-lowlevel.h>
25
#include <dbus/dbus-glib-lowlevel.h>
26
26
27
#include <libxfsm/xfsm-util.h>
27
#include <xfce4-session/xfsm-systemd.h>
28
#include <xfce4-session/xfsm-systemd.h>
28
29
29
30
Lines 33-40 Link Here
33
#define SYSTEMD_DBUS_INTERFACE          "org.freedesktop.login1.Manager"
34
#define SYSTEMD_DBUS_INTERFACE          "org.freedesktop.login1.Manager"
34
#define SYSTEMD_REBOOT_ACTION           "Reboot"
35
#define SYSTEMD_REBOOT_ACTION           "Reboot"
35
#define SYSTEMD_POWEROFF_ACTION         "PowerOff"
36
#define SYSTEMD_POWEROFF_ACTION         "PowerOff"
37
#define SYSTEMD_SUSPEND_ACTION          "Suspend"
38
#define SYSTEMD_HIBERNATE_ACTION        "Hibernate"
36
#define SYSTEMD_REBOOT_TEST             "org.freedesktop.login1.reboot"
39
#define SYSTEMD_REBOOT_TEST             "org.freedesktop.login1.reboot"
37
#define SYSTEMD_POWEROFF_TEST           "org.freedesktop.login1.power-off"
40
#define SYSTEMD_POWEROFF_TEST           "org.freedesktop.login1.power-off"
41
#define SYSTEMD_SUSPEND_TEST            "org.freedesktop.login1.suspend"
42
#define SYSTEMD_HIBERNATE_TEST          "org.freedesktop.login1.hibernate"
38
43
39
44
40
45
Lines 93-98 Link Here
93
}
98
}
94
99
95
100
101
102
static gboolean
103
xfsm_systemd_lock_screen (GError **error)
104
{
105
  XfconfChannel *channel;
106
  gboolean       ret = TRUE;
107
108
  channel = xfsm_open_config ();
109
  if (xfconf_channel_get_bool (channel, "/shutdown/LockScreen", FALSE))
110
      ret = g_spawn_command_line_async ("xflock4", error);
111
112
  return ret;
113
}
114
115
116
96
static gboolean
117
static gboolean
97
xfsm_systemd_can_method (XfsmSystemd  *systemd,
118
xfsm_systemd_can_method (XfsmSystemd  *systemd,
98
                         gboolean     *can_method,
119
                         gboolean     *can_method,
Lines 205-210 Link Here
205
226
206
227
207
gboolean
228
gboolean
229
xfsm_systemd_try_suspend (XfsmSystemd  *systemd,
230
                          GError      **error)
231
{
232
  if (!xfsm_systemd_lock_screen (error))
233
    return FALSE;
234
235
  return xfsm_systemd_try_method (systemd,
236
                                  SYSTEMD_SUSPEND_ACTION,
237
                                  error);
238
}
239
240
241
242
gboolean
243
xfsm_systemd_try_hibernate (XfsmSystemd  *systemd,
244
                            GError      **error)
245
{
246
  if (!xfsm_systemd_lock_screen (error))
247
    return FALSE;
248
249
  return xfsm_systemd_try_method (systemd,
250
                                  SYSTEMD_HIBERNATE_ACTION,
251
                                  error);
252
}
253
254
255
256
gboolean
208
xfsm_systemd_can_restart (XfsmSystemd  *systemd,
257
xfsm_systemd_can_restart (XfsmSystemd  *systemd,
209
                          gboolean     *can_restart,
258
                          gboolean     *can_restart,
210
                          GError      **error)
259
                          GError      **error)
Lines 227-229 Link Here
227
                                  SYSTEMD_POWEROFF_TEST,
276
                                  SYSTEMD_POWEROFF_TEST,
228
                                  error);
277
                                  error);
229
}
278
}
279
280
281
282
gboolean
283
xfsm_systemd_can_suspend (XfsmSystemd  *systemd,
284
                          gboolean     *can_suspend,
285
                          gboolean     *auth_suspend,
286
                          GError      **error)
287
{
288
  gboolean ret = FALSE;
289
290
  ret = xfsm_systemd_can_method (systemd,
291
                                 can_suspend,
292
                                 SYSTEMD_SUSPEND_TEST,
293
                                 error);
294
  *auth_suspend = *can_suspend;
295
  return ret;
296
}
297
298
299
300
gboolean
301
xfsm_systemd_can_hibernate (XfsmSystemd  *systemd,
302
                            gboolean     *can_hibernate,
303
                            gboolean     *auth_hibernate,
304
                            GError      **error)
305
{
306
  gboolean ret = FALSE;
307
308
  ret = xfsm_systemd_can_method (systemd,
309
                                 can_hibernate,
310
                                 SYSTEMD_HIBERNATE_TEST,
311
                                 error);
312
  *auth_hibernate = *can_hibernate;
313
  return ret;
314
}
(-)xfce4-session-4.10.1.orig/xfce4-session/xfsm-systemd.h (+18 lines)
Lines 22-27 Link Here
22
#ifndef __XFSM_SYSTEMD_H__
22
#ifndef __XFSM_SYSTEMD_H__
23
#define __XFSM_SYSTEMD_H__
23
#define __XFSM_SYSTEMD_H__
24
24
25
#define LOGIND_RUNNING() (access ("/run/systemd/seats/", F_OK) >= 0)
26
25
typedef struct _XfsmSystemdClass XfsmSystemdClass;
27
typedef struct _XfsmSystemdClass XfsmSystemdClass;
26
typedef struct _XfsmSystemd      XfsmSystemd;
28
typedef struct _XfsmSystemd      XfsmSystemd;
27
29
Lines 42-47 Link Here
42
gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
44
gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
43
                                        GError      **error);
45
                                        GError      **error);
44
46
47
gboolean     xfsm_systemd_try_suspend  (XfsmSystemd  *systemd,
48
                                        GError      **error);
49
50
gboolean     xfsm_systemd_try_hibernate (XfsmSystemd *systemd,
51
                                        GError      **error);
52
45
gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
53
gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
46
                                        gboolean     *can_restart,
54
                                        gboolean     *can_restart,
47
                                        GError      **error);
55
                                        GError      **error);
Lines 50-55 Link Here
50
                                        gboolean     *can_shutdown,
58
                                        gboolean     *can_shutdown,
51
                                        GError      **error);
59
                                        GError      **error);
52
60
61
gboolean     xfsm_systemd_can_suspend  (XfsmSystemd  *systemd,
62
                                        gboolean     *can_suspend,
63
                                        gboolean     *auth_suspend,
64
                                        GError      **error);
65
66
gboolean     xfsm_systemd_can_hibernate (XfsmSystemd *systemd,
67
                                        gboolean     *can_hibernate,
68
                                        gboolean     *auth_hibernate,
69
                                        GError      **error);
70
53
G_END_DECLS
71
G_END_DECLS
54
72
55
#endif  /* __XFSM_SYSTEMD_H__ */
73
#endif  /* __XFSM_SYSTEMD_H__ */

Return to bug 504044