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 <evange...@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 <evange...@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 <ew...@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 <ew...@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 <ew...@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 <evange...@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 <evange...@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 <ew...@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 <ew...@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 <ew...@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: