# # spec file for package lilv # # Copyright (c) 2025 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 skip_python312 1 %define skip_python313 1 %define skip_python311 1 %if 0%{?suse_version} > 1600 %define with_docs 1 %endif %define sover 0 %define sordversion %(pkg-config --modversion sord-0) %define serdversion %(pkg-config --modversion serd-0) Name: lilv Version: 0.24.24 Release: 1.1 Summary: C library to make use of LV2 plugins License: ISC Group: Development/Libraries/C and C++ URL: https://drobilla.net/software/lilv.html Source0: https://download.drobilla.net/lilv-%{version}.tar.xz Source99: lilv-rpmlintrc Source98: baselibs.conf Patch0: 001-lilv-docdir.patch BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: graphviz BuildRequires: meson BuildRequires: pkgconfig %if %{with docs} BuildRequires: python3-Sphinx BuildRequires: python3-sphinxygen # BuildRequires: python3-sphinx_lv2_theme %endif BuildRequires: python3-devel BuildRequires: swig BuildRequires: pkgconfig(lv2) >= 1.8.0 BuildRequires: pkgconfig(serd-0) >= 0.30.0 BuildRequires: pkgconfig(sndfile) BuildRequires: pkgconfig(sord-0) >= 0.13 BuildRequires: pkgconfig(sratom-0) >= 0.6.10 # lilv 0.22 require new API of sord 0.13 # Since sord sover unchanged from 0.12, explicitly require here. Requires(pre): liblilv-0-%{sover} = %{version} %description Lilv is a C library to make use of LV2 plugins in applications. %package -n liblilv-0-%{sover} Summary: C library to make use of LV2 plugins # NOTE: This is the only way to ensure that the correct version of sord and serd is installed. # See boo#1158728 Group: System/Libraries Requires: libserd-0-0 = %{serdversion} Requires: libsord-0-0 = %{sordversion} %description -n liblilv-0-%{sover} Lilv is a C library to make use of LV2 plugins in applications. %package -n liblilv-0-devel Summary: Development files for liblilv Group: Development/Libraries/C and C++ Requires: liblilv-0-%{sover} = %{version} %description -n liblilv-0-devel Lilv is a C library to make use of LV2 plugins in applications. This subpackage contains the development files for liblilv. %package -n python3-lilv Summary: Python 3 bindings for lilv Group: Development/Libraries/Python Requires: liblilv-0-%{sover} = %{version} %description -n python3-lilv Lilv is a C library to make use of LV2 plugins in applications. This subpackage contains the Python 3 bindings for lilv. %prep %autosetup -p0 echo %{sordversion} %build %meson \ %if %{without docs} -Ddocs=disabled \ %endif %meson_build %install %meson_install # Fix E: filelist-forbidden-bashcomp-userdirs /etc/bash_completion.d/lilv mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ mv %{buildroot}%{_sysconfdir}/bash_completion.d/lilv %{buildroot}%{_datadir}/bash-completion/completions/ rmdir %{buildroot}%{_sysconfdir}/bash_completion.d %post -n liblilv-0-%{sover} -p /sbin/ldconfig %postun -n liblilv-0-%{sover} -p /sbin/ldconfig %files %attr(0755,-,-) %{_bindir}/lv2bench %attr(0755,-,-) %{_bindir}/lv2info %attr(0755,-,-) %{_bindir}/lv2ls %attr(0755,-,-) %{_bindir}/lv2apply %doc AUTHORS NEWS README.md %{_mandir}/man1/lv2bench.1%{?ext_man} %{_mandir}/man1/lv2info.1%{?ext_man} %{_mandir}/man1/lv2ls.1%{?ext_man} %{_mandir}/man1/lv2apply.1%{?ext_man} %{_datadir}/bash-completion/completions/%{name} %files -n liblilv-0-%{sover} %license COPYING %{_libdir}/liblilv-0.so.%{sover}* %files -n liblilv-0-devel %{_libdir}/pkgconfig/lilv-0.pc %{_libdir}/liblilv-0.so %{_includedir}/lilv-0/ %if %{with docs} %{_defaultdocdir}/lilv-0/ %endif %files -n python3-lilv %{python_sitelib}/lilv.py %pycache_only %{python_sitelib}/__pycache__/lilv.*.pyc %changelog * Sun Jan 19 2025 Konstantin Voinov - Enable development documentation for Tumbleweed - Add 001-lilv-docdir.patch fixing docs installation path - Update to 0.24.24 * Avoid overriding state features passed by the host * Fix null dereference when trying to load state from a missing file * Fix potential null dereferences and conversion warnings - Version 0.24.22 changes: * Allow LILV_API to be defined by the user * Clean up code * Clean up inconsistent tool command line interfaces * Convert man pages to mdoc * Fix crash when plugins pass NULL to the LV2_State_Retrieve_Function * Fix dependencies in pkg-config file * Fix potential crash when writing state files fails * Order plugin classes by URI * Override pkg-config dependency within meson * Remove junk files from documentation install * Replace duplicated dox_to_sphinx script with sphinxygen dependency * Switch to external zix dependency * Wed Mar 6 2024 Antonio Larrosa - Add %%pycache_only macro for the __pycache__ file to fix build in 15.6 * Mon Dec 26 2022 Konstantin Voinov - Update to 0.24.20 * Switch to meson 0.24.20 changes: * Adopt REUSE machine-readable licensing standard * Update project metadata 0.24.18 changes: * Allow programs to be used from subproject * Fix default LV2_PATH 0.24.16 changes: * Fix fallback flock() detection on MacOS * Switch to meson build system 0.24.14 changes: * Fix build issues with newer toolchains * Fix unused parameter warnings * Update zix tree * Sat Apr 23 2022 Ferdinand Thiessen - Update to 0.24.12: * Allow connecting ports to structures in Python * Fix potential memory error when joining filesystem paths * Fix unlikely undefined behavior when saving state * Remove the need for a generated configuration header * Tue Jan 5 2021 Dirk Müller - update to 0.24.10: * Fix memory leaks in lv2bench * Fix various minor warnings and other code quality issues * Make lilv_world_get() use translations * Split and clean up test suite * Allow passing strings for URIs in Python API when unambiguous * Fix cases where incorrect translation is used * Fix deleting state bundles loaded from the model * Fix memory leak when dyn-manifest has no plugins (thanks Michael Fisher) * Implement state:freePath feature * Wed Dec 11 2019 Dave Plater - Add specific version requirement for libserd see boo#1158728 * Wed Dec 4 2019 Dave Plater - Update to release 0.24.6 fixes boo#1158296 - Upstream changes: * Add more strict error detection when storing plugin state properties * Add option to override LV2_PATH in applications * Don't print errors when saving state if correct links already exist * Fix GCC8 warnings * Fix creating directories across drives on Windows * Fix issues with loading state with saved files from the model * Fix memory errors and Python 3.4+ compatibility in Python bindings * Fix unit tests on Windows * Make Python bindings more Pythonic * Fri Sep 14 2018 Tomáš Chvátal - Version update to 0.24.4: * Fix saving state when broken links are encountered * Don't attempt to load remote or non-Turtle files * lv2apply: Activate plugin before running * lv2apply: Use default values when they are not nan * lv2bench: Improve support for plugins with sequence ports * lv2bench: Support running a single plugin given on the command line * Gracefully handle plugins with missing binary URIs * Remove use of deprecated readdir_r * Install Python bindings when configured without tests (thanks Clement Skau) * Sat Nov 4 2017 davejplater@gmail.com - Revert devel package name to original, causes unresolvables. * Fri Nov 3 2017 mpluskal@suse.com - Switch to python3 - Run spec cleaner - Rename devel subpackage * Fri Nov 3 2017 davejplater@gmail.com - Update to version 0.24.2 - Remove patch lilv-python-bindings-fix.diff it's now incorporated by upstream. - Upstream changes: Fix saving state to paths that contain URI delimiters Fix comparison of restored states with paths Add new hand-crafted Pythonic bindings with full test coverage. Add lv2apply utility for applying plugins to audio files Add lilv_world_get_symbol() Add lilv_state_set_metadata() for adding state banks/comments /etc (based on patch from Hanspeter Portner) Fix crash when state contains non-POD properties Fix crash if NULL predicate passed to lilv_world_find_nodes() Fix state file versioning Unload contained resources when bundle is unloaded Do not instantiate plugin when data fails to parse Support re-loading plugins Replace bundles if bundle with newer plugin version is loaded Fix loading dyn-manifest from bundles with spaces in path Check lv2:binary predicate for UIs Add LILV_URI_ATOM_PORT and LILV_URI_CV_PORT defines Fix documentation installation Fix outdated comment references to lilv_uri_to_path() * Thu Feb 2 2017 jengelh@inai.de - Rename soname to sover to better reflect its use - Update descriptions - Since there is no %%pre section, replace questionable Requires(pre) by Requires. * Thu Jan 12 2017 olaf@aepfle.de - Add baselibs.conf for gstreamer-plugins-bad-32bit * Sat Dec 19 2015 davejplater@gmail.com - Force lilv package to use the version of sord that it was built against. * Tue Dec 8 2015 someuniquename@gmail.com - Add runtime requirement of sord 0.13 (new API required since 0.22) * Tue Dec 8 2015 someuniquename@gmail.com - Update to version 0.22.0, Added lilv-python-bindings-fix.diff backported from unreleased v 0.22.1 - Upstream changes : * Fix loading files with spaces in their path * Add lilv_file_uri_parse() for correct URI to path conversion * Add lilv_node_get_path() for convenient file URI path access * Add lilv_state_emit_port_values() for special port value handling * Add lilv_state_get_uri() * Add lilv_state_delete() for deleting user saved presets * Add lilv_free() for systems picky about such things * Fix lilv_world_ask() to work with wildcards * Fix creation of duplicate manifest entries when saving state * Fix bindings for Python 3 * Load discovered owl ontologies as specifications * Expose lilv_world_load_specifications() and lilv_world_load_plugin_classes() * Tolerate passing NULL to lilv_state_restore() * Preserve absolute paths in state if no link directory is given * Fix a few minor/unlikely memory errors * Configure based on compiler target OS for cross-compilation * Fix lilv_realpath() on pre-POSIX-2008 systems * Fix directory walking on some systems (thanks Matt Fischer) * Windows fixes (thanks John Emmas) * Minor documentation improvements * Upgrade to waf 1.8.14 * Fri Jan 16 2015 p.drouand@gmail.com - Update to version 0.20.0 * Don't load files multiple times if they are listed as rdfs:seeAlso for several plugins * Call lv2_lib_descriptor separately for different bundle paths (fix loading several dynamic plugins like Ingen at once) * Tolerate calling lilv_node_as_uri or lilv_node_as_blank on NULL * Add convenient lilv_new_file_uri for creating file URIs * Fix use of lv2info -m and -p options to write plugin data (useful for porting plugins bridges with NASPRO) * Fix issues with lilv_plugin_get_author_name and friends (thanks Filipe Coelho) * Improved/working lv2_apply.py to apply plugin to a .wav (thanks Joe Button) * Add lilv_world_unload_bundle() and lilv_world_unload_resource() * Fix several minor memory leaks * Improve test coverage * Upgrade to waf 1.7.16 * Fri Jul 11 2014 reddwarf@opensuse.org - Update to 0.18.0 * Allow lilv_state_restore() to be used without passing an instance, for restoring port values via a callback only * Fix unlikely memory leak in lilv_plugin_instantiate() * Support denoting latency ports with lv2:designation lv2:latency * Allow passing NULL port_class to lilv_plugin_get_port_by_designation * Call GetProcAddress with correct calling convention on Windows * Add support for running plugins from Python by Kaspar Emanuel * Clean up after test suite so multiple runs are successful * Add lilv_port_get_node() for using world query functions with ports * lv2info: Don't display invalid control maxes and defaults (patch from Robin Gareus) * lilvmm.hpp: Add wrappers for UI API - lilv-0.16.0-python_bindings.patch removed * Thu Sep 5 2013 reddwarf@opensuse.org - Update to 0.16.0 * Add lilv_world_ask() for easily checking if a statement exists * Add lilv_world_get() and lilv_port_get() for easily getting one value * Add lilv_nodes_merge() * Make lilv_plugin_get_port_by_designation() return a const pointer * Require a URI for lilv_state_to_string() and fail gracefully otherwise * Fail gracefully when lilv_state_new_from_string() is called on NULL * Make state loading functions fall back to lv2:default for port values, so a plugin description can be loaded as default state * Ignore state ports with no value instead of printing an error * Support atom:supports in lilv_port_supports_event() * Add va_list variant of lilv_plugin_get_num_ports_of_class() * Fix several plugin functions that failed to load data if called first * Correctly depend on serd at build time (fix compilation in odd cases) * Disable timestamps in HTML documentation for reproducible build * lilvmm.hpp: Support varargs for Plugin::get_num_ports_of_class() * lilvmm.hpp: Add several missing methods * Update to waf 1.7.8 and autowaf r90 (install docs to versioned directory) - Remove lilv-0.14.4-build_compare.patch, applied upstream - Add lilv-0.16.0-python_bindings.patch - The minimum sord version is now 0.12.0 - The documentation directory is now versioned * Sun Aug 26 2012 reddwarf@opensuse.org - Update to 0.14.4 * Deprecate old flawed Lilv::Instance constructors * Fix documentation for ui_type parameter of lilv_ui_is_supported() * Fix crash when lv2info is run with an invalid URI argument * Gracefully handle failure to save plugin state and print error message * Reduce memory usage (per node) * Simpler node implementation always backed by a SordNode * Make all 'zix' symbols private to avoid symbol clashes in static builds * Add lv2bench utility * Fix various hyper-strict warnings * Do not require a C++ compiler to build * Add option to build utilities as static binaries * Upgrade to waf 1.7.2 * lilvmm.hpp: Make Lilv::Instance handle features and failed instantiations * lilvmm.hpp: Add Lilv::Instance::get_handle() * lilvmm.hpp: Add Lilv::Instance::get_extension_data() - Add lilv-0.14.4-build_compare.patch to make build reproducible * Thu Aug 9 2012 reddwarf@opensuse.org - Update to 0.14.2 * Fix dynmanifest support * Add lilv_plugin_get_extension_data * Use path variables in pkgconfig files * Install man page to DATADIR (e.g. PREFIX/share/man, not PREFIX/man) * Make Lilv::uri_to_path static inline (fix linking errors) * Use correct URI for dcterms:replaces (for hiding old plugins): "http://purl.org/dc/terms/replaces" * Fix compilation on BSD * Only load dynmanifest libraries once per bundle, not once per plugin * Fix lilv_world_find_nodes to work with wildcard subjects * Add lilv_plugin_get_related to get resources related to plugins that are not directly rdfs:seeAlso linked (e.g. presets) * Add lilv_world_load_resource for related resources (e.g. presets) * Print presets in lv2info * Remove locale smashing kludges and use new serd functions for converting nodes to/from numbers. * Add LilvState API for handling plugin state. This makes it simple to save and restore plugin state both in memory and on disk, as well as save presets in a host-sharable way since the disk format is identical to the LV2 presets format. * Update old references to lv2_list (now lv2ls) * Support compilation as C++ under MSVC++. * Remove use of wordexp. * Add lilv_plugin_get_port_by_designation() and lilv_port_get_index() as an improved generic alternative to lilv_plugin_get_latency_port_index(). * Add lilv_plugin_get_project() and get author information from project if it is not given directly on the plugin. * Remove glib dependency * Add lv2core as a pkg-config dependency (for lv2.h header include) * Obey prefix when installing bash completion script * Support integer minimum, maximum, and default port values in lilv_plugin_get_port_ranges_float * Add ability to build static library * Fix building python bindings * Make free methods tolerate being called on NULL * Remove lv2jack (replaced by jalv) * Fix parsing extra plugin data files in other bundles * Fix lilv_ui_is_supported when Lilv is built independently - Split serd and sord to different packages - Package python bindings - Remove patches changing the soname * Wed Jun 1 2011 davejplater@gmail.com - Created package lilv the successor to slv2