summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2020-09-07 17:46:16 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2020-09-07 17:46:47 +0200
commit1d36e1f109781ef9bb94f613c032435d84282098 (patch)
treef84d296889167056078f1708859dc4836d90707a /media-libs
parentkde-apps/kipi-plugins: Fix syntax error by misplaced quotes (diff)
downloadkde-sunset-1d36e1f109781ef9bb94f613c032435d84282098.tar.gz
kde-sunset-1d36e1f109781ef9bb94f613c032435d84282098.tar.bz2
kde-sunset-1d36e1f109781ef9bb94f613c032435d84282098.zip
media-libs/qt-gstreamer: Import latest version, configure with Qt4
Required by kde-apps/artikulate. - New SLOT="0-qt4" to be able to install it side-by side w/ Qt5 version - Block colliding SLOT="0" versions <1.2.0-r4 Package-Manager: Portage-3.0.5, Repoman-3.0.1 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/qt-gstreamer/Manifest1
-rw-r--r--media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-boost157.patch204
-rw-r--r--media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-clang-38.patch67
-rw-r--r--media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer15.patch39
-rw-r--r--media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer16.patch25
-rw-r--r--media-libs/qt-gstreamer/metadata.xml8
-rw-r--r--media-libs/qt-gstreamer/qt-gstreamer-1.2.0-r3.ebuild55
7 files changed, 399 insertions, 0 deletions
diff --git a/media-libs/qt-gstreamer/Manifest b/media-libs/qt-gstreamer/Manifest
new file mode 100644
index 00000000..4018bfef
--- /dev/null
+++ b/media-libs/qt-gstreamer/Manifest
@@ -0,0 +1 @@
+DIST qt-gstreamer-1.2.0.tar.xz 313632 BLAKE2B e41fd7073e223a06b0115025dcfcd637f4803f953b4fe175f5b05713bd5282c7fa12039d5a5b4c98eff5a181bbb7cd4140a0f1de32a8aadeef5d7217b339eadf SHA512 ae58c72765d590b84fa8709b45934ac464d7e00dba862783a2c4fe9d41afd09c6e5f95523cdf465fcfd2c6fa705335071b101912c42cd6c1fd15ae207b0864c7
diff --git a/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-boost157.patch b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-boost157.patch
new file mode 100644
index 00000000..e8227393
--- /dev/null
+++ b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-boost157.patch
@@ -0,0 +1,204 @@
+Add include guards to all boost includes, as qt's moc trips
+over nested BOOST_JOIN macros:
+* AUTOGEN: error: process for /var/tmp/portage/media-libs/qt-gstreamer-1.2.0-r1/work/qt-gstreamer-1.2.0-4/src/QGst/moc_graphicsvideowidget.cpp failed:
+* usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at "BOOST_JOIN"
+https://bugs.gentoo.org/show_bug.cgi?id=578906
+
+--- qt-gstreamer-1.2.0/codegen/generator.cpp
++++ qt-gstreamer-1.2.0/codegen/generator.cpp
+@@ -54,7 +54,9 @@
+ << "*/" << endl
+ << endl
+ << "#define INCLUDED_FROM_CODEGEN" << endl
++ << "#ifndef Q_MOC_RUN" << endl
+ << "#include <boost/static_assert.hpp>" << endl
++ << "#endif" << endl
+ << endl
+ << "#define REGISTER_TYPE_IMPLEMENTATION(T, GTYPE) \\" << endl
+ << " namespace QGlib { \\" << endl
+--- qt-gstreamer-1.2.0/src/QGlib/connect.cpp
++++ qt-gstreamer-1.2.0/src/QGlib/connect.cpp
+@@ -20,10 +20,12 @@
+ #include <glib-object.h>
+ #include <QtCore/QHash>
+ #include <QtCore/QMutex>
++#ifndef Q_MOC_RUN
+ #include <boost/multi_index_container.hpp>
+ #include <boost/multi_index/sequenced_index.hpp>
+ #include <boost/multi_index/ordered_index.hpp>
+ #include <boost/multi_index/member.hpp>
++#endif
+
+ namespace QGlib {
+ namespace Private {
+--- qt-gstreamer-1.2.0/src/QGlib/connect.h
++++ qt-gstreamer-1.2.0/src/QGlib/connect.h
+@@ -25,8 +25,10 @@
+ #include <QtCore/QSharedPointer>
+ #include <QtCore/QFlags>
+ #include <QtCore/QHash>
++#ifndef Q_MOC_RUN
+ #include <boost/type_traits.hpp>
+ #include <boost/utility/enable_if.hpp>
++#endif
+
+ namespace QGlib {
+
+--- qt-gstreamer-1.2.0/src/QGlib/connectimpl.h
++++ qt-gstreamer-1.2.0/src/QGlib/connectimpl.h
+@@ -26,7 +26,9 @@
+ # include "refpointer.h"
+ # include <QtCore/QList>
+ # include <stdexcept>
++#ifndef Q_MOC_RUN
+ # include <boost/type_traits.hpp>
++#endif
+
+
+ namespace QGlib {
+@@ -203,9 +205,11 @@
+
+ # else //QGLIB_HAVE_CXX0X
+
++#ifndef Q_MOC_RUN
+ # include <boost/function.hpp>
+ # include <boost/preprocessor.hpp>
+ # include <boost/bind.hpp>
++#endif
+
+ // include the second part of this file as many times as QGLIB_CONNECT_MAX_ARGS specifies
+ # define BOOST_PP_ITERATION_PARAMS_1 (3,(0, QGLIB_CONNECT_MAX_ARGS, "QGlib/connectimpl.h"))
+--- qt-gstreamer-1.2.0/src/QGlib/emitimpl.h
++++ qt-gstreamer-1.2.0/src/QGlib/emitimpl.h
+@@ -125,7 +125,9 @@
+
+ # else //QGLIB_HAVE_CXX0X
+
++#ifndef Q_MOC_RUN
+ # include <boost/preprocessor.hpp>
++#endif
+
+ // include the second part of this file as many times as QGLIB_SIGNAL_MAX_ARGS specifies
+ # define BOOST_PP_ITERATION_PARAMS_1 (3,(0, QGLIB_SIGNAL_MAX_ARGS, "QGlib/emitimpl.h"))
+--- qt-gstreamer-1.2.0/src/QGlib/gen.cpp
++++ qt-gstreamer-1.2.0/src/QGlib/gen.cpp
+@@ -19,7 +19,9 @@
+ */
+
+ #define INCLUDED_FROM_CODEGEN
++#ifndef Q_MOC_RUN
+ #include <boost/static_assert.hpp>
++#endif
+
+ #define REGISTER_TYPE_IMPLEMENTATION(T, GTYPE) \
+ namespace QGlib { \
+--- qt-gstreamer-1.2.0/src/QGlib/global.h
++++ qt-gstreamer-1.2.0/src/QGlib/global.h
+@@ -23,7 +23,9 @@
+ #endif
+
+ #include <QtCore/QtGlobal>
++#ifndef Q_MOC_RUN
+ #include <boost/config.hpp>
++#endif
+
+ /* defined by cmake when building this library */
+ #if defined(QtGLib_EXPORTS) || defined(Qt5GLib_EXPORTS)
+@@ -84,7 +86,9 @@
+ # define QGLIB_STATIC_ASSERT(expr, message) static_assert(expr, message)
+ # define QGLIB_HAVE_CXX0X_STATIC_ASSERT 1
+ #else
++#ifndef Q_MOC_RUN
+ # include <boost/static_assert.hpp>
++#endif
+ # define QGLIB_STATIC_ASSERT(expr, message) BOOST_STATIC_ASSERT(expr)
+ #endif
+
+--- qt-gstreamer-1.2.0/src/QGlib/refpointer.h
++++ qt-gstreamer-1.2.0/src/QGlib/refpointer.h
+@@ -23,8 +23,10 @@
+ #include "type.h"
+ #include "wrap.h"
+ #include <cstddef>
++#ifndef Q_MOC_RUN
+ #include <boost/type_traits.hpp>
+ #include <boost/utility/enable_if.hpp>
++#endif
+ #include <QtCore/QHash>
+
+ namespace QGlib {
+--- qt-gstreamer-1.2.0/src/QGlib/type.h
++++ qt-gstreamer-1.2.0/src/QGlib/type.h
+@@ -21,7 +21,9 @@
+
+ #include "global.h"
+ #include <QtCore/QList>
++#ifndef Q_MOC_RUN
+ #include <boost/mpl/if.hpp>
++#endif
+
+ /*
+ * This is a re-definition of GType inside the QGlib::Private namespace.
+--- qt-gstreamer-1.2.0/src/QGlib/value.cpp
++++ qt-gstreamer-1.2.0/src/QGlib/value.cpp
+@@ -19,7 +19,9 @@
+ #include "value.h"
+ #include "string.h"
+ #include <cstring>
++#ifndef Q_MOC_RUN
+ #include <boost/type_traits.hpp>
++#endif
+ #include <glib-object.h>
+ #include <QtCore/QDebug>
+ #include <QtCore/QReadWriteLock>
+--- qt-gstreamer-1.2.0/src/QGlib/value.h
++++ qt-gstreamer-1.2.0/src/QGlib/value.h
+@@ -23,8 +23,10 @@
+ #include "type.h"
+ #include "refpointer.h"
+ #include "error.h"
++#ifndef Q_MOC_RUN
+ #include <boost/mpl/if.hpp>
+ #include <boost/type_traits.hpp>
++#endif
+ #include <stdexcept>
+ #include <QtCore/QString>
+ #include <QtCore/QDebug>
+--- qt-gstreamer-1.2.0/src/QGst/bin.h
++++ qt-gstreamer-1.2.0/src/QGst/bin.h
+@@ -28,8 +28,10 @@
+ #endif
+
+ #if !QGLIB_HAVE_CXX0X
++#ifndef Q_MOC_RUN
+ # include <boost/preprocessor.hpp>
+ #endif
++#endif
+
+ namespace QGst {
+
+--- qt-gstreamer-1.2.0/src/QGst/element.h
++++ qt-gstreamer-1.2.0/src/QGst/element.h
+@@ -22,8 +22,10 @@
+ #include "clocktime.h"
+
+ #if !QGLIB_HAVE_CXX0X
++#ifndef Q_MOC_RUN
+ # include <boost/preprocessor.hpp>
+ #endif
++#endif
+
+ namespace QGst {
+
+--- qt-gstreamer-1.2.0/src/QGst/gen.cpp
++++ qt-gstreamer-1.2.0/src/QGst/gen.cpp
+@@ -19,7 +19,9 @@
+ */
+
+ #define INCLUDED_FROM_CODEGEN
++#ifndef Q_MOC_RUN
+ #include <boost/static_assert.hpp>
++#endif
+
+ #define REGISTER_TYPE_IMPLEMENTATION(T, GTYPE) \
+ namespace QGlib { \
diff --git a/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-clang-38.patch b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-clang-38.patch
new file mode 100644
index 00000000..977a09d7
--- /dev/null
+++ b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-clang-38.patch
@@ -0,0 +1,67 @@
+From fc159e5c4c8ffeabdc7319514c6bb19c9c9e1d3b Mon Sep 17 00:00:00 2001
+From: Aleix Pol <aleixpol@kde.org>
+Date: Mon, 13 Jun 2016 10:36:34 +0200
+Subject: [PATCH] Fix build with Clang 3.8
+
+error: invalid suffix on literal; C++11 requires a space between literal and identifier
+
+https://bugzilla.gnome.org/show_bug.cgi?id=767578
+---
+ elements/gstqtvideosink/delegates/basedelegate.cpp | 2 +-
+ elements/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp | 2 +-
+ elements/gstqtvideosink/gstqtquick2videosink.cpp | 2 +-
+ elements/gstqtvideosink/gstqtvideosinkbase.cpp | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/elements/gstqtvideosink/delegates/basedelegate.cpp b/elements/gstqtvideosink/delegates/basedelegate.cpp
+index 7dde59c..65f364c 100644
+--- a/elements/gstqtvideosink/delegates/basedelegate.cpp
++++ b/elements/gstqtvideosink/delegates/basedelegate.cpp
+@@ -155,7 +155,7 @@ bool BaseDelegate::event(QEvent *event)
+ BufferEvent *bufEvent = dynamic_cast<BufferEvent*>(event);
+ Q_ASSERT(bufEvent);
+
+- GST_TRACE_OBJECT(m_sink, "Received buffer %"GST_PTR_FORMAT, bufEvent->buffer);
++ GST_TRACE_OBJECT(m_sink, "Received buffer %" GST_PTR_FORMAT, bufEvent->buffer);
+
+ if (isActive()) {
+ gst_buffer_replace (&m_buffer, bufEvent->buffer);
+diff --git a/elements/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp b/elements/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp
+index 8f23dc2..c42513f 100644
+--- a/elements/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp
++++ b/elements/gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp
+@@ -36,7 +36,7 @@ QWidget *QWidgetVideoSinkDelegate::widget() const
+
+ void QWidgetVideoSinkDelegate::setWidget(QWidget *widget)
+ {
+- GST_LOG_OBJECT(m_sink, "Setting \"widget\" property to %"GST_PTR_FORMAT, widget);
++ GST_LOG_OBJECT(m_sink, "Setting \"widget\" property to %" GST_PTR_FORMAT, widget);
+
+ if (m_widget) {
+ m_widget.data()->removeEventFilter(this);
+diff --git a/elements/gstqtvideosink/gstqtquick2videosink.cpp b/elements/gstqtvideosink/gstqtquick2videosink.cpp
+index 7889fbf..bedc074 100644
+--- a/elements/gstqtvideosink/gstqtquick2videosink.cpp
++++ b/elements/gstqtvideosink/gstqtquick2videosink.cpp
+@@ -248,7 +248,7 @@ gst_qt_quick2_video_sink_show_frame(GstVideoSink *sink, GstBuffer *buffer)
+ {
+ GstQtQuick2VideoSink *self = GST_QT_QUICK2_VIDEO_SINK (sink);
+
+- GST_TRACE_OBJECT(self, "Posting new buffer (%"GST_PTR_FORMAT") for rendering.", buffer);
++ GST_TRACE_OBJECT(self, "Posting new buffer (%" GST_PTR_FORMAT ") for rendering.", buffer);
+
+ QCoreApplication::postEvent(self->priv->delegate, new BaseDelegate::BufferEvent(buffer));
+
+diff --git a/elements/gstqtvideosink/gstqtvideosinkbase.cpp b/elements/gstqtvideosink/gstqtvideosinkbase.cpp
+index 118d0a2..a707e02 100644
+--- a/elements/gstqtvideosink/gstqtvideosinkbase.cpp
++++ b/elements/gstqtvideosink/gstqtvideosinkbase.cpp
+@@ -207,7 +207,7 @@ GstFlowReturn GstQtVideoSinkBase::show_frame(GstVideoSink *video_sink, GstBuffer
+ {
+ GstQtVideoSinkBase *sink = GST_QT_VIDEO_SINK_BASE(video_sink);
+
+- GST_TRACE_OBJECT(sink, "Posting new buffer (%"GST_PTR_FORMAT") for rendering.", buffer);
++ GST_TRACE_OBJECT(sink, "Posting new buffer (%" GST_PTR_FORMAT ") for rendering.", buffer);
+
+ QCoreApplication::postEvent(sink->delegate, new BaseDelegate::BufferEvent(buffer));
+
diff --git a/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer15.patch b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer15.patch
new file mode 100644
index 00000000..6e875f67
--- /dev/null
+++ b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer15.patch
@@ -0,0 +1,39 @@
+From e2ca8094aa8d0eac1c3a98df66fe94ce0c754088 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Santamar=C3=ADa?= <panfaust@gmail.com>
+Date: Fri, 2 Oct 2015 15:00:29 +0300
+Subject: Fix compilation with GStreamer >= 1.5.1
+
+apply gstreamer pkg-config definitions To ensure gstreamer builds correctly,
+pick up its cflags in FindGstreamer and apply them to the build as definitions
+
+https://lists.ubuntu.com/archives/kubuntu-devel/2015-August/009819.html
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751382
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4d3e7dd..5744015 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -106,6 +106,7 @@ find_package(GObject)
+ macro_log_feature(GOBJECT_FOUND "GObject" "Required to build QtGLib" "http://www.gtk.org/" TRUE)
+
+ set(CMAKE_REQUIRED_INCLUDES ${QTGSTREAMER_INCLUDES})
++add_definitions(${GSTREAMER_DEFINITIONS})
+ include(CheckCXXSourceCompiles)
+ check_cxx_source_compiles("
+ #include <QtCore/QtGlobal>
+diff --git a/cmake/modules/FindGStreamer.cmake b/cmake/modules/FindGStreamer.cmake
+index dab91ac..fe6cde1 100644
+--- a/cmake/modules/FindGStreamer.cmake
++++ b/cmake/modules/FindGStreamer.cmake
+@@ -36,6 +36,7 @@ if (PKG_CONFIG_FOUND)
+ exec_program(${PKG_CONFIG_EXECUTABLE}
+ ARGS --variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION}
+ OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR)
++ set(GSTREAMER_DEFINITIONS ${PKG_GSTREAMER_CFLAGS})
+ endif()
+
+ find_library(GSTREAMER_LIBRARY
+--
+cgit v0.10.2
+
diff --git a/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer16.patch b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer16.patch
new file mode 100644
index 00000000..6bb24048
--- /dev/null
+++ b/media-libs/qt-gstreamer/files/qt-gstreamer-1.2.0-gstreamer16.patch
@@ -0,0 +1,25 @@
+From 6e4fb2f3fcfb453c5522c66457ac5ed8c3b1b05c Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Sat, 7 Sep 2019 10:49:38 +0300
+Subject: [PATCH] QGst/caps: compilation fix from
+ https://bugs.kde.org/show_bug.cgi?id=406676#c2
+
+Because the macro version of gst_caps_copy() confuses the C++ compiler
+---
+ src/QGst/caps.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/QGst/caps.cpp b/src/QGst/caps.cpp
+index 3824d82..a15b701 100644
+--- a/src/QGst/caps.cpp
++++ b/src/QGst/caps.cpp
+@@ -54,7 +54,8 @@ QString Caps::toString() const
+
+ void Caps::append(const CapsPtr & caps2)
+ {
+- gst_caps_append(object<GstCaps>(), gst_caps_copy(caps2));
++ const GstCaps * caps2ptr = caps2;
++ gst_caps_append(object<GstCaps>(), gst_caps_copy(caps2ptr));
+ }
+
+ CapsPtr Caps::merge(CapsPtr & caps2)
diff --git a/media-libs/qt-gstreamer/metadata.xml b/media-libs/qt-gstreamer/metadata.xml
new file mode 100644
index 00000000..2fdbf33d
--- /dev/null
+++ b/media-libs/qt-gstreamer/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/media-libs/qt-gstreamer/qt-gstreamer-1.2.0-r3.ebuild b/media-libs/qt-gstreamer/qt-gstreamer-1.2.0-r3.ebuild
new file mode 100644
index 00000000..6a9c462a
--- /dev/null
+++ b/media-libs/qt-gstreamer/qt-gstreamer-1.2.0-r3.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="C++ bindings for GStreamer with a Qt-style API"
+HOMEPAGE="https://gstreamer.freedesktop.org/modules/qt-gstreamer.html"
+SRC_URI="https://gstreamer.freedesktop.org/src/qt-gstreamer/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0-qt4"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
+IUSE="test"
+
+BDEPEND="
+ dev-util/glib-utils
+"
+COMMON_DEPEND="
+ dev-libs/boost:=
+ dev-libs/glib:2
+ dev-qt/qtcore:4
+ dev-qt/qtdeclarative:4
+ dev-qt/qtgui:4
+ dev-qt/qtopengl:4
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+"
+DEPEND="${COMMON_DEPEND}
+ test? ( dev-qt/qttest:4 )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<media-libs/qt-gstreamer-1.2.0-r4:0
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-gstreamer15.patch"
+ "${FILESDIR}/${P}-gstreamer16.patch"
+ "${FILESDIR}/${P}-boost157.patch"
+ "${FILESDIR}/${P}-clang-38.patch"
+)
+
+# bug 497880
+RESTRICT="test"
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Declarative=ON
+ -DQTGSTREAMER_EXAMPLES=OFF
+ -DQTGSTREAMER_TESTS=$(usex test)
+ -DQT_VERSION=4
+ )
+ cmake_src_configure
+}