diff options
author | Michael Palimaka <kensington@gentoo.org> | 2015-08-26 00:10:39 +1000 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2015-08-26 00:14:00 +1000 |
commit | 809b471f3c387bcff2d5461f4b209c773ae32e04 (patch) | |
tree | 49b2ca906e2803bdb50a2998a61cf68f20e2c1f6 /kde-plasma/plasma-workspace | |
parent | 05533753408f78186692229b9e88a5edbd0bee10 (diff) | |
download | gentoo-809b471f3c387bcff2d5461f4b209c773ae32e04.tar.gz gentoo-809b471f3c387bcff2d5461f4b209c773ae32e04.tar.xz |
kde-plasma: version bump 5.4.0
Package-Manager: portage-2.2.20.1
Diffstat (limited to 'kde-plasma/plasma-workspace')
4 files changed, 412 insertions, 0 deletions
diff --git a/kde-plasma/plasma-workspace/Manifest b/kde-plasma/plasma-workspace/Manifest index 72b94b25efb..b25209057f7 100644 --- a/kde-plasma/plasma-workspace/Manifest +++ b/kde-plasma/plasma-workspace/Manifest @@ -1 +1,2 @@ DIST plasma-workspace-5.3.2.tar.xz 6860364 SHA256 4165a547efc59dd42a15d24f21f722d88e4acfb6fb6d6a4db3c3d0ce54fa54c4 SHA512 9d93993c897b1c7ccc5fb4871ab7e1061dc61fa10d65ec516f5eb9b8f75ddc6188a6688c74425195fcab33a36cc72bd89787b1e3a8ada4244e7cfbbb1b9367b6 WHIRLPOOL 969cb23c0c9cba2c85d3609f201aeb4aeb0b3f3d6751caa3b89c75bb5e4c2ddcb85386c7454a4897ec4f53c49e3f9c2512e0d794825c97ece3ab7480f1190487 +DIST plasma-workspace-5.4.0.tar.xz 6956048 SHA256 102e06f9d8c1f2be18aefe009c8d66fa99a1d986f392474490fe37d4d1f3993f SHA512 4cf40aacb9888bd5046ec455825d5b6f077a5123a27fef5cac6a9e8ca606a620321d3900aedcfa1e4c605b861fc83451b03606c89166e9ab8b43f729bac0defa WHIRLPOOL ae30bc151fd691be764cccc6b372cc537d8a4142fffe8258421df30c102da5ffc0c5d7e383f7c369b0eaa9168aa0532956019f52314bdc23915af20b16f5a821 diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-consolekit2.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-consolekit2.patch new file mode 100644 index 00000000000..6131c90bc20 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-consolekit2.patch @@ -0,0 +1,189 @@ +From: Eric Koegel <eric.koegel@gmail.com> +Date: Wed, 12 Aug 2015 08:33:39 +0000 +Subject: ConsoleKit2 support for screenlocker +X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=72578284a1fda5f012cafcaccad6069fadbf9a25 +--- +ConsoleKit2 support for screenlocker + +ConsoleKit2 has the same API as systemd-logind for Lock, Unlock, +PrepareForSleep, and Inhibit. This patch adds the functionality +for ConsoleKit2 while attempting to minimize code duplication. + +REVIEW: 124469 +--- + + +--- a/ksmserver/screenlocker/logind.cpp ++++ b/ksmserver/screenlocker/logind.cpp +@@ -25,13 +25,17 @@ + #include <QDebug> + #include <QDBusConnection> + #include <QDBusConnectionInterface> +-#include <QDBusPendingCallWatcher> + #include <QDBusServiceWatcher> + + const static QString s_login1Service = QStringLiteral("org.freedesktop.login1"); + const static QString s_login1Path = QStringLiteral("/org/freedesktop/login1"); + const static QString s_login1ManagerInterface = QStringLiteral("org.freedesktop.login1.Manager"); + const static QString s_login1SessionInterface = QStringLiteral("org.freedesktop.login1.Session"); ++ ++const static QString s_consolekitService = QStringLiteral("org.freedesktop.ConsoleKit"); ++const static QString s_consolekitPath = QStringLiteral("/org/freedesktop/ConsoleKit/Manager"); ++const static QString s_consolekitManagerInterface = QStringLiteral("org.freedesktop.ConsoleKit.Manager"); ++const static QString s_consolekitSessionInterface = QStringLiteral("org.freedesktop.ConsoleKit.Session"); + + LogindIntegration::LogindIntegration(const QDBusConnection &connection, QObject *parent) + : QObject(parent) +@@ -42,6 +46,10 @@ + this)) + , m_connected(false) + , m_inhibitFileDescriptor() ++ , m_service(nullptr) ++ , m_path(nullptr) ++ , m_managerInterface(nullptr) ++ , m_sessionInterface(nullptr) + { + connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceRegistered, this, &LogindIntegration::logindServiceRegistered); + connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceUnregistered, this, +@@ -67,6 +75,11 @@ + } + if (reply.value().contains(s_login1Service)) { + logindServiceRegistered(); ++ // Don't register ck if we have logind ++ return; ++ } ++ if (reply.value().contains(s_consolekitService)) { ++ consolekitServiceRegistered(); + } + } + ); +@@ -89,6 +102,40 @@ + message.setArguments(QVariantList() << (quint32) QCoreApplication::applicationPid()); + QDBusPendingReply<QDBusObjectPath> session = m_bus.asyncCall(message); + QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(session, this); ++ ++ m_service = &s_login1Service; ++ m_path = &s_login1Path; ++ m_managerInterface = &s_login1ManagerInterface; ++ m_sessionInterface = &s_login1SessionInterface; ++ ++ commonServiceRegistered(watcher); ++} ++ ++void LogindIntegration::consolekitServiceRegistered() ++{ ++ // Don't try to register with ck if we have logind ++ if (m_connected) { ++ return; ++ } ++ ++ // get the current session ++ QDBusMessage message = QDBusMessage::createMethodCall(s_consolekitService, ++ s_consolekitPath, ++ s_consolekitManagerInterface, ++ QStringLiteral("GetCurrentSession")); ++ QDBusPendingReply<QDBusObjectPath> session = m_bus.asyncCall(message); ++ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(session, this); ++ ++ m_service = &s_consolekitService; ++ m_path = &s_consolekitPath; ++ m_managerInterface = &s_consolekitManagerInterface; ++ m_sessionInterface = &s_consolekitSessionInterface; ++ ++ commonServiceRegistered(watcher); ++} ++ ++void LogindIntegration::commonServiceRegistered(QDBusPendingCallWatcher *watcher) ++{ + connect(watcher, &QDBusPendingCallWatcher::finished, this, + [this](QDBusPendingCallWatcher *self) { + QDBusPendingReply<QDBusObjectPath> reply = *self; +@@ -97,7 +144,7 @@ + return; + } + if (!reply.isValid()) { +- qDebug() << "The session is not registered with logind" << reply.error().message(); ++ qDebug() << "The session is not registered: " << reply.error().message(); + return; + } + const QString sessionPath = reply.value().path(); +@@ -105,15 +152,15 @@ + + // connections need to be done this way as the object exposes both method and signal + // with name "Lock"/"Unlock". Qt is not able to automatically handle this. +- m_bus.connect(s_login1Service, ++ m_bus.connect(*m_service, + sessionPath, +- s_login1SessionInterface, ++ *m_sessionInterface, + QStringLiteral("Lock"), + this, + SIGNAL(requestLock())); +- m_bus.connect(s_login1Service, ++ m_bus.connect(*m_service, + sessionPath, +- s_login1SessionInterface, ++ *m_sessionInterface, + QStringLiteral("Unlock"), + this, + SIGNAL(requestUnlock())); +@@ -123,9 +170,9 @@ + ); + + // connect to manager object's signals we need +- m_bus.connect(s_login1Service, +- s_login1Path, +- s_login1ManagerInterface, ++ m_bus.connect(*m_service, ++ *m_path, ++ *m_managerInterface, + QStringLiteral("PrepareForSleep"), + this, + SIGNAL(prepareForSleep(bool))); +@@ -136,9 +183,14 @@ + if (m_inhibitFileDescriptor.isValid()) { + return; + } +- QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service, +- s_login1Path, +- s_login1ManagerInterface, ++ ++ if (!m_connected) { ++ return; ++ } ++ ++ QDBusMessage message = QDBusMessage::createMethodCall(*m_service, ++ *m_path, ++ *m_managerInterface, + QStringLiteral("Inhibit")); + message.setArguments(QVariantList({QStringLiteral("sleep"), + i18n("Screen Locker"), + +--- a/ksmserver/screenlocker/logind.h ++++ b/ksmserver/screenlocker/logind.h +@@ -23,6 +23,7 @@ + #include <QDBusConnection> + #include <QDBusUnixFileDescriptor> + #include <QObject> ++#include <QDBusPendingCallWatcher> + + class QDBusServiceWatcher; + +@@ -59,10 +60,16 @@ + **/ + explicit LogindIntegration(const QDBusConnection &connection, QObject *parent = nullptr); + void logindServiceRegistered(); ++ void consolekitServiceRegistered(); ++ void commonServiceRegistered(QDBusPendingCallWatcher *watcher); + QDBusConnection m_bus; + QDBusServiceWatcher *m_logindServiceWatcher; + bool m_connected; + QDBusUnixFileDescriptor m_inhibitFileDescriptor; ++ const QString *m_service; ++ const QString *m_path; ++ const QString *m_managerInterface; ++ const QString *m_sessionInterface; + }; + + #endif + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-startkde-script.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-startkde-script.patch new file mode 100644 index 00000000000..1630080ca2c --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.4-startkde-script.patch @@ -0,0 +1,40 @@ +From bf569560bf195ac4e79d65d4103a7161a6a2f2ac Mon Sep 17 00:00:00 2001 +From: Elias Probst <mail@eliasprobst.eu> +Date: Sat, 4 Jul 2015 11:33:01 +0200 +Subject: [PATCH] [startkde] Gentoo FHS script support + +--- + startkde/startkde.cmake | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake +index 2585600..9350158 100644 +--- a/startkde/startkde.cmake ++++ b/startkde/startkde.cmake +@@ -210,6 +210,11 @@ for prefix in `echo $scriptpath`; do + done + done + ++# Gentoo part for FHS installs ++for file in "@GENTOO_PORTAGE_EPREFIX@/etc/plasma/startup/"*.sh; do ++ test -r "${file}" && . "${file}" ++done ++ + # Activate the kde font directories. + # + # There are 4 directories that may be used for supplying fonts for KDE. +@@ -417,6 +422,11 @@ for prefix in `echo "$scriptpath"`; do + done + done + ++# Gentoo part for FHS installs ++for file in "@GENTOO_PORTAGE_EPREFIX@/etc/plasma/shutdown/"*.sh; do ++ test -r "${file}" && . "${file}" ++done ++ + unset KDE_FULL_SESSION + xprop -root -remove KDE_FULL_SESSION + unset KDE_SESSION_VERSION +-- +2.3.6 + diff --git a/kde-plasma/plasma-workspace/plasma-workspace-5.4.0.ebuild b/kde-plasma/plasma-workspace/plasma-workspace-5.4.0.ebuild new file mode 100644 index 00000000000..8d7df9f51fe --- /dev/null +++ b/kde-plasma/plasma-workspace/plasma-workspace-5.4.0.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +KDE_HANDBOOK="true" +KDE_PUNT_BOGUS_DEPS="true" +KDE_TEST="true" +VIRTUALX_REQUIRED="test" +inherit kde5 multilib pam + +DESCRIPTION="KDE Plasma workspace" +KEYWORDS=" ~amd64" +IUSE="dbus +drkonqi gps prison qalculate +systemmonitor" + +COMMON_DEPEND=" + $(add_plasma_dep kwayland) + $(add_plasma_dep kwin) + $(add_plasma_dep libkscreen) + $(add_plasma_dep libksysguard) + $(add_frameworks_dep baloo) + $(add_frameworks_dep kactivities) + $(add_frameworks_dep kauth) + $(add_frameworks_dep kbookmarks) + $(add_frameworks_dep kcmutils) + $(add_frameworks_dep kcompletion) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kcrash) + $(add_frameworks_dep kdbusaddons) + $(add_frameworks_dep kdeclarative) + $(add_frameworks_dep kdelibs4support) + $(add_frameworks_dep kdesu) + $(add_frameworks_dep kglobalaccel) + $(add_frameworks_dep kguiaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kidletime) + $(add_frameworks_dep kio) + $(add_frameworks_dep kitemviews) + $(add_frameworks_dep kjobwidgets) + $(add_frameworks_dep kjs) + $(add_frameworks_dep kjsembed) + $(add_frameworks_dep knewstuff) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep knotifyconfig) + $(add_frameworks_dep kpackage) + $(add_frameworks_dep krunner) + $(add_frameworks_dep kservice) + $(add_frameworks_dep ktexteditor) + $(add_frameworks_dep ktextwidgets) + $(add_frameworks_dep kwallet) + $(add_frameworks_dep kwidgetsaddons) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep kxmlrpcclient) + $(add_frameworks_dep networkmanager-qt) + $(add_frameworks_dep plasma) + $(add_frameworks_dep solid) + dev-libs/wayland + dev-qt/qtconcurrent:5 + dev-qt/qtdbus:5 + dev-qt/qtdeclarative:5[widgets] + dev-qt/qtgui:5[jpeg] + dev-qt/qtnetwork:5 + dev-qt/qtscript:5 + dev-qt/qtsql:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + media-libs/phonon[qt5] + sys-libs/pam + sys-libs/zlib + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libxcb + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrender + x11-libs/xcb-util-keysyms + dbus? ( dev-libs/libdbusmenu-qt[qt5] ) + drkonqi? ( + $(add_frameworks_dep kdewebkit) + dev-qt/qtwebkit:5 + ) + gps? ( sci-geosciences/gpsd ) + prison? ( media-libs/prison:5 ) + qalculate? ( sci-libs/libqalculate ) + systemmonitor? ( + $(add_plasma_dep libksysguard processui) + ) +" +RDEPEND="${COMMON_DEPEND} + $(add_frameworks_dep kded) + $(add_plasma_dep kde-cli-tools) + $(add_plasma_dep milou) + dev-qt/qdbus:5 + dev-qt/qtpaths:5 + dev-qt/qtquickcontrols:5[widgets] + x11-apps/mkfontdir + x11-apps/xmessage + x11-apps/xprop + x11-apps/xrdb + x11-apps/xset + x11-apps/xsetroot + !kde-base/freespacenotifier + !kde-base/libtaskmanager + !kde-base/kcminit + !kde-base/kdebase-startkde + !kde-base/klipper + !kde-base/krunner + !kde-base/ksmserver + !kde-base/ksplash + !kde-base/plasma-workspace + !kde-plasma/kio-extras +" +DEPEND="${COMMON_DEPEND} + x11-proto/xproto +" + +PATCHES=( + "${FILESDIR}/${PN}-5.4-startkde-script.patch" + "${FILESDIR}/${PN}-5.4-consolekit2.patch" +) + +RESTRICT="test" + +src_prepare() { + # whole patch should be upstreamed, doesn't work in PATCHES + epatch "${FILESDIR}/${PN}-tests-optional.patch" + + kde5_src_prepare + + sed -e "s|\`qtpaths|\`/usr/$(get_libdir)/qt5/bin/qtpaths|" -i startkde/startkde.cmake || die + + if ! use drkonqi; then + comment_add_subdirectory drkonqi + fi + + if ! use systemmonitor; then + comment_add_subdirectory systemmonitor + fi +} + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package dbus dbusmenu-qt5) + $(cmake-utils_use_find_package gps libgps) + $(cmake-utils_use_find_package prison) + $(cmake-utils_use_find_package qalculate Qalculate) + ) + + kde5_src_configure +} + +src_install() { + kde5_src_install + + newpamd "${FILESDIR}/kde.pam" kde + newpamd "${FILESDIR}/kde-np.pam" kde-np + + # startup and shutdown scripts + insinto /etc/plasma/startup + doins "${FILESDIR}/agent-startup.sh" + + insinto /etc/plasma/shutdown + doins "${FILESDIR}/agent-shutdown.sh" +} + +pkg_postinst () { + kde5_pkg_postinst + + echo + elog "To enable gpg-agent and/or ssh-agent in Plasma sessions," + elog "edit ${EPREFIX}/etc/plasma/startup/agent-startup.sh and" + elog "${EPREFIX}/etc/plasma/shutdown/agent-shutdown.sh" + echo +} |