commit:     ccc0e75d6ffe73bba47c7afb2afdd2bd15cec2e2
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  9 17:38:23 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jul  9 19:03:24 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccc0e75d

media-plugins/gst-plugins-qt6: add 1.24.11 as standalone package

... temporarily, not using gstreamer-meson.eclass until necessary
no-multilib compatibility changes are made.

See also: https://github.com/gentoo/gentoo/pull/42781
Closes: https://bugs.gentoo.org/810814
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-plugins/gst-plugins-qt6/Manifest             |   1 +
 .../files/gst-plugins-qt6-1.24.11-kamoso.patch     | 141 ++++++++++++++++++++
 .../gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild | 142 +++++++++++++++++++++
 media-plugins/gst-plugins-qt6/metadata.xml         |  11 ++
 4 files changed, 295 insertions(+)

diff --git a/media-plugins/gst-plugins-qt6/Manifest 
b/media-plugins/gst-plugins-qt6/Manifest
new file mode 100644
index 000000000000..cdd65c89f53a
--- /dev/null
+++ b/media-plugins/gst-plugins-qt6/Manifest
@@ -0,0 +1 @@
+DIST gst-plugins-good-1.24.11.tar.xz 2937828 BLAKE2B 
66d2f4ff4564d34a0cb26c6bd00d7dd933d7674a08ea8119e94c32f2088c8f3aebc006e4288309bb3c2b5862f44806f74395609f4c58f2d563247dd8acf4f49d
 SHA512 
7b15baf2aa0aa72f469d0c44cc13a892b85e7d4e08d04c44bfeb0ff475aa274474adcf652ed4fb9bca22155d04afa47898a423d3b5844a9b597337a3ab46faed

