aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuciogi <lucigithubcommit@skiff.com>2024-06-28 18:53:54 +0000
committerĐoàn Trần Công Danh <congdanhqx@gmail.com>2024-06-30 00:41:31 +0000
commita42b028ff8349354c58a540725b8326512fe472c (patch)
treed43735d7d35b573bb18ce9bbb3d347339c1df61e
parent2520cafc847bc5e4892d5262d75d7310e85de7f0 (diff)
downloadvoid-packages-a42b028ff8349354c58a540725b8326512fe472c.tar
void-packages-a42b028ff8349354c58a540725b8326512fe472c.tar.gz
void-packages-a42b028ff8349354c58a540725b8326512fe472c.tar.bz2
void-packages-a42b028ff8349354c58a540725b8326512fe472c.tar.lz
void-packages-a42b028ff8349354c58a540725b8326512fe472c.tar.xz
void-packages-a42b028ff8349354c58a540725b8326512fe472c.tar.zst
void-packages-a42b028ff8349354c58a540725b8326512fe472c.zip
kwin: update to 6.1.1.
-rw-r--r--srcpkgs/kwin/patches/screencast-pipewire.patch152
-rw-r--r--srcpkgs/kwin/template6
2 files changed, 3 insertions, 155 deletions
diff --git a/srcpkgs/kwin/patches/screencast-pipewire.patch b/srcpkgs/kwin/patches/screencast-pipewire.patch
deleted file mode 100644
index b303a675602..00000000000
--- a/srcpkgs/kwin/patches/screencast-pipewire.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From 013e69988ffdbed1d3c684a536c0d4b79c7de680 Mon Sep 17 00:00:00 2001
-From: David Edmundson <kde@davidedmundson.co.uk>
-Date: Fri, 10 May 2024 14:35:11 +0000
-Subject: [PATCH] Reconnect Pipewire on Failure
-
-Our connection to pipewire can go down if the pipewire service restarts, it's on us to tear down and reconnect.
-To ensure Streams can tear down on their own properly, this patch leaves existing streams with a defunct connection
-and creates a new connection for new streams, sharing the connection between them.
-
-This also implicitly fixes the case for distributions without working socket activation.
-
-BUG: 483137
----
- src/plugins/screencast/pipewirecore.cpp | 7 ++++++
- src/plugins/screencast/pipewirecore.h | 4 ++++
- src/plugins/screencast/screencastmanager.cpp | 24 ++++++++++++++++----
- src/plugins/screencast/screencastmanager.h | 4 +++-
- 4 files changed, 33 insertions(+), 6 deletions(-)
-
-diff --git a/src/plugins/screencast/pipewirecore.cpp b/src/plugins/screencast/pipewirecore.cpp
-index 077854c65ee..085d0595372 100644
---- a/src/plugins/screencast/pipewirecore.cpp
-+++ b/src/plugins/screencast/pipewirecore.cpp
-@@ -48,6 +48,7 @@ void PipeWireCore::onCoreError(void *data, uint32_t id, int seq, int res, const
- qCWarning(KWIN_SCREENCAST) << "PipeWire remote error: " << message;
- if (id == PW_ID_CORE && res == -EPIPE) {
- PipeWireCore *pw = static_cast<PipeWireCore *>(data);
-+ pw->m_valid = false;
- Q_EMIT pw->pipewireFailed(QString::fromUtf8(message));
- }
- }
-@@ -91,9 +92,15 @@ bool PipeWireCore::init()
- }
-
- pw_core_add_listener(pwCore, &coreListener, &pwCoreEvents, this);
-+ m_valid = true;
- return true;
- }
-
-+bool PipeWireCore::isValid() const
-+{
-+ return m_valid;
-+}
-+
- } // namespace KWin
-
- #include "moc_pipewirecore.cpp"
-diff --git a/src/plugins/screencast/pipewirecore.h b/src/plugins/screencast/pipewirecore.h
-index cb20ba8b523..f66dc0edb22 100644
---- a/src/plugins/screencast/pipewirecore.h
-+++ b/src/plugins/screencast/pipewirecore.h
-@@ -28,6 +28,7 @@ public:
- ~PipeWireCore();
-
- bool init();
-+ bool isValid() const;
-
- static std::shared_ptr<PipeWireCore> self();
-
-@@ -41,6 +42,9 @@ public:
-
- Q_SIGNALS:
- void pipewireFailed(const QString &message);
-+
-+private:
-+ bool m_valid = false;
- };
-
- } // namespace KWin
-diff --git a/src/plugins/screencast/screencastmanager.cpp b/src/plugins/screencast/screencastmanager.cpp
-index 87c84e93f39..e0b009c3b70 100644
---- a/src/plugins/screencast/screencastmanager.cpp
-+++ b/src/plugins/screencast/screencastmanager.cpp
-@@ -27,9 +27,9 @@ namespace KWin
-
- ScreencastManager::ScreencastManager()
- : m_screencast(new ScreencastV1Interface(waylandServer()->display(), this))
-- , m_core(new PipeWireCore)
- {
-- m_core->init();
-+ getPipewireConnection();
-+
- connect(m_screencast, &ScreencastV1Interface::windowScreencastRequested, this, &ScreencastManager::streamWindow);
- connect(m_screencast, &ScreencastV1Interface::outputScreencastRequested, this, &ScreencastManager::streamWaylandOutput);
- connect(m_screencast, &ScreencastV1Interface::virtualOutputScreencastRequested, this, &ScreencastManager::streamVirtualOutput);
-@@ -46,7 +46,7 @@ void ScreencastManager::streamWindow(ScreencastStreamV1Interface *waylandStream,
- return;
- }
-
-- auto stream = new ScreenCastStream(new WindowScreenCastSource(window), m_core, this);
-+ auto stream = new ScreenCastStream(new WindowScreenCastSource(window), getPipewireConnection(), this);
- stream->setObjectName(window->desktopFileName());
- stream->setCursorMode(mode, 1, window->clientGeometry());
-
-@@ -88,7 +88,7 @@ void ScreencastManager::streamOutput(ScreencastStreamV1Interface *waylandStream,
- return;
- }
-
-- auto stream = new ScreenCastStream(new OutputScreenCastSource(streamOutput), m_core, this);
-+ auto stream = new ScreenCastStream(new OutputScreenCastSource(streamOutput), getPipewireConnection(), this);
- stream->setObjectName(streamOutput->name());
- stream->setCursorMode(mode, streamOutput->scale(), streamOutput->geometry());
-
-@@ -112,7 +112,7 @@ void ScreencastManager::streamRegion(ScreencastStreamV1Interface *waylandStream,
- }
-
- auto source = new RegionScreenCastSource(geometry, scale);
-- auto stream = new ScreenCastStream(source, m_core, this);
-+ auto stream = new ScreenCastStream(source, getPipewireConnection(), this);
- stream->setObjectName(rectToString(geometry));
- stream->setCursorMode(mode, scale, geometry);
-
-@@ -135,6 +135,20 @@ void ScreencastManager::integrateStreams(ScreencastStreamV1Interface *waylandStr
- }
- }
-
-+std::shared_ptr<PipeWireCore> ScreencastManager::getPipewireConnection()
-+{
-+ if (m_pipewireConnectionCache && m_pipewireConnectionCache->isValid()) {
-+ return m_pipewireConnectionCache;
-+ } else {
-+ std::shared_ptr<PipeWireCore> pipeWireCore = std::make_shared<PipeWireCore>();
-+ if (pipeWireCore->init()) {
-+ m_pipewireConnectionCache = pipeWireCore;
-+ }
-+ // return a valid object even if init fails
-+ return pipeWireCore;
-+ }
-+}
-+
- } // namespace KWin
-
- #include "moc_screencastmanager.cpp"
-diff --git a/src/plugins/screencast/screencastmanager.h b/src/plugins/screencast/screencastmanager.h
-index 059e64b545a..436040dea9a 100644
---- a/src/plugins/screencast/screencastmanager.h
-+++ b/src/plugins/screencast/screencastmanager.h
-@@ -46,8 +46,10 @@ private:
-
- void integrateStreams(ScreencastStreamV1Interface *waylandStream, ScreenCastStream *stream);
-
-+ std::shared_ptr<PipeWireCore> getPipewireConnection();
-+
- ScreencastV1Interface *m_screencast;
-- std::shared_ptr<PipeWireCore> m_core;
-+ std::shared_ptr<PipeWireCore> m_pipewireConnectionCache;
- };
-
- } // namespace KWin
---
-GitLab
-
diff --git a/srcpkgs/kwin/template b/srcpkgs/kwin/template
index a8e18e744f5..de42e296a78 100644
--- a/srcpkgs/kwin/template
+++ b/srcpkgs/kwin/template
@@ -1,7 +1,7 @@
# Template file for 'kwin'
pkgname=kwin
-version=6.0.5
-revision=3
+version=6.1.1
+revision=1
build_style=cmake
build_helper=qemu
configure_args="-DBUILD_TESTING=OFF -DFORCE_CROSSCOMPILED_TOOLS=ON
@@ -27,7 +27,7 @@ maintainer="John <me@johnnynator.dev>"
license="GPL-2.0-or-later"
homepage="https://invent.kde.org/plasma/kwin"
distfiles="${KDE_SITE}/plasma/${version:0:5}/${pkgname}-${version}.tar.xz"
-checksum=242e7d210529ec631bc5fe3fe0a117a3d1d4edb1dd3a644aafd5089312f8b0d7
+checksum=50004065d1713025406f839bbb270987a5a41652c1e93579062ebc2e8d5c8264
replaces="kwayland-server>=0"
kwin-devel_package() {