Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/mlt/, media-libs/mlt/files/
Date: Wed, 15 Nov 2017 23:45:41
Message-Id: 1510788929.3a9f7bedd4083a1808be16cadc82aa961ec983bf.asturm@gentoo
1 commit: 3a9f7bedd4083a1808be16cadc82aa961ec983bf
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 31 18:58:14 2017 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Wed Nov 15 23:35:29 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a9f7bed
7
8 media-libs/mlt: Add patches to drop bogus Qt5OpenGL DEPEND
9
10 Package-Manager: Portage-2.3.13, Repoman-2.3.4
11
12 media-libs/mlt/files/mlt-6.4.1-qtopengl-1.patch | 33 ++++
13 media-libs/mlt/files/mlt-6.4.1-qtopengl-2.patch | 61 +++++++
14 media-libs/mlt/mlt-6.4.1-r5.ebuild | 218 ++++++++++++++++++++++++
15 3 files changed, 312 insertions(+)
16
17 diff --git a/media-libs/mlt/files/mlt-6.4.1-qtopengl-1.patch b/media-libs/mlt/files/mlt-6.4.1-qtopengl-1.patch
18 new file mode 100644
19 index 00000000000..c00e8d05615
20 --- /dev/null
21 +++ b/media-libs/mlt/files/mlt-6.4.1-qtopengl-1.patch
22 @@ -0,0 +1,33 @@
23 +From d2a04ae77a6b2c82a2e12b9fb631beb8f825946d Mon Sep 17 00:00:00 2001
24 +From: Alberto Villa <avilla@×××××××.org>
25 +Date: Sat, 24 Dec 2016 05:07:54 +0100
26 +Subject: [PATCH] Move Qt OpenGL include(s) to Qt 4 specific code
27 +
28 +Only Qt 4 code references those files (QMutex and QWaitCondition are
29 +not OpenGL files, but still they're only useful in Qt 4 code).
30 +---
31 + src/modules/qt/consumer_qglsl.cpp | 7 ++++---
32 + 1 file changed, 4 insertions(+), 3 deletions(-)
33 +
34 +diff --git a/src/modules/qt/consumer_qglsl.cpp b/src/modules/qt/consumer_qglsl.cpp
35 +index 74840602..ca0cf383 100644
36 +--- a/src/modules/qt/consumer_qglsl.cpp
37 ++++ b/src/modules/qt/consumer_qglsl.cpp
38 +@@ -20,13 +20,14 @@
39 + #include "common.h"
40 + #include <framework/mlt.h>
41 + #include <QApplication>
42 +-#include <QGLWidget>
43 +-#include <QMutex>
44 +-#include <QWaitCondition>
45 + #include <QtGlobal>
46 +
47 + #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
48 +
49 ++#include <QGLWidget>
50 ++#include <QMutex>
51 ++#include <QWaitCondition>
52 ++
53 + class GLWidget : public QGLWidget
54 + {
55 + private:
56
57 diff --git a/media-libs/mlt/files/mlt-6.4.1-qtopengl-2.patch b/media-libs/mlt/files/mlt-6.4.1-qtopengl-2.patch
58 new file mode 100644
59 index 00000000000..5f98f12bbb1
60 --- /dev/null
61 +++ b/media-libs/mlt/files/mlt-6.4.1-qtopengl-2.patch
62 @@ -0,0 +1,61 @@
63 +From 6ba6cab570d824641f63c66b355ba28f0721811f Mon Sep 17 00:00:00 2001
64 +From: Alberto Villa <avilla@×××××××.org>
65 +Date: Sat, 24 Dec 2016 05:10:20 +0100
66 +Subject: [PATCH] Avoid looking for Qt5OpenGL module
67 +
68 +The OpenGL-related code needed by qimage was moved to Qt5Gui, which
69 +allows to safely remove the dependency on Qt 5 builds.
70 +
71 +Build tested on FreeBSD.
72 +---
73 + src/modules/qt/configure | 20 +-------------------
74 + 1 file changed, 1 insertion(+), 19 deletions(-)
75 +
76 +diff --git a/src/modules/qt/configure b/src/modules/qt/configure
77 +index 24803baf..7475dc09 100755
78 +--- a/src/modules/qt/configure
79 ++++ b/src/modules/qt/configure
80 +@@ -107,14 +107,6 @@ else
81 + then
82 + echo QTCXXFLAGS=-I$qt_includedir -I$qt_includedir/QtCore -I$qt_includedir/QtGui -I$qt_includedir/QtXml -I$qt_includedir/QtSvg -I$qt_includedir/QtWidgets >> config.mak
83 + echo QTLIBS=-Wl,-rpath-link,"$qt_libdir" -L"$qt_libdir" -lQt5Core -lQt5Gui -lQt5Xml -lQt5Svg -lQt5Widgets >> config.mak
84 +- if [ -f "$qt_libdir/libQt5OpenGL.so" ] || [ -f "$qt_libdir/libQt5OpenGL.a" ]
85 +- then
86 +- echo QTCXXFLAGS+=-I$qt_includedir/QtOpenGL >> config.mak
87 +- echo QTLIBS+=-lQt5OpenGL >> config.mak
88 +- else
89 +- echo "- Qt5OpenGL not found: disabling"
90 +- without_opengl=true
91 +- fi
92 + # Qt5 on OS X
93 + elif [ -d "$qt_libdir/QtWidgets.framework" ]
94 + then
95 +@@ -123,11 +115,10 @@ else
96 + -I$qt_includedir/QtGui -I$qt_libdir/QtGui.framework/Headers \
97 + -I$qt_includedir/QtXml -I$qt_libdir/QtXml.framework/Headers \
98 + -I$qt_includedir/QtSvg -I$qt_libdir/QtSvg.framework/Headers \
99 +- -I$qt_includedir/QtOpenGL -I$qt_libdir/QtOpenGL.framework/Headers \
100 + -I$qt_includedir/QtWidgets -I$qt_libdir/QtWidgets.framework/Headers \
101 + >> config.mak
102 + echo QTLIBS=-F"$qt_libdir" -framework QtCore -framework QtGui -framework \
103 +- QtXml -framework QtSvg -framework QtOpenGL -framework QtWidgets >> config.mak
104 ++ QtXml -framework QtSvg -framework QtWidgets >> config.mak
105 + # Qt4 on OS X
106 + elif [ -d "$qt_libdir/QtGui.framework" ]
107 + then
108 +@@ -151,15 +142,6 @@ else
109 + without_kde=true
110 + echo QTCXXFLAGS=$(pkg-config --cflags Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5Widgets) >> config.mak
111 + echo QTLIBS=$(pkg-config --libs Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5Widgets) >> config.mak
112 +- pkg-config --exists 'Qt5OpenGL'
113 +- if [ $? -eq 0 ]
114 +- then
115 +- echo QTCXXFLAGS+=$(pkg-config --cflags Qt5OpenGL) >> config.mak
116 +- echo QTLIBS+=$(pkg-config --libs Qt5OpenGL) >> config.mak
117 +- else
118 +- echo "- Qt5OpenGL not found: disabling"
119 +- without_opengl=true
120 +- fi
121 + else
122 + pkg-config --exists 'QtGui >= 4'
123 + if [ $? -eq 0 ]
124
125 diff --git a/media-libs/mlt/mlt-6.4.1-r5.ebuild b/media-libs/mlt/mlt-6.4.1-r5.ebuild
126 new file mode 100644
127 index 00000000000..05105d0264d
128 --- /dev/null
129 +++ b/media-libs/mlt/mlt-6.4.1-r5.ebuild
130 @@ -0,0 +1,218 @@
131 +# Copyright 1999-2017 Gentoo Foundation
132 +# Distributed under the terms of the GNU General Public License v2
133 +
134 +EAPI=6
135 +PYTHON_COMPAT=( python2_7 )
136 +# this ebuild currently only supports installing ruby bindings for a single ruby version
137 +# so USE_RUBY must contain only a single value (the latest stable) as the ebuild calls
138 +# /usr/bin/${USE_RUBY} directly
139 +USE_RUBY="ruby22"
140 +inherit eutils flag-o-matic multilib python-single-r1 ruby-single toolchain-funcs
141 +
142 +DESCRIPTION="Open source multimedia framework for television broadcasting"
143 +HOMEPAGE="https://www.mltframework.org/"
144 +SRC_URI="https://github.com/mltframework/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
145 +
146 +LICENSE="GPL-3"
147 +SLOT="0"
148 +KEYWORDS="~amd64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
149 +IUSE="compressed-lumas cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 debug ffmpeg fftw frei0r
150 +gtk jack kdenlive libav libsamplerate lua melt opencv opengl python qt5 rtaudio ruby sdl vdpau xine xml"
151 +# java perl php tcl vidstab
152 +IUSE="${IUSE} kernel_linux"
153 +
154 +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
155 +
156 +#rtaudio will use OSS on non linux OSes
157 +COMMON_DEPEND="
158 + >=media-libs/libebur128-1.2.2
159 + ffmpeg? (
160 + libav? ( media-video/libav:0=[vdpau?] )
161 + !libav? ( media-video/ffmpeg:0=[vdpau?] )
162 + )
163 + fftw? ( sci-libs/fftw:3.0= )
164 + frei0r? ( media-plugins/frei0r-plugins )
165 + gtk? (
166 + media-libs/libexif
167 + x11-libs/gtk+:2
168 + x11-libs/pango
169 + )
170 + jack? (
171 + >=dev-libs/libxml2-2.5
172 + media-libs/ladspa-sdk
173 + >=media-sound/jack-audio-connection-kit-0.121.3
174 + )
175 + libsamplerate? ( >=media-libs/libsamplerate-0.1.2 )
176 + lua? ( >=dev-lang/lua-5.1.4-r4:= )
177 + opencv? ( >=media-libs/opencv-3.2.0:= )
178 + opengl? ( media-video/movit )
179 + python? ( ${PYTHON_DEPS} )
180 + qt5? (
181 + dev-qt/qtcore:5
182 + dev-qt/qtgui:5
183 + dev-qt/qtsvg:5
184 + dev-qt/qtwidgets:5
185 + dev-qt/qtxml:5
186 + media-libs/libexif
187 + x11-libs/libX11
188 + )
189 + rtaudio? (
190 + media-libs/rtaudio
191 + kernel_linux? ( media-libs/alsa-lib )
192 + )
193 + ruby? ( ${RUBY_DEPS} )
194 + sdl? (
195 + >=media-libs/libsdl-1.2.10[X,opengl,video]
196 + >=media-libs/sdl-image-1.2.4
197 + )
198 + xine? ( >=media-libs/xine-lib-1.1.2_pre20060328-r7 )
199 + xml? ( >=dev-libs/libxml2-2.5 )"
200 +# java? ( >=virtual/jre-1.5 )
201 +# perl? ( dev-lang/perl )
202 +# php? ( dev-lang/php )
203 +# sox? ( media-sound/sox )
204 +# tcl? ( dev-lang/tcl:0= )
205 +# vidstab? ( media-libs/libvidstab )
206 +SWIG_DEPEND=">=dev-lang/swig-2.0"
207 +DEPEND="${COMMON_DEPEND}
208 + virtual/pkgconfig
209 + compressed-lumas? ( virtual/imagemagick-tools[png] )
210 + lua? ( ${SWIG_DEPEND} virtual/pkgconfig )
211 + python? ( ${SWIG_DEPEND} )
212 + ruby? ( ${SWIG_DEPEND} )"
213 +# java? ( ${SWIG_DEPEND} >=virtual/jdk-1.5 )
214 +# perl? ( ${SWIG_DEPEND} )
215 +# php? ( ${SWIG_DEPEND} )
216 +# tcl? ( ${SWIG_DEPEND} )
217 +RDEPEND="${COMMON_DEPEND}
218 + !media-libs/mlt++
219 +"
220 +
221 +PATCHES=(
222 + "${FILESDIR}"/${PN}-6.2.0-ruby-link.patch
223 + "${FILESDIR}"/${P}-libebur128-unbundle.patch
224 + "${FILESDIR}"/${P}-opencv-3.3.patch
225 + "${FILESDIR}"/${P}-glibc226-{1,2}.patch
226 + "${FILESDIR}"/${P}-qtopengl-{1,2}.patch
227 +)
228 +
229 +pkg_setup() {
230 + use python && python-single-r1_pkg_setup
231 +}
232 +
233 +src_prepare() {
234 + default
235 +
236 + # respect CFLAGS LDFLAGS when building shared libraries. Bug #308873
237 + for x in python lua; do
238 + sed -i "/mlt.so/s: -lmlt++ :& ${CFLAGS} ${LDFLAGS} :" src/swig/$x/build || die
239 + done
240 + sed -i "/^LDFLAGS/s: += :& ${LDFLAGS} :" src/swig/ruby/build || die
241 +
242 + sed -i -e "s/env ruby/${USE_RUBY}/" src/swig/ruby/* || die
243 +}
244 +
245 +src_configure() {
246 + tc-export CC CXX
247 +
248 + # bug 589848
249 + append-cxxflags -std=c++11
250 +
251 + local myconf="--enable-gpl
252 + --enable-gpl3
253 + --enable-motion-est
254 + --target-arch=$(tc-arch)
255 + --disable-kde
256 + --disable-swfdec
257 + $(use_enable debug)
258 + $(use compressed-lumas && echo ' --luma-compress')
259 + $(use_enable cpu_flags_x86_sse sse)
260 + $(use_enable cpu_flags_x86_sse2 sse2)
261 + $(use_enable gtk gtk2)
262 + $(use_enable sdl)
263 + $(use_enable jack jackrack)
264 + $(use_enable ffmpeg avformat)
265 + $(use ffmpeg && echo ' --avformat-swscale')
266 + $(use_enable fftw plus)
267 + $(use_enable frei0r)
268 + $(use_enable melt)
269 + $(use_enable opencv)
270 + $(use_enable opengl)
271 + $(use_enable libsamplerate resample)
272 + $(use_enable rtaudio)
273 + $(use vdpau && echo ' --avformat-vdpau')
274 + $(use_enable xml)
275 + $(use_enable xine)
276 + $(use_enable kdenlive)
277 + --disable-sox"
278 + #$(use_enable sox) FIXME
279 +
280 + if use qt5 ; then
281 + myconf+=" --enable-qt
282 + --qt-includedir=$(pkg-config Qt5Core --variable=includedir)
283 + --qt-libdir=$(pkg-config Qt5Core --variable=libdir)"
284 + else
285 + myconf+=" --disable-qt"
286 + fi
287 +
288 + if use x86 || use amd64 ; then
289 + myconf+=" $(use_enable cpu_flags_x86_mmx mmx)"
290 + else
291 + myconf+=" --disable-mmx"
292 + fi
293 +
294 + if ! use melt; then
295 + sed -i -e "s;src/melt;;" Makefile || die
296 + fi
297 +
298 + # TODO: add swig language bindings
299 + # see also https://www.mltframework.org/twiki/bin/view/MLT/ExtremeMakeover
300 +
301 + local swig_lang
302 + # TODO: java perl php tcl
303 + for i in lua python ruby ; do
304 + use $i && swig_lang="${swig_lang} $i"
305 + done
306 + [ -z "${swig_lang}" ] && swig_lang="none"
307 +
308 + econf ${myconf} --swig-languages="${swig_lang}"
309 +
310 + sed -i -e s/^OPT/#OPT/ "${S}/config.mak" || die
311 +}
312 +
313 +src_install() {
314 + emake DESTDIR="${D}" install
315 + dodoc AUTHORS ChangeLog NEWS README docs/*.txt
316 +
317 + dodir /usr/share/${PN}
318 + insinto /usr/share/${PN}
319 + doins -r demo
320 +
321 + docinto swig
322 +
323 + # Install SWIG bindings
324 + if use lua; then
325 + cd "${S}"/src/swig/lua || die
326 + exeinto $(pkg-config --variable INSTALL_CMOD lua)
327 + doexe mlt.so
328 + dodoc play.lua
329 + fi
330 +
331 + if use python; then
332 + cd "${S}"/src/swig/python || die
333 + insinto $(python_get_sitedir)
334 + doins mlt.py
335 + exeinto $(python_get_sitedir)
336 + doexe _mlt.so
337 + dodoc play.py
338 + python_optimize
339 + fi
340 +
341 + if use ruby; then
342 + cd "${S}"/src/swig/ruby || die
343 + exeinto $("${EPREFIX}"/usr/bin/${USE_RUBY} -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')
344 + doexe mlt.so
345 + dodoc play.rb thumbs.rb
346 + fi
347 + # TODO: java perl php tcl
348 +}