commit:     bcdf69e8657f4d6495887e3d0533d7348acdbb59
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 19 15:37:18 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Dec 19 15:43:25 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcdf69e8

gui-apps/xwaylandvideobridge: add 0.4.0_p20250215, fix build w/ Qt 6.10

Update dependencies (upstream commit c2017e5d42bcf6623399b870a269bd4c772cef06)

Bug: https://bugs.gentoo.org/966307
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 gui-apps/xwaylandvideobridge/Manifest              |  1 +
 ...aylandvideobridge-0.4.0_p20250215-qt-6.10.patch | 92 ++++++++++++++++++++++
 .../xwaylandvideobridge-0.4.0_p20250215.ebuild     | 36 +++++++++
 3 files changed, 129 insertions(+)

diff --git a/gui-apps/xwaylandvideobridge/Manifest 
b/gui-apps/xwaylandvideobridge/Manifest
index 03a74bd262a9..5dea92a9b279 100644
--- a/gui-apps/xwaylandvideobridge/Manifest
+++ b/gui-apps/xwaylandvideobridge/Manifest
@@ -1 +1,2 @@
 DIST xwaylandvideobridge-0.4.0.tar.xz 35668 BLAKE2B 
c21857821bfc16b5df14feeea2ea188cedb00f1f3634335a359ba0938b8fb50f5ccf914011f6aca5bd527740ea62297ba9e4171604147d10d87725a0b545d96b
 SHA512 
d0352b7ce94f1a355d8fd8f42a45436483a87d90da1904295f984012859651472eabbca39df5107793790d48474b6de1c8766e31461d1548134547cbc7dfd5a4
+DIST xwaylandvideobridge-0.4.0_p20250215-b7d6dd1f.tar.xz 37464 BLAKE2B 
45051ac9bf2f029cff3ffc21c64584d2e86474296aecf3bb95beffaf5c772cbb267f2f904625a5dbc37c7f332878da577f49358df8445778b6fe7eb8fdf4405a
 SHA512 
e4c768b61df40fe814240658de27369ab2ef871bf980a53bf3d2c8ce26bd5e3e4f07b5c30b7fd4e80e71dd9f87128d6bdbbf5bcd42fa06c8c7d7b5aee75e90ff

diff --git 
a/gui-apps/xwaylandvideobridge/files/xwaylandvideobridge-0.4.0_p20250215-qt-6.10.patch
 
