commit e347c679349ff6c3fb0962bdee2bdfdad0f77a72ba8bc96a1a49215da3b7ba17 Author: Adrian Schröter Date: Fri May 3 16:27:29 2024 +0200 Sync from SUSE:SLFO:Main lv2 revision d0de51c0cc509bb49e542b084001edc7 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/001-lv2-docdir.patch b/001-lv2-docdir.patch new file mode 100644 index 0000000..1b1e8ea --- /dev/null +++ b/001-lv2-docdir.patch @@ -0,0 +1,11 @@ +--- meson.build.orig 2022-09-10 03:27:03.000000000 +1000 ++++ meson.build 2022-12-26 15:51:33.806909081 +1000 +@@ -11,7 +11,7 @@ + 'c_std=c99', + ]) + +-lv2_docdir = get_option('datadir') / 'doc' / 'lv2' ++lv2_docdir = get_option('datadir') / 'doc' / 'packages' / 'lv2' + lv2_source_root = meson.current_source_dir() + lv2_build_root = meson.current_build_dir() + diff --git a/lv2-1.18.10.tar.xz b/lv2-1.18.10.tar.xz new file mode 100644 index 0000000..872c1ec --- /dev/null +++ b/lv2-1.18.10.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78c51bcf21b54e58bb6329accbb4dae03b2ed79b520f9a01e734bd9de530953f +size 237380 diff --git a/lv2.changes b/lv2.changes new file mode 100644 index 0000000..af480f6 --- /dev/null +++ b/lv2.changes @@ -0,0 +1,312 @@ +------------------------------------------------------------------- +Tue May 2 11:01:08 UTC 2023 - Dominique Leuenberger + +- Do not buildrequire cmake: the build uses meson. + +------------------------------------------------------------------- +Mon Dec 26 06:31:00 UTC 2022 - Konstantin Voinov + +- switch to meson +- Update to 1.18.10 + * add 001-lv2-docdir.patch + * remove old patches: lv2pkgconfig.patch build-with-python3.patch + * set noarch for docs + + 1.18.10 changes: + + * Fix includedir in pkg-config file + * Fix missing example plugin UI binaries + * Only install lv2specgen when required Python modules are found + * Replace change history data with a plain text NEWS file + + 1.18.8 changes: + + * Fix documentation build with Python 3.7 + * Fix documentation build with meson 0.56.2 + * Fix lv2.h missing from installation + * eg-midigate: Fix output timing + * eg-sampler: Add resampling via libsamplerate + * eg-sampler: Fix potentially corrupt notification events + * lv2core: Fix inconsistent plugin class labels + * lv2specgen: Fix installed data paths + + 1.18.6 changes: + + * Add dark mode style for documentation + * Clean up and modernize Python support code + * Fix or avoid new compiler and tool warnings + * Rearrange source tree to be directly usable by dependants + * Remove archaic properties from foaf vocabulary + * Replace canonical dcs ontology with a minimal version for LV2 + * Separate API headers from data + * Switch to Meson build system + +------------------------------------------------------------------- +Sun Jun 5 00:26:48 UTC 2022 - Dirk Müller + +- update to 1.18.4: + * Fix build issues with newer toolchains. + * Fix spelling errors. + * atom: Fix spelling errors. + * patch: Fix spelling errors. + * patch: Fix type and range of patch:value. + * patch: Make the type of patch:wildcard more precise. + * state: Fix spelling errors. + * ui: Deprecate ui:resize. + * ui: Fix spelling errors. + +------------------------------------------------------------------- +Fri Feb 5 00:41:59 UTC 2021 - Simon Lees + +- Big ugly patch to force waf to use python3 everywhere, python2 + is no longer available for build in SLE core + * build-with-python3.patch + +------------------------------------------------------------------- +Sun Jan 24 17:54:25 UTC 2021 - Dirk Müller + +- update to 1.18.2: + * Various code cleanups and infrastructure improvements. + * eg-sampler: Save and restore gain parameter value. + * state: Fix state:StateChanged URI in metadata and documentation. + +------------------------------------------------------------------- +Thu Nov 26 12:22:00 UTC 2020 - Martin Liška + +- Update rpmlintrc format to work with rpmlint2. + +------------------------------------------------------------------- +Wed Oct 7 08:23:41 UTC 2020 - Luigi Baldoni + +- Update to version 1.18.0 + * Improve documentation. + * Separate extended documentation from primary data. + * core: Add lv2:Markdown datatype. + * core: Deprecate lv2:reportsLatency. + * patch: Fix incorrect type of patch:sequenceNumber. + * port-groups: Remove incorrect type of pg:letterCode. + * port-groups: Replace broken links with detailed Ambisonic + channel descriptions. + * state: Add state:freePath feature. + * ui: Add ui:requestValue feature. + * ui: Add ui:scaleFactor, ui:foregroundColor, and + ui:backgroundColor properties. + * ui: Deprecate ui:binary. + * worker: Improve documentation. + +------------------------------------------------------------------- +Sun Dec 8 09:36:46 UTC 2019 - Dave Plater + +- Build Leap with python2 + +------------------------------------------------------------------- +Wed Dec 4 08:05:16 UTC 2019 - Dave Plater + +- Update to release 1.16.0 +- Rebase lv2pkgconfig.patch, lv2core.pc is no longer built. +- Remove incorporated reproducible.patch. +- Use python3 +- Upstream changes: + *Aggressively deprecate uri-map and event extensions. + *Add lv2_validate utility. + *eg-midigate: Respond to "all notes off" MIDI message. + *eg-sampler: Add waveform display to UI. + *Add core/attributes.h utility header. + *Upgrade build system and fix building with Python 3.7. + *Install headers to simpler paths. + *Simplify use of lv2specgen. + *atom: Add lv2_atom_object_get_typed() for easy type-safe access. + to object properties. + *core: Add lv2:MIDIPlugin class. + *core: Rework port restrictions so that presets can be validated. + *midi: Fix incorrect range of midi:chunk. + *options: Relax range of opts:requiredOption and + opts:supportedOption + *patch: Add patch:context property. + *patch: Add patch:accept property. + *state: Add state:StateChanged for notification events. + *time: Clarify time:beat origin. + *units: Fix outdated port description in documentation. + *units: Remove overly restrictive domain from units:unit. + +------------------------------------------------------------------- +Mon Jul 9 19:36:47 UTC 2018 - bwiedemann@suse.com + +- Add reproducible.patch to make lv2 package build reproducible (boo#1047218) + +------------------------------------------------------------------- +Wed Mar 21 13:09:17 UTC 2018 - dimstar@opensuse.org + +- Don't require lv2-examples by the devel project: the examples can + be handy, but are not needed to build other stuff. + +------------------------------------------------------------------- +Wed Mar 15 12:00:39 UTC 2017 - jengelh@inai.de + +- Trim irrelevant parts from description. + +------------------------------------------------------------------- +Sun Mar 12 10:05:27 UTC 2017 - davejplater@gmail.com + +- Update 1.14.0 stable +- Added lv2pkgconfig.patch to fix .pc files. +- Upstream changes: + * eg-sampler: Support thread-safe state restoration. + * eg-sampler: Fix handling of state file paths. + * eg-scope: Don't feed back UI state updates. + * lv2core: Add lv2_util.h with lv2_features_data() and + lv2_features_query(). + * lv2core: Add lv2:enabled designation. + * buf-size: Add bufsz:nominalBlockLength option. + * buf-size: Add bufsz:coarseBlockLength feature. + * log: Add lv2_log_logger_set_map() for changing the URI map of + an existing logger. + * state: Add LV2_STATE_ERR_NO_SPACE status flag. + * state: Add state:threadSafeRestore feature for dropout-free + state restoration. + * time: Define LV2_TIME_PREFIX. + * worker: Improve documentation. + * ui: Improve documentation. + * ui: Add missing property labels. + +------------------------------------------------------------------- +Sun Dec 13 17:30:45 UTC 2015 - davejplater@gmail.com + +- Update to lv2 (1.12.0) stable. +- Disable documentation build for less than Tumbleweed, +- Upstream changes: + *Fix merging of version histories in specification documentation + *eg-sampler: Support patch:Get, and request initial state from UI + *Simplify property restrictions by removing redundancy. + *eg-sampler: Add gain parameter. + *Improve API documentation. + *lv2core: Add extern C and visibility attribute to LV2_SYMBOL_EXPORT + *lv2core: Add lv2:isSideChain port property. + *lv2core: Relax domain of lv2:minimum lv2:maximum and lv2:default + so they can be used to describe properties/parameters as well. + *parameters: Add range to parameters so hosts know how to control them. + *patch: Define patch:Get with no subject to implicitly apply to + reciever. This can be used by UIs to get an initial description + of a plugin. + *patch: Add patch:Copy method. + *units: Add lv2:Parameter to domain of units:unit. + *units: Fix non-existent port type in examples. + +------------------------------------------------------------------- +Fri Jan 9 00:02:55 UTC 2015 - ecsos@opensuse.org + +- Update to 1.10.0 + * Upgrade to waf 1.7.16. + * lv2specgen: Display deprecated warning on classes + marked owl:deprecated. + * Fix -Wconversion warnings in headers. + * lv2core: Clarify lv2_descriptor() and lv2_lib_descriptor() + documentation. + * atom: Add lv2_atom_sequence_clear() and + lv2_atom_sequence_append_event() helper functions. + * atom: Add lv2_atom_forge_is_object_type() and + lv2_atom_forge_is_blank() to ease backwards compatibility. + * atom: Deprecate Blank and Resource in favour of just Object. + * atom: Add lv2_atom_forge_key() for terser object writing. + * event: Minor documentation improvements. + * patch: Add patch:sequenceNumber for associating replies with + requests. + * ui: Fix identifier typos in documentation. + * ui: Add show interface so UIs can gracefully degrade to + separate windows if hosts can not use their widget directly. + +------------------------------------------------------------------- +Tue Nov 11 11:51:45 UTC 2014 - olaf@aepfle.de + +- Fix build in SLE_11 + cairo is too old for scope files + doc macro behaves different + +------------------------------------------------------------------- +Fri Jul 11 16:53:57 UTC 2014 - reddwarf@opensuse.org + +- Update to 1.8.0 + * Install lv2specgen for use by other projects. + * lv2specgen: Fix links to externally defined terms. + * Add scope example plugin from Robin Gareus. + * lv2core: Add lv2:prototype for property inheritance. + * atom: Make lv2_atom_*_is_end() arguments const. + * log: Add missing include to logger.h for memset. + * ui: Fix LV2_UI_INVALID_PORT_INDEX identifier in documentation. + +------------------------------------------------------------------- +Sat Aug 17 12:29:54 UTC 2013 - reddwarf@opensuse.org + +- Update to 1.6.0 + * Upgrade to waf 1.7.11. + * Fix lv2specgen usage from command line. + * atom: Fix crash in forge.h when pushing atoms to a full buffer. + * ui: Add idle interface so native UIs and foreign toolkits can drive their event + loops. + * ui: Add ui:updateRate property. + * Add metronome example plugin to demonstrate sample accurate tempo sync. + * Generate book-style HTML documentation from example plugins. + * lv2core: Make lv2:Parameter rdfs:subClassOf rdf:Property. + * lv2core: Set range of lv2:designation to lv2:Designation. + * lv2core: Add lv2:control for designating primary event-based control ports. + * lv2core: Add lv2:EnvelopePlugin class. + * lv2core: Reserve minor version 0 for unstable development plugins. + * atom: Fix lv2_atom_sequence_end(). + * atom: Remove atom:stringType in favour of owl:onDatatype so generic tools can + understand and validate atom literals. + * atom: Improve atom documentation. + * buf-size: Fix typo in bufsz:sequenceSize label. + * event: Fix incorrect return type in lv2_event_get(). + * log: Add logger convenience API. + * options: Set the range of opts:requiredOption and opts:supportedOption to opts:Option. + * patch: Add patch:readable and patch:writable for describing available properties. + * patch: Make patch:Set a compact message for setting one property. + * state: Add state:loadDefaultState feature so plugins can have their default state + loaded without hard-coding default state as a special case. + * ui: Fix incorrect linker flag in ui:makeSONameResident documentation. + +------------------------------------------------------------------- +Tue Oct 23 22:24:06 UTC 2012 - reddwarf@opensuse.org + +- Update to 1.2.0 + * Use stricter datatype definitions conformant with the XSD and OWL + specifications for better validation. + * Move all project metadata for extensions (e.g. change log) to separate files to + spare hosts from loading them during discovery. + * lv2core: Use consistent label style. + * atom: Fix lv2_atom_object_next() on 32-bit platforms. + * atom: Fix outdated documentation in forge.h. + * atom: Add lv2_atom_object_body_get(). + * atom: Add LV2_ATOM_CONTENTS_CONST and LV2_ATOM_BODY_CONST. + * atom: Fix implicit conversions in forge.h that are invalid in C++11. + * atom: Use consistent label style. + * buf-size: Initial release. + * dynmanifest: Use consistent label style. + * event: Use consistent label style. + * event: Use more precise domain and range for EventPort properties. + * event: Remove asserts from event-helper.h. + * event: Make event iterator gracefully handle optional ports. + * midi: Add C definitions for message types and standard controllers. + * midi: Remove non-standard midi:Tick message type. + * midi: Add midi:binding and midi:channel predicates. + * midi: Use consistent label style. + * midi: Add midi:HexByte datatype for status bytes and masks. + * midi: Fix definition of SystemExclusive status byte. + * morph: Initial release. + * options: Initial release. + * parameters: Add parameters.h of URI defines for convenience. + * parameters: Use consistent label style. + * parameters: Add param:sampleRate. + * port-groups: Use consistent label style. + * port-props: Use consistent label style. + * presets: Use consistent label style. + * resize-port: Initial release. + * state: Use consistent label style. + * time: Use consistent label style. + * urid: Fix typo in urid:unmap documentation. +- Remove lv2-1.0.0-underlinking.patch and lv2-1.0.0-no_g++.patch. Applied upstream. + +------------------------------------------------------------------- +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..6638573 --- /dev/null +++ b/lv2.spec @@ -0,0 +1,227 @@ +# +# spec file for package lv2 +# +# Copyright (c) 2023 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. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define asciidocs 1 + +Name: lv2 +Version: 1.18.10 +Release: 0 +Summary: Plugin standard for audio systems +License: ISC +Group: System/Libraries +URL: https://lv2plug.in/ +Source0: https://lv2plug.in/spec/lv2-%{version}.tar.xz +# Patch to use default docdir for documentation +Patch0: 001-lv2-docdir.patch +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: pkgconfig +BuildRequires: python3-Markdown +BuildRequires: python3-lxml +BuildRequires: python3-rdflib +BuildRequires: serdi +BuildRequires: sord +BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0 +BuildRequires: pkgconfig(samplerate) +BuildRequires: pkgconfig(sndfile) >= 1.0.0 + +%if %{asciidocs} == 1 +# Documentation build requirements. +BuildRequires: asciidoc +BuildRequires: codespell +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: python3-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} +# 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 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 core (roughly +equivalent in power to LADSPA) which can be extended to support more +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. Most functionality required by modern plugins is available, 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-.) + +%package examples +Summary: LV2 example plugins +Group: Productivity/Multimedia/Sound/Editors and Convertors +Requires: %{name} = %{version} + +%description examples +LV2 is a 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 core (roughly +equivalent in power to LADSPA) which can be extended to support more +functionality. +This package contains LV2 example plugins. + +%if %{asciidocs} == 1 +%package docs +Summary: LV2 documentation +Group: Documentation/Other +BuildArch: noarch +Requires: %{name} = %{version} + +%description docs +LV2 is a 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 core (roughly +equivalent in power to LADSPA) which can be extended to support more +functionality. +This package contains the LV2 API documentation. +%endif + +%prep +%setup -q +%autopatch -p0 + +%build +%meson -D old_headers=true \ +%if %{asciidocs} == 1 + -D docs=enabled \ +%endif +%meson_build + +%install +%meson_install + +%fdupes -s %{buildroot}%{_includedir} + +sed -i '1s/^#!.*/#!\/usr\/bin\/python3/' %{buildroot}%{_bindir}/lv2specgen.py + +%files +%defattr(0644,root,root,0755) +%doc NEWS README.md +%license COPYING +%attr(0755,root,root) %{_bindir}/lv2_validate +%{_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 + +%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 %{_defaultdocdir}/lv2/ns +%doc %{_defaultdocdir}/lv2/c +%doc %{_defaultdocdir}/lv2/style +%endif + +%changelog