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

(-)configure.ac.orig (+5 lines)
Lines 238-243 Link Here
238
else
238
else
239
echo " * Gnome Keyring support:          no"
239
echo " * Gnome Keyring support:          no"
240
fi
240
fi
241
if test x"$SYSTEMD_FOUND" = x"yes"; then
242
echo " * Systemd support:                yes"
243
else
244
echo " * Systemd support:                no"
245
fi
241
echo " * Backend:                        ${with_backend}"
246
echo " * Backend:                        ${with_backend}"
242
247
243
echo
248
echo
(-)xfce4-session/xfsm-systemd.c.orig (-1 / +83 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-41 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"
38
41
#define SYSTEMD_SUSPEND_TEST            "org.freedesktop.login1.suspend"
42
#define SYSTEMD_HIBERNATE_TEST          "org.freedesktop.login1.hibernate"
39
43
40
44
41
static void     xfsm_systemd_finalize     (GObject         *object);
45
static void     xfsm_systemd_finalize     (GObject         *object);
Lines 94-99 Link Here
94
98
95
99
96
static gboolean
100
static gboolean
101
xfsm_systemd_lock_screen (GError **error)
102
{
103
  XfconfChannel *channel;
104
  gboolean       ret = TRUE;
105
106
  channel = xfsm_open_config ();
107
  if (xfconf_channel_get_bool (channel, "/shutdown/LockScreen", FALSE))
108
      ret = g_spawn_command_line_async ("xflock4", error);
109
110
  return ret;
111
}
112
113
114
static gboolean
97
xfsm_systemd_can_method (XfsmSystemd  *systemd,
115
xfsm_systemd_can_method (XfsmSystemd  *systemd,
98
                         gboolean     *can_method,
116
                         gboolean     *can_method,
99
                         const gchar  *method,
117
                         const gchar  *method,
Lines 205-210 Link Here
205
223
206
224
207
gboolean
225
gboolean
226
xfsm_systemd_try_suspend (XfsmSystemd  *systemd,
227
                          GError      **error)
228
{
229
  if (!xfsm_systemd_lock_screen (error))
230
    return FALSE;
231
232
  return xfsm_systemd_try_method (systemd,
233
                                  SYSTEMD_SUSPEND_ACTION,
234
                                  error);
235
}
236
237
238
239
gboolean
240
xfsm_systemd_try_hibernate (XfsmSystemd  *systemd,
241
                            GError      **error)
242
{
243
  if (!xfsm_systemd_lock_screen (error))
244
    return FALSE;
245
246
  return xfsm_systemd_try_method (systemd,
247
                                  SYSTEMD_HIBERNATE_ACTION,
248
                                  error);
249
}
250
251
252
253
gboolean
208
xfsm_systemd_can_restart (XfsmSystemd  *systemd,
254
xfsm_systemd_can_restart (XfsmSystemd  *systemd,
209
                          gboolean     *can_restart,
255
                          gboolean     *can_restart,
210
                          GError      **error)
256
                          GError      **error)
Lines 227-229 Link Here
227
                                  SYSTEMD_POWEROFF_TEST,
273
                                  SYSTEMD_POWEROFF_TEST,
228
                                  error);
274
                                  error);
229
}
275
}
276
277
278
279
gboolean
280
xfsm_systemd_can_suspend (XfsmSystemd  *systemd,
281
                          gboolean     *can_suspend,
282
                          gboolean     *auth_suspend,
283
                          GError      **error)
284
{
285
  gboolean ret = FALSE;
286
287
  ret = xfsm_systemd_can_method (systemd,
288
                                 can_suspend,
289
                                 SYSTEMD_SUSPEND_TEST,
290
                                 error);
291
  *auth_suspend = *can_suspend;
292
  return ret;
293
}
294
295
296
297
gboolean
298
xfsm_systemd_can_hibernate (XfsmSystemd  *systemd,
299
                            gboolean     *can_hibernate,
300
                            gboolean     *auth_hibernate,
301
                            GError      **error)
302
{
303
  gboolean ret = FALSE;
304
305
  ret = xfsm_systemd_can_method (systemd,
306
                                 can_hibernate,
307
                                 SYSTEMD_HIBERNATE_TEST,
308
                                 error);
309
  *auth_hibernate = *can_hibernate;
310
  return ret;
311
}
(-)xfce4-session/xfsm-systemd.h.orig (+16 lines)
Lines 42-47 Link Here
42
gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
42
gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
43
                                        GError      **error);
43
                                        GError      **error);
44
44
45
gboolean     xfsm_systemd_try_suspend  (XfsmSystemd  *systemd,
46
                                        GError      **error);
