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

Evangelos Foutras foutrelis at archlinux.org
Sun Oct 14 23:01:20 UTC 2012


    Date: Sunday, October 14, 2012 @ 19:01:20
  Author: foutrelis
Revision: 168729

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

Added:
  xfce4-session/repos/staging-i686/PKGBUILD
    (from rev 168728, xfce4-session/trunk/PKGBUILD)
  xfce4-session/repos/staging-i686/xfce4-session-4.10.0-add-systemd-support.patch
    (from rev 168728, xfce4-session/trunk/xfce4-session-4.10.0-add-systemd-support.patch)
  xfce4-session/repos/staging-i686/xfce4-session.install
    (from rev 168728, xfce4-session/trunk/xfce4-session.install)
  xfce4-session/repos/staging-x86_64/PKGBUILD
    (from rev 168728, xfce4-session/trunk/PKGBUILD)
  xfce4-session/repos/staging-x86_64/xfce4-session-4.10.0-add-systemd-support.patch
    (from rev 168728, xfce4-session/trunk/xfce4-session-4.10.0-add-systemd-support.patch)
  xfce4-session/repos/staging-x86_64/xfce4-session.install
    (from rev 168728, xfce4-session/trunk/xfce4-session.install)
Deleted:
  xfce4-session/repos/staging-i686/PKGBUILD
  xfce4-session/repos/staging-i686/xfce4-session.install
  xfce4-session/repos/staging-x86_64/PKGBUILD
  xfce4-session/repos/staging-x86_64/xfce4-session.install

---------------------------------------------------------------+
 staging-i686/PKGBUILD                                         |   96 +-
 staging-i686/xfce4-session-4.10.0-add-systemd-support.patch   |  388 ++++++++++
 staging-i686/xfce4-session.install                            |   26 
 staging-x86_64/PKGBUILD                                       |   96 +-
 staging-x86_64/xfce4-session-4.10.0-add-systemd-support.patch |  388 ++++++++++
 staging-x86_64/xfce4-session.install                          |   26 
 6 files changed, 906 insertions(+), 114 deletions(-)

