summaryrefslogtreecommitdiff
path: root/kde-plasma/kwin
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/kwin')
-rw-r--r--kde-plasma/kwin/Manifest14
-rw-r--r--kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch149
-rw-r--r--kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch193
-rw-r--r--kde-plasma/kwin/files/kwin-5.18.5-qt-5.15.patch39
-rw-r--r--kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch73
-rw-r--r--kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch162
-rw-r--r--kde-plasma/kwin/kwin-5.18.5-r1.ebuild117
-rw-r--r--kde-plasma/kwin/kwin-5.19.5-r1.ebuild (renamed from kde-plasma/kwin/kwin-5.19.5.ebuild)6
-rw-r--r--kde-plasma/kwin/kwin-5.20.3.ebuild (renamed from kde-plasma/kwin/kwin-5.18.5-r3.ebuild)31
-rw-r--r--kde-plasma/kwin/metadata.xml1
10 files changed, 188 insertions, 597 deletions
diff --git a/kde-plasma/kwin/Manifest b/kde-plasma/kwin/Manifest
index 637fb73d9207..0ba1b4ae7bee 100644
--- a/kde-plasma/kwin/Manifest
+++ b/kde-plasma/kwin/Manifest
@@ -1,11 +1,7 @@
AUX kwin-5.16.80-gstreamer-optional.patch 963 BLAKE2B 7a65b1e36ba1261cd97c9cca8cca39a03f932ef23780c9d5f1104bdac665744dd03878a5b7f1ccc20dccab42facb8d97474c31548b602db0debb27e5490ac76e SHA512 2b1de2ceeeed51bcc691273caea969243ef08ced929030daa94c0f19bad2fb31a507e3efbb9018833a8bd3b66850380dfbefb9018fa39e00664a1295b9482183
-AUX kwin-5.18.5-dont-exec-QDialog.patch 5916 BLAKE2B a8506ca70519c5f4a0d57ee26b76897f292d2d62cfe72b04084a8f098c543db7c431cd0d7c86a5689a064b86bda3223ea200aa803605aa6708a3bc037498ecd3 SHA512 ea9b4715ae677f22f46d0ef8661b9f8c75b27eadab928307dad0093e9f60592f9866dcb38d84794e621b3304690d5226a139d172411dd75155088701090eeba9
-AUX kwin-5.18.5-mesa-21.patch 8683 BLAKE2B 87f8ffe26103586cc9514bac2e2723b26a53296e4583ed6c38ff79cbc08ee9b51764db6ac907885498cc0f3ecc501ca96e22131955302a7e284bde8ea780df67 SHA512 5ecdf8124126cd8853b8ff13e88fabf74b2a890ee2540ba22365bb41fcc9201392b72b13b2aaf4c3b67cb54403d8a5fb0cd894ea33a7bea90a9226e40145eba0
-AUX kwin-5.18.5-qt-5.15.patch 1718 BLAKE2B 8c1f51bfe1c91c588fb44bed8840ef216c0473fc41e7c5acaf0ad6e46280f1f5c843760351bf262638732b22aefdfa78c220acd65de389a79a948f39818755d1 SHA512 1995b8ec0de12576972c6a28db32dc108bf0d2f7a5a49eff007326fcea4fb070f4cbcca0783c2bb80389f92b64d3ad295107697a9363cf19f32f70e7202c507d
-AUX kwin-5.18.5-wayland-lockscreen-greeter.patch 2254 BLAKE2B ce05dd3389e5de51ffa960215c963765170b72a439e1b9440f3614bc64fdb7949c040f686ff935b357f6a96d88aced49f5aa23a0e36b6065555bea59b3e58547 SHA512 5b72401deb460d3d09f444f1a120d5bf75c0c3ed7e75c609b57a5a46a84159ba80be8e9277b50a9c1796e46ce34712fc5bce8bb7021b9e4199d7b5a798e42efa
-DIST kwin-5.18.5.tar.xz 6274772 BLAKE2B 1614515df60667fb6e8f45302db13dc43ca896c7266c2e2846fd1a1da75b4054cbe14a27b8b3f7d71ae6398e2cf4d9e8e2a68af1c1fa6809a271c5b29574a023 SHA512 b703891824ec31e8ae29df27a11499579ab95789a838e893d5904e40aeba27b0ddc04836038d5b4c062d75ceed277d07e67eeb1b4e957ccf414f03786037d562
+AUX kwin-5.19.5-safe-removal-of-X11-event-filters.patch 5327 BLAKE2B fd2982a92f2a2bdbdb2e718fcb4e3293245470877aa3021eb0b8da66a5018e79a68bf34034689919a156e8c8de1f1686797c3e355cb96330dfcd559ab27d2e43 SHA512 ffeb77e0f718e06a605ffd82708228ab63161d449ec21067eafc9d34b119bfcb80d9bb608c1e7cacd1bda0786618c475a2cf7977b94e7475482caa281000debe
DIST kwin-5.19.5.tar.xz 6260188 BLAKE2B bcf3c8afc00af0df8cddeb49396bd23df6178e379ac4c3ba3c547a2c602d309202a72136b69b83f729434fc5691ba24699cf3f44d47b2c033623bca5d551bdb1 SHA512 97ad0096066d99b4bba3089416a6d3744b6f83d82a004caa8762b420cad34cac4221b3535678d4c6f1bcb43c4d97db56be5ac68c4ac501dc168f4472a6c0dad5
-EBUILD kwin-5.18.5-r1.ebuild 3171 BLAKE2B abf91e2d96656acb472fde3ce1ae1247d72a4720427e2faae702a41a669d0cb2dd7db9b1b12ec0b5cf34edd27b3d494c700d9faa566435f0fb9b6ee75b08e133 SHA512 ebef4cfc82c7a4318739b9eff76c5ce32f526b451a67b5e2b0f44448dc4d3dfe837d069dfcafc3ad6cc31251071a41ef4e3e3ac89d330eea04d748fb9bd7ad8c
-EBUILD kwin-5.18.5-r3.ebuild 3280 BLAKE2B 8da770a19c7b40d1899c53a25e679d24037432fe7fb193bf99dc5eab2290f198462454f154120df9cbc2f89b1e60deff6bc106b1c006e4aa8ebe1e3f344847a6 SHA512 ce9379690dd33560d7dbdc2ee7a160781330fb1724b4f9a68eacbf1d32cdbd972e7e28cb4d1f608e96a75437a2568056ed213cf30e81a11bba8199dd248983f1
-EBUILD kwin-5.19.5.ebuild 3029 BLAKE2B 2f08a8e5f8e5b448204a39e6373b973dfafc74c5229d242f36eb09c5d68f78da73e1258a451c62902fa82f9ba6c8d361a79660056dbb29259d695fdf8701eb26 SHA512 ab60f7e29a73b7d0d8c1085353ade4732b0f1b038a3b97de75d8d25b326f0b80e3a2810f6f21025a2e37026da2fc668b08752201cceba00bc76a66045560c48e
-MISC metadata.xml 347 BLAKE2B 9288920f1da9d97be4ba082678abbd6c404efdd6d7c6b997015e38e7d1f36f2b6201bda92799af0ac02287e86d2525c0a7e783e7efd305ed67ff8b96715ffe59 SHA512 e9e82ec176a53e1bea1eb323c1d1daffdcf900f1787ae76fd3de0434ffb8ac77429131ebbfc11080a1771ed03195e7d98c98be2ebf6a444de95d6cd0eb539824
+DIST kwin-5.20.3.tar.xz 6329376 BLAKE2B 11dfb77c147f9033850fa4592ec3e4baec425a32c377869c427591aae8239ce86452660063dbf1fbfa7ec311b73fcece8e2512fc8ae5bb84bcf169d5f4452965 SHA512 a156ef06fad48402a98e13dbaeeddf0f84e74b969198be631a3519fd36216968914ff4dca90e74b9d7a15b2ee7479791822006e13046e6ad4f1463faeac759e1
+EBUILD kwin-5.19.5-r1.ebuild 3116 BLAKE2B 705a3a61df8bf2b0c1e334b7aba8690ad5478f64f2956b1e3c8a863b8ac0773b95d69b75c94d23f91af0e6562f071d2a3a642257f07f041c9bf59fb58d3b8072 SHA512 ef47a3b4851d18f6dcc4615f290b98c87ce16a9655f08efc42f1f993878229f04ad7e591741baac5fb17efeceff7dae33a918115f144319b1818819db96ea67b
+EBUILD kwin-5.20.3.ebuild 3374 BLAKE2B a87ab4235bada706974757ea02be652126f9dbfc9a0bd11085d4e91046cce28ad3c1d553216d737072d335473c39ee6e5f06af81561e8abc1de981b873f3ab36 SHA512 f988521d1bec7b8cf5089fb7953ea76cb8617bd36f0450528ffcdc2b2a42b4906df728ec36682ed5c10afbf7b6b6309c0f8a4fddad6c61172c37a4a182e648d9
+MISC metadata.xml 443 BLAKE2B e972639d031b3e32681af007b9d5daa44167bdbcb9b83ff557e7bcde84b588403240021f8880eb1cc852fbae37d9e8c5ffb392fa1aff19f2075d32876f5082af SHA512 cf0743ac8f3ed8a2ec354653cfbec6bbd5ef191227e46d5d56119f7c0b3ac5a388cfef44f7ce5f2ba9079f3eee897b29b52b726f4e99ee50e29cbb584ed19b3c
diff --git a/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch b/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch
deleted file mode 100644
index df65c32fb13a..000000000000
--- a/kde-plasma/kwin/files/kwin-5.18.5-dont-exec-QDialog.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 5ea54eda5d1f91428933d338ea8b950aea86d43a Mon Sep 17 00:00:00 2001
-From: Kai Uwe Broulik <kde@privat.broulik.de>
-Date: Wed, 6 May 2020 15:15:03 +0200
-Subject: [kcmkwin/kwindecoration] Don't exec() QDialog
-
-Using nested event loops with QML is always troublesome.
-
-BUG: 421053
-FIXED-IN: 5.18.6
-
-Differential Revision: https://phabricator.kde.org/D29473
----
- .../declarative-plugin/previewbridge.cpp | 32 +++++++++++++++-------
- .../declarative-plugin/previewbridge.h | 4 ++-
- .../kwindecoration/package/contents/ui/Themes.qml | 3 +-
- 3 files changed, 27 insertions(+), 12 deletions(-)
-
-diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp
-index bad4cc1..83a9bd9 100644
---- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp
-+++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp
-@@ -36,7 +36,11 @@
- #include <QDialog>
- #include <QDialogButtonBox>
- #include <QPushButton>
-+#include <QQuickItem>
-+#include <QQuickRenderControl>
-+#include <QQuickWindow>
- #include <QVBoxLayout>
-+#include <QWindow>
-
- namespace KDecoration2
- {
-@@ -173,15 +177,16 @@ DecorationButton *PreviewBridge::createButton(KDecoration2::Decoration *decorati
- return m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)}));
- }
-
--void PreviewBridge::configure()
-+void PreviewBridge::configure(QQuickItem *ctx)
- {
- if (!m_valid) {
- return;
- }
- //setup the UI
-- QDialog dialog;
-+ QDialog *dialog = new QDialog();
-+ dialog->setAttribute(Qt::WA_DeleteOnClose);
- if (m_lastCreatedClient) {
-- dialog.setWindowTitle(m_lastCreatedClient->caption());
-+ dialog->setWindowTitle(m_lastCreatedClient->caption());
- }
-
- // create the KCModule through the plugintrader
-@@ -189,7 +194,7 @@ void PreviewBridge::configure()
- if (!m_theme.isNull()) {
- args.insert(QStringLiteral("theme"), m_theme);
- }
-- KCModule *kcm = m_factory->create<KCModule>(QStringLiteral("kcmodule"), &dialog, QVariantList({args}));
-+ KCModule *kcm = m_factory->create<KCModule>(QStringLiteral("kcmodule"), dialog, QVariantList({args}));
- if (!kcm) {
- return;
- }
-@@ -205,28 +210,35 @@ void PreviewBridge::configure()
- QStringLiteral("reloadConfig"));
- QDBusConnection::sessionBus().send(message);
- };
-- connect(&dialog, &QDialog::accepted, this, save);
-+ connect(dialog, &QDialog::accepted, this, save);
-
- QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok |
- QDialogButtonBox::Cancel |
- QDialogButtonBox::RestoreDefaults |
- QDialogButtonBox::Reset,
-- &dialog);
-+ dialog);
-
- QPushButton *reset = buttons->button(QDialogButtonBox::Reset);
- reset->setEnabled(false);
- // Here we connect our buttons with the dialog
-- connect(buttons, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
-- connect(buttons, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
-+ connect(buttons, &QDialogButtonBox::accepted, dialog, &QDialog::accept);
-+ connect(buttons, &QDialogButtonBox::rejected, dialog, &QDialog::reject);
- connect(reset, &QPushButton::clicked, kcm, &KCModule::load);
- auto changedSignal = static_cast<void(KCModule::*)(bool)>(&KCModule::changed);
- connect(kcm, changedSignal, reset, &QPushButton::setEnabled);
- connect(buttons->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, kcm, &KCModule::defaults);
-
-- QVBoxLayout *layout = new QVBoxLayout(&dialog);
-+ QVBoxLayout *layout = new QVBoxLayout(dialog);
- layout->addWidget(kcm);
- layout->addWidget(buttons);
-- dialog.exec();
-+
-+ if (ctx->window()) {
-+ dialog->winId(); // so it creates windowHandle
-+ dialog->windowHandle()->setTransientParent(QQuickRenderControl::renderWindowFor(ctx->window()));
-+ dialog->setModal(true);
-+ }
-+
-+ dialog->show();
- }
-
- BridgeItem::BridgeItem(QObject *parent)
-diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h
-index 7e1d8f3..85fccbe 100644
---- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h
-+++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h
-@@ -26,6 +26,8 @@
- #include <QList>
- #include <QPointer>
-
-+class QQuickItem;
-+
- class KPluginFactory;
-
- namespace KDecoration2
-@@ -70,7 +72,7 @@ public:
- KDecoration2::DecorationButton *createButton(KDecoration2::Decoration *decoration, KDecoration2::DecorationButtonType type, QObject *parent = nullptr);
-
- public Q_SLOTS:
-- void configure();
-+ void configure(QQuickItem *ctx);
-
- Q_SIGNALS:
- void pluginChanged();
-diff --git a/kcmkwin/kwindecoration/package/contents/ui/Themes.qml b/kcmkwin/kwindecoration/package/contents/ui/Themes.qml
-index 28e5899..1eeb4cd 100644
---- a/kcmkwin/kwindecoration/package/contents/ui/Themes.qml
-+++ b/kcmkwin/kwindecoration/package/contents/ui/Themes.qml
-@@ -40,6 +40,7 @@ KCM.GridView {
- view.implicitCellWidth: Kirigami.Units.gridUnit * 18
-
- view.delegate: KCM.GridDelegate {
-+ id: delegate
- text: model.display
-
- thumbnailAvailable: true
-@@ -101,7 +102,7 @@ KCM.GridView {
- onTriggered: {
- kcm.theme = index
- view.currentIndex = index
-- bridgeItem.bridge.configure()
-+ bridgeItem.bridge.configure(delegate)
- }
- }
- ]
---
-cgit v1.1
diff --git a/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch b/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch
deleted file mode 100644
index dc87b4045483..000000000000
--- a/kde-plasma/kwin/files/kwin-5.18.5-mesa-21.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From 2c76cc4784382b3df9b5413860d0793ea26cea31 Mon Sep 17 00:00:00 2001
-From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-Date: Fri, 29 May 2020 16:01:27 +0300
-Subject: [wayland] Fix misuse of EGL/eglmesaext.h
-
-The recommended way to get all EGL extension defines is to include
-EGL/eglext.h. EGL/eglmesaext.h is a private header that compositors
-should not use.
-
-BUG: 422131
----
- .../scenes/opengl/abstract_egl_backend.cpp | 11 +---
- platformsupport/scenes/opengl/egl_dmabuf.cpp | 41 +-----------
- platformsupport/scenes/opengl/kwineglext.h | 76 ++++++++++++++++++++++
- 3 files changed, 78 insertions(+), 50 deletions(-)
- create mode 100644 platformsupport/scenes/opengl/kwineglext.h
-
-diff --git a/platformsupport/scenes/opengl/abstract_egl_backend.cpp b/platformsupport/scenes/opengl/abstract_egl_backend.cpp
-index 532ec27..e160ef3 100644
---- a/platformsupport/scenes/opengl/abstract_egl_backend.cpp
-+++ b/platformsupport/scenes/opengl/abstract_egl_backend.cpp
-@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
- *********************************************************************/
- #include "abstract_egl_backend.h"
- #include "egl_dmabuf.h"
-+#include "kwineglext.h"
- #include "texture.h"
- #include "composite.h"
- #include "egl_context_attribute_builder.h"
-@@ -49,16 +50,6 @@ eglBindWaylandDisplayWL_func eglBindWaylandDisplayWL = nullptr;
- eglUnbindWaylandDisplayWL_func eglUnbindWaylandDisplayWL = nullptr;
- eglQueryWaylandBufferWL_func eglQueryWaylandBufferWL = nullptr;
-
--#ifndef EGL_WAYLAND_BUFFER_WL
--#define EGL_WAYLAND_BUFFER_WL 0x31D5
--#endif
--#ifndef EGL_WAYLAND_PLANE_WL
--#define EGL_WAYLAND_PLANE_WL 0x31D6
--#endif
--#ifndef EGL_WAYLAND_Y_INVERTED_WL
--#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
--#endif
--
- AbstractEglBackend::AbstractEglBackend()
- : QObject(nullptr)
- , OpenGLBackend()
-diff --git a/platformsupport/scenes/opengl/egl_dmabuf.cpp b/platformsupport/scenes/opengl/egl_dmabuf.cpp
-index 3f75bc7..753f15e 100644
---- a/platformsupport/scenes/opengl/egl_dmabuf.cpp
-+++ b/platformsupport/scenes/opengl/egl_dmabuf.cpp
-@@ -21,10 +21,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
- #include "egl_dmabuf.h"
-
- #include "drm_fourcc.h"
-+#include "kwineglext.h"
- #include "../../../wayland_server.h"
-
- #include <unistd.h>
--#include <EGL/eglmesaext.h>
-
- namespace KWin
- {
-@@ -34,45 +34,6 @@ typedef EGLBoolean (*eglQueryDmaBufModifiersEXT_func) (EGLDisplay dpy, EGLint fo
- eglQueryDmaBufFormatsEXT_func eglQueryDmaBufFormatsEXT = nullptr;
- eglQueryDmaBufModifiersEXT_func eglQueryDmaBufModifiersEXT = nullptr;
-
--#ifndef EGL_EXT_image_dma_buf_import
--#define EGL_LINUX_DMA_BUF_EXT 0x3270
--#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
--#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
--#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
--#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
--#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
--#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
--#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
--#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
--#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
--#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
--#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
--#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
--#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
--#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
--#define EGL_ITU_REC601_EXT 0x327F
--#define EGL_ITU_REC709_EXT 0x3280
--#define EGL_ITU_REC2020_EXT 0x3281
--#define EGL_YUV_FULL_RANGE_EXT 0x3282
--#define EGL_YUV_NARROW_RANGE_EXT 0x3283
--#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
--#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
--#endif // EGL_EXT_image_dma_buf_import
--
--#ifndef EGL_EXT_image_dma_buf_import_modifiers
--#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
--#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
--#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
--#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
--#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
--#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
--#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
--#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
--#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
--#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
--#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
--#endif // EGL_EXT_image_dma_buf_import_modifiers
--
- struct YuvPlane
- {
- int widthDivisor;
-diff --git a/platformsupport/scenes/opengl/kwineglext.h b/platformsupport/scenes/opengl/kwineglext.h
-new file mode 100644
-index 0000000..834701b
---- /dev/null
-+++ b/platformsupport/scenes/opengl/kwineglext.h
-@@ -0,0 +1,76 @@
-+/********************************************************************
-+ KWin - the KDE window manager
-+ This file is part of the KDE project.
-+
-+Copyright (C) 2018 Fredrik Höglund <fredrik@kde.org>
-+Copyright (C) 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-+
-+This program is free software; you can redistribute it and/or modify
-+it under the terms of the GNU General Public License as published by
-+the Free Software Foundation; either version 2 of the License, or
-+(at your option) any later version.
-+
-+This program is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+GNU General Public License for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with this program. If not, see <http://www.gnu.org/licenses/>.
-+*********************************************************************/
-+
-+#ifndef KWINEGLEXT_H
-+#define KWINEGLEXT_H
-+
-+#include <EGL/eglext.h>
-+
-+#ifndef EGL_WL_bind_wayland_display
-+#define EGL_WAYLAND_BUFFER_WL 0x31D5
-+#define EGL_WAYLAND_PLANE_WL 0x31D6
-+#define EGL_TEXTURE_Y_U_V_WL 0x31D7
-+#define EGL_TEXTURE_Y_UV_WL 0x31D8
-+#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
-+#define EGL_TEXTURE_EXTERNAL_WL 0x31DA
-+#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
-+#endif // EGL_WL_bind_wayland_display
-+
-+#ifndef EGL_EXT_image_dma_buf_import
-+#define EGL_LINUX_DMA_BUF_EXT 0x3270
-+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
-+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
-+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
-+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
-+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
-+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
-+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
-+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
-+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
-+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
-+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
-+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
-+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
-+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
-+#define EGL_ITU_REC601_EXT 0x327F
-+#define EGL_ITU_REC709_EXT 0x3280
-+#define EGL_ITU_REC2020_EXT 0x3281
-+#define EGL_YUV_FULL_RANGE_EXT 0x3282
-+#define EGL_YUV_NARROW_RANGE_EXT 0x3283
-+#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
-+#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
-+#endif // EGL_EXT_image_dma_buf_import
-+
-+#ifndef EGL_EXT_image_dma_buf_import_modifiers
-+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
-+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
-+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
-+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
-+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
-+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
-+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
-+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
-+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
-+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
-+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
-+#endif // EGL_EXT_image_dma_buf_import_modifiers
-+
-+#endif // KWINEGLEXT_H
---
-cgit v1.1
-
diff --git a/kde-plasma/kwin/files/kwin-5.18.5-qt-5.15.patch b/kde-plasma/kwin/files/kwin-5.18.5-qt-5.15.patch
deleted file mode 100644
index eb8f6617026c..000000000000
--- a/kde-plasma/kwin/files/kwin-5.18.5-qt-5.15.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ec602e0c2a676aed0707c7fb7edfe964516dbc77 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-Date: Sun, 7 Jun 2020 18:05:21 +0200
-Subject: [PATCH] Fix the Plastik decoration with Qt 5.15
-
-The trick in qmldir no longer works with Qt 5.15, so use a more reliable
-approach. This way works with Qt 5.15 and also on previous versions of Qt.
----
- .../kdecorations/aurorae/themes/plastik/code/plastikplugin.cpp | 3 ++-
- plugins/kdecorations/aurorae/themes/plastik/code/qmldir | 3 ---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/plugins/kdecorations/aurorae/themes/plastik/code/plastikplugin.cpp b/plugins/kdecorations/aurorae/themes/plastik/code/plastikplugin.cpp
-index 25d11251f..4304dcdc1 100644
---- a/plugins/kdecorations/aurorae/themes/plastik/code/plastikplugin.cpp
-+++ b/plugins/kdecorations/aurorae/themes/plastik/code/plastikplugin.cpp
-@@ -20,7 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- void PlastikPlugin::registerTypes(const char *uri)
- {
-- Q_UNUSED(uri)
-+ // Need to register something to tell Qt that it loaded (QTBUG-84571)
-+ qmlRegisterModule(uri, 1, 0);
- }
-
- void PlastikPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
-diff --git a/plugins/kdecorations/aurorae/themes/plastik/code/qmldir b/plugins/kdecorations/aurorae/themes/plastik/code/qmldir
-index 49a4b402d..aa7bf16b3 100644
---- a/plugins/kdecorations/aurorae/themes/plastik/code/qmldir
-+++ b/plugins/kdecorations/aurorae/themes/plastik/code/qmldir
-@@ -1,5 +1,2 @@
- module org.kde.kwin.decorations.plastik
- plugin plastikplugin
--
--# we need to have at least one element of Qt is not able to find the plugin *shrug*
--Foo 1.0 Foo.qml
---
-2.27.0
-
diff --git a/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch b/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch
deleted file mode 100644
index ac4b9d24c8e1..000000000000
--- a/kde-plasma/kwin/files/kwin-5.18.5-wayland-lockscreen-greeter.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 6f8b8efb338117ee197092e46b25b489b612257d Mon Sep 17 00:00:00 2001
-From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-Date: Fri, 8 May 2020 11:26:27 +0300
-Subject: [wayland] Place lockscreen greeter above other windows
-
-Summary: BUG: 420802
-
-Reviewers: #kwin, davidedmundson
-
-Reviewed By: #kwin, davidedmundson
-
-Subscribers: apol, kwin
-
-Tags: #kwin
-
-Differential Revision: https://phabricator.kde.org/D29523
----
- abstract_client.cpp | 2 ++
- autotests/integration/lockscreen.cpp | 19 +++++++++++++++++++
- 2 files changed, 21 insertions(+)
-
-diff --git a/abstract_client.cpp b/abstract_client.cpp
-index ca6c422..48918e7 100644
---- a/abstract_client.cpp
-+++ b/abstract_client.cpp
-@@ -275,6 +275,8 @@ Layer AbstractClient::belongsToLayer() const
- // Since the desktop is also activated, nothing should be in the ActiveLayer, though
- if (isInternal())
- return UnmanagedLayer;
-+ if (isLockScreen())
-+ return UnmanagedLayer;
- if (isDesktop())
- return workspace()->showingDesktop() ? AboveLayer : DesktopLayer;
- if (isSplash()) // no damn annoying splashscreens
-diff --git a/autotests/integration/lockscreen.cpp b/autotests/integration/lockscreen.cpp
-index e258540..82cac09 100644
---- a/autotests/integration/lockscreen.cpp
-+++ b/autotests/integration/lockscreen.cpp
-@@ -62,6 +62,7 @@ private Q_SLOTS:
- void initTestCase();
- void init();
- void cleanup();
-+ void testStackingOrder();
- void testPointer();
- void testPointerButton();
- void testPointerAxis();
-@@ -223,6 +224,24 @@ void LockScreenTest::cleanup()
- Test::destroyWaylandConnection();
- }
-
-+void LockScreenTest::testStackingOrder()
-+{
-+ // This test verifies that the lockscreen greeter is placed above other windows.
-+
-+ QSignalSpy clientAddedSpy(waylandServer(), &WaylandServer::shellClientAdded);
-+ QVERIFY(clientAddedSpy.isValid());
-+
-+ LOCK
-+ QVERIFY(clientAddedSpy.wait());
-+
-+ AbstractClient *client = clientAddedSpy.first().first().value<AbstractClient *>();
-+ QVERIFY(client);
-+ QVERIFY(client->isLockScreen());
-+ QCOMPARE(client->layer(), UnmanagedLayer);
-+
-+ UNLOCK
-+}
-+
- void LockScreenTest::testPointer()
- {
- using namespace KWayland::Client;
---
-cgit v1.1
diff --git a/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch b/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch
new file mode 100644
index 000000000000..7eeccf6e8c5f
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch
@@ -0,0 +1,162 @@
+From c5880833d94330d022c4b6fc84c175aadeaf9632 Mon Sep 17 00:00:00 2001
+From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+Date: Tue, 22 Sep 2020 08:53:17 +0000
+Subject: [PATCH] x11: Make removal of X11 event filters safe
+
+If an X11 event filter has been activated and it unregisters another X11
+event filter, then the window manager may crash because the foreach macro
+in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or
+m_eventFilters and we can call the event() method for an already defunct
+filter.
+
+With this change, X11 event filters can be safely removed and installed
+at any particular moment.
+
+BUG: 423319
+
+
+(cherry picked from commit a433fb08a3a9255802405a17dd4c8270c68fcb25)
+---
+ events.cpp | 52 +++++++++++++++++++++++++++++++++++++++++----------
+ workspace.cpp | 10 ++++++++++
+ workspace.h | 17 +++++++++++++++--
+ 3 files changed, 67 insertions(+), 12 deletions(-)
+
+diff --git a/events.cpp b/events.cpp
+index eb3572d13..2e8885d76 100644
+--- a/events.cpp
++++ b/events.cpp
+@@ -165,18 +165,34 @@ QVector<QByteArray> s_xcbEerrors({
+
+ void Workspace::registerEventFilter(X11EventFilter *filter)
+ {
+- if (filter->isGenericEvent())
+- m_genericEventFilters.append(filter);
+- else
+- m_eventFilters.append(filter);
++ if (filter->isGenericEvent()) {
++ m_genericEventFilters.append(new X11EventFilterContainer(filter));
++ } else {
++ m_eventFilters.append(new X11EventFilterContainer(filter));
++ }
++}
++
++static X11EventFilterContainer *takeEventFilter(X11EventFilter *eventFilter,
++ QList<QPointer<X11EventFilterContainer>> &list)
++{
++ for (int i = 0; i < list.count(); ++i) {
++ X11EventFilterContainer *container = list.at(i);
++ if (container->filter() == eventFilter) {
++ return list.takeAt(i);
++ }
++ }
++ return nullptr;
+ }
+
+ void Workspace::unregisterEventFilter(X11EventFilter *filter)
+ {
+- if (filter->isGenericEvent())
+- m_genericEventFilters.removeOne(filter);
+- else
+- m_eventFilters.removeOne(filter);
++ X11EventFilterContainer *container = nullptr;
++ if (filter->isGenericEvent()) {
++ container = takeEventFilter(filter, m_genericEventFilters);
++ } else {
++ container = takeEventFilter(filter, m_eventFilters);
++ }
++ delete container;
+ }
+
+
+@@ -219,13 +235,29 @@ bool Workspace::workspaceEvent(xcb_generic_event_t *e)
+ if (eventType == XCB_GE_GENERIC) {
+ xcb_ge_generic_event_t *ge = reinterpret_cast<xcb_ge_generic_event_t *>(e);
+
+- foreach (X11EventFilter *filter, m_genericEventFilters) {
++ // We need to make a shadow copy of the event filter list because an activated event
++ // filter may mutate it by removing or installing another event filter.
++ const auto eventFilters = m_genericEventFilters;
++
++ for (X11EventFilterContainer *container : eventFilters) {
++ if (!container) {
++ continue;
++ }
++ X11EventFilter *filter = container->filter();
+ if (filter->extension() == ge->extension && filter->genericEventTypes().contains(ge->event_type) && filter->event(e)) {
+ return true;
+ }
+ }
+ } else {
+- foreach (X11EventFilter *filter, m_eventFilters) {
++ // We need to make a shadow copy of the event filter list because an activated event
++ // filter may mutate it by removing or installing another event filter.
++ const auto eventFilters = m_eventFilters;
++
++ for (X11EventFilterContainer *container : eventFilters) {
++ if (!container) {
++ continue;
++ }
++ X11EventFilter *filter = container->filter();
+ if (filter->eventTypes().contains(eventType) && filter->event(e)) {
+ return true;
+ }
+diff --git a/workspace.cpp b/workspace.cpp
+index a87a622e9..fd3634b16 100644
+--- a/workspace.cpp
++++ b/workspace.cpp
+@@ -66,6 +66,16 @@ namespace KWin
+ extern int screen_number;
+ extern bool is_multihead;
+
++X11EventFilterContainer::X11EventFilterContainer(X11EventFilter *filter)
++ : m_filter(filter)
++{
++}
++
++X11EventFilter *X11EventFilterContainer::filter() const
++{
++ return m_filter;
++}
++
+ ColorMapper::ColorMapper(QObject *parent)
+ : QObject(parent)
+ , m_default(kwinApp()->x11DefaultScreen()->default_colormap)
+diff --git a/workspace.h b/workspace.h
+index 489d7bae4..61fb215a8 100644
+--- a/workspace.h
++++ b/workspace.h
+@@ -55,6 +55,19 @@ class X11Client;
+ class X11EventFilter;
+ enum class Predicate;
+
++class X11EventFilterContainer : public QObject
++{
++ Q_OBJECT
++
++public:
++ explicit X11EventFilterContainer(X11EventFilter *filter);
++
++ X11EventFilter *filter() const;
++
++private:
++ X11EventFilter *m_filter;
++};
++
+ class KWIN_EXPORT Workspace : public QObject
+ {
+ Q_OBJECT
+@@ -654,8 +667,8 @@ private:
+
+ QScopedPointer<KillWindow> m_windowKiller;
+
+- QList<X11EventFilter *> m_eventFilters;
+- QList<X11EventFilter *> m_genericEventFilters;
++ QList<QPointer<X11EventFilterContainer>> m_eventFilters;
++ QList<QPointer<X11EventFilterContainer>> m_genericEventFilters;
+ QScopedPointer<X11EventFilter> m_movingClientFilter;
+ QScopedPointer<X11EventFilter> m_syncAlarmFilter;
+
+--
+GitLab
+
diff --git a/kde-plasma/kwin/kwin-5.18.5-r1.ebuild b/kde-plasma/kwin/kwin-5.18.5-r1.ebuild
deleted file mode 100644
index 33ac47b0ae2a..000000000000
--- a/kde-plasma/kwin/kwin-5.18.5-r1.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-ECM_HANDBOOK="optional"
-ECM_TEST="optional"
-KFMIN=5.66.0
-PVCUT=$(ver_cut 1-3)
-QTMIN=5.12.3
-VIRTUALX_REQUIRED="test"
-inherit ecm kde.org
-
-DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux"
-
-LICENSE="GPL-2+"
-SLOT="5"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
-IUSE="caps gles2-only multimedia"
-
-COMMON_DEPEND="
- >=kde-frameworks/kactivities-${KFMIN}:5
- >=kde-frameworks/kauth-${KFMIN}:5
- >=kde-frameworks/kcmutils-${KFMIN}:5
- >=kde-frameworks/kcompletion-${KFMIN}:5
- >=kde-frameworks/kconfig-${KFMIN}:5
- >=kde-frameworks/kconfigwidgets-${KFMIN}:5
- >=kde-frameworks/kcoreaddons-${KFMIN}:5
- >=kde-frameworks/kcrash-${KFMIN}:5
- >=kde-frameworks/kdeclarative-${KFMIN}:5
- >=kde-frameworks/kglobalaccel-${KFMIN}:5=
- >=kde-frameworks/ki18n-${KFMIN}:5
- >=kde-frameworks/kiconthemes-${KFMIN}:5
- >=kde-frameworks/kidletime-${KFMIN}:5=
- >=kde-frameworks/kinit-${KFMIN}:5
- >=kde-frameworks/kio-${KFMIN}:5
- >=kde-frameworks/knewstuff-${KFMIN}:5
- >=kde-frameworks/knotifications-${KFMIN}:5
- >=kde-frameworks/kpackage-${KFMIN}:5
- >=kde-frameworks/kservice-${KFMIN}:5
- >=kde-frameworks/ktextwidgets-${KFMIN}:5
- >=kde-frameworks/kwayland-${KFMIN}:5
- >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
- >=kde-frameworks/kwindowsystem-${KFMIN}:5[X]
- >=kde-frameworks/kxmlgui-${KFMIN}:5
- >=kde-frameworks/plasma-${KFMIN}:5
- >=kde-plasma/breeze-${PVCUT}:5
- >=kde-plasma/kdecoration-${PVCUT}:5
- >=kde-plasma/kscreenlocker-${PVCUT}:5
- >=dev-qt/qtdbus-${QTMIN}:5
- >=dev-qt/qtdeclarative-${QTMIN}:5
- >=dev-qt/qtgui-${QTMIN}:5=[gles2-only=]
- >=dev-qt/qtscript-${QTMIN}:5
- >=dev-qt/qtsensors-${QTMIN}:5
- >=dev-qt/qtwidgets-${QTMIN}:5
- >=dev-qt/qtx11extras-${QTMIN}:5
- >=dev-libs/libinput-1.9
- >=dev-libs/wayland-1.2
- media-libs/fontconfig
- media-libs/freetype
- media-libs/libepoxy
- media-libs/mesa[egl,gbm,wayland,X(+)]
- virtual/libudev:=
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libXi
- x11-libs/libdrm
- >=x11-libs/libxcb-1.10
- >=x11-libs/libxkbcommon-0.7.0
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-wm
- caps? ( sys-libs/libcap )
- gles2-only? ( media-libs/mesa[gles2] )
-"
-RDEPEND="${COMMON_DEPEND}
- >=kde-frameworks/kirigami-${KFMIN}:5
- >=dev-qt/qtquickcontrols-${QTMIN}:5
- >=dev-qt/qtquickcontrols2-${QTMIN}:5
- >=dev-qt/qtvirtualkeyboard-${QTMIN}:5
- multimedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5[gstreamer,qml] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-qt/designer-${QTMIN}:5
- >=dev-qt/qtconcurrent-${QTMIN}:5
- x11-base/xorg-proto
-"
-PDEPEND="
- >=kde-plasma/kde-cli-tools-${PVCUT}:5
-"
-
-RESTRICT+=" test"
-
-PATCHES=(
- # in Plasma/5.18
- "${FILESDIR}/${P}-dont-exec-QDialog.patch" # KDE-bug 421053
- "${FILESDIR}/${P}-wayland-lockscreen-greeter.patch" # KDE-bug 420802
-)
-
-src_prepare() {
- ecm_src_prepare
- use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch"
-
- # Access violations, bug #640432
- sed -e "s/^ecm_find_qmlmodule.*QtMultimedia/#&/" \
- -i CMakeLists.txt || die
-}
-
-src_configure() {
- local mycmakeargs=(
- $(cmake_use_find_package caps Libcap)
- )
-
- ecm_src_configure
-}
diff --git a/kde-plasma/kwin/kwin-5.19.5.ebuild b/kde-plasma/kwin/kwin-5.19.5-r1.ebuild
index 5ae8f73e4421..fc1182510000 100644
--- a/kde-plasma/kwin/kwin-5.19.5.ebuild
+++ b/kde-plasma/kwin/kwin-5.19.5-r1.ebuild
@@ -15,7 +15,7 @@ DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux"
LICENSE="GPL-2+"
SLOT="5"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
IUSE="caps gles2-only multimedia"
COMMON_DEPEND="
@@ -95,6 +95,10 @@ PDEPEND="
RESTRICT+=" test"
+PATCHES=(
+ "${FILESDIR}"/${P}-safe-removal-of-X11-event-filters.patch # KDE-Bug 423319
+)
+
src_prepare() {
ecm_src_prepare
use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch"
diff --git a/kde-plasma/kwin/kwin-5.18.5-r3.ebuild b/kde-plasma/kwin/kwin-5.20.3.ebuild
index ed5d1d1f83c3..da2325921b7c 100644
--- a/kde-plasma/kwin/kwin-5.18.5-r3.ebuild
+++ b/kde-plasma/kwin/kwin-5.20.3.ebuild
@@ -5,9 +5,9 @@ EAPI=7
ECM_HANDBOOK="optional"
ECM_TEST="optional"
-KFMIN=5.66.0
+KFMIN=5.74.0
PVCUT=$(ver_cut 1-3)
-QTMIN=5.12.3
+QTMIN=5.15.1
VIRTUALX_REQUIRED="test"
inherit ecm kde.org
@@ -16,10 +16,10 @@ DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux"
LICENSE="GPL-2+"
SLOT="5"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-IUSE="caps gles2-only multimedia"
+IUSE="accessibility caps gles2-only multimedia screencast"
COMMON_DEPEND="
- >=dev-libs/libinput-1.9
+ >=dev-libs/libinput-1.14
>=dev-libs/wayland-1.2
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtdeclarative-${QTMIN}:5
@@ -41,7 +41,6 @@ COMMON_DEPEND="
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kidletime-${KFMIN}:5=
- >=kde-frameworks/kinit-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/knewstuff-${KFMIN}:5
>=kde-frameworks/knotifications-${KFMIN}:5
@@ -56,6 +55,7 @@ COMMON_DEPEND="
>=kde-plasma/breeze-${PVCUT}:5
>=kde-plasma/kdecoration-${PVCUT}:5
>=kde-plasma/kscreenlocker-${PVCUT}:5
+ >=kde-plasma/kwayland-server-${PVCUT}:5
media-libs/fontconfig
media-libs/freetype
media-libs/libepoxy
@@ -72,14 +72,18 @@ COMMON_DEPEND="
x11-libs/xcb-util-image
x11-libs/xcb-util-keysyms
x11-libs/xcb-util-wm
+ accessibility? ( media-libs/libqaccessibilityclient:5 )
caps? ( sys-libs/libcap )
gles2-only? ( media-libs/mesa[gles2] )
+ screencast? ( >=media-video/pipewire-0.3:= )
"
+# TODO: sys-apps/hwdata? not packaged yet; commit 33a1777a, Gentoo-bug 717216
RDEPEND="${COMMON_DEPEND}
>=dev-qt/qtquickcontrols-${QTMIN}:5
>=dev-qt/qtquickcontrols2-${QTMIN}:5
>=dev-qt/qtvirtualkeyboard-${QTMIN}:5
>=kde-frameworks/kirigami-${KFMIN}:5
+ >=kde-frameworks/kitemmodels-${KFMIN}:5[qml]
multimedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5[gstreamer,qml] )
"
DEPEND="${COMMON_DEPEND}
@@ -93,25 +97,20 @@ PDEPEND="
RESTRICT+=" test"
-PATCHES=(
- # in Plasma/5.18
- "${FILESDIR}/${P}-dont-exec-QDialog.patch" # KDE-bug 421053
- "${FILESDIR}/${P}-wayland-lockscreen-greeter.patch" # KDE-bug 420802
- "${FILESDIR}/${P}-mesa-21.patch" # KDE-bug 422131
- "${FILESDIR}/${P}-qt-5.15.patch" # Plastik deco issue
-)
-
src_prepare() {
ecm_src_prepare
use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch"
- # Access violations, bug #640432
- sed -e "s/^ecm_find_qmlmodule.*QtMultimedia/#&/" \
- -i CMakeLists.txt || die
+ # TODO: try to get a build switch upstreamed
+ if ! use screencast; then
+ sed -e "s/^pkg_check_modules.*PipeWire/#&/" \
+ -i CMakeLists.txt || die
+ fi
}
src_configure() {
local mycmakeargs=(
+ $(cmake_use_find_package accessibility QAccessibilityClient)
$(cmake_use_find_package caps Libcap)
)
diff --git a/kde-plasma/kwin/metadata.xml b/kde-plasma/kwin/metadata.xml
index 9b1b37b6a988..24eb99364154 100644
--- a/kde-plasma/kwin/metadata.xml
+++ b/kde-plasma/kwin/metadata.xml
@@ -7,5 +7,6 @@
</maintainer>
<use>
<flag name="multimedia">Enable effect video button in desktop effects KCM</flag>
+ <flag name="screencast">Enable screencast portal using <pkg>media-video/pipewire</pkg></flag>
</use>
</pkgmetadata>