1 diff -uNr gnome-settings-daemon-3.6.0/configure.ac gnome-settings-daemon-3.6.0.new/configure.ac
2 --- gnome-settings-daemon-3.6.0/configure.ac 2012-09-25 10:36:08.000000000 +0200
3 +++ gnome-settings-daemon-3.6.0.new/configure.ac 2012-10-03 20:20:58.796757197 +0200
5 [with_systemd=$enableval],
7 if test "$with_systemd" = "yes" ; then
8 - PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login])
9 + PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon libsystemd-login])
10 AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
11 SESSION_TRACKING=systemd
13 diff -uNr gnome-settings-daemon-3.6.0/gnome-settings-daemon/gnome-settings-session.c gnome-settings-daemon-3.6.0.new/gnome-settings-daemon/gnome-settings-session.c
14 --- gnome-settings-daemon-3.6.0/gnome-settings-daemon/gnome-settings-session.c 2012-02-15 19:21:07.000000000 +0100
15 +++ gnome-settings-daemon-3.6.0.new/gnome-settings-daemon/gnome-settings-session.c 2012-10-03 20:20:58.796757197 +0200
17 #include "gnome-settings-session.h"
20 +#include <systemd/sd-daemon.h>
21 #include <systemd/sd-login.h>
30 GDBusProxy *proxy_session;
31 GCancellable *cancellable;
34 GnomeSettingsSessionState state;
40 -#else /* HAVE_SYSTEMD */
41 +#endif /* HAVE_SYSTEMD */
44 gnome_settings_session_proxy_signal_cb (GDBusProxy *proxy,
46 g_object_unref (proxy_manager);
49 -#endif /* HAVE_SYSTEMD */
52 gnome_settings_session_init (GnomeSettingsSession *session)
54 session->priv = GNOME_SETTINGS_SESSION_GET_PRIVATE (session);
57 - sd_pid_get_session (getpid(), &session->priv->session_id);
59 - session->priv->sd_source = sd_source_new ();
60 - g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL);
61 - g_source_attach (session->priv->sd_source, NULL);
63 - sessions_changed (session);
65 + session->priv->sd_source = NULL;
67 + if (sd_booted () > 0) {
68 + sd_pid_get_session (getpid(), &session->priv->session_id);
70 + session->priv->sd_source = sd_source_new ();
71 + g_source_set_callback (session->priv->sd_source, sessions_changed, session, NULL);
72 + g_source_attach (session->priv->sd_source, NULL);
74 + sessions_changed (session);
79 session->priv->cancellable = g_cancellable_new ();
81 /* connect to ConsoleKit */
83 session->priv->cancellable,
91 if (session->priv->sd_source != NULL) {
92 g_source_destroy (session->priv->sd_source);
93 g_source_unref (session->priv->sd_source);
98 g_cancellable_cancel (session->priv->cancellable);
100 if (session->priv->proxy_session != NULL)
101 g_object_unref (session->priv->proxy_session);
102 g_object_unref (session->priv->cancellable);
106 G_OBJECT_CLASS (gnome_settings_session_parent_class)->finalize (object);
109 diff -uNr gnome-settings-daemon-3.6.0/plugins/common/gsd-power-helper.c gnome-settings-daemon-3.6.0.new/plugins/common/gsd-power-helper.c
110 --- gnome-settings-daemon-3.6.0/plugins/common/gsd-power-helper.c 2012-09-17 18:48:45.000000000 +0200
111 +++ gnome-settings-daemon-3.6.0.new/plugins/common/gsd-power-helper.c 2012-10-03 20:20:58.796757197 +0200
113 g_object_unref (bus);
116 -#else /* HAVE_SYSTEMD */
117 +#endif /* HAVE_SYSTEMD */
120 consolekit_stop_cb (GObject *source_object,
121 @@ -170,34 +170,37 @@
123 upower_sleep_cb, NULL);
125 -#endif /* HAVE_SYSTEMD */
129 gsd_power_suspend (GDBusProxy *upower_proxy)
132 - systemd_suspend ();
134 - upower_suspend (upower_proxy);
135 + if (sd_booted () > 0)
136 + systemd_suspend ();
139 + upower_suspend (upower_proxy);
143 gsd_power_poweroff (void)
148 - consolekit_stop ();
149 + if (sd_booted () > 0)
153 + consolekit_stop ();
157 gsd_power_hibernate (GDBusProxy *upower_proxy)
160 - systemd_hibernate ();
162 - upower_hibernate (upower_proxy);
163 + if (sd_booted () > 0)
164 + systemd_hibernate ();
167 + upower_hibernate (upower_proxy);
169 diff -uNr gnome-settings-daemon-3.6.0/plugins/common/Makefile.am gnome-settings-daemon-3.6.0.new/plugins/common/Makefile.am
170 --- gnome-settings-daemon-3.6.0/plugins/common/Makefile.am 2012-09-17 18:48:45.000000000 +0200
171 +++ gnome-settings-daemon-3.6.0.new/plugins/common/Makefile.am 2012-10-03 20:24:52.764019870 +0200
174 $(SETTINGS_PLUGIN_CFLAGS) \
176 + $(SYSTEMD_CFLAGS) \
179 libcommon_la_LDFLAGS = \
182 libcommon_la_LIBADD = \
183 $(SETTINGS_PLUGIN_LIBS) \
187 libexec_PROGRAMS = gsd-test-input-helper