Accepting request 515131 from multimedia:libs

Take control of request again

OBS-URL: https://build.opensuse.org/request/show/515131
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libmlt?expand=0&rev=33
This commit is contained in:
Dominique Leuenberger 2017-08-24 16:48:16 +00:00 committed by Git OBS Bridge
commit 6eea36f26a
8 changed files with 316 additions and 65 deletions

View File

@ -1,3 +1,34 @@
-------------------------------------------------------------------
Sat Aug 5 05:59:16 UTC 2017 - olaf@aepfle.de
- Build with Qt5 unconditional because PackageHub has a recent Qt5
-------------------------------------------------------------------
Thu Jul 13 12:18:18 UTC 2017 - davejplater@gmail.com
- Build with gcc6, fix build failure for 42.2/3 due to movit
building with gcc6.
-------------------------------------------------------------------
Thu Jul 6 22:21:18 UTC 2017 - jengelh@inai.de
- Trim filler wording from descriptions; fix identical
descriptions being used in different subpackages.
-------------------------------------------------------------------
Wed Jul 5 12:29:54 UTC 2017 - klaas.freitag@suse.com
- Add rem_close.patch from upstream that prevents crashes of apps
in some circumstances, as reported on openSUSE ML.
https://github.com/mltframework/mlt/commit/a3188e301b5a9a1f25dbb98a510e366363348e64
-------------------------------------------------------------------
Fri Jun 9 14:06:51 UTC 2017 - davejplater@gmail.com
- Added files for linked package webvfx which provides qmelt needed
by shotcut for video export see boo#1043070. Webvfx has to build
within the mlt sources.
-------------------------------------------------------------------
Tue Feb 21 21:30:37 UTC 2017 - mrueckert@suse.de

View File