b/gui-apps/xwaylandvideobridge/files/xwaylandvideobridge-0.4.0_p20250215-qt-6.10.patch
new file mode 100644
index 000000000000..ef8d73638a32
--- /dev/null
+++ 
b/gui-apps/xwaylandvideobridge/files/xwaylandvideobridge-0.4.0_p20250215-qt-6.10.patch
@@ -0,0 +1,92 @@
+From 81348eeefeb4b390c530dcc89c8b9f9d1345ffaa Mon Sep 17 00:00:00 2001
+From: Kai Uwe Broulik <[email protected]>
+Date: Thu, 30 Jan 2025 21:48:57 +0100
+Subject: [PATCH] Port from GuiPrivate
+
+Use KWindowSystem::isPlatformX11() from KWindowSystem that we already use
+and for Qt 6 port to QNativeInterface.
+
+This avoids depending on GuiPrivate.
+
+While at it, include xcb explicitly and don't rely on the Qt header
+(that we no longer include) to include it.
+---
+ src/CMakeLists.txt     |  4 +---
+ src/contentswindow.cpp | 24 +++++++++++++++++-------
+ 2 files changed, 18 insertions(+), 10 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b707d36..6781162 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -37,9 +37,7 @@ target_link_libraries(xwaylandvideobridge
+     XCB::RECORD
+ )
+ 
+-if(QT_MAJOR_VERSION STREQUAL "6")
+-    target_link_libraries(xwaylandvideobridge Qt6::GuiPrivate)
+-elseif(QT_MAJOR_VERSION STREQUAL "5")
++if(QT_MAJOR_VERSION STREQUAL "5")
+     target_link_libraries(xwaylandvideobridge Qt5::X11Extras)
+ endif()
+ 
+diff --git a/src/contentswindow.cpp b/src/contentswindow.cpp
+index 88b13a3..f7f4f14 100644
+--- a/src/contentswindow.cpp
++++ b/src/contentswindow.cpp
+@@ -12,12 +12,12 @@
+ #include <KWindowSystem>
+ #include <KX11Extras>
+ 
+-#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+-#include <private/qtx11extras_p.h>
+-#else
++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ #include <QX11Info>
+ #endif
+ 
++#include <xcb/xcb.h>
++
+ struct MotifHints
+ {
+     u_int32_t flags = 0;
+@@ -45,6 +45,16 @@ static xcb_atom_t intern_atom(xcb_connection_t *c, const 
char *name)
+     return atom;
+ }
+ 
++static xcb_connection_t *xConnection()
++{
++#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
++    auto x11App = 
qGuiApp->nativeInterface<QNativeInterface::QX11Application>();
++    return x11App->connection();
++#else
++    return QX11Info::connection();
++#endif
++}
++
+ ContentsWindow::ContentsWindow()
+ {
+     resize(QSize(100, 100));
+@@ -64,8 +74,8 @@ ContentsWindow::ContentsWindow()
+     // that keeps us valid for streams
+     MotifHints hints;
+     hints.flags = 2;
+-    xcb_atom_t motif_hints_atom = intern_atom(QX11Info::connection(), 
"_MOTIF_WM_HINTS");
+-    xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, 
winId(), motif_hints_atom, motif_hints_atom, 32, 5, (const void *)&hints);
++    xcb_atom_t motif_hints_atom = intern_atom(xConnection(), 
"_MOTIF_WM_HINTS");
++    xcb_change_property(xConnection(), XCB_PROP_MODE_REPLACE, winId(), 
motif_hints_atom, motif_hints_atom, 32, 5, (const void *)&hints);
+ 
+     handleResize();
+ }
+@@ -101,6 +111,6 @@ void ContentsWindow::handleResize()
+     frame.left = width() -1 ;
+     setX(-width() + 1); // unforutnately we still need 1px on screen to get 
callbacks
+ 
+-    xcb_atom_t gtk_frame_extent_atom = intern_atom(QX11Info::connection(), 
"_GTK_FRAME_EXTENTS");
+-    xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, 
winId(), gtk_frame_extent_atom, XCB_ATOM_CARDINAL, 32, 4, (const void *)&frame);
++    xcb_atom_t gtk_frame_extent_atom = intern_atom(xConnection(), 
"_GTK_FRAME_EXTENTS");
++    xcb_change_property(xConnection(), XCB_PROP_MODE_REPLACE, winId(), 
gtk_frame_extent_atom, XCB_ATOM_CARDINAL, 32, 4, (const void *)&frame);
+ }
+-- 
+GitLab
+

diff --git 
a/gui-apps/xwaylandvideobridge/xwaylandvideobridge-0.4.0_p20250215.ebuild 
b/gui-apps/xwaylandvideobridge/xwaylandvideobridge-0.4.0_p20250215.ebuild
new file mode 100644
index 000000000000..5f1d236713f4
--- /dev/null
+++ b/gui-apps/xwaylandvideobridge/xwaylandvideobridge-0.4.0_p20250215.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+COMMIT=b7d6dd1f56380db2d37e4035951653567f10a12d
+KFMIN=6.9.0
+QTMIN=6.8.1
+KDE_ORG_CATEGORY="system"
+inherit ecm kde.org xdg
+
+DESCRIPTION="Screenshare Wayland windows to XWayland apps"
+HOMEPAGE="https://planet.kde.org/david-edmundson-2023-03-22-fixing-wayland-xwayland-screen-casting/
+https://invent.kde.org/system/xwaylandvideobridge";
+SRC_URI="https://dev.gentoo.org/~asturm/distfiles/kde/${P}-${COMMIT:0:8}.tar.xz";
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+DEPEND="
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets,X]
+       >=dev-qt/qtdeclarative-${QTMIN}:6
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6[X]
+       kde-plasma/kpipewire:6
+       media-libs/freetype
+       x11-libs/libxcb:=
+       x11-libs/xcb-util
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}/${P}-qt-6.10.patch" ) # bug #966307

Reply via email to