Deleted: staging-i686/PKGBUILD
===================================================================
--- staging-i686/PKGBUILD	2012-10-14 23:00:55 UTC (rev 168728)
+++ staging-i686/PKGBUILD	2012-10-14 23:01:20 UTC (rev 168729)
@@ -1,44 +0,0 @@
-# $Id$
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: tobias <tobias funnychar archlinux.org>
-
-pkgname=xfce4-session
-pkgver=4.10.0
-pkgrel=4
-pkgdesc="A session manager for Xfce"
-arch=('i686' 'x86_64')
-url="http://www.xfce.org/"
-license=('GPL2')
-groups=('xfce4')
-depends=('libxfce4ui' 'libwnck' 'libsm' 'xorg-iceauth' 'upower' 'xorg-xinit'
-          'hicolor-icon-theme')
-makedepends=('intltool')
-optdepends=('gnome-keyring: for keyring support when GNOME compatibility is enabled'
-            'xscreensaver: for locking screen with xflock4'
-            'gnome-screensaver: for locking screen with xflock4'
-            'xlockmore: for locking screen with xflock4')
-replaces=('xfce-utils')
-options=('!libtool')
-install=$pkgname.install
-source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2)
-sha256sums=('bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce')
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  ./configure --prefix=/usr \
-    --sysconfdir=/etc \
-    --libexecdir=/usr/lib/xfce4 \
-    --localstatedir=/var \
-    --disable-static \
-    --enable-libgnome-keyring \
-    --disable-debug
-  make
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
-
-# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-i686/PKGBUILD (from rev 168728, xfce4-session/trunk/PKGBUILD)
===================================================================
--- staging-i686/PKGBUILD	                        (rev 0)
+++ staging-i686/PKGBUILD	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,52 @@
+# $Id$
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-session
+pkgver=4.10.0
+pkgrel=5
+pkgdesc="A session manager for Xfce"
+arch=('i686' 'x86_64')
+url="http://www.xfce.org/"
+license=('GPL2')
+groups=('xfce4')
+depends=('libxfce4ui' 'libwnck' 'libsm' 'xorg-iceauth' 'upower' 'xorg-xinit'
+          'hicolor-icon-theme')
+makedepends=('intltool' 'xfce4-dev-tools')
+optdepends=('gnome-keyring: for keyring support when GNOME compatibility is enabled'
+            'xscreensaver: for locking screen with xflock4'
+            'gnome-screensaver: for locking screen with xflock4'
+            'xlockmore: for locking screen with xflock4')
+replaces=('xfce-utils')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+        xfce4-session-4.10.0-add-systemd-support.patch)
+sha256sums=('bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce'
+            'ffae61c48a4bd0cb51d422cb93f2de9567abaf29085370c455ef349b6a10234b')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # https://bugzilla.xfce.org/show_bug.cgi?id=8729
+  patch -Np1 -i "$srcdir/xfce4-session-4.10.0-add-systemd-support.patch"
+
+  xdt-autogen
+
+  ./configure \
+    --prefix=/usr \
+    --sysconfdir=/etc \
+    --libexecdir=/usr/lib/xfce4 \
+    --localstatedir=/var \
+    --disable-static \
+    --disable-legacy-sm \
+    --disable-debug
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-i686/xfce4-session-4.10.0-add-systemd-support.patch (from rev 168728, xfce4-session/trunk/xfce4-session-4.10.0-add-systemd-support.patch)
===================================================================
--- staging-i686/xfce4-session-4.10.0-add-systemd-support.patch	                        (rev 0)
+++ staging-i686/xfce4-session-4.10.0-add-systemd-support.patch	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,388 @@
+diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c
+index 4076586..90e7873 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.c
+@@ -0,0 +1,123 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#include <config.h>
++
++#include <gio/gio.h>
++#include <polkit/polkit.h>
++
++#include "xfsm-systemd.h"
++
++#define SYSTEMD_DBUS_NAME       "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH       "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE  "org.freedesktop.login1.Manager"
++#define SYSTEMD_REBOOT_ACTION   "org.freedesktop.login1.reboot"
++#define SYSTEMD_SHUTDOWN_ACTION "org.freedesktop.login1.power-off"
++
++struct _SystemdProxy {
++        PolkitAuthority *authority;
++        PolkitSubject *subject;
++};
++
++SystemdProxy *
++systemd_proxy_new (void)
++{
++        SystemdProxy *proxy;
++
++        proxy = g_new0 (SystemdProxy, 1);
++
++        proxy->authority = polkit_authority_get_sync (NULL, NULL);
++        proxy->subject = polkit_unix_process_new (getpid());
++
++        return proxy;
++}
++
++void
++systemd_proxy_free (SystemdProxy *proxy)
++{
++        g_object_unref (proxy->authority);
++        g_object_unref (proxy->subject);
++
++        g_free (proxy);
++}
++
++gboolean systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const gchar *method, GError **error)
++{
++        PolkitAuthorizationResult *res;
++        GError *local_error = NULL;
++
++        *can_method = FALSE;
++        res = polkit_authority_check_authorization_sync (proxy->authority,
++                                                         proxy->subject,
++                                                         method,
++                                                         NULL,
++                                                         POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
++                                                         NULL,
++                                                         &local_error);
++        if (res == NULL) {
++                g_propagate_error (error, local_error);
++                return FALSE;
++        }
++
++        *can_method = polkit_authorization_result_get_is_authorized (res) ||
++                       polkit_authorization_result_get_is_challenge (res);
++
++        g_object_unref (res);
++
++        return TRUE;
++}
++
++gboolean systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error)
++{
++	return systemd_proxy_can_method(proxy, can_restart, SYSTEMD_REBOOT_ACTION, error);
++}
++
++gboolean systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error)
++{
++	return systemd_proxy_can_method(proxy, can_shutdown, SYSTEMD_SHUTDOWN_ACTION, error);
++}
++
++gboolean systemd_proxy_method (SystemdProxy *proxy, const gchar *method, GError **error)
++{
++        GDBusConnection *bus;
++
++        bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
++        g_dbus_connection_call_sync (bus,
++                                     SYSTEMD_DBUS_NAME,
++                                     SYSTEMD_DBUS_PATH,
++                                     SYSTEMD_DBUS_INTERFACE,
++                                     method,
++                                     g_variant_new ("(b)", TRUE),
++                                     NULL, 0, G_MAXINT, NULL, NULL);
++        g_object_unref (bus);
++
++        return TRUE;
++}
++
++gboolean systemd_proxy_restart (SystemdProxy *proxy, GError **error)
++{
++	return systemd_proxy_method(proxy, "Reboot", error);
++}
++
++gboolean systemd_proxy_shutdown (SystemdProxy *proxy, GError **error)
++{
++	return systemd_proxy_method(proxy, "PowerOff", error);
++}
+diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h
+index 3fa8317..2c4d868 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.h
+@@ -0,0 +1,42 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifndef __SYSTEMD_PROXY_H__
++#define __SYSTEMD_PROXY_H__
++
++#include <glib.h>
++
++G_BEGIN_DECLS
++
++typedef struct _SystemdProxy SystemdProxy;
++
++SystemdProxy *systemd_proxy_new (void);
++void          systemd_proxy_free (SystemdProxy *proxy);
++gboolean      systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const char *method, GError **error);
++gboolean      systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error);
++gboolean      systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error);
++gboolean      systemd_proxy_method (SystemdProxy *proxy, const char *method, GError **error);
++gboolean      systemd_proxy_restart (SystemdProxy *proxy, GError **error);
++gboolean      systemd_proxy_shutdown (SystemdProxy *proxy, GError **error);
++
++G_END_DECLS
++
++#endif  /* __SYSTEMD_PROXY_H__ */
+
+commit 518a28c23f110617aad36e64c02cdab6a36adf37
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:21:14 2012 +0200
+
+    ...
+
+diff --git a/configure.in.in b/configure.in.in
+index 9aa4f8f..aa0b8bb 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,6 +96,33 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0])
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0])
+ 
++dnl systemd integration
++AC_ARG_ENABLE([systemd],
++              AS_HELP_STRING([--enable-systemd], [Use systemd]),
++              [with_systemd=$enableval],
++              [with_systemd=auto])
++PKG_CHECK_MODULES(SYSTEMD,
++                  [libsystemd-login polkit-gobject-1],
++                  [have_systemd=yes], [have_systemd=no])
++AC_MSG_CHECKING([whether to use systemd])
++if test x$with_systemd = xauto ; then
++        if test x$have_systemd = xno ; then
++                with_systemd=no
++        else
++                with_systemd=yes
++        fi
++fi
++AC_MSG_RESULT($with_systemd)
++if test x$with_systemd = xyes; then
++        if test x$have_systemd = xno; then
++                AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
++        fi
++        AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
++fi
++AC_SUBST(SYSTEMD_CFLAGS)
++AC_SUBST(SYSTEMD_LIBS)
++AM_CONDITIONAL(WITH_SYSTEMD, [test "$with_systemd" = "yes"], [Using systemd])
++
+ dnl Check for debugging support
+ XDT_FEATURE_DEBUG([xfsm_debug_default])
+ 
+
+commit f1279eba9452f027a2037be77388767437161d51
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:18:16 2012 +0200
+
+    ...
+
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index 1429abd..077cdf3 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -96,7 +96,11 @@ struct _XfsmShutdown
+ {
+   GObject __parent__;
+ 
++#ifdef HAVE_SYSTEMD
++  SystemdProxy   *systemd_proxy;
++#else
+   XfsmConsolekit *consolekit;
++#endif
+   XfsmUPower     *upower;
+ 
+   /* kiosk settings */
+@@ -134,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown)
+ {
+   XfceKiosk *kiosk;
+ 
++#ifdef HAVE_SYSTEMD
++  shutdown->systemd_proxy = systemd_proxy_new ();
++#else
+   shutdown->consolekit = xfsm_consolekit_get ();
++#endif
+   shutdown->upower = xfsm_upower_get ();
+   shutdown->helper_state = SUDO_NOT_INITIAZED;
+   shutdown->helper_require_password = FALSE;
+@@ -153,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object)
+ {
+   XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
+ 
++#ifdef HAVE_SYSTEMD
++  systemd_proxy_free (shutdown->systemd_proxy);
++#else
+   g_object_unref (G_OBJECT (shutdown->consolekit));
++#endif
+   g_object_unref (G_OBJECT (shutdown->upower));
+ 
+   /* close down helper */
+@@ -644,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return systemd_proxy_restart (shutdown->systemd_proxy, error);
++#else
+     return xfsm_consolekit_try_restart (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -661,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return systemd_proxy_shutdown (shutdown->systemd_proxy, error);
++#else
+     return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -701,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (systemd_proxy_can_restart (shutdown->systemd_proxy, can_restart, error))
++#else
+   if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+@@ -728,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (systemd_proxy_can_shutdown (shutdown->systemd_proxy, can_shutdown, error))
++#else
+   if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+
+commit 5aea3fb853683246a537a67423cf5b32076b8dfb
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:03:27 2012 +0200
+
+    ...
+
+diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
+index c015154..7e3b311 100644
+--- a/xfce4-session/Makefile.am
++++ b/xfce4-session/Makefile.am
+@@ -38,8 +38,6 @@ xfce4_session_SOURCES =							\
+ 	xfsm-compat-gnome.h						\
+ 	xfsm-compat-kde.c						\
+ 	xfsm-compat-kde.h						\
+-	xfsm-consolekit.c						\
+-	xfsm-consolekit.h						\
+ 	xfsm-dns.c							\
+ 	xfsm-dns.h							\
+ 	xfsm-error.c							\
+@@ -65,6 +63,16 @@ xfce4_session_SOURCES =							\
+ 	xfsm-upower.c							\
+ 	xfsm-upower.h
+ 
++if WITH_SYSTEMD
++xfce4_session_SOURCES +=						\
++	xfsm-systemd.c							\
++	xfsm-systemd.h
++else
++xfce4_session_SOURCES +=						\
++	xfsm-consolekit.c						\
++	xfsm-consolekit.h
++endif
++
+ xfce4_session_CFLAGS =							\
+ 	$(LIBSM_CFLAGS)							\
+ 	$(LIBX11_CFLAGS)						\
+@@ -72,6 +80,7 @@ xfce4_session_CFLAGS =							\
+ 	$(DBUS_CFLAGS)							\
+ 	$(DBUS_GLIB_CFLAGS)						\
+ 	$(LIBWNCK_CFLAGS)						\
++	$(SYSTEMD_CFLAGS)						\
+ 	$(XFCONF_CFLAGS)						\
+ 	$(GMODULE_CFLAGS)						\
+ 	$(PLATFORM_CFLAGS)
+@@ -91,6 +100,7 @@ xfce4_session_LDADD =							\
+ 	$(DBUS_LIBS)							\
+ 	$(DBUS_GLIB_LIBS)						\
+ 	$(LIBWNCK_LIBS)							\
++	$(SYSTEMD_LIBS)							\
+ 	$(XFCONF_LIBS)							\
+ 	-lm
+ 
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index d8757a8..1429abd 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -66,10 +66,13 @@
+ #include <xfce4-session/xfsm-fadeout.h>
+ #include <xfce4-session/xfsm-global.h>
+ #include <xfce4-session/xfsm-legacy.h>
+-#include <xfce4-session/xfsm-consolekit.h>
+ #include <xfce4-session/xfsm-upower.h>
+ 
+-
++#ifdef HAVE_SYSTEMD
++#include <xfce4-session/xfsm-systemd.h>
++#else
++#include <xfce4-session/xfsm-consolekit.h>
++#endif
+ 
+ static void xfsm_shutdown_finalize  (GObject      *object);
+ static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown);

Deleted: staging-i686/xfce4-session.install
===================================================================
--- staging-i686/xfce4-session.install	2012-10-14 23:00:55 UTC (rev 168728)
+++ staging-i686/xfce4-session.install	2012-10-14 23:01:20 UTC (rev 168729)
@@ -1,13 +0,0 @@
-post_install() {
-  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
-  post_install
-}
-
-post_remove() {
-  post_install
-}
-
-# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-i686/xfce4-session.install (from rev 168728, xfce4-session/trunk/xfce4-session.install)
===================================================================
--- staging-i686/xfce4-session.install	                        (rev 0)
+++ staging-i686/xfce4-session.install	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,13 @@
+post_install() {
+  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: staging-x86_64/PKGBUILD
===================================================================
--- staging-x86_64/PKGBUILD	2012-10-14 23:00:55 UTC (rev 168728)
+++ staging-x86_64/PKGBUILD	2012-10-14 23:01:20 UTC (rev 168729)
@@ -1,44 +0,0 @@
-# $Id$
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: tobias <tobias funnychar archlinux.org>
-
-pkgname=xfce4-session
-pkgver=4.10.0
-pkgrel=4
-pkgdesc="A session manager for Xfce"
-arch=('i686' 'x86_64')
-url="http://www.xfce.org/"
-license=('GPL2')
-groups=('xfce4')
-depends=('libxfce4ui' 'libwnck' 'libsm' 'xorg-iceauth' 'upower' 'xorg-xinit'
-          'hicolor-icon-theme')
-makedepends=('intltool')
-optdepends=('gnome-keyring: for keyring support when GNOME compatibility is enabled'
-            'xscreensaver: for locking screen with xflock4'
-            'gnome-screensaver: for locking screen with xflock4'
-            'xlockmore: for locking screen with xflock4')
-replaces=('xfce-utils')
-options=('!libtool')
-install=$pkgname.install
-source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2)
-sha256sums=('bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce')
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  ./configure --prefix=/usr \
-    --sysconfdir=/etc \
-    --libexecdir=/usr/lib/xfce4 \
-    --localstatedir=/var \
-    --disable-static \
-    --enable-libgnome-keyring \
-    --disable-debug
-  make
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
-
-# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-x86_64/PKGBUILD (from rev 168728, xfce4-session/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,52 @@
+# $Id$
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-session
+pkgver=4.10.0
+pkgrel=5
+pkgdesc="A session manager for Xfce"
+arch=('i686' 'x86_64')
+url="http://www.xfce.org/"
+license=('GPL2')
+groups=('xfce4')
+depends=('libxfce4ui' 'libwnck' 'libsm' 'xorg-iceauth' 'upower' 'xorg-xinit'
+          'hicolor-icon-theme')
+makedepends=('intltool' 'xfce4-dev-tools')
+optdepends=('gnome-keyring: for keyring support when GNOME compatibility is enabled'
+            'xscreensaver: for locking screen with xflock4'
+            'gnome-screensaver: for locking screen with xflock4'
+            'xlockmore: for locking screen with xflock4')
+replaces=('xfce-utils')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+        xfce4-session-4.10.0-add-systemd-support.patch)
+sha256sums=('bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce'
+            'ffae61c48a4bd0cb51d422cb93f2de9567abaf29085370c455ef349b6a10234b')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # https://bugzilla.xfce.org/show_bug.cgi?id=8729
+  patch -Np1 -i "$srcdir/xfce4-session-4.10.0-add-systemd-support.patch"
+
+  xdt-autogen
+
+  ./configure \
+    --prefix=/usr \
+    --sysconfdir=/etc \
+    --libexecdir=/usr/lib/xfce4 \
+    --localstatedir=/var \
+    --disable-static \
+    --disable-legacy-sm \
+    --disable-debug
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-x86_64/xfce4-session-4.10.0-add-systemd-support.patch (from rev 168728, xfce4-session/trunk/xfce4-session-4.10.0-add-systemd-support.patch)
===================================================================
--- staging-x86_64/xfce4-session-4.10.0-add-systemd-support.patch	                        (rev 0)
+++ staging-x86_64/xfce4-session-4.10.0-add-systemd-support.patch	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,388 @@
+diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c
+index 4076586..90e7873 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.c
+@@ -0,0 +1,123 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#include <config.h>
++
++#include <gio/gio.h>
++#include <polkit/polkit.h>
++
++#include "xfsm-systemd.h"
++
++#define SYSTEMD_DBUS_NAME       "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH       "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE  "org.freedesktop.login1.Manager"
++#define SYSTEMD_REBOOT_ACTION   "org.freedesktop.login1.reboot"
++#define SYSTEMD_SHUTDOWN_ACTION "org.freedesktop.login1.power-off"
++
++struct _SystemdProxy {
++        PolkitAuthority *authority;
++        PolkitSubject *subject;
++};
++
++SystemdProxy *
++systemd_proxy_new (void)
++{
++        SystemdProxy *proxy;
++
++        proxy = g_new0 (SystemdProxy, 1);
++
++        proxy->authority = polkit_authority_get_sync (NULL, NULL);
++        proxy->subject = polkit_unix_process_new (getpid());
++
++        return proxy;
++}
++
++void
++systemd_proxy_free (SystemdProxy *proxy)
++{
++        g_object_unref (proxy->authority);
++        g_object_unref (proxy->subject);
++
++        g_free (proxy);
++}
++
++gboolean systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const gchar *method, GError **error)
++{
++        PolkitAuthorizationResult *res;
++        GError *local_error = NULL;
++
++        *can_method = FALSE;
++        res = polkit_authority_check_authorization_sync (proxy->authority,
++                                                         proxy->subject,
++                                                         method,
++                                                         NULL,
++                                                         POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
++                                                         NULL,
++                                                         &local_error);
++        if (res == NULL) {
++                g_propagate_error (error, local_error);
++                return FALSE;
++        }
++
++        *can_method = polkit_authorization_result_get_is_authorized (res) ||
++                       polkit_authorization_result_get_is_challenge (res);
++
++        g_object_unref (res);
++
++        return TRUE;
++}
++
++gboolean systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error)
++{
++	return systemd_proxy_can_method(proxy, can_restart, SYSTEMD_REBOOT_ACTION, error);
++}
++
++gboolean systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error)
++{
++	return systemd_proxy_can_method(proxy, can_shutdown, SYSTEMD_SHUTDOWN_ACTION, error);
++}
++
++gboolean systemd_proxy_method (SystemdProxy *proxy, const gchar *method, GError **error)
++{
++        GDBusConnection *bus;
++
++        bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
++        g_dbus_connection_call_sync (bus,
++                                     SYSTEMD_DBUS_NAME,
++                                     SYSTEMD_DBUS_PATH,
++                                     SYSTEMD_DBUS_INTERFACE,
++                                     method,
++                                     g_variant_new ("(b)", TRUE),
++                                     NULL, 0, G_MAXINT, NULL, NULL);
++        g_object_unref (bus);
++
++        return TRUE;
++}
++
++gboolean systemd_proxy_restart (SystemdProxy *proxy, GError **error)
++{
++	return systemd_proxy_method(proxy, "Reboot", error);
++}
++
++gboolean systemd_proxy_shutdown (SystemdProxy *proxy, GError **error)
++{
++	return systemd_proxy_method(proxy, "PowerOff", error);
++}
+diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h
+index 3fa8317..2c4d868 100644
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.h
+@@ -0,0 +1,42 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifndef __SYSTEMD_PROXY_H__
++#define __SYSTEMD_PROXY_H__
++
++#include <glib.h>
++
++G_BEGIN_DECLS
++
++typedef struct _SystemdProxy SystemdProxy;
++
++SystemdProxy *systemd_proxy_new (void);
++void          systemd_proxy_free (SystemdProxy *proxy);
++gboolean      systemd_proxy_can_method (SystemdProxy *proxy, gboolean *can_method, const char *method, GError **error);
++gboolean      systemd_proxy_can_restart (SystemdProxy *proxy, gboolean *can_restart, GError **error);
++gboolean      systemd_proxy_can_shutdown (SystemdProxy *proxy, gboolean *can_shutdown, GError **error);
++gboolean      systemd_proxy_method (SystemdProxy *proxy, const char *method, GError **error);
++gboolean      systemd_proxy_restart (SystemdProxy *proxy, GError **error);
++gboolean      systemd_proxy_shutdown (SystemdProxy *proxy, GError **error);
++
++G_END_DECLS
++
++#endif  /* __SYSTEMD_PROXY_H__ */
+
+commit 518a28c23f110617aad36e64c02cdab6a36adf37
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:21:14 2012 +0200
+
+    ...
+
+diff --git a/configure.in.in b/configure.in.in
+index 9aa4f8f..aa0b8bb 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,6 +96,33 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0])
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0])
+ 
++dnl systemd integration
++AC_ARG_ENABLE([systemd],
++              AS_HELP_STRING([--enable-systemd], [Use systemd]),
++              [with_systemd=$enableval],
++              [with_systemd=auto])
++PKG_CHECK_MODULES(SYSTEMD,
++                  [libsystemd-login polkit-gobject-1],
++                  [have_systemd=yes], [have_systemd=no])
++AC_MSG_CHECKING([whether to use systemd])
++if test x$with_systemd = xauto ; then
++        if test x$have_systemd = xno ; then
++                with_systemd=no
++        else
++                with_systemd=yes
++        fi
++fi
++AC_MSG_RESULT($with_systemd)
++if test x$with_systemd = xyes; then
++        if test x$have_systemd = xno; then
++                AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
++        fi
++        AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
++fi
++AC_SUBST(SYSTEMD_CFLAGS)
++AC_SUBST(SYSTEMD_LIBS)
++AM_CONDITIONAL(WITH_SYSTEMD, [test "$with_systemd" = "yes"], [Using systemd])
++
+ dnl Check for debugging support
+ XDT_FEATURE_DEBUG([xfsm_debug_default])
+ 
+
+commit f1279eba9452f027a2037be77388767437161d51
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:18:16 2012 +0200
+
+    ...
+
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index 1429abd..077cdf3 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -96,7 +96,11 @@ struct _XfsmShutdown
+ {
+   GObject __parent__;
+ 
++#ifdef HAVE_SYSTEMD
++  SystemdProxy   *systemd_proxy;
++#else
+   XfsmConsolekit *consolekit;
++#endif
+   XfsmUPower     *upower;
+ 
+   /* kiosk settings */
+@@ -134,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown)
+ {
+   XfceKiosk *kiosk;
+ 
++#ifdef HAVE_SYSTEMD
++  shutdown->systemd_proxy = systemd_proxy_new ();
++#else
+   shutdown->consolekit = xfsm_consolekit_get ();
++#endif
+   shutdown->upower = xfsm_upower_get ();
+   shutdown->helper_state = SUDO_NOT_INITIAZED;
+   shutdown->helper_require_password = FALSE;
+@@ -153,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object)
+ {
+   XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
+ 
++#ifdef HAVE_SYSTEMD
++  systemd_proxy_free (shutdown->systemd_proxy);
++#else
+   g_object_unref (G_OBJECT (shutdown->consolekit));
++#endif
+   g_object_unref (G_OBJECT (shutdown->upower));
+ 
+   /* close down helper */
+@@ -644,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return systemd_proxy_restart (shutdown->systemd_proxy, error);
++#else
+     return xfsm_consolekit_try_restart (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -661,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return systemd_proxy_shutdown (shutdown->systemd_proxy, error);
++#else
+     return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -701,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (systemd_proxy_can_restart (shutdown->systemd_proxy, can_restart, error))
++#else
+   if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+@@ -728,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (systemd_proxy_can_shutdown (shutdown->systemd_proxy, can_shutdown, error))
++#else
+   if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+
+commit 5aea3fb853683246a537a67423cf5b32076b8dfb
+Author: Christian Hesse <eworm at leda.eworm.de>
+Date:   Fri Jul 27 14:03:27 2012 +0200
+
+    ...
+
+diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
+index c015154..7e3b311 100644
+--- a/xfce4-session/Makefile.am
++++ b/xfce4-session/Makefile.am
+@@ -38,8 +38,6 @@ xfce4_session_SOURCES =							\
+ 	xfsm-compat-gnome.h						\
+ 	xfsm-compat-kde.c						\
+ 	xfsm-compat-kde.h						\
+-	xfsm-consolekit.c						\
+-	xfsm-consolekit.h						\
+ 	xfsm-dns.c							\
+ 	xfsm-dns.h							\
+ 	xfsm-error.c							\
+@@ -65,6 +63,16 @@ xfce4_session_SOURCES =							\
+ 	xfsm-upower.c							\
+ 	xfsm-upower.h
+ 
++if WITH_SYSTEMD
++xfce4_session_SOURCES +=						\
++	xfsm-systemd.c							\
++	xfsm-systemd.h
++else
++xfce4_session_SOURCES +=						\
++	xfsm-consolekit.c						\
++	xfsm-consolekit.h
++endif
++
+ xfce4_session_CFLAGS =							\
+ 	$(LIBSM_CFLAGS)							\
+ 	$(LIBX11_CFLAGS)						\
+@@ -72,6 +80,7 @@ xfce4_session_CFLAGS =							\
+ 	$(DBUS_CFLAGS)							\
+ 	$(DBUS_GLIB_CFLAGS)						\
+ 	$(LIBWNCK_CFLAGS)						\
++	$(SYSTEMD_CFLAGS)						\
+ 	$(XFCONF_CFLAGS)						\
+ 	$(GMODULE_CFLAGS)						\
+ 	$(PLATFORM_CFLAGS)
+@@ -91,6 +100,7 @@ xfce4_session_LDADD =							\
+ 	$(DBUS_LIBS)							\
+ 	$(DBUS_GLIB_LIBS)						\
+ 	$(LIBWNCK_LIBS)							\
++	$(SYSTEMD_LIBS)							\
+ 	$(XFCONF_LIBS)							\
+ 	-lm
+ 
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index d8757a8..1429abd 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -66,10 +66,13 @@
+ #include <xfce4-session/xfsm-fadeout.h>
+ #include <xfce4-session/xfsm-global.h>
+ #include <xfce4-session/xfsm-legacy.h>
+-#include <xfce4-session/xfsm-consolekit.h>
+ #include <xfce4-session/xfsm-upower.h>
+ 
+-
++#ifdef HAVE_SYSTEMD
++#include <xfce4-session/xfsm-systemd.h>
++#else
++#include <xfce4-session/xfsm-consolekit.h>
++#endif
+ 
+ static void xfsm_shutdown_finalize  (GObject      *object);
+ static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown);

Deleted: staging-x86_64/xfce4-session.install
===================================================================
--- staging-x86_64/xfce4-session.install	2012-10-14 23:00:55 UTC (rev 168728)
+++ staging-x86_64/xfce4-session.install	2012-10-14 23:01:20 UTC (rev 168729)
@@ -1,13 +0,0 @@
-post_install() {
-  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
-  post_install
-}
-
-post_remove() {
-  post_install
-}
-
-# vim:set ts=2 sw=2 et:

Copied: xfce4-session/repos/staging-x86_64/xfce4-session.install (from rev 168728, xfce4-session/trunk/xfce4-session.install)
===================================================================
--- staging-x86_64/xfce4-session.install	                        (rev 0)
+++ staging-x86_64/xfce4-session.install	2012-10-14 23:01:20 UTC (rev 168729)
@@ -0,0 +1,13 @@
+post_install() {
+  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}
+
+# vim:set ts=2 sw=2 et:




More information about the arch-commits mailing list