@ -34,34 +34,34 @@
Name: %{libname}
Version: 6.4.1
Release: 0
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Multimedia framework for television broadcasting
License: GPL-3.0+
Group: System/Libraries
Group: Development/Libraries/C and C++
Url: http://www.mltframework.org
Source0: https://github.com/mltframework/mlt/archive/v%{version}.tar.gz
Source0: https://github.com/mltframework/mlt/archive/v%{version}.tar.gz#/%{_name}-%{version}.tar.gz
# PATCH-FIX-OPENSUSE libmlt-0.8.2-vdpau.patch reddwarf@opensuse.org -- Make VDPAU support work without the devel package
Patch1: libmlt-0.8.2-vdpau.patch
# PATCH-FIX-UPSTREAM use-recommended-freetype-include.patch -- Freetype upstream recommends using their macros together with
# ft2build include. Positive sideeffect is that this patch makes it build with both freetype2 2.5.1, and older versions
Patch2: use-recommended-freetype-include.patch
Patch3: 6c658e5d8cd11933bf799a2a985aa4b24cfbcb60.patch
# PATCH-FIX-UPSTREAM remove superflous close to avoid crashes in for example kdenlive
Patch4: rem_close.patch
BuildRequires: fdupes
%if 0%{?suse_version} > 1320
BuildRequires: gcc-c++
%else
BuildRequires: gcc6
BuildRequires: gcc6-c++
#!Buildignore: libgcc_s1
%endif
BuildRequires: ladspa-devel
BuildRequires: pkg-config
%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse})
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5Xml)
%else
BuildRequires: pkgconfig(QtCore)
BuildRequires: pkgconfig(QtGui)
BuildRequires: pkgconfig(QtSvg)
BuildRequires: pkgconfig(QtXml)
%endif
BuildRequires: movit-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(frei0r)
@ -75,6 +75,7 @@ BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libquicktime)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(movit)
BuildRequires: pkgconfig(opencv) >= 3.1.0
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangoft2)
@ -100,89 +101,91 @@ BuildRequires: pkgconfig(x11)
%endif
%description
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers. The functionality of the system is
provided via an assortment of tools, XML authoring components, and an
plug-in based API.
%package -n %{libname}%{soname}
Summary: Multimedia framework designed and developed for television broadcasting
Summary: C library API for the MLT multimedia framework
Group: System/Libraries
Recommends: %{libname}%{soname}-data
Recommends: %{libname}%{soname}-modules
%description -n %{libname}%{soname}
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
This subpackage contains the C library API for MLT.
%package devel
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Development files for MLT's C language API
Group: Development/Libraries/C and C++
Requires: %{libname}%{soname} = %{version}
%description devel
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
This subpackage contains the headers to make use of the MLT C API.
%package -n %{libname_pp}%{soname_pp}
Summary: Multimedia framework designed and developed for television broadcasting
Summary: C++ library API for the MLT multimedia framework
Group: System/Libraries
%description -n %{libname_pp}%{soname_pp}
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
This subpackage contains the C++ library API for MLT.
%package -n %{libname_pp}-devel
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Development files for MLT's C++ language API
Group: Development/Libraries/C and C++
Requires: %{libname_pp}%{soname_pp} = %{version}
Requires: %{libname}-devel = %{version}
%description -n %{libname_pp}-devel
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
This subpackage contains the headers to make use of the MLT C++ API.
%package -n melt%{soname}
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Multimedia framework for television broadcasting
Group: Productivity/Multimedia/Video/Editors and Convertors
Requires: melt
%description -n melt%{soname}
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
The functionality of the system is provided via an assortment of
tools, XML authoring components, and an plug-in based API.
%package -n melt
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Multimedia framework for television broadcasting
Group: Productivity/Multimedia/Video/Editors and Convertors
Requires: melt%{soname}
Conflicts: melt > %{version}
Conflicts: melt < %{version}
%description -n melt
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
This subpackage contains a symlink to refer to a specific
version of MLT.
%package -n %{libname}%{soname}-modules
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Modules for the MLT multimedia framework
Group: Productivity/Multimedia/Video/Editors and Convertors
Requires: %{_bindir}/melt
Requires: %{libname}%{soname} = %{version}
@ -196,27 +199,26 @@ Suggests: %(rpm -qf $(readlink -e %{_libdir}/libvdpau.so) --qf '%{NAME}')
%endif
%description -n %{libname}%{soname}-modules
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
The functionality of the system is provided via an assortment of
tools, XML authoring components, and an plug-in based API.
%package -n %{libname}%{soname}-data
Summary: Multimedia framework designed and developed for television broadcasting
Summary: Architecture-independent data files for the MLT multimedia framework
Group: Productivity/Multimedia/Video/Editors and Convertors
Requires: %{libname}%{soname} = %{version}
BuildArch: noarch
%description -n %{libname}%{soname}-data
MLT is an open source multimedia framework, designed and developed for
television broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of applications.
The functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.
MLT is a multimedia framework for television broadcasting. It
provides a toolkit for broadcasters, video editors, media players,
transcoders and web streamers.
%package -n python-%{_name}
Summary: Python bindings for MLT
Summary: Python bindings for the MLT multimedia framework
Group: Development/Languages/Python
BuildRequires: python-devel
BuildRequires: swig
@ -233,6 +235,7 @@ This package is needed to use MLT from Python.
%patch1
%patch2 -p1
%patch3 -p1
%patch4 -p1
# To complement libmlt-0.8.0-vdpau.patch.
# When vdpau support is not compiled it will break the code. Doesn't matter because the code will not be used anyway.
@ -240,6 +243,10 @@ VDPAU_SONAME=$(objdump -p $(readlink -e %{_libdir}/libvdpau.so) | grep SONAME |
sed "s/__VDPAU_SONAME__/${VDPAU_SONAME}/" -i src/modules/avformat/vdpau.c
%build
test -x "$(type -p gcc-6)" && export CC=gcc-6
test -x "$(type -p gcc-7)" && export CC=gcc-7
test -x "$(type -p g++-6)" && export CXX=g++-6
test -x "$(type -p g++-7)" && export CXX=g++-7
%configure \
%ifnarch %{ix86} x86_64
--disable-mmx \

25
rem_close.patch Normal file
View File

@ -0,0 +1,25 @@
From a3188e301b5a9a1f25dbb98a510e366363348e64 Mon Sep 17 00:00:00 2001
From: Dan Dennedy <dan@dennedy.org>
Date: Sun, 19 Feb 2017 12:50:59 -0800
Subject: [PATCH] Allow Mlt::Repository to be deleted without bad side effect.
mlt_repository_close() is run by mlt_factory_close() when called either
directly, which requires all Mlt objects to be destroyed prior, or
atexit().
---
src/mlt++/MltRepository.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/mlt++/MltRepository.cpp b/src/mlt++/MltRepository.cpp
index 47a598bc..45522e40 100644
--- a/src/mlt++/MltRepository.cpp
+++ b/src/mlt++/MltRepository.cpp
@@ -35,8 +35,6 @@ Repository::Repository( mlt_repository repository ) :
Repository::~Repository( )
{
- if ( instance )
- mlt_repository_close( instance );
instance = NULL;
}

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:86555a5e96a71a7b7d7cf6f80bf7a6fdb3bfbaa68742567400a69db2f6558a3e
size 239423

View File

@ -0,0 +1,11 @@
Index: webvfx-e918ce4667e623c3d60735cb898223e730c6d7af/webvfx/webvfx.pro
===================================================================
--- webvfx-e918ce4667e623c3d60735cb898223e730c6d7af/webvfx/webvfx.pro.orig 2016-08-23 20:36:10.000000000 +0200
+++ webvfx-e918ce4667e623c3d60735cb898223e730c6d7af/webvfx/webvfx.pro 2017-06-08 13:45:28.132171602 +0200
@@ -47,5 +47,5 @@ QT += opengl quick
TARGET = webvfx
-target.path = $$PREFIX/lib
+target.path = $$PREFIX/$$WLIB
INSTALLS += target

20
webvfx.changes Normal file
View File

@ -0,0 +1,20 @@
-------------------------------------------------------------------
Thu Jul 6 22:21:18 UTC 2017 - jengelh@inai.de
- Trim filler wording from descriptions; fix identical
descriptions being used in different subpackages.
- Cure "useless use of cat" (`ls -1`) by replacing with just *.
-------------------------------------------------------------------
Sun Jun 11 09:35:09 UTC 2017 - davejplater@gmail.com
- Added man pages for binaries.
-------------------------------------------------------------------
Thu Jun 8 05:18:03 UTC 2017 - davejplater@gmail.com
- Created initial package version 0.44+git20160823 from current
git rev: e918ce4667e623c3d60735cb898223e730c6d7af needed by
shotcut. See boo#1043070
- Added webvfx-versioned-libdir.patch to enable arch dependent
library directory install

154
webvfx.spec Normal file
View File

@ -0,0 +1,154 @@
#
# spec file for package webvfx
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define _name mlt
%define mltversion 6.4.1
%define sover 1
%define mltmaj %(echo %{mltversion} |cut -d "." -f 1)
# Find qt version used to build
%define qt5version %(pkg-config --modversion Qt5Core)
%define _rev e918ce4667e623c3d60735cb898223e730c6d7af
Name: webvfx
Version: 0.44+git20160823
Release: 0
Summary: Video effects engine based on web technologies
License: BSD-3-Clause
Group: Productivity/Multimedia/Video/Editors and Convertors
Url: https://github.com/mltframework/webvfx
Source0: %{_name}-%{mltversion}.tar.gz
# This is needed by shotcut and will only build within the mlt sources.
Source1: https://github.com/mltframework/webvfx/archive/%{_rev}.tar.gz#/webvfx-%{version}.tar.gz
#PATCH-FIX-UPSTREAM webvfx-versioned-libdir.patch davejplater@gmail.com -- install webvfx lib in versioned _libdir
Patch4: webvfx-versioned-libdir.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: help2man
BuildRequires: pkg-config
BuildRequires: pkgconfig(Qt5Core) >= 5.5.0
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(Qt5WebKitWidgets)
BuildRequires: pkgconfig(Qt5WebKitWidgets)
BuildRequires: pkgconfig(Qt5WebSockets)
BuildRequires: pkgconfig(Qt5WebSockets)
BuildRequires: pkgconfig(mlt++)
BuildRequires: pkgconfig(mlt-framework)
#Requires:
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
WebVfx is a video effects library that allows effects to be
implemented using WebKit HTML or Qt QML.
%package -n libwebvfx%{sover}
Summary: Video effects engine based on web technologies
Group: System/Libraries
%description -n libwebvfx%{sover}
WebVfx is a video effects library that allows effects to be
implemented using WebKit HTML or Qt QML.
%package devel
Summary: Video effects engine based on web technologies
Group: Development/Libraries/C and C++
Requires: libwebvfx%{sover} = %{version}
%description devel
WebVfx is a video effects library that allows effects to be
implemented using WebKit HTML or Qt QML. This package contains
the development library link.
%package module
Summary: Webvfx module for MLT
Group: Productivity/Multimedia/Video/Editors and Convertors
%description module
A module plugin for the MLT multimedia framework.
%package -n qmelt
Summary: A Melt that works with webvfx
Group: Productivity/Multimedia/Video/Editors and Convertors
%description -n qmelt
MLT is a multimedia framework, designed and developed for television
broadcasting. It provides a toolkit for broadcasters, video editors,
media players, transcoders, web streamers and many more types of
applications. The functionality of the system is provided via an
assortment of tools, XML authoring components, and an plug-in based API.
%prep
%setup -q -n %{_name}-%{mltversion} -a 1
%patch4
%build
pushd webvfx-%{_rev}
%qmake5 \
QMAKE_STRIP="" \
MLT_SOURCE="%{_builddir}/%{_name}-%{mltversion}/" \
WLIB=%{_lib} \
PREFIX="%{_prefix}" -Wall -recursive
make %{_smp_mflags} VERBOSE=1
popd
%install
pushd webvfx-%{_rev}
%qmake5_install
popd
#Add webvfx module to versioned mlt module directory
mv %{buildroot}%{_libdir}/mlt %{buildroot}%{_libdir}/mlt-%{mltmaj}
chmod 0755 %{buildroot}%{_bindir}/*
#Create man pages for executables.
mkdir -p %{buildroot}%{_mandir}/man1
pushd %{buildroot}%{_bindir}
for i in *; do
help2man -N --no-discard-stderr ./${i} -o %{buildroot}%{_mandir}/man1/${i}.1
done
popd
%post -n libwebvfx%{sover} -p /sbin/ldconfig
%postun -n libwebvfx%{sover} -p /sbin/ldconfig
%files
%defattr(0755, root, root, 0755)
%{_bindir}/webvfx*
%{_mandir}/man1/webvfx*
%files module
%defattr(0755, root, root, 0755)
%{_libdir}/mlt-%{mltmaj}/
%files -n libwebvfx%{sover}
%defattr(0755, root, root, 0755)
%{_libdir}/libwebvfx.so.*
%files devel
%defattr(0755, root, root, 0755)
%{_libdir}/libwebvfx.so
%files -n qmelt
%defattr(0755, root, root, 0755)
%{_bindir}/qmelt
%{_mandir}/man1/qmelt*
%changelog