diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-09-07 17:46:16 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-09-07 17:46:47 +0200 |
commit | 1d36e1f109781ef9bb94f613c032435d84282098 (patch) | |
tree | f84d296889167056078f1708859dc4836d90707a /media-libs | |
parent | kde-apps/kipi-plugins: Fix syntax error by misplaced quotes (diff) | |
download | kde-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')
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 +} |