Hello community, here is the log from the commit of package plasma5-workspace for openSUSE:Factory checked in at 2017-02-10 10:01:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma5-workspace (Old) and /work/SRC/openSUSE:Factory/.plasma5-workspace.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-workspace" Changes: -------- --- /work/SRC/openSUSE:Factory/plasma5-workspace/plasma5-workspace.changes 2017-02-03 18:56:12.471562300 +0100 +++ /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma5-workspace.changes 2017-02-10 10:01:03.467752985 +0100 @@ -1,0 +2,27 @@ +Tue Feb 7 18:55:13 CET 2017 - [email protected] + +- Update to 5.9.1 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/plasma-5.9.1.php +- Changes since 5.9.0: + * [User Switcher] Ungrab keyboard before trying to lock the screen + * react to config change + * [System Tray Containment] Drop useless Q_INVOKABLE from .cpp file + * [System Tray Containment] Ungrab mouse before opening context menu + * [AppMenu Applet] Map from scene after mapping from global + * Fix memory leak in Appmenu when using compact menu + * [Appmenu Applet] Check whether buttonGrid has a window before calling mapToGlobal + * [Digital Clock] Take into account timezone label width for applet size + * [KRunner] In doubt use primary screen for view position + * Drop legacy fixup rule for VirtualBox. + * fix isOutputRedundant logic + * fix isOutputRedundant logic + * When swapping Wallpapers, save the config to file, not just to propertymap +- Remove patches, now upstream: + * 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch + * 0002-fix-isOutputRedundant-logic.patch +- Add patch to fix 5.9.0 regression: + * 0001-make-services-disqualification-much-stricter.patch + +------------------------------------------------------------------- Old: ---- 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch 0002-fix-isOutputRedundant-logic.patch plasma-workspace-5.9.0.tar.xz New: ---- 0001-make-services-disqualification-much-stricter.patch plasma-workspace-5.9.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma5-workspace.spec ++++++ --- /var/tmp/diff_new_pack.vB0sEa/_old 2017-02-10 10:01:04.395621772 +0100 +++ /var/tmp/diff_new_pack.vB0sEa/_new 2017-02-10 10:01:04.399621206 +0100 @@ -20,17 +20,17 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.9.0 +Version: 5.9.1 Release: 0 -# Full Plasma 5 version (e.g. 5.9.0) +# Full Plasma 5 version (e.g. 5.9.1) %{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}} -# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.9.0 in KUF) +# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.9.1 in KUF) %{!?_plasma5_version: %global _plasma5_version %(echo %{_plasma5_bugfix} | awk -F. '{print $1"."$2}')} Summary: The KDE Plasma Workspace Components License: GPL-2.0+ Group: System/GUI/KDE Url: http://www.kde.org/ -Source: plasma-workspace-%{version}.tar.xz +Source: http://download.kde.org/stable/plasma/%{version}/plasma-workspace-%{version}.tar.xz Source1: baselibs.conf # PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch [email protected] -- Rename the qdbus executable in startkde Patch0: 0001-Rename-qdbus-in-startkde.patch @@ -39,10 +39,8 @@ # PATCH-FIX-OPENSUSE 0001-Ignore-default-sddm-face-icons.patch boo#1001364 [email protected] -- Ignore default sddm face icons Patch2: 0001-Ignore-default-sddm-face-icons.patch # PATCHES 100-200 and above are from upstream 5.9 branch -# PATCH-FIX-UPSTREAM 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch [email protected] -- When swapping Wallpapers, save the config to file -Patch100: 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch -# PATCH-FIX-UPSTREAM 0002-fix-isOutputRedundant-logic.patch [email protected] -- fix isOutputRedundant logic -Patch101: 0002-fix-isOutputRedundant-logic.patch +# PATCH-FIX-UPSTREAM 0001-make-services-disqualification-much-stricter.patch [email protected] -- make services disqualification much stricter +Patch100: 0001-make-services-disqualification-much-stricter.patch # PATCHES 201-300 and above are from upstream master/5.10 branch BuildRequires: breeze5-icons BuildRequires: fdupes @@ -215,7 +213,6 @@ %patch1 -p1 %patch2 -p1 %patch100 -p1 -%patch101 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} @@ -346,7 +343,7 @@ %if %{with lang} %files lang -f %{name}.lang -%doc %lang(de) %{_kf5_htmldir}/de/ +%doc %lang(ca) %{_kf5_htmldir}/ca/ %endif %changelog ++++++ 0001-make-services-disqualification-much-stricter.patch ++++++ >From 7b1dc9a4bb039ff5ff2a5b71a2c6bc687ad1db72 Mon Sep 17 00:00:00 2001 From: Harald Sitter <[email protected]> Date: Thu, 2 Feb 2017 19:57:23 +0100 Subject: [PATCH] make services disqualification much stricter Summary: after the recent set of changes to disqualification we ended up with a bit too lax disqualification. if we saw the exec OR the storageid we'd hence forth disqualify a service with either of them being equal. in case of system settings this causes a match problem. systemsettings has two desktop files one !KDE and one OnlyKDE they are however exactly the same except for a different name and storageid. as a result if the !KDE one is encountered first it will be disqualified on account of noDisplay=true and marked as seen. when the OnlyKDE systemsettings is then iterated it will already have the Exec entry in the seen list and be disqualified on account of that. to prevent this type of confusion make it a requirement to match both storageid AND exec before disqualifying. it may actually be suitable to drop the exec altogether. say I copy firefox into the user local applications dir and set it NoDisplay=true but change the exec. this would still lead to the system-wide firefox being found as it is not getting disqualified. long story short: maybe we should disqualify services solely on the storageid? Test Plan: - new autotest case - fails without changes - passes with changes Reviewers: broulik Reviewed By: broulik Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D4415 --- .../autotests/fixtures/kdesystemsettings.desktop | 13 +++++++++ .../autotests/fixtures/systemsettings.desktop | 14 +++++++++ runners/services/autotests/servicerunnertest.cpp | 34 ++++++++++++++++++++++ runners/services/servicerunner.cpp | 3 +- 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 runners/services/autotests/fixtures/kdesystemsettings.desktop create mode 100644 runners/services/autotests/fixtures/systemsettings.desktop diff --git a/runners/services/autotests/fixtures/kdesystemsettings.desktop b/runners/services/autotests/fixtures/kdesystemsettings.desktop new file mode 100644 index 00000000..0623f57a --- /dev/null +++ b/runners/services/autotests/fixtures/kdesystemsettings.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Exec=systemsettings5 +Icon=preferences-system +Type=Application +X-KDE-StartupNotify=true +NotShowIn=KDE; + +GenericName=KDE System Settings ServiceRunnerTest + +Name=KDE System Settings ServiceRunnerTest + +X-DBUS-StartupType=Unique +Categories=Qt;KDE;Settings; diff --git a/runners/services/autotests/fixtures/systemsettings.desktop b/runners/services/autotests/fixtures/systemsettings.desktop new file mode 100644 index 00000000..935db902 --- /dev/null +++ b/runners/services/autotests/fixtures/systemsettings.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Exec=systemsettings5 +Icon=preferences-system +Type=Application +X-DocPath=systemsettings/index.html +X-KDE-StartupNotify=true +OnlyShowIn=KDE; + +GenericName=System Settings ServiceRunnerTest + +Name=System Settings ServiceRunnerTest + +X-DBUS-StartupType=Unique +Categories=Qt;KDE;Settings; diff --git a/runners/services/autotests/servicerunnertest.cpp b/runners/services/autotests/servicerunnertest.cpp index d0c6daed..d3217768 100644 --- a/runners/services/autotests/servicerunnertest.cpp +++ b/runners/services/autotests/servicerunnertest.cpp @@ -38,6 +38,7 @@ private Q_SLOTS: void testChromeAppsRelevance(); void testKonsoleVsYakuakeComment(); + void testSystemSettings(); }; void ServiceRunnerTest::initTestCase() @@ -58,6 +59,11 @@ void ServiceRunnerTest::initTestCase() setlocale(LC_ALL, "C.utf8"); KSycoca::self()->ensureCacheValid(); + + // Make sure noDisplay behaves consistently WRT OnlyShowIn etc. + QVERIFY(setenv("XDG_CURRENT_DESKTOP", "KDE", 1) == 0); + // NOTE: noDisplay also includes X-KDE-OnlyShowOnQtPlatforms which is a bit harder to fake + // and not currently under testing anyway. } void ServiceRunnerTest::cleanupTestCase() @@ -123,6 +129,34 @@ void ServiceRunnerTest::testKonsoleVsYakuakeComment() QVERIFY(yakuakeFound); } +void ServiceRunnerTest::testSystemSettings() +{ + // In 5.9.0 'System Settings' suddenly didn't come back as a match for 'settings' anymore. + // Sytem Settings has a noKDE version and a KDE version, if the noKDE version is encountered + // first it will be added to the seen cache, however disqualification of already seen items + // may then also disqualify the KDE version of system settings on account of having already + // seen it. This test makes sure we find the right version. + ServiceRunner runner(this, QVariantList()); + Plasma::RunnerContext context; + context.setQuery("settings"); + + runner.match(context); + + bool systemSettingsFound = false; + bool foreignSystemSettingsFound = false; + for (auto match : context.matches()) { + qDebug() << "matched" << match.text(); + if (match.text() == "System Settings ServiceRunnerTest") { + systemSettingsFound = true; + } + if (match.text() == "KDE System Settings ServiceRunnerTest") { + foreignSystemSettingsFound = true; + } + } + QVERIFY(systemSettingsFound); + QVERIFY(!foreignSystemSettingsFound); +} + QTEST_MAIN(ServiceRunnerTest) #include "servicerunnertest.moc" diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp index 68756f91..2f840a9b 100644 --- a/runners/services/servicerunner.cpp +++ b/runners/services/servicerunner.cpp @@ -76,7 +76,7 @@ private: bool hasSeen(const KService::Ptr &service) { - return m_seen.contains(service->storageId()) || + return m_seen.contains(service->storageId()) && m_seen.contains(service->exec()); } @@ -88,6 +88,7 @@ private: bool disqualify(const KService::Ptr &service) { auto ret = hasSeen(service) || service->noDisplay(); + qCDebug(RUNNER_SERVICES) << service->name() << "disqualified?" << ret; seen(service); return ret; } -- 2.11.0 ++++++ plasma-workspace-5.9.0.tar.xz -> plasma-workspace-5.9.1.tar.xz ++++++ /work/SRC/openSUSE:Factory/plasma5-workspace/plasma-workspace-5.9.0.tar.xz /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma-workspace-5.9.1.tar.xz differ: char 27, line 1
