media-libs/libopenshot: version bump to 0.2.5
authorStefan Strogin <steils@gentoo.org>
Sat, 16 May 2020 02:32:55 +0000 (05:32 +0300)
committerStefan Strogin <steils@gentoo.org>
Sat, 16 May 2020 02:42:49 +0000 (05:42 +0300)
- Fix sub-slot operator for dev-libs/jsoncpp dependency.
- SLOT="0/19".
- Add python3_8 to PYTHON_COMPAT.
- Add patch for gcc-10.

Closes: https://bugs.gentoo.org/721142
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Stefan Strogin <steils@gentoo.org>
media-libs/libopenshot/Manifest
media-libs/libopenshot/files/libopenshot-0.2.5-gcc10.patch [new file with mode: 0644]
media-libs/libopenshot/libopenshot-0.2.5.ebuild [new file with mode: 0644]

index 4c8719808dabcf3be16ee81453b61e3d675435f6..12ce0990164f94814ba876e1e794fca0477b2579 100644 (file)
@@ -1,3 +1,4 @@
 DIST libopenshot-0.2.2.tar.gz 11037768 BLAKE2B c307e41bf17d40ae421a541bbdf4cd53c6ef4d97041a476c6910bd156c10815aa5a5811813b24fdc472401516f29cf8cb68fbda17a0b434767c3f3aa63d6f222 SHA512 b89189e57e82da68a063417bba9c94704c04b0546c0aed227daa23a794eee56341a05988d8e28dbd339edfcdeeaed48103b347060eccf94f32fe1a4bf23d6553
 DIST libopenshot-0.2.4.tar.gz 10295888 BLAKE2B 2967f1faa56090355255e24c0367a4171af7433c53eab303c9d88432174d03879ae9fd2e6904e614ea6ba210e0c72c401cab95a1d2aa93ddd2cea2b861e985ce SHA512 6824ad22e81814b6427a4cb6489e5b893be264b5afa6e54287cd649f244f86b938c1b1d56280c1f49af65fa118d056d204bd39bc5b2ccdc10376d2df2f33a352
 DIST libopenshot-0.2.4_pre20190609.tar.gz 10268173 BLAKE2B 01e07c0a7c051b5804f24fab1bfb920862a165ef14d3fdd020430b9e3a47858842c8cab3408ba0d161cb15cc6e90531a3b5df9ad327a01f414ff2e7e392fc243 SHA512 bf8c06aba6a899cb1ca6fbe9ac89fc859083b03175338c04af8dce68698f4ac78eac0b5b594e2b02390cd5e64576445b1c95324b254a267506353bed97ca16d1