47
48
gboolean     xfsm_systemd_try_hibernate (XfsmSystemd *systemd,
49
                                        GError      **error);
50
45
gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
51
gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
46
                                        gboolean     *can_restart,
52
                                        gboolean     *can_restart,
47
                                        GError      **error);
53
                                        GError      **error);
Lines 50-55 Link Here
50
                                        gboolean     *can_shutdown,
56
                                        gboolean     *can_shutdown,
51
                                        GError      **error);
57
                                        GError      **error);
52
58
59
gboolean     xfsm_systemd_can_suspend  (XfsmSystemd  *systemd,
60
                                        gboolean     *can_suspend,
61
                                        gboolean     *auth_suspend,
62
                                        GError      **error);
63
64
gboolean     xfsm_systemd_can_hibernate (XfsmSystemd *systemd,
65
                                        gboolean     *can_hibernate,
66
                                        gboolean     *auth_hibernate,
67
                                        GError      **error);
68
53
G_END_DECLS
69
G_END_DECLS
54
70
55
#endif  /* __XFSM_SYSTEMD_H__ */
71
#endif  /* __XFSM_SYSTEMD_H__ */
(-)xfce4-session/xfsm-shutdown.c.orig (-10 / +47 lines)
Lines 70-75 Link Here
70
#include <xfce4-session/xfsm-upower.h>
70
#include <xfce4-session/xfsm-upower.h>
71
71
72
#ifdef HAVE_SYSTEMD
72
#ifdef HAVE_SYSTEMD
73
#define LOGIND_RUNNING() (access ("/run/systemd/seats/", F_OK) >= 0)
73
#include <xfce4-session/xfsm-systemd.h>
74
#include <xfce4-session/xfsm-systemd.h>
74
#else
75
#else
75
#include <xfce4-session/xfsm-consolekit.h>
76
#include <xfce4-session/xfsm-consolekit.h>
Lines 142-148 Link Here
142
  XfceKiosk *kiosk;
143
  XfceKiosk *kiosk;
143
144
144
#ifdef HAVE_SYSTEMD
145
#ifdef HAVE_SYSTEMD
145
  shutdown->systemd = xfsm_systemd_get ();
146
  if (LOGIND_RUNNING())
147
     shutdown->systemd = xfsm_systemd_get ();
148
  else
149
     shutdown->systemd = NULL;
146
#else
150
#else
147
  shutdown->consolekit = xfsm_consolekit_get ();
151
  shutdown->consolekit = xfsm_consolekit_get ();
148
#endif
152
#endif
Lines 165-171 Link Here
165
  XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
169
  XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
166
170
167
#ifdef HAVE_SYSTEMD
171
#ifdef HAVE_SYSTEMD
168
  g_object_unref (G_OBJECT (shutdown->systemd));
172
  if (LOGIND_RUNNING())
173
    g_object_unref (G_OBJECT (shutdown->systemd));
169
#else
174
#else
170
  g_object_unref (G_OBJECT (shutdown->consolekit));
175
  g_object_unref (G_OBJECT (shutdown->consolekit));
171
#endif
176
#endif
Lines 662-668 Link Here
662
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
667
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
663
  else
668
  else
664
#ifdef HAVE_SYSTEMD
669
#ifdef HAVE_SYSTEMD
665
    return xfsm_systemd_try_restart (shutdown->systemd, error);
670
    if (LOGIND_RUNNING())
671
       return xfsm_systemd_try_restart (shutdown->systemd, error);
672
    else
673
       return FALSE;
666
#else
674
#else
667
    return xfsm_consolekit_try_restart (shutdown->consolekit, error);
675
    return xfsm_consolekit_try_restart (shutdown->consolekit, error);
668
#endif
676
#endif
Lines 683-689 Link Here
683
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
691
    return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
684
  else
692
  else
685
#ifdef HAVE_SYSTEMD
693
#ifdef HAVE_SYSTEMD
686
    return xfsm_systemd_try_shutdown (shutdown->systemd, error);
694
    if (LOGIND_RUNNING())
695
       return xfsm_systemd_try_shutdown (shutdown->systemd, error);
696
    else
697
       return FALSE;
687
#else
698
#else
688
    return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
699
    return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
689
#endif
700
#endif
Lines 696-702 Link Here
696
                           GError       **error)
707
                           GError       **error)
