# # spec file for package libmlt # # Copyright (c) 2012 SUSE LINUX Products 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/ # %bcond_with ffmpeg %define _name mlt %define libname lib%{_name} %define soname 5 %define _name_pp %{_name}++ %define libname_pp lib%{_name_pp} %define soname_pp 3 Name: %{libname} Version: 0.8.6 Release: 0 Summary: Multimedia framework designed and developed for television broadcasting License: GPL-3.0+ Group: System/Libraries Url: http://%{_name}.sourceforge.net/ Source0: http://downloads.sourceforge.net/project/%{_name}/%{_name}/%{_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 libmlt-0.8.0-vdpau.patch sf#3555214 reddwarf@opensuse.org -- Install modules and data in versioned directories Patch2: libmlt-0.8.0-versioned_dirs.patch BuildRequires: gcc-c++ BuildRequires: ladspa-devel BuildRequires: pkg-config BuildRequires: pkgconfig(QtCore) BuildRequires: pkgconfig(QtGui) BuildRequires: pkgconfig(QtSvg) BuildRequires: pkgconfig(QtXml) BuildRequires: pkgconfig(frei0r) BuildRequires: pkgconfig(gdk-2.0) BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(libdv) BuildRequires: pkgconfig(libquicktime) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangoft2) BuildRequires: pkgconfig(samplerate) BuildRequires: pkgconfig(sdl) BuildRequires: pkgconfig(sox) BuildRequires: pkgconfig(vorbisfile) %if %{with ffmpeg} BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(vdpau) # VDPAU support requires it 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. %package -n %{libname}%{soname} Summary: Multimedia framework designed and developed for television broadcasting 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. %package devel Summary: Multimedia framework designed and developed for television broadcasting 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. %package -n %{libname_pp}%{soname_pp} Summary: Multimedia framework designed and developed for television broadcasting 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. %package -n %{libname_pp}-devel Summary: Multimedia framework designed and developed for television broadcasting 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. %package -n melt%{soname} Summary: Multimedia framework designed and developed 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. %package -n melt Summary: Multimedia framework designed and developed 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. %package -n %{libname}%{soname}-modules Summary: Multimedia framework designed and developed for television broadcasting Group: Productivity/Multimedia/Video/Editors and Convertors Requires: %{_bindir}/melt Requires: %{libname}%{soname} = %{version} Recommends: frei0r-plugins %if %{with ffmpeg} Provides: mlt(%{soname})(avformat) # I would recommend it, but to the best of my knowledge nobody but nvidia provides a backend 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. %package -n %{libname}%{soname}-data Summary: Multimedia framework designed and developed for television broadcasting 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. %package -n python-%{_name} Summary: Python bindings for MLT Group: Development/Languages/Python BuildRequires: python-devel BuildRequires: swig Requires: %{libname_pp}%{soname_pp} >= %{version} Requires: %{libname}%{soname} >= %{version} %{py_requires} Provides: python-%{_name}%{soname} %description -n python-%{_name} This package is needed to use MLT from Python. %prep %setup -q -n %{_name}-%{version} %patch1 %patch2 # 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. VDPAU_SONAME=$(objdump -p $(readlink -e %{_libdir}/libvdpau.so) | grep SONAME | sed 's/.*SONAME.* //' | tr -d '\n') sed "s/__VDPAU_SONAME__/${VDPAU_SONAME}/" -i src/modules/avformat/vdpau.c %build %configure \ %ifnarch %{ix86} x86_64 --disable-mmx \ --disable-sse \ --disable-sse2 \ %endif --enable-gpl --enable-gpl3 \ %ifarch i586 --disable-mmx \ %endif %if %{with ffmpeg} --avformat-vdpau \ %endif --swig-languages=python make %{?_smp_mflags} %install %make_install install -Dpm 0644 docs/melt.1 %{buildroot}%{_mandir}/man1/melt%{soname}.1 ln -s melt%{soname}.1 %{buildroot}%{_mandir}/man1/melt.1 install -Dpm 0644 src/swig/python/_%{_name}.so '%{buildroot}%{python_sitearch}/_%{_name}.so' install -Dpm 0644 src/swig/python/%{_name}.py '%{buildroot}%{python_sitearch}/%{_name}.py' # Get the modules that need data for MODULE in %{buildroot}%{_libdir}/mlt-%{soname}/libmlt*.so; do echo $MODULE MODULEDIR=%{_datadir}/mlt-%{soname}/$(echo $MODULE | sed 's|%{buildroot}%{_libdir}/mlt-%{soname}/libmlt\(.*\).so|\1|') echo $MODULEDIR if [ -e %{buildroot}$MODULEDIR ]; then echo Done $MODULEDIR echo $MODULEDIR >> module_data.dirs fi; done # Pure data modules for MODULE in feeds lumas; do echo %{_datadir}/mlt-%{soname}/$MODULE >> module_data.dirs done # kdenlive links directly to libmlt, but then uses melt to do the rendering. If # the melt binary is linked against a different libmlt with a different formats # support things can get confusing. mv %{buildroot}/%{_bindir}/melt %{buildroot}/%{_bindir}/melt%{soname} ln -s melt%{soname} %{buildroot}/%{_bindir}/melt %post -n %{libname}%{soname} -p /sbin/ldconfig %postun -n %{libname}%{soname} -p /sbin/ldconfig %post -n %{libname_pp}%{soname_pp} -p /sbin/ldconfig %postun -n %{libname_pp}%{soname_pp} -p /sbin/ldconfig %files -n %{libname}%{soname} %defattr(0644, root, root, 0755) %doc AUTHORS ChangeLog COPYING GPL GPLv3 NEWS README %{_libdir}/lib%{_name}.so.%{soname} %{_libdir}/lib%{_name}.so.%{version} %files devel %defattr(0644, root, root, 0755) %{_libdir}/lib%{_name}.so %{_includedir}/%{_name} %{_libdir}/pkgconfig/%{_name}-framework.pc %files -n %{libname_pp}%{soname_pp} %defattr(0644, root, root, 0755) %{_libdir}/lib%{_name_pp}.so.%{soname_pp} %{_libdir}/lib%{_name_pp}.so.%{version} %files -n %{libname_pp}-devel %defattr(0644, root, root, 0755) %{_libdir}/lib%{_name_pp}.so %{_includedir}/%{_name_pp} %{_libdir}/pkgconfig/%{_name_pp}.pc %files -n melt%{soname} %defattr(0644, root, root, 0755) %attr(0755, root, root) %{_bindir}/melt%{soname} %{_mandir}/man1/melt%{soname}.1%{ext_man} %files -n melt %defattr(0644, root, root, 0755) %attr(0755, root, root) %{_bindir}/melt %{_mandir}/man1/melt.1%{ext_man} %files -n %{libname}%{soname}-modules -f module_data.dirs %defattr(0644, root, root, 0755) %{_libdir}/%{_name}-%{soname}/ %dir %{_datadir}/%{_name}-%{soname}/ %files -n %{libname}%{soname}-data %defattr(0644, root, root, 0755) %dir %{_datadir}/%{_name}-%{soname}/ %{_datadir}/%{_name}-%{soname}/metaschema.yaml %{_datadir}/%{_name}-%{soname}/profiles/ %{_datadir}/%{_name}-%{soname}/presets/ %files -n python-%{_name} %defattr(0644, root, root, 0755) %{python_sitearch}/_%{_name}.so %{python_sitearch}/%{_name}.py %changelog