vamp-plugin-sdk/vamp-plugin-sdk.spec

157 lines
4.8 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package vamp-plugin-sdk
#
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
# Copyright (c) 2020 SUSE LLC
#
# 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.
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
%define _dlver 2691
Name: vamp-plugin-sdk
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
Version: 2.10.0
Release: 0
Summary: An API for audio analysis and feature extraction plugins
License: MIT
Group: Productivity/Multimedia/Sound/Utilities
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
URL: https://www.vamp-plugins.org/
Source0: https://code.soundsoftware.ac.uk/attachments/download/%{_dlver}/%{name}-%{version}.tar.gz
Source1: baselibs.conf
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: graphviz
BuildRequires: help2man
Accepting request 519914 from home:alois:branches:multimedia:libs - Update to version 2.7.1 * Fix inclusion mechanism for FFTs which could cause a host application to crash in certain circumstances due to conflicting versions of C-linkage symbols version 2.7: * Add ability to PluginLoader to list plugins only in (or not in) certain library files * Fix fixed-sample-rate output timestamps in printout from the simple host, and add regression test script using test plugin * Switch the convenience FFT interface for plugin usage from the very slow reference implementation previously provided, to the somewhat faster KissFFT * Add a top-secret compiler flag to switch internal FFTs to single-precision only * Fix some small but long-standing memory leaks and minor bugs version 2.6: * Add a simple C-linkage API for plugin library discovery and loading -- the missing part when trying to use Vamp plugins from C or a language with only C-linkage foreign-function interface * Fix bug in PluginBufferingAdapter reset() function, which failed to reset timestamp rewrites (symptom: timestamps appeared to continue to ascend from end point on next run after a reset) * Fix sometime 1-sample rounding error in PluginInputDomainAdapter * Update build files for more recent OS versions * Add -L option to simple host, as synonym for --list-full * Add a combined Visual C++ solution that includes the plugin SDK, host SDK, example plugins, and simple host projects OBS-URL: https://build.opensuse.org/request/show/519914 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=11
2017-08-31 14:05:44 +02:00
BuildRequires: pkgconfig
BuildRequires: pkgconfig(sndfile)
%description
Vamp is an API for C and C++ plugins that process sampled audio data
to produce descriptive output (measurements or semantic observations).
%package -n libvamp-hostsdk3
Summary: Library for Vamp audio analysis plugin hosts
Group: System/Libraries
%description -n libvamp-hostsdk3
Vamp is an API for C and C++ plugins that process sampled audio data
to produce descriptive output (measurements or semantic observations).
%package -n libvamp-sdk2
Summary: Library for Vamp audio analysis plugins
Group: System/Libraries
%description -n libvamp-sdk2
Vamp is an API for C and C++ plugins that process sampled audio data
to produce descriptive output (measurements or semantic observations).
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
Requires: libvamp-hostsdk3 = %{version}-%{release}
Requires: libvamp-sdk2 = %{version}-%{release}
Requires: pkgconfig
%description devel
The vamp-plugin-sdk-devel package contains documentation examples and
header files for developing applications that use vamp-plugin-sdk.
%prep
%setup -q
sed -i 's|/lib/vamp|/%{_lib}/vamp|g' src/vamp-hostsdk/PluginHostAdapter.cpp
sed -i 's|/lib/|/%{_lib}/|g' src/vamp-hostsdk/PluginLoader.cpp
sed -i 's|$(INSTALL_PREFIX)/lib|@libdir@|g' Makefile.in
%build
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
export CFLAGS="%{optflags} -fPIC -Wall"
export CXXFLAGS="%{optflags} -fPIC -Wall"
%configure
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
%make_build
%install
# fix libdir
find . -name '*.pc.in' -exec sed -i 's|/lib|/%{_lib}|' {} ';'
# The #INSTALL_PREFIX
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
%make_install
#INSTALL_PREFIX=%%{_prefix} LIB=/%%{_lib}
find %{buildroot} -type f -name "*.la" -delete -print
find %{buildroot} -name '*.a' -exec rm -f {} ';'
# Build api html docs
doxygen -u build/Doxyfile
doxygen build/Doxyfile
%fdupes -s doc/html
# Build refman.pdf
#pushd latex && make all
#popd
# Generate man pages with help2man
mkdir -p %{buildroot}%{_mandir}/man1
pushd %{buildroot}%{_mandir}/man1
cp -v %{buildroot}%{_bindir}/* ./
help2man -N --no-discard-stderr \
-o vamp-rdf-template-generator.1 \
./vamp-rdf-template-generator
help2man -N --no-discard-stderr \
-o vamp-simple-host.1 \
./vamp-simple-host
rm vamp-simple-host vamp-rdf-template-generator
popd
# create Makefile for examples
cd examples
echo CXXFLAGS=%{optflags} -fpic >> Makefile
echo bundle: `ls *.o` >> Makefile
echo -e "\t"g++ \$\(CXXFLAGS\) -shared -Wl,-Bsymbolic \
-o vamp-example-plugins.so \
*.o \$\(pkg-config --libs vamp-sdk\) >> Makefile
echo `ls *.cpp`: >> Makefile
echo -e "\t"g++ \$\(CXXFLAGS\) -c $*.cpp >> Makefile
echo clean: >> Makefile
echo -e "\t"-rm *.o *.so >> Makefile
# clean directory up so we can package the sources
make clean
%post -n libvamp-hostsdk3 -p /sbin/ldconfig
%postun -n libvamp-hostsdk3 -p /sbin/ldconfig
%post -n libvamp-sdk2 -p /sbin/ldconfig
%postun -n libvamp-sdk2 -p /sbin/ldconfig
%files -n libvamp-hostsdk3
%{_libdir}/libvamp-hostsdk.so.3*
%files -n libvamp-sdk2
%{_libdir}/libvamp-sdk.so.2*
%files
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
%license COPYING
%doc README
%{_bindir}/vamp-rdf-template-generator
%{_bindir}/vamp-simple-host
Accepting request 832770 from home:alois:branches:multimedia:libs - Update to version 2.10 * Add a method to PluginWrapper, the host-side base for adapters like PluginInputDomainAdapter that modify the processing behaviour of a plugin, that tells it to "disown" the wrapped plugin. The former behaviour, and still the default, is for the wrapper to take ownership of the wrapped plugin. The alternative behaviour makes it easier to mix these classes with some modern C++ styles that use managed pointers version 2.9 * Fix non-thread-safe behaviour in PluginAdapter. Plugins built using the adapter classes in version 2.8 or earlier cannot safely be used simultaneously across threads with other instances of themselves or of other plugins in the same library (i.e. shared object). Hosts have been required to provide synchronisation for such cases. Version 2.9 introduces synchronisation in the plugin, making this usage safe. Unfortunately this does not make host code safe when using older plugin builds, as the problem and its fix are in the plugin side of the SDK. Caution is still required, but this fix does allow updated plugin builds to avoid problems with some existing hosts * Change required C++ language standard from C++98 to C++11. This is because of the use of std::mutex in the above fix version 2.8: * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike the other changes here which are invisible to plugin code, this change can lead to different results in the lowest significant figures from existing plugins if relinked against the newer code * Fix theoretical possibility of integer overflow in RealTime constructor * Fix use of undefined behaviour in PluginRateExtractor - Spec cleanuo OBS-URL: https://build.opensuse.org/request/show/832770 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vamp-plugin-sdk?expand=0&rev=13
2020-09-23 15:21:05 +02:00
%{_mandir}/man1/vamp-rdf-template-generator.1%{?ext_man}
%{_mandir}/man1/vamp-simple-host.1%{?ext_man}
%dir %{_libdir}/vamp
%{_libdir}/vamp
%files devel
%doc rdf/doc doc/html examples
%dir %{_includedir}/vamp
%dir %{_includedir}/vamp-hostsdk
%dir %{_includedir}/vamp-sdk
%{_includedir}/vamp/*
%{_includedir}/vamp-hostsdk/*
%{_includedir}/vamp-sdk/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%changelog