Date: Friday, October 5, 2012 @ 06:52:12 Author: andrea Revision: 168019
upgpkg: kdebase-workspace 4.9.2-2 Fix logind support Added: kdebase-workspace/trunk/logind-support.patch Modified: kdebase-workspace/trunk/PKGBUILD ----------------------+ PKGBUILD | 18 ++++++++----- logind-support.patch | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 6 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-10-05 10:15:54 UTC (rev 168018) +++ PKGBUILD 2012-10-05 10:52:12 UTC (rev 168019) @@ -5,7 +5,7 @@ pkgname=kdebase-workspace _pkgname=kde-workspace pkgver=4.9.2 -pkgrel=1 +pkgrel=2 pkgdesc="Provides the interface and basic tools for the KDE workspace" arch=('i686' 'x86_64') url='https://projects.kde.org/projects/kde/kde-workspace' @@ -29,7 +29,8 @@ options=('emptydirs') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service' - 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch') + 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch' + 'logind-support.patch') sha1sums=('091bec159d85db2a9a6d6b1b43a53183c23de488' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' '712a90999bd429883dcef5dcaf288aace332ced8' @@ -38,15 +39,20 @@ 'b6f8e8692737b11eec1f8022ce74b5b23e247b1b' 'd7b5883f7e65c6839b1f65f94d58026673dd0226' 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' - 'd509dac592bd8b310df27991b208c95b6d907514') + 'd509dac592bd8b310df27991b208c95b6d907514' + 'ccde71c42e19feaf40d3bd76e7396a0cb6df012f') build() { - cd "${srcdir}"/${_pkgname}-${pkgver} + cd ${_pkgname}-${pkgver} patch -p1 -i "${srcdir}"/kdm-xinitrd.patch patch -p0 -i "${srcdir}"/fixpath.patch patch -p0 -i "${srcdir}"/terminate-server.patch - cd "${srcdir}" + # KDEBUG 307412 + patch -p1 -i "${srcdir}"/logind-support.patch + + cd ../ + mkdir build cd build cmake ../${_pkgname}-${pkgver} \ @@ -61,7 +67,7 @@ } package() { - cd "${srcdir}"/build + cd build make DESTDIR="${pkgdir}" install install -D -m644 "${srcdir}"/kde.pam "${pkgdir}"/etc/pam.d/kde Added: logind-support.patch =================================================================== --- logind-support.patch (rev 0) +++ logind-support.patch 2012-10-05 10:52:12 UTC (rev 168019) @@ -0,0 +1,66 @@ +From: Lukas Tinkl <lu...@kde.org> +Date: Fri, 05 Oct 2012 09:57:13 +0000 +Subject: store the filedescriptor in a member variable +X-Git-Url: http://quickgit.kde.org/?p=kde-workspace.git&a=commitdiff&h=a18b78d7da8cb8d627ad2e85f666bfcf1a2721e1 +--- +store the filedescriptor in a member variable + +make systemd-inhibit work as intended, PowerDevil now handles +power/sleep/lid buttons as intended + +BUG: 307412 +--- + + +--- a/powerdevil/daemon/powerdevilpolicyagent.cpp ++++ b/powerdevil/daemon/powerdevilpolicyagent.cpp +@@ -29,7 +29,6 @@ + #include <QtDBus/QDBusPendingReply> + #include <QtDBus/QDBusConnectionInterface> + #include <QtDBus/QDBusServiceWatcher> +-#include <QtDBus/QDBusUnixFileDescriptor> + + #include <KGlobal> + #include <KDebug> +@@ -225,6 +224,9 @@ + onActiveSessionChanged(m_activeSessionPath); + + // inhibit systemd handling of power/sleep/lid buttons ++ // http://www.freedesktop.org/wiki/Software/systemd/inhibit ++ kDebug() << "fd passing available:" << bool(managerIface.connection().connectionCapabilities() & QDBusConnection::UnixFileDescriptorPassing); ++ + QVariantList args; + args << "handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"; // what + args << "PowerDevil"; // who +@@ -232,8 +234,9 @@ + args << "block"; // mode + QDBusPendingReply<QDBusUnixFileDescriptor> desc = managerIface.asyncCallWithArgumentList("Inhibit", args); + desc.waitForFinished(); +- if (desc.isValid() && desc.value().isValid()) { +- kDebug() << "systemd powersave events handling inhibited"; ++ if (desc.isValid()) { ++ m_systemdInhibitFd = desc.value(); ++ kDebug() << "systemd powersave events handling inhibited, descriptor:" << m_systemdInhibitFd.fileDescriptor(); + } + else + kWarning() << "failed to inhibit systemd powersave handling"; + +--- a/powerdevil/daemon/powerdevilpolicyagent.h ++++ b/powerdevil/daemon/powerdevilpolicyagent.h +@@ -27,6 +27,7 @@ + #include <QtCore/QWeakPointer> + + #include <QtDBus/QDBusContext> ++#include <QtDBus/QDBusUnixFileDescriptor> + + #include <kdemacros.h> + +@@ -108,6 +109,7 @@ + QString m_activeSessionPath; + QWeakPointer< QDBusInterface > m_sdSessionInterface; + QWeakPointer< QDBusInterface > m_sdSeatInterface; ++ QDBusUnixFileDescriptor m_systemdInhibitFd; + + // ConsoleKit support + bool m_ckAvailable; +