diff --git 
a/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch 
b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch
new file mode 100644
index 000000000000..365f9676bd25
--- /dev/null
+++ b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch
@@ -0,0 +1,141 @@
+https://mail.kde.org/pipermail/release-team/2025-June/013691.html
+https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226
+
+From ae57ec2ebbbbac9de40dd36e2ed54b12fe7ed869 Mon Sep 17 00:00:00 2001
+From: Aleix Pol <[email protected]>
+Date: Mon, 26 May 2025 23:51:16 +0200
+Subject: [PATCH] qml6glitem,qtitem: Allow configuring if the item will consume
+ input events
+
+At the moment we are always accepting the input events to forward into
+GStreamer infrastructure. This works but we might have other uses for
+such events elsewhere in the QtQuick scene so allow opting out to this
+behaviour.
+
+Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226>
+---
+ ext/qt6/qt6glitem.cc     | 22 +++++++++++++++++--
+ ext/qt6/qt6glitem.h      |  9 +++++++-
+ 2 files changed, 28 insertions(+), 3 deletions(-)
+
+diff --git a/ext/qt6/qt6glitem.cc b/ext/qt6/qt6glitem.cc
+index 971a027de969..d1d89c3fd7f3 100644
+--- a/ext/qt6/qt6glitem.cc
++++ b/ext/qt6/qt6glitem.cc
+@@ -193,6 +193,16 @@ Qt6GLVideoItem::setForceAspectRatio(bool 
force_aspect_ratio)
+   emit forceAspectRatioChanged(force_aspect_ratio);
+ }
+ 
++void
++Qt6GLVideoItem::setAcceptEvents(bool accept)
++{
++  if (accept == acceptEvents)
++    return;
++
++  acceptEvents = accept;
++  Q_EMIT acceptEventsChanged(acceptEvents);
++}
++
+ bool
+ Qt6GLVideoItem::getForceAspectRatio()
+ {
+@@ -487,18 +497,22 @@ Qt6GLVideoItem::wheelEvent(QWheelEvent * event)
+     g_object_unref (element);
+   }
+   g_mutex_unlock (&this->priv->lock);
++
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+-Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *)
++Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *event)
+ {
+   mouseHovering = true;
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+-Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *)
++Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *event)
+ {
+   mouseHovering = false;
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+@@ -527,6 +541,7 @@ Qt6GLVideoItem::hoverMoveEvent(QHoverEvent * event)
+     }
+   }
+   g_mutex_unlock (&this->priv->lock);
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+@@ -589,6 +604,7 @@ Qt6GLVideoItem::touchEvent(QTouchEvent * event)
+ 
+   g_object_unref (element);
+   g_mutex_unlock (&this->priv->lock);
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+@@ -641,12 +657,14 @@ Qt6GLVideoItem::mousePressEvent(QMouseEvent * event)
+ {
+   forceActiveFocus();
+   sendMouseEvent(event, TRUE);
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+ Qt6GLVideoItem::mouseReleaseEvent(QMouseEvent * event)
+ {
+   sendMouseEvent(event, FALSE);
++  event->setAccepted(acceptEvents);
+ }
+ 
+ void
+diff --git a/ext/qt6/qt6glitem.h b/ext/qt6/qt6glitem.h
+index bfe28a1fc606..886a4a221f54 100644
+--- a/ext/qt6/qt6glitem.h
++++ b/ext/qt6/qt6glitem.h
+@@ -73,7 +73,10 @@ class Qt6GLVideoItem : public QQuickItem, protected 
QOpenGLFunctions
+                READ getForceAspectRatio
+                WRITE setForceAspectRatio
+                NOTIFY forceAspectRatioChanged)
+-
++    Q_PROPERTY(bool acceptEvents
++               READ getAcceptEvents
++               WRITE setAcceptEvents
++               NOTIFY acceptEventsChanged)
+ public:
+     Qt6GLVideoItem();
+     ~Qt6GLVideoItem();
+@@ -83,6 +86,8 @@ public:
+     void setForceAspectRatio(bool);
+     bool getForceAspectRatio();
+     bool itemInitialized();
++    bool getAcceptEvents() const { return acceptEvents; }
++    void setAcceptEvents(bool accept);
+ 
+     QSharedPointer<Qt6GLVideoItemInterface> getInterface() { return proxy; };
+     /* private for C interface ... */
+@@ -91,6 +96,7 @@ public:
+ Q_SIGNALS:
+     void itemInitializedChanged();
+     void forceAspectRatioChanged(bool);
++    void acceptEventsChanged(bool acceptEvents);
+ 
+ private Q_SLOTS:
+     void handleWindowChanged(QQuickWindow * win);
+@@ -120,6 +126,7 @@ private:
+ 
+     quint32 mousePressedButton;
+     bool mouseHovering;
++    bool acceptEvents = true;
+ 
+     QSharedPointer<Qt6GLVideoItemInterface> proxy;
+ };
+-- 
+GitLab
+