697
{
708
{
698
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
709
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
699
710
#ifdef HAVE_SYSTEMD
711
  if (LOGIND_RUNNING())
712
    return xfsm_systemd_try_suspend (shutdown->systemd, error);
713
  else
714
    return FALSE;
715
#else
700
#if UP_CHECK_VERSION(0, 99, 0)
716
#if UP_CHECK_VERSION(0, 99, 0)
701
  if (shutdown->helper_state == SUDO_AVAILABLE)
717
  if (shutdown->helper_state == SUDO_AVAILABLE)
702
    {
718
    {
Lines 708-713 Link Here
708
#else
724
#else
709
    return xfsm_upower_try_suspend (shutdown->upower, error);
725
    return xfsm_upower_try_suspend (shutdown->upower, error);
710
#endif
726
#endif
727
#endif
711
}
728
}
712
729
713
730
Lines 717-723 Link Here
717
                             GError       **error)
734
                             GError       **error)
718
{
735
{
719
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
736
  g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
720
737
#ifdef HAVE_SYSTEMD
738
  if (LOGIND_RUNNING())
739
    return xfsm_systemd_try_hibernate (shutdown->systemd, error);
740
  else
741
    return FALSE;
742
#else
721
#if UP_CHECK_VERSION(0, 99, 0)
743
#if UP_CHECK_VERSION(0, 99, 0)
722
  if (shutdown->helper_state == SUDO_AVAILABLE)
744
  if (shutdown->helper_state == SUDO_AVAILABLE)
723
    {
745
    {
Lines 729-734 Link Here
729
#else
751
#else
730
    return xfsm_upower_try_hibernate (shutdown->upower, error);
752
    return xfsm_upower_try_hibernate (shutdown->upower, error);
731
#endif
753
#endif
754
#endif
732
}
755
}
733
756
734
757
Lines 747-753 Link Here
747
    }
770
    }
748
771
749
#ifdef HAVE_SYSTEMD
772
#ifdef HAVE_SYSTEMD
750
  if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
773
  if (LOGIND_RUNNING() && xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
751
#else
774
#else
752
  if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
775
  if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
753
#endif
776
#endif
Lines 778-784 Link Here
778
    }
801
    }
779
802
780
#ifdef HAVE_SYSTEMD
803
#ifdef HAVE_SYSTEMD
781
  if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
804
  if (LOGIND_RUNNING() && xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
782
#else
805
#else
783
  if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
806
  if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
784
#endif
807
#endif
Lines 808-814 Link Here
808
      *can_suspend = FALSE;
831
      *can_suspend = FALSE;
809
      return TRUE;
832
      return TRUE;
810
    }
833
    }
811
834
#ifdef HAVE_SYSTEMD
835
  if (LOGIND_RUNNING())
836
    return xfsm_systemd_can_suspend (shutdown->systemd, can_suspend,
837
                                     auth_suspend, error);
838
  else
839
    return FALSE;
840
#else
812
#if UP_CHECK_VERSION(0, 99, 0)
841
#if UP_CHECK_VERSION(0, 99, 0)
813
  *can_suspend = xfsm_shutdown_fallback_can_suspend ();
842
  *can_suspend = xfsm_shutdown_fallback_can_suspend ();
814
  return TRUE;
843
  return TRUE;
Lines 816-821 Link Here
816
  return xfsm_upower_can_suspend (shutdown->upower, can_suspend, 
845
  return xfsm_upower_can_suspend (shutdown->upower, can_suspend, 
817
                                  auth_suspend, error);
846
                                  auth_suspend, error);
818
#endif
847
#endif
848
#endif
819
}
849
}
820
850
821
851
Lines 833-839 Link Here
833
      *can_hibernate = FALSE;
863
      *can_hibernate = FALSE;
834
      return TRUE;
864
      return TRUE;
835
    }
865
    }
836
866
#ifdef HAVE_SYSTEMD
867
  if (LOGIND_RUNNING())
868
    return xfsm_systemd_can_hibernate (shutdown->systemd, can_hibernate,
869
                                       auth_hibernate, error);
870
  else
871
    return FALSE;
872
#else
837
#if UP_CHECK_VERSION(0, 99, 0)
873
#if UP_CHECK_VERSION(0, 99, 0)
838
  *can_hibernate = xfsm_shutdown_fallback_can_hibernate ();
874
  *can_hibernate = xfsm_shutdown_fallback_can_hibernate ();
839
  return TRUE;
875
  return TRUE;
Lines 841-846 Link Here
841
  return xfsm_upower_can_hibernate (shutdown->upower, can_hibernate,
877
  return xfsm_upower_can_hibernate (shutdown->upower, can_hibernate,
842
                                    auth_hibernate, error);
878
                                    auth_hibernate, error);
843
#endif
879
#endif
880
#endif
844
}
881
}
845
882
846
883

Return to bug 504044