+DIST libopenshot-0.2.5.tar.gz 10295768 BLAKE2B 19205c4f02d8b863b48e920164302853c7a505893783161e6a146e7a9728cefa19d4e48bc82b862e920967f110988ac28f5f495912efabbbacc98f55ebb51856 SHA512 b7cdf72897e6edaa8cc00e17dbe30f5b22a6b5d69aab64ddafb184458b41ef0332db1f3e2c6f039492bf7adb521d9758834d0bf6c24e6421a55970d8cf8caba7
diff --git a/media-libs/libopenshot/files/libopenshot-0.2.5-gcc10.patch b/media-libs/libopenshot/files/libopenshot-0.2.5-gcc10.patch
new file mode 100644 (file)
index 0000000..4a116b1
--- /dev/null
@@ -0,0 +1,58 @@
+From 13290364e7bea54164ab83d973951f2898ad9e23 Mon Sep 17 00:00:00 2001
+From: Stefan Strogin <steils@gentoo.org>
+Date: Sat, 16 May 2020 02:33:37 +0300
+Subject: [PATCH] FFmpegUtilities: replace variable definition with statement
+ expression
+
+It is needed to avoid multiple definitions of AV_GET_CODEC_CONTEXT,
+which is considered as an error with '-fno-common' which is default
+since gcc-10.
+
+Fixes: #511
+
+Upstream-Status: Submitted
+[https://github.com/OpenShot/libopenshot/pull/512]
+Signed-off-by: Stefan Strogin <steils@gentoo.org>
+---
+ include/FFmpegUtilities.h | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/include/FFmpegUtilities.h b/include/FFmpegUtilities.h
+index 62d64df..b4ec951 100644
+--- a/include/FFmpegUtilities.h
++++ b/include/FFmpegUtilities.h
+@@ -163,11 +163,10 @@
+               #define AV_FREE_CONTEXT(av_context) avcodec_free_context(&av_context)
+               #define AV_GET_CODEC_TYPE(av_stream) av_stream->codecpar->codec_type
+               #define AV_FIND_DECODER_CODEC_ID(av_stream) av_stream->codecpar->codec_id
+-              auto AV_GET_CODEC_CONTEXT = [](AVStream* av_stream, AVCodec* av_codec) { \
+-                      AVCodecContext *context = avcodec_alloc_context3(av_codec); \
+-                      avcodec_parameters_to_context(context, av_stream->codecpar); \
+-                      return context; \
+-              };
++              #define AV_GET_CODEC_CONTEXT(av_stream, av_codec) \
++                      ({ AVCodecContext *context = avcodec_alloc_context3(av_codec); \
++                         avcodec_parameters_to_context(context, av_stream->codecpar); \
++                         context; })
+               #define AV_GET_CODEC_PAR_CONTEXT(av_stream, av_codec) av_codec;
+               #define AV_GET_CODEC_FROM_STREAM(av_stream,codec_in)
+               #define AV_GET_CODEC_ATTRIBUTES(av_stream, av_context) av_stream->codecpar
+@@ -199,11 +198,10 @@
+               #define AV_FREE_CONTEXT(av_context) avcodec_free_context(&av_context)
+               #define AV_GET_CODEC_TYPE(av_stream) av_stream->codecpar->codec_type
+               #define AV_FIND_DECODER_CODEC_ID(av_stream) av_stream->codecpar->codec_id
+-              auto AV_GET_CODEC_CONTEXT = [](AVStream* av_stream, AVCodec* av_codec) { \
+-                      AVCodecContext *context = avcodec_alloc_context3(av_codec); \
+-                      avcodec_parameters_to_context(context, av_stream->codecpar); \
+-                      return context; \
+-              };
++              #define AV_GET_CODEC_CONTEXT(av_stream, av_codec) \
++                      ({ AVCodecContext *context = avcodec_alloc_context3(av_codec); \
++                         avcodec_parameters_to_context(context, av_stream->codecpar); \
++                         context; })
+               #define AV_GET_CODEC_PAR_CONTEXT(av_stream, av_codec) av_codec;
+               #define AV_GET_CODEC_FROM_STREAM(av_stream,codec_in)
+               #define AV_GET_CODEC_ATTRIBUTES(av_stream, av_context) av_stream->codecpar
+-- 
+2.26.2
+
diff --git a/media-libs/libopenshot/libopenshot-0.2.5.ebuild b/media-libs/libopenshot/libopenshot-0.2.5.ebuild
new file mode 100644 (file)
index 0000000..840b5fb
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit cmake python-single-r1 toolchain-funcs
+
+DESCRIPTION="Video editing library used by OpenShot"
+HOMEPAGE="https://www.openshot.org/"
+SRC_URI="https://github.com/OpenShot/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0/19"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples +imagemagick +python test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+       dev-libs/jsoncpp:0=
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtmultimedia:5[widgets]
+       >=media-libs/libopenshot-audio-0.2.0:0=
+       net-libs/cppzmq
+       net-libs/zeromq
+       imagemagick? ( >=media-gfx/imagemagick-7:0=[cxx] )
+       media-video/ffmpeg:0=[encode,x264,xvid,vpx,mp3,theora]
+       python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       doc? ( app-doc/doxygen )
+       python? ( dev-lang/swig )
+       test? ( dev-libs/unittest++ )
+"
+
+PATCHES=( ${FILESDIR}/${PN}-0.2.5-gcc10.patch )
+
+check_compiler() {
+       if [[ ${MERGE_TYPE} != binary ]] && ! tc-has-openmp; then
+               eerror "${P} requires a compiler with OpenMP support. Your current"
+               eerror "compiler does not support it. If you use gcc, you can"
+               eerror "re-emerge it with the 'openmp' use flag enabled."
+               die "The current compiler does not support OpenMP"
+       fi
+}
+
+pkg_pretend() {
+       check_compiler
+}
+
+pkg_setup() {
+       check_compiler
+       use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       cmake_src_prepare
+       # https://github.com/OpenShot/libopenshot/issues/17
+       use test || cmake_comment_add_subdirectory tests
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DENABLE_RUBY=OFF # TODO: add ruby support
+               -DENABLE_PYTHON=$(usex python)
+               -DUSE_SYSTEM_JSONCPP=ON
+               $(cmake_use_find_package imagemagick ImageMagick)
+       )
+       use python && mycmakeargs+=(
+               -DPYTHON_EXECUTABLE="${PYTHON}"
+               -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+               -DPYTHON_LIBRARY="$(python_get_library_path)"
+       )
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+       use doc && cmake_build doc
+}
+
+src_test() {
+       cmake_build os_test
+}
+
+src_install() {
+       local DOCS=( AUTHORS README.md doc/HW-ACCEL.md )
+       use examples && DOCS+=( src/examples/ )
+       use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+
+       cmake_src_install
+       use python && python_optimize
+}