[arch-commits] Commit in mate-session-manager/repos (10 files)

Martin Wimpress flexiondotorg at nymeria.archlinux.org
Thu Jan 16 16:24:45 UTC 2014


    Date: Thursday, January 16, 2014 @ 17:24:45
  Author: flexiondotorg
Revision: 104191

archrelease: copy trunk to community-i686, community-x86_64

Added:
  mate-session-manager/repos/community-i686/
  mate-session-manager/repos/community-i686/PKGBUILD
    (from rev 104190, mate-session-manager/trunk/PKGBUILD)
  mate-session-manager/repos/community-i686/e934e91226e9a93956121c9c84ecf3664fcd68be.diff
    (from rev 104190, mate-session-manager/trunk/e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
  mate-session-manager/repos/community-i686/f0b5b1ab78879d64f80117415aacf029359afea5.diff
    (from rev 104190, mate-session-manager/trunk/f0b5b1ab78879d64f80117415aacf029359afea5.diff)
  mate-session-manager/repos/community-i686/mate-session-manager.install
    (from rev 104190, mate-session-manager/trunk/mate-session-manager.install)
  mate-session-manager/repos/community-x86_64/
  mate-session-manager/repos/community-x86_64/PKGBUILD
    (from rev 104190, mate-session-manager/trunk/PKGBUILD)
  mate-session-manager/repos/community-x86_64/e934e91226e9a93956121c9c84ecf3664fcd68be.diff
    (from rev 104190, mate-session-manager/trunk/e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
  mate-session-manager/repos/community-x86_64/f0b5b1ab78879d64f80117415aacf029359afea5.diff
    (from rev 104190, mate-session-manager/trunk/f0b5b1ab78879d64f80117415aacf029359afea5.diff)
  mate-session-manager/repos/community-x86_64/mate-session-manager.install
    (from rev 104190, mate-session-manager/trunk/mate-session-manager.install)

----------------------------------------------------------------+
 community-i686/PKGBUILD                                        |   54 +
 community-i686/e934e91226e9a93956121c9c84ecf3664fcd68be.diff   |  293 ++++++++++
 community-i686/f0b5b1ab78879d64f80117415aacf029359afea5.diff   |  271 +++++++++
 community-i686/mate-session-manager.install                    |   12 
 community-x86_64/PKGBUILD                                      |   54 +
 community-x86_64/e934e91226e9a93956121c9c84ecf3664fcd68be.diff |  293 ++++++++++
 community-x86_64/f0b5b1ab78879d64f80117415aacf029359afea5.diff |  271 +++++++++
 community-x86_64/mate-session-manager.install                  |   12 
 8 files changed, 1260 insertions(+)

Copied: mate-session-manager/repos/community-i686/PKGBUILD (from rev 104190, mate-session-manager/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD	                        (rev 0)
+++ community-i686/PKGBUILD	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,54 @@
+# $Id$
+# Maintainer : Martin Wimpress <code at flexion.org>
+# Contributor: Giovanni Ricciardi <kar98k.sniper at gmail.com>
+# Contributor: Xpander <xpander0 at gmail.com>
+
+pkgname=mate-session-manager
+pkgver=1.6.1
+pkgrel=9
+pkgdesc="The MATE Session Handler"
+url="http://mate-desktop.org"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('dbus-glib' 'gtk2' 'libsm' 'libxtst' 'mate-desktop' 'mate-polkit'
+         'mate-settings-daemon')
+makedepends=('mate-common' 'perl-xml-parser' 'xmlto')
+options=('!emptydirs')
+groups=('mate')
+source=("http://pub.mate-desktop.org/releases/1.6/${pkgname}-${pkgver}.tar.xz"
+        f0b5b1ab78879d64f80117415aacf029359afea5.diff
+        e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
+sha1sums=('46188f6c02cc5978688af9d5db4be09f1b9199a5'
+          '20fb99c29731d05191cd0029d0573db784b06ccf'
+          '4312495bcd12ca5a20f7d5442b7517902605534c')
+install=${pkgname}.install
+
+prepare() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    # fix systemd-login1 support for hibernate/suspend
+    # https://github.com/mate-desktop/mate-session-manager/commit/f0b5b1ab78879d64f80117415aacf029359afea5
+    patch -Np1 -i "${srcdir}/f0b5b1ab78879d64f80117415aacf029359afea5.diff"
+
+    # Make upower optional
+    # https://github.com/mate-desktop/mate-session-manager/commit/e934e91226e9a93956121c9c84ecf3664fcd68be
+    patch -Np1 -i "${srcdir}/e934e91226e9a93956121c9c84ecf3664fcd68be.diff"
+
+    # Recreate the build system because configure.ac was patched.
+    autoreconf -fi
+}
+
+build() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    ./configure \
+        --prefix=/usr \
+        --libexecdir=/usr/lib/${pkgname} \
+        --sysconfdir=/etc \
+        --localstatedir=/var \
+        --disable-upower
+    make
+}
+
+package() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    make DESTDIR="${pkgdir}" install
+}

Copied: mate-session-manager/repos/community-i686/e934e91226e9a93956121c9c84ecf3664fcd68be.diff (from rev 104190, mate-session-manager/trunk/e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
===================================================================
--- community-i686/e934e91226e9a93956121c9c84ecf3664fcd68be.diff	                        (rev 0)
+++ community-i686/e934e91226e9a93956121c9c84ecf3664fcd68be.diff	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,293 @@
+diff --git a/configure.ac b/configure.ac
+index 37bb191..a9e20ef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,7 +70,6 @@ PKG_CHECK_MODULES(MATE_SESSION,
+         gio-2.0 >= $GIO_REQUIRED
+         gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
+         dbus-glib-1 >= $DBUS_GLIB_REQUIRED
+-        upower-glib >= $UPOWER_REQUIRED
+ )
+ 
+ PKG_CHECK_MODULES(SESSION_PROPERTIES,
+@@ -128,6 +127,24 @@ AM_CONDITIONAL(HAVE_SYSTEMD, test "x$use_systemd" = "xyes")
+ AC_SUBST(HAVE_SYSTEMD)
+ 
+ dnl ====================================================================
++dnl UPOWER
++dnl ====================================================================
++
++AC_ARG_ENABLE(upower,
++              AS_HELP_STRING([--enable-upower],
++              [Use upower to suspend/hibernate]),
++              enable_upower=$enableval,
++              enable_upower=yes)
++if test "x$enable_upower" = "xyes"; then
++    PKG_CHECK_MODULES(UPOWER, upower-glib >= $UPOWER_REQUIRED, has_upower=yes, has_upower=no)
++    AC_DEFINE(HAVE_UPOWER, 1, [upower support])
++    AC_SUBST(UPOWER_CFLAGS)
++    AC_SUBST(UPOWER_LIBS)
++fi
++AM_CONDITIONAL(HAVE_UPOWER, test "x$enable_upower" = "xyes")
++AC_SUBST(HAVE_UPOWER)
++
++dnl ====================================================================
+ dnl X development libraries check
+ dnl ====================================================================
+ 
+@@ -385,6 +402,7 @@ echo "
+         GTK+ version:             ${with_gtk}
+         Default WM:               ${with_default_wm}
+         Systemd support:          ${use_systemd}
++        Upower support:           ${enable_upower}
+         IPv6 support:             ${have_full_ipv6}
+         Backtrace support:        ${have_backtrace}
+         XRender support:          ${have_xrender}
+diff --git a/mate-session/Makefile.am b/mate-session/Makefile.am
+index f37a0e2..53f0fc7 100644
+--- a/mate-session/Makefile.am
++++ b/mate-session/Makefile.am
+@@ -7,6 +7,7 @@ noinst_PROGRAMS = 		\
+ AM_CPPFLAGS =					\
+ 	$(MATE_SESSION_CFLAGS)		\
+ 	$(SYSTEMD_CFLAGS)			\
++	$(UPOWER_CFLAGS)			\
+ 	$(DISABLE_DEPRECATED_CFLAGS)
+ 
+ AM_CFLAGS = $(WARN_CFLAGS)
+@@ -76,6 +77,7 @@ mate_session_LDADD =				\
+ 	$(XEXT_LIBS)				\
+ 	$(MATE_SESSION_LIBS)			\
+ 	$(SYSTEMD_LIBS)				\
++	$(UPOWER_LIBS)				\
+ 	$(EXECINFO_LIBS)
+ 
+ libgsmutil_la_SOURCES =				\
+diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c
+index 1a79875..323f123 100644
+--- a/mate-session/gsm-logout-dialog.c
++++ b/mate-session/gsm-logout-dialog.c
+@@ -27,7 +27,9 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ 
++#ifdef HAVE_UPOWER
+ #include <upower.h>
++#endif
+ 
+ #include "gsm-logout-dialog.h"
+ #ifdef HAVE_SYSTEMD
+@@ -52,8 +54,9 @@
+ struct _GsmLogoutDialogPrivate
+ {
+         GsmDialogLogoutType  type;
+-
++#ifdef HAVE_UPOWER
+         UpClient            *up_client;
++#endif
+ #ifdef HAVE_SYSTEMD
+         GsmSystemd          *systemd;
+ #endif
+@@ -147,9 +150,9 @@ enum {
+         gtk_window_set_skip_taskbar_hint (GTK_WINDOW (logout_dialog), TRUE);
+         gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE);
+         gtk_window_stick (GTK_WINDOW (logout_dialog));
+-
++#ifdef HAVE_UPOWER
+         logout_dialog->priv->up_client = up_client_new ();
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             logout_dialog->priv->systemd = gsm_get_systemd ();
+@@ -176,12 +179,12 @@ enum {
+                 g_source_remove (logout_dialog->priv->timeout_id);
+                 logout_dialog->priv->timeout_id = 0;
+         }
+-
++#ifdef HAVE_UPOWER
+         if (logout_dialog->priv->up_client) {
+                 g_object_unref (logout_dialog->priv->up_client);
+                 logout_dialog->priv->up_client = NULL;
+         }
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (logout_dialog->priv->systemd) {
+                 g_object_unref (logout_dialog->priv->systemd);
+@@ -201,13 +204,17 @@ enum {
+ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+ {
+         gboolean ret;
++        ret = FALSE;
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd);
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else
+ #endif
++#ifdef HAVE_UPOWER
+         ret = up_client_get_can_suspend (logout_dialog->priv->up_client);
+-
++#endif
+         return ret;
+ }
+ 
+@@ -215,13 +222,17 @@ enum {
+ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+ {
+         gboolean ret;
++        ret = FALSE;
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd);
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else
+ #endif
++#ifdef HAVE_UPOWER
+         ret = up_client_get_can_hibernate (logout_dialog->priv->up_client);
+-
++#endif
+         return ret;
+ }
+ 
+diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
+index 79d0829..17a20b8 100644
+--- a/mate-session/gsm-manager.c
++++ b/mate-session/gsm-manager.c
+@@ -38,7 +38,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ 
++#ifdef HAVE_UPOWER
+ #include <upower.h>
++#endif
+ 
+ #include <gtk/gtk.h> /* for logout dialog */
+ #include <gio/gio.h> /* for gsettings */
+@@ -144,9 +146,10 @@ struct GsmManagerPrivate
+ 
+         DBusGProxy             *bus_proxy;
+         DBusGConnection        *connection;
+-
++#ifdef HAVE_UPOWER
+         /* Interface with other parts of the system */
+         UpClient               *up_client;
++#endif
+ };
+ 
+ enum {
+@@ -1097,10 +1100,11 @@ enum {
+ static void
+ manager_attempt_hibernate (GsmManager *manager)
+ {
++#ifdef HAVE_UPOWER
+         gboolean  can_hibernate;
+         GError   *error;
+         gboolean  ret;
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING()) {
+ 
+@@ -1113,8 +1117,11 @@ enum {
+ 
+                 gsm_systemd_attempt_hibernate (systemd);
+         }
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else {
+ #endif
++#ifdef HAVE_UPOWER
+         can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+         if (can_hibernate) {
+ 
+@@ -1129,7 +1136,8 @@ enum {
+                         g_error_free (error);
+                 }
+         }
+-#ifdef HAVE_SYSTEMD
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         }
+ #endif
+ }
+@@ -1137,10 +1145,11 @@ enum {
+ static void
+ manager_attempt_suspend (GsmManager *manager)
+ {
++#ifdef HAVE_UPOWER
+         gboolean  can_suspend;
+         GError   *error;
+         gboolean  ret;
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING()) {
+ 
+@@ -1153,8 +1162,11 @@ enum {
+ 
+                 gsm_systemd_attempt_suspend (systemd);
+         }
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else {
+ #endif
++#ifdef HAVE_UPOWER
+         can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+         if (can_suspend) {
+ 
+@@ -1169,7 +1181,8 @@ enum {
+                         g_error_free (error);
+                 }
+         }
+-#ifdef HAVE_SYSTEMD
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         }
+ #endif
+ }
+@@ -2341,12 +2354,12 @@ enum {
+                 g_object_unref (manager->priv->settings_screensaver);
+                 manager->priv->settings_screensaver = NULL;
+         }
+-
++#ifdef HAVE_UPOWER
+         if (manager->priv->up_client != NULL) {
+                 g_object_unref (manager->priv->up_client);
+                 manager->priv->up_client = NULL;
+         }
+-
++#endif
+         G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
+ }
+ 
+@@ -2553,9 +2566,9 @@ enum {
+                           "status-changed",
+                           G_CALLBACK (on_presence_status_changed),
+                           manager);
+-
++#ifdef HAVE_UPOWER
+         manager->priv->up_client = up_client_new ();
+-
++#endif
+         g_signal_connect (manager->priv->settings_session,
+                           "changed",
+                           G_CALLBACK (on_gsettings_key_changed),
+@@ -3224,12 +3237,12 @@ enum {
+ #endif
+         gboolean can_suspend;
+         gboolean can_hibernate;
+-
++#ifdef HAVE_UPOWER
+         g_object_get (manager->priv->up_client,
+                       "can-suspend", &can_suspend,
+                       "can-hibernate", &can_hibernate,
+                       NULL);
+-
++#endif
+         g_debug ("GsmManager: CanShutdown called");
+ 
+         g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);

Copied: mate-session-manager/repos/community-i686/f0b5b1ab78879d64f80117415aacf029359afea5.diff (from rev 104190, mate-session-manager/trunk/f0b5b1ab78879d64f80117415aacf029359afea5.diff)
===================================================================
--- community-i686/f0b5b1ab78879d64f80117415aacf029359afea5.diff	                        (rev 0)
+++ community-i686/f0b5b1ab78879d64f80117415aacf029359afea5.diff	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,271 @@
+diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c
+index 2d2947c..1a79875 100644
+--- a/mate-session/gsm-logout-dialog.c
++++ b/mate-session/gsm-logout-dialog.c
+@@ -200,13 +200,29 @@ enum {
+ static gboolean
+ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+ {
+-        return up_client_get_can_suspend (logout_dialog->priv->up_client);
++        gboolean ret;
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING())
++            ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd);
++        else
++#endif
++        ret = up_client_get_can_suspend (logout_dialog->priv->up_client);
++
++        return ret;
+ }
+ 
+ static gboolean
+ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+ {
+-        return up_client_get_can_hibernate (logout_dialog->priv->up_client);
++        gboolean ret;
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING())
++            ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd);
++        else
++#endif
++        ret = up_client_get_can_hibernate (logout_dialog->priv->up_client);
++
++        return ret;
+ }
+ 
+ static gboolean
+diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
+index 8143d1f..b4986ac 100644
+--- a/mate-session/gsm-manager.c
++++ b/mate-session/gsm-manager.c
+@@ -1109,6 +1109,20 @@ enum {
+         GError   *error;
+         gboolean  ret;
+ 
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING()) {
++
++                GsmSystemd *systemd;
++
++                systemd = gsm_get_systemd ();
++
++                /* lock the screen before we suspend */
++                manager_perhaps_lock (manager);
++
++                gsm_systemd_attempt_hibernate (systemd);
++        }
++        else {
++#endif
+         can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+         if (can_hibernate) {
+ 
+@@ -1123,6 +1137,9 @@ enum {
+                         g_error_free (error);
+                 }
+         }
++#ifdef HAVE_SYSTEMD
++        }
++#endif
+ }
+ 
+ static void
+@@ -1132,6 +1149,20 @@ enum {
+         GError   *error;
+         gboolean  ret;
+ 
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING()) {
++
++                GsmSystemd *systemd;
++
++                systemd = gsm_get_systemd ();
++
++                /* lock the screen before we suspend */
++                manager_perhaps_lock (manager);
++
++                gsm_systemd_attempt_suspend (systemd);
++        }
++        else {
++#endif
+         can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+         if (can_suspend) {
+ 
+@@ -1146,6 +1177,9 @@ enum {
+                         g_error_free (error);
+                 }
+         }
++#ifdef HAVE_SYSTEMD
++        }
++#endif
+ }
+ 
+ static void
+diff --git a/mate-session/gsm-systemd.c b/mate-session/gsm-systemd.c
+index 377f026..dbe8ea0 100644
+--- a/mate-session/gsm-systemd.c
++++ b/mate-session/gsm-systemd.c
+@@ -725,6 +725,141 @@ static void     gsm_systemd_on_name_owner_changed (DBusGProxy       *bus_proxy,
+     return can_stop;
+ }
+ 
++gboolean
++gsm_systemd_can_hibernate (GsmSystemd *manager)
++{
++  gboolean res;
++  gchar   *value;
++  gboolean can_hibernate;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"CanHibernate",
++					INT_MAX,
++					&error,
++					G_TYPE_INVALID,
++					G_TYPE_STRING, &value,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  can_hibernate = g_strcmp0 (value, "yes") == 0 ||
++  g_strcmp0 (value, "challenge") == 0;
++  g_free (value);
++  return can_hibernate;
++}
++
++gboolean
++gsm_systemd_can_suspend (GsmSystemd *manager)
++{
++  gboolean res;
++  gchar   *value;
++  gboolean can_suspend;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"CanSuspend",
++					INT_MAX,
++					&error,
++					G_TYPE_INVALID,
++					G_TYPE_STRING, &value,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  can_suspend = g_strcmp0 (value, "yes") == 0 ||
++  g_strcmp0 (value, "challenge") == 0;
++  g_free (value);
++  return can_suspend;
++}
++
++void
++gsm_systemd_attempt_hibernate (GsmSystemd *manager)
++{
++  gboolean res;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"Hibernate",
++					INT_MAX,
++					&error,
++                                        G_TYPE_BOOLEAN, TRUE, /* interactive */
++					G_TYPE_INVALID,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++}
++
++void
++gsm_systemd_attempt_suspend (GsmSystemd *manager)
++{
++  gboolean res;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"Suspend",
++					INT_MAX,
++					&error,
++                                        G_TYPE_BOOLEAN, TRUE, /* interactive */
++                                        G_TYPE_INVALID,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++}
++
+ gchar *
+ gsm_systemd_get_current_session_type (GsmSystemd *manager)
+ {
+diff --git a/mate-session/gsm-systemd.h b/mate-session/gsm-systemd.h
+index 8e886ba..e0e21c4 100644
+--- a/mate-session/gsm-systemd.h
++++ b/mate-session/gsm-systemd.h
+@@ -89,10 +89,18 @@ enum _GsmSystemdError {
+ 
+ gboolean         gsm_systemd_can_restart     (GsmSystemd *manager);
+ 
++gboolean         gsm_systemd_can_hibernate     (GsmSystemd *manager);
++
++gboolean         gsm_systemd_can_suspend     (GsmSystemd *manager);
++
+ void             gsm_systemd_attempt_stop    (GsmSystemd *manager);
+ 
+ void             gsm_systemd_attempt_restart (GsmSystemd *manager);
+ 
++void             gsm_systemd_attempt_hibernate (GsmSystemd *manager);
++
++void             gsm_systemd_attempt_suspend (GsmSystemd *manager);
++
+ void             gsm_systemd_set_session_idle (GsmSystemd *manager,
+                                                   gboolean       is_idle);
+ 

Copied: mate-session-manager/repos/community-i686/mate-session-manager.install (from rev 104190, mate-session-manager/trunk/mate-session-manager.install)
===================================================================
--- community-i686/mate-session-manager.install	                        (rev 0)
+++ community-i686/mate-session-manager.install	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,12 @@
+post_install() {
+    glib-compile-schemas /usr/share/glib-2.0/schemas/
+    gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor    
+}
+
+post_upgrade() {
+    post_install
+}
+
+post_remove() {
+    post_install
+}

Copied: mate-session-manager/repos/community-x86_64/PKGBUILD (from rev 104190, mate-session-manager/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,54 @@
+# $Id$
+# Maintainer : Martin Wimpress <code at flexion.org>
+# Contributor: Giovanni Ricciardi <kar98k.sniper at gmail.com>
+# Contributor: Xpander <xpander0 at gmail.com>
+
+pkgname=mate-session-manager
+pkgver=1.6.1
+pkgrel=9
+pkgdesc="The MATE Session Handler"
+url="http://mate-desktop.org"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('dbus-glib' 'gtk2' 'libsm' 'libxtst' 'mate-desktop' 'mate-polkit'
+         'mate-settings-daemon')
+makedepends=('mate-common' 'perl-xml-parser' 'xmlto')
+options=('!emptydirs')
+groups=('mate')
+source=("http://pub.mate-desktop.org/releases/1.6/${pkgname}-${pkgver}.tar.xz"
+        f0b5b1ab78879d64f80117415aacf029359afea5.diff
+        e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
+sha1sums=('46188f6c02cc5978688af9d5db4be09f1b9199a5'
+          '20fb99c29731d05191cd0029d0573db784b06ccf'
+          '4312495bcd12ca5a20f7d5442b7517902605534c')
+install=${pkgname}.install
+
+prepare() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    # fix systemd-login1 support for hibernate/suspend
+    # https://github.com/mate-desktop/mate-session-manager/commit/f0b5b1ab78879d64f80117415aacf029359afea5
+    patch -Np1 -i "${srcdir}/f0b5b1ab78879d64f80117415aacf029359afea5.diff"
+
+    # Make upower optional
+    # https://github.com/mate-desktop/mate-session-manager/commit/e934e91226e9a93956121c9c84ecf3664fcd68be
+    patch -Np1 -i "${srcdir}/e934e91226e9a93956121c9c84ecf3664fcd68be.diff"
+
+    # Recreate the build system because configure.ac was patched.
+    autoreconf -fi
+}
+
+build() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    ./configure \
+        --prefix=/usr \
+        --libexecdir=/usr/lib/${pkgname} \
+        --sysconfdir=/etc \
+        --localstatedir=/var \
+        --disable-upower
+    make
+}
+
+package() {
+    cd "${srcdir}/${pkgname}-${pkgver}"
+    make DESTDIR="${pkgdir}" install
+}

Copied: mate-session-manager/repos/community-x86_64/e934e91226e9a93956121c9c84ecf3664fcd68be.diff (from rev 104190, mate-session-manager/trunk/e934e91226e9a93956121c9c84ecf3664fcd68be.diff)
===================================================================
--- community-x86_64/e934e91226e9a93956121c9c84ecf3664fcd68be.diff	                        (rev 0)
+++ community-x86_64/e934e91226e9a93956121c9c84ecf3664fcd68be.diff	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,293 @@
+diff --git a/configure.ac b/configure.ac
+index 37bb191..a9e20ef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,7 +70,6 @@ PKG_CHECK_MODULES(MATE_SESSION,
+         gio-2.0 >= $GIO_REQUIRED
+         gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
+         dbus-glib-1 >= $DBUS_GLIB_REQUIRED
+-        upower-glib >= $UPOWER_REQUIRED
+ )
+ 
+ PKG_CHECK_MODULES(SESSION_PROPERTIES,
+@@ -128,6 +127,24 @@ AM_CONDITIONAL(HAVE_SYSTEMD, test "x$use_systemd" = "xyes")
+ AC_SUBST(HAVE_SYSTEMD)
+ 
+ dnl ====================================================================
++dnl UPOWER
++dnl ====================================================================
++
++AC_ARG_ENABLE(upower,
++              AS_HELP_STRING([--enable-upower],
++              [Use upower to suspend/hibernate]),
++              enable_upower=$enableval,
++              enable_upower=yes)
++if test "x$enable_upower" = "xyes"; then
++    PKG_CHECK_MODULES(UPOWER, upower-glib >= $UPOWER_REQUIRED, has_upower=yes, has_upower=no)
++    AC_DEFINE(HAVE_UPOWER, 1, [upower support])
++    AC_SUBST(UPOWER_CFLAGS)
++    AC_SUBST(UPOWER_LIBS)
++fi
++AM_CONDITIONAL(HAVE_UPOWER, test "x$enable_upower" = "xyes")
++AC_SUBST(HAVE_UPOWER)
++
++dnl ====================================================================
+ dnl X development libraries check
+ dnl ====================================================================
+ 
+@@ -385,6 +402,7 @@ echo "
+         GTK+ version:             ${with_gtk}
+         Default WM:               ${with_default_wm}
+         Systemd support:          ${use_systemd}
++        Upower support:           ${enable_upower}
+         IPv6 support:             ${have_full_ipv6}
+         Backtrace support:        ${have_backtrace}
+         XRender support:          ${have_xrender}
+diff --git a/mate-session/Makefile.am b/mate-session/Makefile.am
+index f37a0e2..53f0fc7 100644
+--- a/mate-session/Makefile.am
++++ b/mate-session/Makefile.am
+@@ -7,6 +7,7 @@ noinst_PROGRAMS = 		\
+ AM_CPPFLAGS =					\
+ 	$(MATE_SESSION_CFLAGS)		\
+ 	$(SYSTEMD_CFLAGS)			\
++	$(UPOWER_CFLAGS)			\
+ 	$(DISABLE_DEPRECATED_CFLAGS)
+ 
+ AM_CFLAGS = $(WARN_CFLAGS)
+@@ -76,6 +77,7 @@ mate_session_LDADD =				\
+ 	$(XEXT_LIBS)				\
+ 	$(MATE_SESSION_LIBS)			\
+ 	$(SYSTEMD_LIBS)				\
++	$(UPOWER_LIBS)				\
+ 	$(EXECINFO_LIBS)
+ 
+ libgsmutil_la_SOURCES =				\
+diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c
+index 1a79875..323f123 100644
+--- a/mate-session/gsm-logout-dialog.c
++++ b/mate-session/gsm-logout-dialog.c
+@@ -27,7 +27,9 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ 
++#ifdef HAVE_UPOWER
+ #include <upower.h>
++#endif
+ 
+ #include "gsm-logout-dialog.h"
+ #ifdef HAVE_SYSTEMD
+@@ -52,8 +54,9 @@
+ struct _GsmLogoutDialogPrivate
+ {
+         GsmDialogLogoutType  type;
+-
++#ifdef HAVE_UPOWER
+         UpClient            *up_client;
++#endif
+ #ifdef HAVE_SYSTEMD
+         GsmSystemd          *systemd;
+ #endif
+@@ -147,9 +150,9 @@ enum {
+         gtk_window_set_skip_taskbar_hint (GTK_WINDOW (logout_dialog), TRUE);
+         gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE);
+         gtk_window_stick (GTK_WINDOW (logout_dialog));
+-
++#ifdef HAVE_UPOWER
+         logout_dialog->priv->up_client = up_client_new ();
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             logout_dialog->priv->systemd = gsm_get_systemd ();
+@@ -176,12 +179,12 @@ enum {
+                 g_source_remove (logout_dialog->priv->timeout_id);
+                 logout_dialog->priv->timeout_id = 0;
+         }
+-
++#ifdef HAVE_UPOWER
+         if (logout_dialog->priv->up_client) {
+                 g_object_unref (logout_dialog->priv->up_client);
+                 logout_dialog->priv->up_client = NULL;
+         }
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (logout_dialog->priv->systemd) {
+                 g_object_unref (logout_dialog->priv->systemd);
+@@ -201,13 +204,17 @@ enum {
+ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+ {
+         gboolean ret;
++        ret = FALSE;
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd);
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else
+ #endif
++#ifdef HAVE_UPOWER
+         ret = up_client_get_can_suspend (logout_dialog->priv->up_client);
+-
++#endif
+         return ret;
+ }
+ 
+@@ -215,13 +222,17 @@ enum {
+ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+ {
+         gboolean ret;
++        ret = FALSE;
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING())
+             ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd);
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else
+ #endif
++#ifdef HAVE_UPOWER
+         ret = up_client_get_can_hibernate (logout_dialog->priv->up_client);
+-
++#endif
+         return ret;
+ }
+ 
+diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
+index 79d0829..17a20b8 100644
+--- a/mate-session/gsm-manager.c
++++ b/mate-session/gsm-manager.c
+@@ -38,7 +38,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ 
++#ifdef HAVE_UPOWER
+ #include <upower.h>
++#endif
+ 
+ #include <gtk/gtk.h> /* for logout dialog */
+ #include <gio/gio.h> /* for gsettings */
+@@ -144,9 +146,10 @@ struct GsmManagerPrivate
+ 
+         DBusGProxy             *bus_proxy;
+         DBusGConnection        *connection;
+-
++#ifdef HAVE_UPOWER
+         /* Interface with other parts of the system */
+         UpClient               *up_client;
++#endif
+ };
+ 
+ enum {
+@@ -1097,10 +1100,11 @@ enum {
+ static void
+ manager_attempt_hibernate (GsmManager *manager)
+ {
++#ifdef HAVE_UPOWER
+         gboolean  can_hibernate;
+         GError   *error;
+         gboolean  ret;
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING()) {
+ 
+@@ -1113,8 +1117,11 @@ enum {
+ 
+                 gsm_systemd_attempt_hibernate (systemd);
+         }
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else {
+ #endif
++#ifdef HAVE_UPOWER
+         can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+         if (can_hibernate) {
+ 
+@@ -1129,7 +1136,8 @@ enum {
+                         g_error_free (error);
+                 }
+         }
+-#ifdef HAVE_SYSTEMD
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         }
+ #endif
+ }
+@@ -1137,10 +1145,11 @@ enum {
+ static void
+ manager_attempt_suspend (GsmManager *manager)
+ {
++#ifdef HAVE_UPOWER
+         gboolean  can_suspend;
+         GError   *error;
+         gboolean  ret;
+-
++#endif
+ #ifdef HAVE_SYSTEMD
+         if (LOGIND_RUNNING()) {
+ 
+@@ -1153,8 +1162,11 @@ enum {
+ 
+                 gsm_systemd_attempt_suspend (systemd);
+         }
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         else {
+ #endif
++#ifdef HAVE_UPOWER
+         can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+         if (can_suspend) {
+ 
+@@ -1169,7 +1181,8 @@ enum {
+                         g_error_free (error);
+                 }
+         }
+-#ifdef HAVE_SYSTEMD
++#endif
++#if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER)
+         }
+ #endif
+ }
+@@ -2341,12 +2354,12 @@ enum {
+                 g_object_unref (manager->priv->settings_screensaver);
+                 manager->priv->settings_screensaver = NULL;
+         }
+-
++#ifdef HAVE_UPOWER
+         if (manager->priv->up_client != NULL) {
+                 g_object_unref (manager->priv->up_client);
+                 manager->priv->up_client = NULL;
+         }
+-
++#endif
+         G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
+ }
+ 
+@@ -2553,9 +2566,9 @@ enum {
+                           "status-changed",
+                           G_CALLBACK (on_presence_status_changed),
+                           manager);
+-
++#ifdef HAVE_UPOWER
+         manager->priv->up_client = up_client_new ();
+-
++#endif
+         g_signal_connect (manager->priv->settings_session,
+                           "changed",
+                           G_CALLBACK (on_gsettings_key_changed),
+@@ -3224,12 +3237,12 @@ enum {
+ #endif
+         gboolean can_suspend;
+         gboolean can_hibernate;
+-
++#ifdef HAVE_UPOWER
+         g_object_get (manager->priv->up_client,
+                       "can-suspend", &can_suspend,
+                       "can-hibernate", &can_hibernate,
+                       NULL);
+-
++#endif
+         g_debug ("GsmManager: CanShutdown called");
+ 
+         g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);

Copied: mate-session-manager/repos/community-x86_64/f0b5b1ab78879d64f80117415aacf029359afea5.diff (from rev 104190, mate-session-manager/trunk/f0b5b1ab78879d64f80117415aacf029359afea5.diff)
===================================================================
--- community-x86_64/f0b5b1ab78879d64f80117415aacf029359afea5.diff	                        (rev 0)
+++ community-x86_64/f0b5b1ab78879d64f80117415aacf029359afea5.diff	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,271 @@
+diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c
+index 2d2947c..1a79875 100644
+--- a/mate-session/gsm-logout-dialog.c
++++ b/mate-session/gsm-logout-dialog.c
+@@ -200,13 +200,29 @@ enum {
+ static gboolean
+ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog)
+ {
+-        return up_client_get_can_suspend (logout_dialog->priv->up_client);
++        gboolean ret;
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING())
++            ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd);
++        else
++#endif
++        ret = up_client_get_can_suspend (logout_dialog->priv->up_client);
++
++        return ret;
+ }
+ 
+ static gboolean
+ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog)
+ {
+-        return up_client_get_can_hibernate (logout_dialog->priv->up_client);
++        gboolean ret;
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING())
++            ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd);
++        else
++#endif
++        ret = up_client_get_can_hibernate (logout_dialog->priv->up_client);
++
++        return ret;
+ }
+ 
+ static gboolean
+diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
+index 8143d1f..b4986ac 100644
+--- a/mate-session/gsm-manager.c
++++ b/mate-session/gsm-manager.c
+@@ -1109,6 +1109,20 @@ enum {
+         GError   *error;
+         gboolean  ret;
+ 
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING()) {
++
++                GsmSystemd *systemd;
++
++                systemd = gsm_get_systemd ();
++
++                /* lock the screen before we suspend */
++                manager_perhaps_lock (manager);
++
++                gsm_systemd_attempt_hibernate (systemd);
++        }
++        else {
++#endif
+         can_hibernate = up_client_get_can_hibernate (manager->priv->up_client);
+         if (can_hibernate) {
+ 
+@@ -1123,6 +1137,9 @@ enum {
+                         g_error_free (error);
+                 }
+         }
++#ifdef HAVE_SYSTEMD
++        }
++#endif
+ }
+ 
+ static void
+@@ -1132,6 +1149,20 @@ enum {
+         GError   *error;
+         gboolean  ret;
+ 
++#ifdef HAVE_SYSTEMD
++        if (LOGIND_RUNNING()) {
++
++                GsmSystemd *systemd;
++
++                systemd = gsm_get_systemd ();
++
++                /* lock the screen before we suspend */
++                manager_perhaps_lock (manager);
++
++                gsm_systemd_attempt_suspend (systemd);
++        }
++        else {
++#endif
+         can_suspend = up_client_get_can_suspend (manager->priv->up_client);
+         if (can_suspend) {
+ 
+@@ -1146,6 +1177,9 @@ enum {
+                         g_error_free (error);
+                 }
+         }
++#ifdef HAVE_SYSTEMD
++        }
++#endif
+ }
+ 
+ static void
+diff --git a/mate-session/gsm-systemd.c b/mate-session/gsm-systemd.c
+index 377f026..dbe8ea0 100644
+--- a/mate-session/gsm-systemd.c
++++ b/mate-session/gsm-systemd.c
+@@ -725,6 +725,141 @@ static void     gsm_systemd_on_name_owner_changed (DBusGProxy       *bus_proxy,
+     return can_stop;
+ }
+ 
++gboolean
++gsm_systemd_can_hibernate (GsmSystemd *manager)
++{
++  gboolean res;
++  gchar   *value;
++  gboolean can_hibernate;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"CanHibernate",
++					INT_MAX,
++					&error,
++					G_TYPE_INVALID,
++					G_TYPE_STRING, &value,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  can_hibernate = g_strcmp0 (value, "yes") == 0 ||
++  g_strcmp0 (value, "challenge") == 0;
++  g_free (value);
++  return can_hibernate;
++}
++
++gboolean
++gsm_systemd_can_suspend (GsmSystemd *manager)
++{
++  gboolean res;
++  gchar   *value;
++  gboolean can_suspend;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"CanSuspend",
++					INT_MAX,
++					&error,
++					G_TYPE_INVALID,
++					G_TYPE_STRING, &value,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  can_suspend = g_strcmp0 (value, "yes") == 0 ||
++  g_strcmp0 (value, "challenge") == 0;
++  g_free (value);
++  return can_suspend;
++}
++
++void
++gsm_systemd_attempt_hibernate (GsmSystemd *manager)
++{
++  gboolean res;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"Hibernate",
++					INT_MAX,
++					&error,
++                                        G_TYPE_BOOLEAN, TRUE, /* interactive */
++					G_TYPE_INVALID,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++}
++
++void
++gsm_systemd_attempt_suspend (GsmSystemd *manager)
++{
++  gboolean res;
++  GError  *error;
++  
++  error = NULL;
++  
++  if (!gsm_systemd_ensure_sd_connection (manager, &error)) {
++    g_warning ("Could not connect to Systemd: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++  
++  res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy,
++					"Suspend",
++					INT_MAX,
++					&error,
++                                        G_TYPE_BOOLEAN, TRUE, /* interactive */
++                                        G_TYPE_INVALID,
++					G_TYPE_INVALID);
++  if (res == FALSE) {
++    g_warning ("Could not make DBUS call: %s",
++	       error->message);
++    g_error_free (error);
++    return FALSE;
++  }
++}
++
+ gchar *
+ gsm_systemd_get_current_session_type (GsmSystemd *manager)
+ {
+diff --git a/mate-session/gsm-systemd.h b/mate-session/gsm-systemd.h
+index 8e886ba..e0e21c4 100644
+--- a/mate-session/gsm-systemd.h
++++ b/mate-session/gsm-systemd.h
+@@ -89,10 +89,18 @@ enum _GsmSystemdError {
+ 
+ gboolean         gsm_systemd_can_restart     (GsmSystemd *manager);
+ 
++gboolean         gsm_systemd_can_hibernate     (GsmSystemd *manager);
++
++gboolean         gsm_systemd_can_suspend     (GsmSystemd *manager);
++
+ void             gsm_systemd_attempt_stop    (GsmSystemd *manager);
+ 
+ void             gsm_systemd_attempt_restart (GsmSystemd *manager);
+ 
++void             gsm_systemd_attempt_hibernate (GsmSystemd *manager);
++
++void             gsm_systemd_attempt_suspend (GsmSystemd *manager);
++
+ void             gsm_systemd_set_session_idle (GsmSystemd *manager,
+                                                   gboolean       is_idle);
+ 

Copied: mate-session-manager/repos/community-x86_64/mate-session-manager.install (from rev 104190, mate-session-manager/trunk/mate-session-manager.install)
===================================================================
--- community-x86_64/mate-session-manager.install	                        (rev 0)
+++ community-x86_64/mate-session-manager.install	2014-01-16 16:24:45 UTC (rev 104191)
@@ -0,0 +1,12 @@
+post_install() {
+    glib-compile-schemas /usr/share/glib-2.0/schemas/
+    gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor    
+}
+
+post_upgrade() {
+    post_install
+}
+
+post_remove() {
+    post_install
+}




More information about the arch-commits mailing list