diff --git a/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild 
b/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild
new file mode 100644
index 000000000000..9c25fdf5e266
--- /dev/null
+++ b/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GST_ORG_MODULE=gst-plugins-good
+PYTHON_COMPAT=( python3_{11..13} )
+inherit meson python-any-r1 xdg-utils
+
+DESCRIPTION="Qt6 QML video sink plugin for GStreamer"
+HOMEPAGE="https://gstreamer.freedesktop.org/";
+SRC_URI="https://gstreamer.freedesktop.org/src/${GST_ORG_MODULE}/${GST_ORG_MODULE}-${PV}.tar.xz";
+S="${WORKDIR}/${GST_ORG_MODULE}-${PV}"
+
+LICENSE="GPL-2"
+SLOT="1.0"
+KEYWORDS="~amd64"
+IUSE="X"
+
+RESTRICT="test"
+
+DEPEND="
+       dev-qt/qtbase:6=[gui,opengl,wayland,X?]
+       dev-qt/qtdeclarative:6[opengl]
+       >=media-libs/gst-plugins-base-${PV}:${SLOT}[opengl,wayland,X?]
+"
+RDEPEND="${DEPEND}
+       >=dev-libs/glib-2.64.0:2
+       >=media-libs/gstreamer-$(ver_cut 1-2):${SLOT}
+       >=media-libs/${GST_ORG_MODULE}-${PV}:${SLOT}
+"
+RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
+BDEPEND="${PYTHON_DEPS}
+       app-arch/xz-utils
+       virtual/perl-JSON-PP
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/${P}-kamoso.patch" ) # in >=1.26.3, bug #958983
+
+src_configure() {
+       xdg_environment_reset
+       local emesonargs=(
+               $(meson_feature X qt-x11)
+               -Dqt-egl=disabled
+               -Dqt-wayland=enabled
+               # disable all else:
+               -Dalpha=disabled
+               -Dapetag=disabled
+               -Daudiofx=disabled
+               -Daudioparsers=disabled
+               -Dauparse=disabled
+               -Dautodetect=disabled
+               -Davi=disabled
+               -Dcutter=disabled
+               -Ddebugutils=disabled
+               -Ddeinterlace=disabled
+               -Ddtmf=disabled
+               -Deffectv=disabled
+               -Dequalizer=disabled
+               -Dflv=disabled
+               -Dflx=disabled
+               -Dgoom=disabled
+               -Dgoom2k1=disabled
+               -Dicydemux=disabled
+               -Did3demux=disabled
+               -Dimagefreeze=disabled
+               -Dinterleave=disabled
+               -Disomp4=disabled
+               -Dlaw=disabled
+               -Dlevel=disabled
+               -Dmatroska=disabled
+               -Dmonoscope=disabled
+               -Dmultifile=disabled
+               -Dmultipart=disabled
+               -Dreplaygain=disabled
+               -Drtp=disabled
+               -Drtpmanager=disabled
+               -Drtsp=disabled
+               -Dshapewipe=disabled
+               -Dsmpte=disabled
+               -Dspectrum=disabled
+               -Dudp=disabled
+               -Dvideobox=disabled
+               -Dvideocrop=disabled
+               -Dvideofilter=disabled
+               -Dvideomixer=disabled
+               -Dwavenc=disabled
+               -Dwavparse=disabled
+               -Dxingmux=disabled
+               -Dy4m=disabled
+               -Dadaptivedemux2=disabled
+               -Daalib=disabled
+               -Damrnb=disabled
+               -Damrwbdec=disabled
+               -Dbz2=disabled
+               -Dcairo=disabled
+               -Ddirectsound=disabled
+               -Ddv=disabled
+               -Ddv1394=disabled
+               -Dflac=disabled
+               -Dgdk-pixbuf=disabled
+               -Dgtk3=disabled
+               -Djack=disabled
+               -Djpeg=disabled
+               -Dlame=disabled
+               -Dlibcaca=disabled
+               -Dmpg123=disabled
+               -Doss=disabled
+               -Doss4=disabled
+               -Dosxaudio=disabled
+               -Dosxvideo=disabled
+               -Dpng=disabled
+               -Dpulse=disabled
+               -Dshout2=disabled
+               -Dspeex=disabled
+               -Dtaglib=disabled
+               -Dtwolame=disabled
+               -Dvpx=disabled
+               -Dwaveform=disabled
+               -Dwavpack=disabled
+               -Dqt5=disabled
+               -Dqt6=enabled
+               -Dsoup=disabled
+               -Dv4l2=disabled
+               -Dximagesrc=disabled
+               -Dorc=disabled
+               -Dexamples=disabled
+               -Dpackage-name="Gentoo GStreamer ebuild"
+               -Dpackage-origin="https://www.gentoo.org";
+       )
+       meson_src_configure
+}
+
+src_compile () {
+       meson_src_compile ext/qt6/libgstqml6.so
+}
+
+src_install () {
+       insinto /usr/$(get_libdir)/gstreamer-1.0
+       doins "${BUILD_DIR}"/ext/qt6/libgstqml6.so
+}

diff --git a/media-plugins/gst-plugins-qt6/metadata.xml 
b/media-plugins/gst-plugins-qt6/metadata.xml
new file mode 100644
index 000000000000..0860df6049c5
--- /dev/null
+++ b/media-plugins/gst-plugins-qt6/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Gentoo KDE Project</name>
+       </maintainer>
+       <upstream>
+               <remote-id 
type="freedesktop-gitlab">gstreamer/gstreamer</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to