diff options
author | root <root@rshg054.dnsready.net> | 2012-03-12 00:01:32 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-03-12 00:01:32 +0000 |
commit | a6cb3ddef295c5feb4e03ee198dbb31cdf62d518 (patch) | |
tree | 4ea0c57a9a347779a3d69ebee2dc54d994a30235 /gnome-unstable/gnome-control-center/systemd-fallback.patch | |
parent | 4640048ddd1331c9f6fc14b8921ccecdb6b1ea11 (diff) |
Mon Mar 12 00:01:32 UTC 2012
Diffstat (limited to 'gnome-unstable/gnome-control-center/systemd-fallback.patch')
-rw-r--r-- | gnome-unstable/gnome-control-center/systemd-fallback.patch | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/gnome-unstable/gnome-control-center/systemd-fallback.patch b/gnome-unstable/gnome-control-center/systemd-fallback.patch new file mode 100644 index 000000000..a83629db6 --- /dev/null +++ b/gnome-unstable/gnome-control-center/systemd-fallback.patch @@ -0,0 +1,120 @@ +diff -u -Nr gnome-control-center-3.3.91/configure.ac gnome-control-center-3.3.91-systemd-fallback/configure.ac +--- gnome-control-center-3.3.91/configure.ac 2012-03-05 20:30:32.000000000 +0100 ++++ gnome-control-center-3.3.91-systemd-fallback/configure.ac 2012-03-07 00:06:01.752988448 +0100 +@@ -56,7 +56,7 @@ + [with_systemd=$enableval], + [with_systemd=no]) + if test "$with_systemd" = "yes" ; then +- SYSTEMD=libsystemd-login ++ SYSTEMD="libsystemd-login libsystemd-daemon" + AC_DEFINE(HAVE_SYSTEMD, 1, [Define to 1 if systemd is available]) + else + SYSTEMD= +diff -u -Nr gnome-control-center-3.3.91/panels/user-accounts/um-user.c gnome-control-center-3.3.91-systemd-fallback/panels/user-accounts/um-user.c +--- gnome-control-center-3.3.91/panels/user-accounts/um-user.c 2012-03-05 15:04:55.000000000 +0100 ++++ gnome-control-center-3.3.91-systemd-fallback/panels/user-accounts/um-user.c 2012-03-07 00:13:13.002755560 +0100 +@@ -37,6 +37,11 @@ + + #include <gio/gunixoutputstream.h> + ++#ifdef HAVE_SYSTEMD ++# include <systemd/sd-login.h> ++# include <systemd/sd-daemon.h> ++#endif ++ + #include "um-user.h" + #include "um-account-type.h" + #include "um-utils.h" +@@ -1003,57 +1008,50 @@ + } + } + +-#ifdef HAVE_SYSTEMD +- +-#include <systemd/sd-login.h> +- + gboolean + um_user_is_logged_in (UmUser *user) + { +- int n_sessions; +- +- n_sessions = sd_uid_get_sessions (um_user_get_uid (user), 0, NULL) > 0; +- +- return n_sessions > 0; +-} ++#ifdef HAVE_SYSTEMD ++ if (sd_booted () > 0) { ++ int n_sessions; + +-#else ++ n_sessions = sd_uid_get_sessions (um_user_get_uid (user), 0, NULL) > 0; + +-gboolean +-um_user_is_logged_in (UmUser *user) +-{ +- GVariant *result; +- GVariantIter *iter; +- gint n_sessions; +- GError *error = NULL; ++ return n_sessions > 0; ++ } else ++#endif ++ { ++ GVariant *result; ++ GVariantIter *iter; ++ gint n_sessions; ++ GError *error = NULL; ++ ++ result = g_dbus_connection_call_sync (user->bus, ++ "org.freedesktop.ConsoleKit", ++ "/org/freedesktop/ConsoleKit/Manager", ++ "org.freedesktop.ConsoleKit.Manager", ++ "GetSessionsForUnixUser", ++ g_variant_new ("(u)", um_user_get_uid (user)), ++ G_VARIANT_TYPE ("(ao)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ if (!result) { ++ g_warning ("GetSessionsForUnixUser failed: %s", error->message); ++ g_error_free (error); ++ return FALSE; ++ } ++ ++ g_variant_get (result, "(ao)", &iter); ++ n_sessions = g_variant_iter_n_children (iter); ++ g_variant_iter_free (iter); ++ g_variant_unref (result); + +- result = g_dbus_connection_call_sync (user->bus, +- "org.freedesktop.ConsoleKit", +- "/org/freedesktop/ConsoleKit/Manager", +- "org.freedesktop.ConsoleKit.Manager", +- "GetSessionsForUnixUser", +- g_variant_new ("(u)", um_user_get_uid (user)), +- G_VARIANT_TYPE ("(ao)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- NULL, +- &error); +- if (!result) { +- g_warning ("GetSessionsForUnixUser failed: %s", error->message); +- g_error_free (error); +- return FALSE; ++ return n_sessions > 0; + } +- +- g_variant_get (result, "(ao)", &iter); +- n_sessions = g_variant_iter_n_children (iter); +- g_variant_iter_free (iter); +- g_variant_unref (result); +- +- return n_sessions > 0; + } + +-#endif +- + void + um_user_set_automatic_login (UmUser *user, + gboolean enabled) |