From 07f420d1df7ea7e6e966341bbd88a8fdf6e6e37dc2cd016f1043b42e068a0a29 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Tue, 10 Jan 2017 20:43:13 +0000 Subject: [PATCH 1/7] - Add experimental patch to fix some dangling duplicate containments in the -appletsrc: * 0001-better-clean-up-of-duplicate-containments.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=283 --- ...r-clean-up-of-duplicate-containments.patch | 74 +++++++++++++++++++ plasma5-workspace.changes | 7 ++ plasma5-workspace.spec | 5 +- 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 0001-better-clean-up-of-duplicate-containments.patch diff --git a/0001-better-clean-up-of-duplicate-containments.patch b/0001-better-clean-up-of-duplicate-containments.patch new file mode 100644 index 0000000..e066b26 --- /dev/null +++ b/0001-better-clean-up-of-duplicate-containments.patch @@ -0,0 +1,74 @@ +From b3e531cf5930e33bad023ef13c1d4bf3079eca4e Mon Sep 17 00:00:00 2001 +From: Marco Martin +Date: Tue, 10 Jan 2017 15:27:14 +0100 +Subject: [PATCH] better clean up of duplicate containments + +Summary: +due to old multiscreen bugs, sometimes the appletsrc file +gets polluted with a lot of containments with same activity id +and lastScreen, in some cases even hundreds +(see https://bugs.kde.org/show_bug.cgi?id=371858) +in that case we can't be 100% sure what containment will be loaded +at startup, leading to an herratical behavior. +it was trying to clean up duplicates but wasn't really effective +now base upon lastScreen (so we catch other activities as well) +and manually remove the destroyed containment from +m_desktopContainments (which may sole some multiscreen +related bug, such as 371991) + +BUG:371858 +CCBUG:371991 + +Test Plan: +started a session with the corrupted appletsrc from the bugreport, +file gets cleaned out of duplicates + +Reviewers: davidedmundson, #plasma + +Reviewed By: davidedmundson, #plasma + +Subscribers: davidedmundson, plasma-devel + +Tags: #plasma + +Differential Revision: https://phabricator.kde.org/D3981 +--- + shell/shellcorona.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp +index 4e7dd3e3..e53dd4db 100644 +--- a/shell/shellcorona.cpp ++++ b/shell/shellcorona.cpp +@@ -1909,7 +1909,8 @@ void ShellCorona::insertContainment(const QString &activity, int screenNum, Plas + { + Plasma::Containment *cont = nullptr; + for (Plasma::Containment *c : m_desktopContainments.value(activity)) { +- if (c->screen() == screenNum) { ++ //using lastScreen() instead of screen() catches also containments of activities that aren't the current one, so not assigned to a screen right now ++ if (c->lastScreen() == screenNum) { + cont = c; + if (containment == cont) { + return; +@@ -1921,8 +1922,6 @@ void ShellCorona::insertContainment(const QString &activity, int screenNum, Plas + Q_ASSERT(!m_desktopContainments.value(activity).values().contains(containment)); + + if (cont) { +- disconnect(cont, SIGNAL(destroyed(QObject*)), +- this, SLOT(desktopContainmentDestroyed(QObject*))); + cont->destroy(); + } + m_desktopContainments[activity].insert(containment); +@@ -1937,7 +1936,8 @@ void ShellCorona::desktopContainmentDestroyed(QObject *obj) + // members of Containment are not accessible anymore, + // so keep ugly bookeeping by hand + auto containment = static_cast(obj); +- for (auto a : m_desktopContainments) { ++ //explicitly specify the range by reference, as we need to remove stuff from the sets ++ for (QSet &a : m_desktopContainments) { + QMutableSetIterator it(a); + while (it.hasNext()) { + it.next(); +-- +2.11.0 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index 112a8f4..b3f822c 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Jan 10 20:42:09 UTC 2017 - fabian@ritter-vogt.de + +- Add experimental patch to fix some dangling duplicate + containments in the -appletsrc: + * 0001-better-clean-up-of-duplicate-containments.patch + ------------------------------------------------------------------- Tue Dec 27 18:31:45 UTC 2016 - fabian@ritter-vogt.de diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 7271044..1c63198 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -1,7 +1,7 @@ # # spec file for package plasma5-workspace # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -41,6 +41,8 @@ Patch2: 0001-Ignore-default-sddm-face-icons.patch # PATCH-FIX-OPENSUSE add-tray-icon-cache.patch kde#356479 fabian@ritter-vogt.de -- Workaround for high load due to animated tray icons Patch3: add-tray-icon-cache.patch # PATCHES 100-200 and above are from upstream 5.8 branch +# PATCH-FIX-UPSTREAM 0001-better-clean-up-of-duplicate-containments.patch kde#371858 notmart@gmail.com -- better clean up of duplicate containments +Patch100: 0001-better-clean-up-of-duplicate-containments.patch # PATCHES 201-300 and above are from upstream master/5.9 branch BuildRequires: breeze5-icons BuildRequires: fdupes @@ -211,6 +213,7 @@ workspace. Development files. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch100 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} From ac2103e7f4e54901c5659fca600d5cb2aeec8b68387583702ceeb1dd57c9dae1 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 13 Jan 2017 16:51:22 +0000 Subject: [PATCH 2/7] Accepting request 450080 from home:Vogtinator:plasma59 Update to Plasma 5.9 Beta OBS-URL: https://build.opensuse.org/request/show/450080 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=284 --- 0001-Rename-qdbus-in-startkde.patch | 52 ++++++------- ...r-clean-up-of-duplicate-containments.patch | 74 ------------------- add-tray-icon-cache.patch | 36 --------- change-kioremote-severity.patch | 5 +- plasma-workspace-5.8.5.tar.xz | 3 - plasma-workspace-5.8.95.tar.xz | 3 + plasma5-workspace.changes | 18 +++++ plasma5-workspace.spec | 22 +++--- 8 files changed, 58 insertions(+), 155 deletions(-) delete mode 100644 0001-better-clean-up-of-duplicate-containments.patch delete mode 100644 add-tray-icon-cache.patch delete mode 100644 plasma-workspace-5.8.5.tar.xz create mode 100644 plasma-workspace-5.8.95.tar.xz diff --git a/0001-Rename-qdbus-in-startkde.patch b/0001-Rename-qdbus-in-startkde.patch index 78965ec..6042a5f 100644 --- a/0001-Rename-qdbus-in-startkde.patch +++ b/0001-Rename-qdbus-in-startkde.patch @@ -1,34 +1,30 @@ diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake -index 91c8a3c..0c658bd 100644 +index b7af60b..7ae5f1d 100644 --- a/startkde/startkde.cmake +++ b/startkde/startkde.cmake -@@ -20,14 +20,14 @@ unset DYLD_FORCE_FLAT_NAMESPACE - # in case we have been started with full pathname spec without being in PATH - bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'` - if [ -n "$bindir" ]; then -- qbindir=`qtpaths --binaries-dir` -- qdbus=$qbindir/qdbus -+ qbindir=`/usr/bin/qtpaths --binaries-dir` -+ qdbus=$qbindir/qdbus-qt5 - case $PATH in - $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;; - *) PATH=$bindir:$PATH; export PATH;; - esac - else -- qdbus=qdbus -+ qdbus=qdbus-qt5 +@@ -292,7 +292,7 @@ if test $? -ne 0; then + exit 1 fi - # Check if a KDE session already is running and whether it's possible to connect to X -@@ -291,9 +291,9 @@ export XDG_DATA_DIRS - if $qdbus >/dev/null 2>/dev/null; then - : # ok - else -- echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 -+ echo 'startkde: Could not start D-Bus. Can you call qdbus-qt5?' 1>&2 - test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -- xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" -+ xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus-qt5?" - exit 1 - fi +-qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit & ++qdbus-qt5 org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit & + # finally, give the session control to the session manager + # see kdebase/ksmserver for the description of the rest of the startup sequence +@@ -325,13 +325,13 @@ if test x"$wait_drkonqi"x = x"true"x ; then + # wait for remaining drkonqi instances with timeout (in seconds) + wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` + wait_drkonqi_counter=0 +- while qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do ++ while qdbus-qt5 | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do + sleep 5 + wait_drkonqi_counter=$((wait_drkonqi_counter+5)) + if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then + # ask remaining drkonqis to die in a graceful way +- qdbus | grep 'org.kde.drkonqi-' | while read address ; do +- qdbus "$address" "/MainApplication" "quit" ++ qdbus-qt5 | grep 'org.kde.drkonqi-' | while read address ; do ++ qdbus-qt5 "$address" "/MainApplication" "quit" + done + break + fi diff --git a/0001-better-clean-up-of-duplicate-containments.patch b/0001-better-clean-up-of-duplicate-containments.patch deleted file mode 100644 index e066b26..0000000 --- a/0001-better-clean-up-of-duplicate-containments.patch +++ /dev/null @@ -1,74 +0,0 @@ -From b3e531cf5930e33bad023ef13c1d4bf3079eca4e Mon Sep 17 00:00:00 2001 -From: Marco Martin -Date: Tue, 10 Jan 2017 15:27:14 +0100 -Subject: [PATCH] better clean up of duplicate containments - -Summary: -due to old multiscreen bugs, sometimes the appletsrc file -gets polluted with a lot of containments with same activity id -and lastScreen, in some cases even hundreds -(see https://bugs.kde.org/show_bug.cgi?id=371858) -in that case we can't be 100% sure what containment will be loaded -at startup, leading to an herratical behavior. -it was trying to clean up duplicates but wasn't really effective -now base upon lastScreen (so we catch other activities as well) -and manually remove the destroyed containment from -m_desktopContainments (which may sole some multiscreen -related bug, such as 371991) - -BUG:371858 -CCBUG:371991 - -Test Plan: -started a session with the corrupted appletsrc from the bugreport, -file gets cleaned out of duplicates - -Reviewers: davidedmundson, #plasma - -Reviewed By: davidedmundson, #plasma - -Subscribers: davidedmundson, plasma-devel - -Tags: #plasma - -Differential Revision: https://phabricator.kde.org/D3981 ---- - shell/shellcorona.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp -index 4e7dd3e3..e53dd4db 100644 ---- a/shell/shellcorona.cpp -+++ b/shell/shellcorona.cpp -@@ -1909,7 +1909,8 @@ void ShellCorona::insertContainment(const QString &activity, int screenNum, Plas - { - Plasma::Containment *cont = nullptr; - for (Plasma::Containment *c : m_desktopContainments.value(activity)) { -- if (c->screen() == screenNum) { -+ //using lastScreen() instead of screen() catches also containments of activities that aren't the current one, so not assigned to a screen right now -+ if (c->lastScreen() == screenNum) { - cont = c; - if (containment == cont) { - return; -@@ -1921,8 +1922,6 @@ void ShellCorona::insertContainment(const QString &activity, int screenNum, Plas - Q_ASSERT(!m_desktopContainments.value(activity).values().contains(containment)); - - if (cont) { -- disconnect(cont, SIGNAL(destroyed(QObject*)), -- this, SLOT(desktopContainmentDestroyed(QObject*))); - cont->destroy(); - } - m_desktopContainments[activity].insert(containment); -@@ -1937,7 +1936,8 @@ void ShellCorona::desktopContainmentDestroyed(QObject *obj) - // members of Containment are not accessible anymore, - // so keep ugly bookeeping by hand - auto containment = static_cast(obj); -- for (auto a : m_desktopContainments) { -+ //explicitly specify the range by reference, as we need to remove stuff from the sets -+ for (QSet &a : m_desktopContainments) { - QMutableSetIterator it(a); - while (it.hasNext()) { - it.next(); --- -2.11.0 - diff --git a/add-tray-icon-cache.patch b/add-tray-icon-cache.patch deleted file mode 100644 index db11ffa..0000000 --- a/add-tray-icon-cache.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Fabian Vogt -Subject: Workaround for high load due to animated tray icons -References: kde#356479 - -When a tray icon name changes, it always does a full lookup, which is expensive. -Add a small QHash as cache to work around this. - -diff --git a/applets/systemtray/systemtray.cpp b/applets/systemtray/systemtray.cpp -index 66bb5b4..f440ff0 100644 ---- a/applets/systemtray/systemtray.cpp -+++ b/applets/systemtray/systemtray.cpp -@@ -127,8 +127,13 @@ void SystemTray::cleanupTask(const QString &task) - - QVariant SystemTray::resolveIcon(const QVariant &variant, const QString &iconThemePath) - { -+ static QHash cache; - if (variant.canConvert()) { - if (!iconThemePath.isEmpty()) { -+ auto i = cache.find(variant.toString() + iconThemePath); -+ if(i != cache.end()) -+ return i.value(); -+ qCWarning(SYSTEM_TRAY) << "Cache not hit" << iconThemePath; - const QString path = iconThemePath; - if (!path.isEmpty()) { - // FIXME: If last part of path is not "icons", this won't work! -@@ -136,7 +141,9 @@ QVariant SystemTray::resolveIcon(const QVariant &variant, const QString &iconThe - if (tokens.length() >= 3 && tokens.takeLast() == QLatin1String("icons")) { - const QString appName = tokens.takeLast().toString(); - -- return QVariant(QIcon(new AppIconEngine(variant.toString(), path, appName))); -+ auto v = QVariant(QIcon(new AppIconEngine(variant.toString(), path, appName))); -+ cache.insert(variant.toString() + iconThemePath, v); -+ return v; - } else { - qCWarning(SYSTEM_TRAY) << "Wrong IconThemePath" << path << ": too short or does not end with 'icons'"; - } diff --git a/change-kioremote-severity.patch b/change-kioremote-severity.patch index dc91008..9fd4d55 100644 --- a/change-kioremote-severity.patch +++ b/change-kioremote-severity.patch @@ -13,7 +13,7 @@ Index: plasma-workspace-5.7.95/kioslave/remote/CMakeLists.txt =================================================================== --- plasma-workspace-5.7.95.orig/kioslave/remote/CMakeLists.txt +++ plasma-workspace-5.7.95/kioslave/remote/CMakeLists.txt -@@ -11,7 +11,7 @@ set(kio_remote_SRCS +@@ -10,7 +10,7 @@ set(kio_remote_SRCS ecm_qt_declare_logging_category(kio_remote_SRCS HEADER debug.h IDENTIFIER KIOREMOTE_LOG CATEGORY_NAME log_kioremote @@ -21,4 +21,5 @@ Index: plasma-workspace-5.7.95/kioslave/remote/CMakeLists.txt + DEFAULT_SEVERITY Debug) add_library(kio_remote MODULE ${kio_remote_SRCS}) - target_link_libraries(kio_remote KF5::KIOCore KF5::KDELibs4Support) + target_link_libraries(kio_remote KF5::KIOCore KF5::I18n) + diff --git a/plasma-workspace-5.8.5.tar.xz b/plasma-workspace-5.8.5.tar.xz deleted file mode 100644 index 45c8c56..0000000 --- a/plasma-workspace-5.8.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d25077205436e3e721d7dfa4dffce7aea62a6e652ee7897952885e52b2f6ea1 -size 6989928 diff --git a/plasma-workspace-5.8.95.tar.xz b/plasma-workspace-5.8.95.tar.xz new file mode 100644 index 0000000..3c568dc --- /dev/null +++ b/plasma-workspace-5.8.95.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c42f9e353f3a90e632452f38afb653e0c9c485974542347ff9d10b0c85d45a58 +size 6931196 diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index b3f822c..073ad87 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Jan 12 20:39:58 UTC 2017 - fabian@ritter-vogt.de + +- Update to 5.8.95 (Plasma 5.9 Beta) + * New feature release + * For more details please see: + https://www.kde.org/announcements/plasma-5.8.95.php +- Changes: + * See https://www.kde.org/announcements/plasma-5.8.5-5.8.95-changelog.php#plasma-workspace +- Remove patches, now upstream: + * 0001-better-clean-up-of-duplicate-containments.patch + ------------------------------------------------------------------- Tue Jan 10 20:42:09 UTC 2017 - fabian@ritter-vogt.de @@ -5,6 +17,12 @@ Tue Jan 10 20:42:09 UTC 2017 - fabian@ritter-vogt.de containments in the -appletsrc: * 0001-better-clean-up-of-duplicate-containments.patch +------------------------------------------------------------------- +Thu Dec 29 11:41:27 UTC 2016 - tittiatcoke@gmail.com + +- Require also the main package from the devel package. This is + required to get the required layouts for the servicetypes. + ------------------------------------------------------------------- Tue Dec 27 18:31:45 UTC 2016 - fabian@ritter-vogt.de diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 1c63198..9ced6f5 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -20,17 +20,17 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.8.5 +Version: 5.8.95 Release: 0 -# Full Plasma 5 version (e.g. 5.8.5) +# Full Plasma 5 version (e.g. 5.8.95) %{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}} -# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.8.90 in KUF) +# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.8.95 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: http://download.kde.org/stable/plasma/%{version}/plasma-workspace-%{version}.tar.xz +Source: http://download.kde.org/unstable/plasma/%{version}/plasma-workspace-%{version}.tar.xz Source1: baselibs.conf # PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch cgiboudeaux@gmx.com -- Rename the qdbus executable in startkde Patch0: 0001-Rename-qdbus-in-startkde.patch @@ -38,12 +38,8 @@ Patch0: 0001-Rename-qdbus-in-startkde.patch Patch1: change-kioremote-severity.patch # PATCH-FIX-OPENSUSE 0001-Ignore-default-sddm-face-icons.patch boo#1001364 fabian@ritter-vogt.de -- Ignore default sddm face icons Patch2: 0001-Ignore-default-sddm-face-icons.patch -# PATCH-FIX-OPENSUSE add-tray-icon-cache.patch kde#356479 fabian@ritter-vogt.de -- Workaround for high load due to animated tray icons -Patch3: add-tray-icon-cache.patch -# PATCHES 100-200 and above are from upstream 5.8 branch -# PATCH-FIX-UPSTREAM 0001-better-clean-up-of-duplicate-containments.patch kde#371858 notmart@gmail.com -- better clean up of duplicate containments -Patch100: 0001-better-clean-up-of-duplicate-containments.patch -# PATCHES 201-300 and above are from upstream master/5.9 branch +# PATCHES 100-200 and above are from upstream 5.9 branch +# PATCHES 201-300 and above are from upstream master/5.10 branch BuildRequires: breeze5-icons BuildRequires: fdupes BuildRequires: kf5-filesystem @@ -190,6 +186,7 @@ workspace. %package devel Summary: The KDE Plasma Workspace Components Group: Development/Libraries/KDE +Requires: %{name} >= %{version} Requires: %{name}-libs = %{version}-%{release} Requires: cmake(KF5SysGuard) >= %{_plasma5_version} Requires: cmake(KF5Wayland) >= %{kf5_version} @@ -212,8 +209,6 @@ workspace. Development files. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch100 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} @@ -282,11 +277,13 @@ workspace. Development files. %{_kf5_libdir}/libexec/ksyncdbusenv %{_kf5_libdir}/libexec/startplasma %{_kf5_libdir}/libexec/ksmserver-logout-greeter +%{_kf5_libdir}/libexec/ksmserver-switchuser-greeter %{_kf5_libdir}/libkdeinit5_kcminit.so %{_kf5_libdir}/libkdeinit5_kcminit_startup.so %{_kf5_libdir}/libkdeinit5_klipper.so %{_kf5_libdir}/libkdeinit5_ksmserver.so %{_kf5_libdir}/libkdeinit5_kuiserver5.so +%{_kf5_libdir}/kconf_update_bin/krunnerplugins %{_kf5_plugindir}/ %{_kf5_qmldir}/ %{_kf5_applicationsdir}/org.kde.klipper.desktop @@ -295,6 +292,7 @@ workspace. Development files. %{_kf5_sharedir}/dbus-1/services/kf5_org.kde.kuiserver.service %{_kf5_sharedir}/dbus-1/services/org.kde.krunner.service %{_kf5_sharedir}/desktop-directories/ +%{_kf5_sharedir}/kconf_update/ %dir %{_kf5_htmldir} %dir %lang(en) %{_kf5_htmldir}/en %doc %lang(en) %{_kf5_htmldir}/en/klipper/ From 0b82dde4c036073718d7a4a8d0bd7464edd0ed64b81c5d280b31baee931b5b95 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sat, 14 Jan 2017 13:21:57 +0000 Subject: [PATCH 3/7] - Workaround made unnecessary by upstream commits: * add-tray-icon-cache.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=285 --- plasma5-workspace.changes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index 073ad87..fad7103 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -9,6 +9,8 @@ Thu Jan 12 20:39:58 UTC 2017 - fabian@ritter-vogt.de * See https://www.kde.org/announcements/plasma-5.8.5-5.8.95-changelog.php#plasma-workspace - Remove patches, now upstream: * 0001-better-clean-up-of-duplicate-containments.patch +- Workaround made unnecessary by upstream commits: + * add-tray-icon-cache.patch ------------------------------------------------------------------- Tue Jan 10 20:42:09 UTC 2017 - fabian@ritter-vogt.de From ae86c34a19579d88ed0a6fc297764736d0786051cb23d149b26360275ef5c0d9 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 27 Jan 2017 23:46:08 +0000 Subject: [PATCH 4/7] Update to 5.9.0 tars OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=286 --- ...llpapers-save-the-config-to-file-not.patch | 59 +++++++++++++++++++ plasma-workspace-5.8.95.tar.xz | 3 - plasma-workspace-5.9.0.tar.xz | 3 + plasma5-workspace.changes | 38 ++++++++++++ plasma5-workspace.spec | 11 ++-- 5 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch delete mode 100644 plasma-workspace-5.8.95.tar.xz create mode 100644 plasma-workspace-5.9.0.tar.xz diff --git a/0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch b/0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch new file mode 100644 index 0000000..1bd03ec --- /dev/null +++ b/0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch @@ -0,0 +1,59 @@ +From a9f5ada73bf86a145e057eff188f45dfdf61917a Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Thu, 26 Jan 2017 16:17:51 +0000 +Subject: [PATCH] When swapping Wallpapers, save the config to file, not just + to propertymap + +Summary: +ContainmentConfigView has a special code path for wallpaper configs +where, if you change wallpaper type, it will create a temporary config +ConfigPropertyMap, then copy it over to the real config when the +containment actually changes. + +ConfigPropertyMap does not call valueChanged() on insertion (See +QQmlPropertyMap), and we only write the value into the actual +KConfigSkeleton on valueChange. + +BUG: 375532 + +Test Plan: +Start plasma with image wallpaper +Set to colour wallpaper and save colour +Hit apply + +Close plasma +Start plasma + +Before the correct colour wouldn't be loaded. Now it is. + +Reviewers: #plasma, mart + +Reviewed By: mart + +Subscribers: plasma-devel + +Tags: #plasma + +Differential Revision: https://phabricator.kde.org/D4285 +--- + shell/containmentconfigview.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/shell/containmentconfigview.cpp b/shell/containmentconfigview.cpp +index 269ae2b3..4d107bec 100644 +--- a/shell/containmentconfigview.cpp ++++ b/shell/containmentconfigview.cpp +@@ -220,7 +220,9 @@ void ContainmentConfigView::applyWallpaper() + + if (m_currentWallpaperConfig && m_ownWallpaperConfig) { + for (const auto &key : m_ownWallpaperConfig->keys()) { +- m_currentWallpaperConfig->insert(key, m_ownWallpaperConfig->value(key)); ++ auto value = m_ownWallpaperConfig->value(key); ++ m_currentWallpaperConfig->insert(key, value); ++ m_currentWallpaperConfig->valueChanged(key, value); + } + } + +-- +2.11.0 + diff --git a/plasma-workspace-5.8.95.tar.xz b/plasma-workspace-5.8.95.tar.xz deleted file mode 100644 index 3c568dc..0000000 --- a/plasma-workspace-5.8.95.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c42f9e353f3a90e632452f38afb653e0c9c485974542347ff9d10b0c85d45a58 -size 6931196 diff --git a/plasma-workspace-5.9.0.tar.xz b/plasma-workspace-5.9.0.tar.xz new file mode 100644 index 0000000..c12dcd5 --- /dev/null +++ b/plasma-workspace-5.9.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f210bf40c88208802b29ec1660efffe347a55b85e5f2e18ee9f475717ac2d3 +size 6934620 diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index fad7103..af82c73 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,41 @@ +------------------------------------------------------------------- +Thu Jan 26 19:59:03 CET 2017 - fabian@ritter-vogt.de + +- Update to 5.9.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/plasma-5.9.0.php +- Add upstream patch to fix kde#375532: + * 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch +- Changes since 5.8.95: + * [Icon Applet] Use KIO::statJob to work with remote URLs + * Fix group parents not appearing when disabling inline grouping. + * [Image Wallpaper] Provide fallback for thumbnail size of no "plasmoid" around + * only reset the model after componentComplete() + * [lookandfeel] Breeze window decoration + * Fix "Unpin" for tasks pinned to specific activities. + * applets/icon: Set i18n domain (patch by Victor) + * use Q_FOREACH in this branch + * Corona::screenGeometryChanged on qscreen resized + * add #include for old Qt versions + * Replace std::bind with lambda. + * try to put annotations before parameters definition + * fix dbus xml compilation + * guard against menu being deleted whilst updating + * Hide menu if the menu disappears off DBus + * Don't re-evaluate the model constantly whilst looping through windows + * Generate DBusMenu Interface for libdbusmenuqt + * pre-load the first layer of sub menus + * Signal which menu has updated in libdbusmenu-qt + * Don't hide applet when it needs configuring + * Don't load menu when switching window focus to the desktop + * Keep AppletMenu as small as possible + * Fix calling KWindowSystem::windowType without fetching the type + * Enable Edit Action in plasmoid mode + * Fix mapToGlobal + * Show "All Widgets" even when showSpecialFilters=false. + * [Icon Applet] Rename open() to run() to fix compilation on 32-bit + ------------------------------------------------------------------- Thu Jan 12 20:39:58 UTC 2017 - fabian@ritter-vogt.de diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 9ced6f5..0824340 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -20,17 +20,17 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.8.95 +Version: 5.9.0 Release: 0 -# Full Plasma 5 version (e.g. 5.8.95) +# Full Plasma 5 version (e.g. 5.9.0) %{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}} -# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.8.95 in KUF) +# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.9.0 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: http://download.kde.org/unstable/plasma/%{version}/plasma-workspace-%{version}.tar.xz +Source: plasma-workspace-%{version}.tar.xz Source1: baselibs.conf # PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch cgiboudeaux@gmx.com -- Rename the qdbus executable in startkde Patch0: 0001-Rename-qdbus-in-startkde.patch @@ -39,6 +39,8 @@ Patch1: change-kioremote-severity.patch # PATCH-FIX-OPENSUSE 0001-Ignore-default-sddm-face-icons.patch boo#1001364 fabian@ritter-vogt.de -- 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 kde@davidedmundson.co.uk -- When swapping Wallpapers, save the config to file +Patch100: 0001-When-swapping-Wallpapers-save-the-config-to-file-not.patch # PATCHES 201-300 and above are from upstream master/5.10 branch BuildRequires: breeze5-icons BuildRequires: fdupes @@ -209,6 +211,7 @@ workspace. Development files. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch100 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} From cdf42379ac5d206530f77400d487c6e6e15cf3eabd5cabb173a44193b6336365 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sat, 28 Jan 2017 09:47:00 +0000 Subject: [PATCH 5/7] - Bump required KF5 version to 5.29 - Add upstream patch to fix some multiscreen issues: * 0002-fix-isOutputRedundant-logic.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=287 --- 0002-fix-isOutputRedundant-logic.patch | 99 ++++++++++++++++++++++++++ plasma5-workspace.changes | 7 ++ plasma5-workspace.spec | 5 +- 3 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 0002-fix-isOutputRedundant-logic.patch diff --git a/0002-fix-isOutputRedundant-logic.patch b/0002-fix-isOutputRedundant-logic.patch new file mode 100644 index 0000000..3582ad3 --- /dev/null +++ b/0002-fix-isOutputRedundant-logic.patch @@ -0,0 +1,99 @@ +From f4faa6f1547c4994893ac5f7a5c251f2846368f0 Mon Sep 17 00:00:00 2001 +From: Marco Martin +Date: Fri, 27 Jan 2017 16:11:37 +0100 +Subject: [PATCH 2/2] fix isOutputRedundant logic + +Summary: +isOutputRedundant badly failed when two screens had +the exact same geometry (that should be, the base +case for "cloning" screens. +now the logic is: +a screen is redundant if: +* its geometry is contained in another one +* if their resolutions are different, the "biggest" one wins +* if they have the same geometry, the one with the lowest id wins (arbitrary, but gives reproducible behavior and makes the primary +BUG:375507 + +Test Plan: +tested with two screens: +* overlapping, same resolution: the lowest id (0, the primary) wins, the other one doesn't get a view +* overlapping, different resolutions: the biggest one wins +* not overlapping: both get a view + +Reviewers: sebas, #plasma, davidedmundson + +Reviewed By: #plasma, davidedmundson + +Subscribers: davidedmundson, plasma-devel + +Tags: #plasma + +Differential Revision: https://phabricator.kde.org/D4309 +--- + shell/shellcorona.cpp | 35 ++++++++++++++++++++++++++++++----- + 1 file changed, 30 insertions(+), 5 deletions(-) + +diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp +index e7060961..25bec235 100644 +--- a/shell/shellcorona.cpp ++++ b/shell/shellcorona.cpp +@@ -717,6 +717,11 @@ void ShellCorona::primaryOutputChanged() + return; + } + ++ //Since the primary screen is considered more important ++ //then the others, having the primary changed may have changed what outputs are redundant and what are not ++ //TODO: for a particular corner case, in which in the same moment the primary screen changes *and* geometries change to make former redundant screens to not be anymore, instead of doinf reconsiderOutputs() here, it may be better to instead put here the adding of new outputs and after the switch dance has been done, at the bottom of this function remove the eventual redundant ones ++ reconsiderOutputs(); ++ + QScreen *oldPrimary = m_desktopViewforId.value(0)->screen(); + QScreen *newPrimary = qGuiApp->primaryScreen(); + if (!newPrimary || newPrimary == oldPrimary) { +@@ -1100,19 +1105,39 @@ void ShellCorona::screenRemoved(QScreen* screen) + bool ShellCorona::isOutputRedundant(QScreen* screen) const + { + Q_ASSERT(screen); +- const QRect geometry = screen->geometry(); ++ const QRect thisGeometry = screen->geometry(); ++ ++ const int thisId = m_screenPool->id(screen->name()); + + //FIXME: QScreen doesn't have any idea of "this qscreen is clone of this other one + //so this ultra inefficient heuristic has to stay until we have a slightly better api ++ //logic is: ++ //a screen is redundant if: ++ //* its geometry is contained in another one ++ //* if their resolutions are different, the "biggest" one wins ++ //* if they have the same geometry, the one with the lowest id wins (arbitrary, but gives reproducible behavior and makes the primary screen win) + foreach (QScreen* s, qGuiApp->screens()) { ++ //don't compare with itself + if (screen == s) { + continue; + } + +- const QRect sGeometry = s->geometry(); +- if (sGeometry.contains(geometry, false) && +- sGeometry.width() > geometry.width() && +- sGeometry.height() > geometry.height()) { ++ const QRect otherGeometry = s->geometry(); ++ ++ const int otherId = m_screenPool->id(s->name()); ++ ++ if (otherGeometry.contains(thisGeometry, false) && ++ (//since at this point contains is true, if either ++ //measure of othergeometry is bigger, has a bigger area ++ otherGeometry.width() > thisGeometry.width() || ++ otherGeometry.height() > thisGeometry.height() || ++ //ids not -1 are considered in descending order of importance ++ //-1 means that is a screen not known yet, just arrived and ++ //not yet in screenpool: this happens for screens that ++ //are hotplugged and weren't known. it does NOT happen ++ //at first startup, as screenpool populates on load with all screens connected at the moment before the rest of the shell starts up ++ (thisId == -1 && otherId != -1) || ++ (thisId > otherId && otherId != -1))) { + return true; + } + } +-- +2.11.0 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index af82c73..0409792 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sat Jan 28 09:44:48 UTC 2017 - fabian@ritter-vogt.de + +- Bump required KF5 version to 5.29 +- Add upstream patch to fix some multiscreen issues: + * 0002-fix-isOutputRedundant-logic.patch + ------------------------------------------------------------------- Thu Jan 26 19:59:03 CET 2017 - fabian@ritter-vogt.de diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 0824340..8220d3d 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -16,7 +16,7 @@ # -%define kf5_version 5.26.0 +%define kf5_version 5.29.0 %bcond_without lang Name: plasma5-workspace @@ -41,6 +41,8 @@ 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 kde@davidedmundson.co.uk -- 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 notmart@gmail.com -- fix isOutputRedundant logic +Patch101: 0002-fix-isOutputRedundant-logic.patch # PATCHES 201-300 and above are from upstream master/5.10 branch BuildRequires: breeze5-icons BuildRequires: fdupes @@ -212,6 +214,7 @@ workspace. Development files. %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} From 0fd2bd9e6319802a24caa2c5ffc8c05bad87b1a9f42b451258312bfeed00f0ad Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sat, 28 Jan 2017 16:09:53 +0000 Subject: [PATCH 6/7] Accepting request 453172 from home:wolfi323:test - Add cmake(KF5Prison) build requirement to enable the clipboard's barcode generation feature Prison is part of KDE Frameworks since 5.29, and it's also in Tumbleweed since a few days. OBS-URL: https://build.opensuse.org/request/show/453172 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=288 --- plasma5-workspace.changes | 6 ++++++ plasma5-workspace.spec | 1 + 2 files changed, 7 insertions(+) diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index 0409792..d5c7218 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Jan 28 15:47:20 UTC 2017 - wbauer@tmo.at + +- Add cmake(KF5Prison) build requirement to enable the clipboard's + barcode generation feature + ------------------------------------------------------------------- Sat Jan 28 09:44:48 UTC 2017 - fabian@ritter-vogt.de diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 8220d3d..ea33efc 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -69,6 +69,7 @@ BuildRequires: cmake(KF5NotifyConfig) >= %{kf5_version} BuildRequires: cmake(KF5Package) >= %{kf5_version} BuildRequires: cmake(KF5Plasma) >= %{kf5_version} BuildRequires: cmake(KF5PlasmaQuick) +BuildRequires: cmake(KF5Prison) BuildRequires: cmake(KF5Runner) >= %{kf5_version} BuildRequires: cmake(KF5Screen) >= 5.0.93 BuildRequires: cmake(KF5Solid) >= %{kf5_version} From d697ee46e2faf489f37d4de1f64ec6740c45f9f916e5c908d9d94ef5f96a6d52 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sat, 28 Jan 2017 16:11:00 +0000 Subject: [PATCH 7/7] Add version to prison requirement OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=289 --- plasma5-workspace.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index ea33efc..c2fa7b4 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -69,7 +69,7 @@ BuildRequires: cmake(KF5NotifyConfig) >= %{kf5_version} BuildRequires: cmake(KF5Package) >= %{kf5_version} BuildRequires: cmake(KF5Plasma) >= %{kf5_version} BuildRequires: cmake(KF5PlasmaQuick) -BuildRequires: cmake(KF5Prison) +BuildRequires: cmake(KF5Prison) >= %{kf5_version} BuildRequires: cmake(KF5Runner) >= %{kf5_version} BuildRequires: cmake(KF5Screen) >= 5.0.93 BuildRequires: cmake(KF5Solid) >= %{kf5_version}