--- /dev/null
+From 89b244a1ff72925805da6e5f44979ad4cb647468 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ivan=20=C4=8Cuki=C4=87?= <ivan.cukic@kde.org>
+Date: Mon, 22 May 2017 10:08:16 +0200
+Subject: We should not forget the launchers that are not currently shown
+
+Summary:
+The pinned launchers that are assigned to other activities
+will have a -1 as the order. We should not forget them
+when saving to the configuration file.
+
+Reviewers: hein, mart
+
+Reviewed By: hein
+
+Subscribers: plasma-devel
+
+Tags: #plasma
+
+Differential Revision: https://phabricator.kde.org/D5933
+---
+ libtaskmanager/tasksmodel.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/libtaskmanager/tasksmodel.cpp b/libtaskmanager/tasksmodel.cpp
+index 19f1bca..0150761 100644
+--- a/libtaskmanager/tasksmodel.cpp
++++ b/libtaskmanager/tasksmodel.cpp
+@@ -1545,6 +1545,7 @@ void TasksModel::syncLaunchers()
+ }
+
+ QMap<int, QString> sortedShownLaunchers;
++ QStringList sortedHiddenLaunchers;
+
+ foreach(const QString &launcherUrlStr, launcherList()) {
+ int row = -1;
+@@ -1564,6 +1565,8 @@ void TasksModel::syncLaunchers()
+
+ if (row != -1) {
+ sortedShownLaunchers.insert(row, launcherUrlStr);
++ } else {
++ sortedHiddenLaunchers << launcherUrlStr;
+ }
+ }
+
+@@ -1588,7 +1591,8 @@ void TasksModel::syncLaunchers()
+ d->sortedPreFilterRows.replace(sortMapIndices.at(i), preFilterRows.at(i));
+ }
+ }
+- setLauncherList(sortedShownLaunchers.values());
++
++ setLauncherList(sortedShownLaunchers.values() + sortedHiddenLaunchers);
+ d->launcherSortingDirty = false;
+ }
+
+--
+cgit v0.11.2
--- /dev/null
+From d602198f6807bbfa175b6aaaa1bdf1708fce703e Mon Sep 17 00:00:00 2001
+From: Marco Martin <notmart@gmail.com>
+Date: Mon, 22 May 2017 17:37:56 +0200
+Subject: don't check for panel visible during startup
+
+if any kscreen related activities occurred
+during startup, the panel wouldn't be visible
+yet, and this would assert. This often happens
+when a screen gets disabled at startup
+
+CCBUG:377280
+---
+ shell/panelview.cpp | 1 +
+ shell/shellcorona.cpp | 6 +++++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/shell/panelview.cpp b/shell/panelview.cpp
+index 70d74cb..cacf0c0 100644
+--- a/shell/panelview.cpp
++++ b/shell/panelview.cpp
+@@ -117,6 +117,7 @@ PanelView::~PanelView()
+
+ KConfigGroup PanelView::panelConfig(ShellCorona *corona, Plasma::Containment *containment, QScreen *screen)
+ {
++ qWarning()<<"AAAA"<<containment<<screen;
+ if (!containment || !screen) {
+ return KConfigGroup();
+ }
+diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp
+index e40da45..b6b5ed8 100644
+--- a/shell/shellcorona.cpp
++++ b/shell/shellcorona.cpp
+@@ -778,7 +778,11 @@ void ShellCorona::screenInvariants() const
+ foreach (const PanelView *panel, panelsForScreen(screen)) {
+ Q_ASSERT(panel->containment());
+ Q_ASSERT(panel->containment()->screen() == id || panel->containment()->screen() == -1);
+- Q_ASSERT(panel->isVisible());
++ //If any kscreen related activities occurred
++ //during startup, the panel wouldn't be visible yet, and this would assert
++ if (panel->containment()->isUiReady()) {
++ Q_ASSERT(panel->isVisible());
++ }
+ }
+
+ screens.insert(screen);
+--
+cgit v0.11.2
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_HANDBOOK="forceoptional"
+KDE_TEST="forceoptional"
+VIRTUALX_REQUIRED="test"
+inherit kde5 qmake-utils
+
+DESCRIPTION="KDE Plasma workspace"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+calendar geolocation gps prison qalculate +semantic-desktop"
+
+COMMON_DEPEND="
+ $(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 kitemmodels)
+ $(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 kwayland)
+ $(add_frameworks_dep kwidgetsaddons)
+ $(add_frameworks_dep kwindowsystem)
+ $(add_frameworks_dep kxmlgui)
+ $(add_frameworks_dep kxmlrpcclient)
+ $(add_frameworks_dep plasma)
+ $(add_frameworks_dep solid)
+ $(add_plasma_dep kscreenlocker)
+ $(add_plasma_dep kwin)
+ $(add_plasma_dep libksysguard)
+ $(add_qt_dep qtconcurrent)
+ $(add_qt_dep qtdbus)
+ $(add_qt_dep qtdeclarative 'widgets')
+ $(add_qt_dep qtgui 'jpeg')
+ $(add_qt_dep qtnetwork)
+ $(add_qt_dep qtscript)
+ $(add_qt_dep qtsql)
+ $(add_qt_dep qtwidgets)
+ $(add_qt_dep qtx11extras)
+ $(add_qt_dep qtxml)
+ media-libs/phonon[qt5]
+ sys-libs/zlib
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXfixes
+ x11-libs/libXrender
+ x11-libs/xcb-util
+ x11-libs/xcb-util-image
+ calendar? ( $(add_kdeapps_dep kholidays) )
+ geolocation? ( $(add_frameworks_dep networkmanager-qt) )
+ gps? ( sci-geosciences/gpsd )
+ prison? ( $(add_frameworks_dep prison) )
+ qalculate? ( sci-libs/libqalculate:= )
+ semantic-desktop? ( $(add_frameworks_dep baloo) )
+"
+RDEPEND="${COMMON_DEPEND}
+ $(add_frameworks_dep kded)
+ $(add_kdeapps_dep kio-extras)
+ $(add_plasma_dep kde-cli-tools)
+ $(add_plasma_dep ksysguard)
+ $(add_plasma_dep milou)
+ $(add_plasma_dep plasma-integration)
+ $(add_qt_dep qdbus)
+ $(add_qt_dep qtgraphicaleffects)
+ $(add_qt_dep qtpaths)
+ $(add_qt_dep qtquickcontrols 'widgets')
+ app-text/iso-codes
+ x11-apps/mkfontdir
+ x11-apps/xmessage
+ x11-apps/xprop
+ x11-apps/xrdb
+ x11-apps/xset
+ x11-apps/xsetroot
+ !dev-libs/xembed-sni-proxy
+ !kde-plasma/freespacenotifier:4
+ !kde-plasma/libtaskmanager:4
+ !kde-plasma/kcminit:4
+ !kde-plasma/kdebase-startkde:4
+ !kde-plasma/klipper:4
+ !kde-plasma/krunner:4
+ !kde-plasma/ksmserver:4
+ !kde-plasma/ksplash:4
+ !kde-plasma/plasma-workspace:4
+"
+DEPEND="${COMMON_DEPEND}
+ x11-proto/xproto
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.4-startkde-script.patch"
+ # Plasma/5.9 branch
+ "${FILESDIR}/${P}-startup-crash.patch" # KDE bug #377280
+ "${FILESDIR}/${P}-pinned-launchers.patch" # KDE bug #379414
+)
+
+RESTRICT+=" test"
+
+src_prepare() {
+ kde5_src_prepare
+
+ sed -e "s|\`qtpaths|\`$(qt5_get_bindir)/qtpaths|" \
+ -i startkde/startkde.cmake startkde/startplasmacompositor.cmake || die
+
+ # https://phabricator.kde.org/D4690
+ sed -e "/add_subdirectory(remote)/ s/^/#DONT/" -i kioslave/CMakeLists.txt || die
+ rm -r kioslave/remote || die
+ find po -name "kio_remote.po" -delete || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_find_package calendar KF5Holidays)
+ $(cmake-utils_use_find_package geolocation KF5NetworkManagerQt)
+ $(cmake-utils_use_find_package gps libgps)
+ $(cmake-utils_use_find_package prison KF5Prison)
+ $(cmake-utils_use_find_package qalculate Qalculate)
+ $(cmake-utils_use_find_package semantic-desktop KF5Baloo)
+ )
+
+ kde5_src_configure
+}
+
+src_install() {
+ kde5_src_install
+
+ # startup and shutdown scripts
+ insinto /etc/plasma/startup
+ doins "${FILESDIR}/10-agent-startup.sh"
+
+ insinto /etc/plasma/shutdown
+ doins "${FILESDIR}/10-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/10-agent-startup.sh and"
+ elog "${EPREFIX}/etc/plasma/shutdown/10-agent-shutdown.sh"
+ echo
+}