Dave Plater
84d0759336
fix .pc files OBS-URL: https://build.opensuse.org/request/show/478823 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/lv2?expand=0&rev=16
247 lines
10 KiB
RPMSpec
247 lines
10 KiB
RPMSpec
#
|
|
# spec file for package lv2
|
|
#
|
|
# 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/
|
|
#
|
|
|
|
|
|
# Documentation doesn't build for less than Tumbleweed
|
|
%if 0%{suse_version} > 1320
|
|
%define asciidocs 1
|
|
%else
|
|
%define asciidocs 0
|
|
%endif
|
|
|
|
Name: lv2
|
|
Version: 1.14.0
|
|
Release: 0
|
|
Summary: Portable plugin standard for audio systems
|
|
License: ISC
|
|
Group: System/Libraries
|
|
Url: http://lv2plug.in/
|
|
Source0: http://lv2plug.in/spec/lv2-%{version}.tar.bz2
|
|
Source1: lv2-rpmlintrc
|
|
# Patch-Fix-Upstream lv2pkgconfig.patch davejplater@gmail.com -- Add "/" to end of -I directory because otherwise pkg-config outputs nothing.
|
|
Patch0: lv2pkgconfig.patch
|
|
BuildRequires: pkg-config
|
|
BuildRequires: python-rdflib
|
|
BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0
|
|
BuildRequires: pkgconfig(sndfile) >= 1.0.0
|
|
%if %{asciidocs} == 1
|
|
# Documentation build requirements.
|
|
BuildRequires: asciidoc
|
|
BuildRequires: doxygen
|
|
BuildRequires: graphviz
|
|
BuildRequires: python-Pygments
|
|
%endif
|
|
|
|
%description
|
|
LV2 is a portable plugin standard for audio systems, similar in scope to LADSPA,
|
|
VST, AU, and others. It defines a C API for code and a format for data files
|
|
which collectively describe a plugin. LV2 consists of a simple core (roughly
|
|
equivalent in power to LADSPA) which can be extended to support more advanced
|
|
functionality. This allows the interface to be "grown" to accommodate the needs
|
|
of real software as they arise.
|
|
|
|
LV2 is both a stable interface and a forward-moving project: there is a stable
|
|
set of "official" extensions in use while new functionality is actively
|
|
developed. Anyone can extend LV2, which allows developers to try out new ideas
|
|
and ensure they work in practice. Good extensions are vetted by the community
|
|
and included in the official distribution so they can be relied on to be widely
|
|
supported. This open development model means developers can always scratch their
|
|
itch without a central authority getting in the way. The current stable release
|
|
includes most functionality required by modern plugins, including:
|
|
|
|
* Audio, control, "control voltage" (audio-rate control), and event
|
|
(e.g. MIDI) input and output
|
|
* Expressive open-ended port metadata, including:
|
|
- "Meaningful" controls (e.g. gain or envelope attack) allowing intelligent
|
|
host control or UI generation
|
|
- Control units (e.g. Hz, octaves, dB)
|
|
- Multi-channel port groups (e.g. stereo, 5.1 surround, ambisonics
|
|
* Embeddable GUIs in any toolkit, with support for a full plugin/UI split
|
|
(including network transparency in capable hosts)
|
|
* Ability to bundle any files (e.g. samples or impulses) with plugins
|
|
* Presets (bundled and/or user saved)
|
|
* Plugin state saving and restoring
|
|
* Host-managed logging
|
|
* Non-realtime plugin worker methods (simple and portable host-managed
|
|
threading)
|
|
* Message-based plugin communication, allowing plugins/UIs to have advanced
|
|
interfaces without host support or specifications getting in the way
|
|
* Transport awareness, both real time and tempo time (bars, beats, etc-.)
|
|
|
|
LV2 has graceful compatibility "baked in": for example, a simple amplifier
|
|
plugin might have audio in/out with a gain control, and function in any host.
|
|
The same plugin could have a fancy GUI and transport awareness which optionally
|
|
work in hosts that support these features. Conversely, hosts know not to load
|
|
plugins that require features it does not support.
|
|
|
|
See the specification index for complete documentation. If you are a host or
|
|
plugin author and need missing functionality, please file a ticket or let us
|
|
know your requirements on the mailing list. LV2 is a community project that
|
|
depends on your feedback to improve - unknown requirements are unmet
|
|
requirements!
|
|
|
|
%package devel
|
|
Summary: Development files for LV2
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-examples = %{version}
|
|
# It actually replaces the old lv2core-devel package. But since the versioning
|
|
# went crazy (from 6.0 to 1.0.0) and nothing actually ever required it better to
|
|
# avoid the provides/obsoletes. We may want to split this and create a new
|
|
# lv2core-devel package in the future (but we need a rpm depenency extractor for
|
|
# LV2 bundles).
|
|
#Provides: lv2core-devel
|
|
#Obsoletes: lv2core-devel
|
|
|
|
%description devel
|
|
LV2 is a portable plugin standard for audio systems, similar in scope to LADSPA,
|
|
VST, AU, and others. It defines a C API for code and a format for data files
|
|
which collectively describe a plugin. LV2 consists of a simple core (roughly
|
|
equivalent in power to LADSPA) which can be extended to support more advanced
|
|
functionality. This allows the interface to be "grown" to accommodate the needs
|
|
of real software as they arise.
|
|
|
|
LV2 is both a stable interface and a forward-moving project: there is a stable
|
|
set of "official" extensions in use while new functionality is actively
|
|
developed. Anyone can extend LV2, which allows developers to try out new ideas
|
|
and ensure they work in practice. Good extensions are vetted by the community
|
|
and included in the official distribution so they can be relied on to be widely
|
|
supported. This open development model means developers can always scratch their
|
|
itch without a central authority getting in the way. The current stable release
|
|
includes most functionality required by modern plugins, including:
|
|
|
|
* Audio, control, "control voltage" (audio-rate control), and event
|
|
(e.g. MIDI) input and output
|
|
* Expressive open-ended port metadata, including:
|
|
- "Meaningful" controls (e.g. gain or envelope attack) allowing intelligent
|
|
host control or UI generation
|
|
- Control units (e.g. Hz, octaves, dB)
|
|
- Multi-channel port groups (e.g. stereo, 5.1 surround, ambisonics
|
|
* Embeddable GUIs in any toolkit, with support for a full plugin/UI split
|
|
(including network transparency in capable hosts)
|
|
* Ability to bundle any files (e.g. samples or impulses) with plugins
|
|
* Presets (bundled and/or user saved)
|
|
* Plugin state saving and restoring
|
|
* Host-managed logging
|
|
* Non-realtime plugin worker methods (simple and portable host-managed
|
|
threading)
|
|
* Message-based plugin communication, allowing plugins/UIs to have advanced
|
|
interfaces without host support or specifications getting in the way
|
|
* Transport awareness, both real time and tempo time (bars, beats, etc-.)
|
|
|
|
LV2 has graceful compatibility "baked in": for example, a simple amplifier
|
|
plugin might have audio in/out with a gain control, and function in any host.
|
|
The same plugin could have a fancy GUI and transport awareness which optionally
|
|
work in hosts that support these features. Conversely, hosts know not to load
|
|
plugins that require features it does not support.
|
|
|
|
See the specification index for complete documentation. If you are a host or
|
|
plugin author and need missing functionality, please file a ticket or let us
|
|
know your requirements on the mailing list. LV2 is a community project that
|
|
depends on your feedback to improve - unknown requirements are unmet
|
|
requirements!
|
|
|
|
%package examples
|
|
Summary: LV2 example plugins
|
|
Group: Productivity/Multimedia/Sound/Editors and Convertors
|
|
Requires: %{name} = %{version}
|
|
|
|
%description examples
|
|
LV2 is a portable plugin standard for audio systems, similar in scope to LADSPA,
|
|
VST, AU, and others. It defines a C API for code and a format for data files
|
|
which collectively describe a plugin. LV2 consists of a simple core (roughly
|
|
equivalent in power to LADSPA) which can be extended to support more advanced
|
|
functionality. This allows the interface to be "grown" to accommodate the needs
|
|
of real software as they arise.
|
|
This package contains LV2 example plugins.
|
|
|
|
%if %{asciidocs} == 1
|
|
%package docs
|
|
Summary: LV2 documentation
|
|
Group: Documentation/Other
|
|
Requires: %{name} = %{version}
|
|
|
|
%description docs
|
|
LV2 is a portable plugin standard for audio systems, similar in scope to LADSPA,
|
|
VST, AU, and others. It defines a C API for code and a format for data files
|
|
which collectively describe a plugin. LV2 consists of a simple core (roughly
|
|
equivalent in power to LADSPA) which can be extended to support more advanced
|
|
functionality. This allows the interface to be "grown" to accommodate the needs
|
|
of real software as they arise.
|
|
This package contains api LV2 documentation.
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch0
|
|
|
|
%build
|
|
export CFLAGS='%{optflags}'
|
|
export CXXFLAGS='%{optflags}'
|
|
./waf configure -v \
|
|
--prefix=%{_prefix} \
|
|
--lv2dir=%{_libdir}/%{name} \
|
|
--libdir=%{_libdir} \
|
|
--docdir=%{_defaultdocdir} \
|
|
%if %{asciidocs} == 1
|
|
--docs \
|
|
%endif
|
|
--debug
|
|
|
|
./waf %{?_smp_mflags} -vvv build
|
|
|
|
%install
|
|
./waf install --lv2dir=%{_libdir}/%{name} --destdir=%{buildroot}
|
|
%if %{asciidocs} == 1
|
|
mv -t . %{buildroot}%{_defaultdocdir}/lv2/lv2plug.in
|
|
%endif
|
|
|
|
%files
|
|
%defattr(0644,root,root,0755)
|
|
%doc COPYING NEWS README.md
|
|
%{_libdir}/lv2/
|
|
%exclude %{_libdir}/lv2/eg-amp.lv2/
|
|
%exclude %{_libdir}/lv2/eg-metro.lv2/
|
|
%exclude %{_libdir}/lv2/eg-midigate.lv2/
|
|
%exclude %{_libdir}/lv2/eg-sampler.lv2/
|
|
%exclude %{_libdir}/lv2/eg-scope.lv2/
|
|
|
|
%files devel
|
|
%defattr(0644,root,root,0755)
|
|
%attr(0755,root,root) %{_bindir}/lv2specgen.py
|
|
%{_datadir}/lv2specgen
|
|
%{_includedir}/lv2.h
|
|
%{_includedir}/lv2/
|
|
%{_libdir}/pkgconfig/lv2.pc
|
|
%{_libdir}/pkgconfig/lv2core.pc
|
|
|
|
%files examples
|
|
%defattr(0644,root,root,0755)
|
|
%{_libdir}/lv2/eg-amp.lv2/
|
|
%{_libdir}/lv2/eg-metro.lv2/
|
|
%{_libdir}/lv2/eg-midigate.lv2/
|
|
%{_libdir}/lv2/eg-sampler.lv2/
|
|
%{_libdir}/lv2/eg-scope.lv2/
|
|
|
|
%if %{asciidocs} == 1
|
|
%files docs
|
|
%defattr(0644,root,root,0755)
|
|
%doc lv2plug.in/
|
|
%endif
|
|
|
|
%changelog
|