From 6f40fedec8600d349d5d9b7eaa7194c19e256c2efe99cf36efc99d0d92e995f0 Mon Sep 17 00:00:00 2001 From: Dave Plater Date: Sat, 4 Aug 2012 11:35:57 +0000 Subject: [PATCH] Accepting request 129640 from home:RedDwarf To subtitute lv2core (SR#129616) OBS-URL: https://build.opensuse.org/request/show/129640 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/lv2?expand=0&rev=1 --- .gitattributes | 23 ++++ .gitignore | 1 + lv2-1.0.0-no_g++.patch | 22 ++++ lv2-1.0.0-underlinking.patch | 21 ++++ lv2-1.0.0.tar.bz2 | 3 + lv2-rpmlintrc | 2 + lv2.changes | 5 + lv2.spec | 208 +++++++++++++++++++++++++++++++++++ 8 files changed, 285 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 lv2-1.0.0-no_g++.patch create mode 100644 lv2-1.0.0-underlinking.patch create mode 100644 lv2-1.0.0.tar.bz2 create mode 100644 lv2-rpmlintrc create mode 100644 lv2.changes create mode 100644 lv2.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/lv2-1.0.0-no_g++.patch b/lv2-1.0.0-no_g++.patch new file mode 100644 index 0000000..bc63ed0 --- /dev/null +++ b/lv2-1.0.0-no_g++.patch @@ -0,0 +1,22 @@ +Index: wscript +=================================================================== +--- wscript.orig ++++ wscript +@@ -21,8 +21,7 @@ top = '.' + out = 'build' + + def options(opt): +- opt.load('compiler_cc') +- opt.load('compiler_cxx') ++ opt.load('compiler_c') + autowaf.set_options(opt) + opt.add_option('--test', action='store_true', default=False, + dest='build_tests', help="Build unit tests") +@@ -46,7 +45,6 @@ def get_subdirs(with_plugins=True): + def configure(conf): + try: + conf.load('compiler_c') +- conf.load('compiler_cxx') + except: + Options.options.build_tests = False + Options.options.no_plugins = True diff --git a/lv2-1.0.0-underlinking.patch b/lv2-1.0.0-underlinking.patch new file mode 100644 index 0000000..15673bd --- /dev/null +++ b/lv2-1.0.0-underlinking.patch @@ -0,0 +1,21 @@ +Index: plugins/eg-amp.lv2/wscript +=================================================================== +--- plugins/eg-amp.lv2/wscript.orig ++++ plugins/eg-amp.lv2/wscript +@@ -37,6 +37,8 @@ def configure(conf): + conf.env['pluginlib_EXT'] = pat[pat.rfind('.'):] + + autowaf.display_msg(conf, "LV2 bundle directory", conf.env['LV2DIR']) ++ ++ conf.check(features='c cprogram', lib=['m'], uselib_store='M') + print('') + + def build(bld): +@@ -74,6 +76,6 @@ def build(bld): + name = 'amp', + target = '%s/amp' % bundle, + install_path = '${LV2DIR}/%s' % bundle, +- uselib = 'LV2CORE', ++ uselib = 'M LV2CORE', + includes = includes) + diff --git a/lv2-1.0.0.tar.bz2 b/lv2-1.0.0.tar.bz2 new file mode 100644 index 0000000..c00a875 --- /dev/null +++ b/lv2-1.0.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:857ec8c1b1f803409e57b84f75b0f8ae7477a9c6bccb4a66220d739e8e39d751 +size 385111 diff --git a/lv2-rpmlintrc b/lv2-rpmlintrc new file mode 100644 index 0000000..36a9e53 --- /dev/null +++ b/lv2-rpmlintrc @@ -0,0 +1,2 @@ +# The documentation explictly says to not split bundles. So even if I don't know what these .c/.h files do I prefer to leave them in the main package +addFilter("lv2.*: E: devel-file-in-non-devel-package .* /usr/lib(64)?/lv2/.*/.*\.[ch]") diff --git a/lv2.changes b/lv2.changes new file mode 100644 index 0000000..f35f298 --- /dev/null +++ b/lv2.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Wed Aug 1 22:55:27 UTC 2012 - reddwarf@opensuse.org + +- The first unified LV2 release + diff --git a/lv2.spec b/lv2.spec new file mode 100644 index 0000000..962bab3 --- /dev/null +++ b/lv2.spec @@ -0,0 +1,208 @@ +# +# spec file for package lv2 +# +# 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/ +# + + +Name: lv2 +Version: 1.0.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 lv2-1.0.0-underlinking.patch http://lv2plug.in/trac/ticket/5 reddwarf@opensuse.org -- Link against needed libraries +Patch0: lv2-1.0.0-underlinking.patch +# PATCH-FIX-UPSTREAM lv2-1.0.0-no_g++.patch http://lv2plug.in/trac/ticket/4 reddwarf@opensuse.org -- We don't need C++ +Patch1: lv2-1.0.0-no_g++.patch +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: pkg-config +BuildRequires: python-rdflib +BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0 +BuildRequires: pkgconfig(sndfile) >= 1.0.0 + +%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} +# 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 example plugins. + +%package docs +Summary: LV2 documentation +Group: Documentation/Other +Requires: %{name} = %{version} + +%description docs +LV2 documentation. + +%prep +%setup -q +%patch0 +%patch1 + +%build +export CFLAGS='%{optflags}' +export CXXFLAGS='%{optflags}' +./waf \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --docdir=%{_defaultdocdir} \ + --docs \ + configure + +# waf only understands -j, so do not use smp_mflags +./waf -v build %{?jobs:-j%jobs} + +%install +./waf install --destdir=%{buildroot} + +%files +%defattr(0644,root,root,0755) +%doc COPYING NEWS README +%exclude %{_defaultdocdir}/lv2/html/ +%{_libdir}/lv2/ +%exclude %{_libdir}/lv2/eg-amp.lv2/ +%exclude %{_libdir}/lv2/eg-sampler.lv2/ + +%files devel +%defattr(0644,root,root,0755) +%{_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-sampler.lv2/ + +%files docs +%defattr(0644,root,root,0755) +%{_defaultdocdir}/lv2/html/ + +%changelog