Open Music Kontrollers

lv2lint

Check whether a given LV2 plugin is up to the specification

An LV2 lint-like tool that checks whether a given plugin and its UI(s) match up with the provided metadata and adhere to well-known best practices.

Run it as part of your continuous integration pipeline together with lv2/sord_validate to reduce the likelihood of shipping plugins with major flaws in order to prevent unsatisfied users.

Note: This is an early release, if you happen to find false-positive warnings when using this tool, please report back, so it can be fixed.

Build status

build status

Binaries

Stable release

Unstable (nightly) release

Sources

Stable release

Git repository

Packages

Bugs and feature requests

Dependencies

Mandatory

Optional

lv2lint can optionally test your plugin URIs for existence. If you want that, you need to enable it at compile time (-Donline-tests=true) and link to libcurl. You will also need to enable it at run-time (-o), e.g. double-opt-in.

lv2lint can optionally test your plugin symbol visibility and link dependencies. If you want that, you need to enable it at compile time (-Delf-tests=true) and link to libelf.

Build / install

git clone https://git.open-music-kontrollers.ch/lv2/lv2lint
cd lv2lint
meson -Donline-tests=true -Delf-tests=true build
cd build
ninja
sudo ninja install

Compile options

Usage

Information about the command line arguments are described in the man page:

man 1 lv2lint

An acceptable plugin SHOULD pass without triggering any fails, this is also the default configuration:

lv2lint http://lv2plug.in/plugins/eg-scope#Stereo

A good plugin SHOULD pass without triggering any warnings:

lv2lint -Ewarn http://lv2plug.in/plugins/eg-scope#Stereo

A perfect plugin SHOULD pass without triggering any warnings or notes:

lv2lint -Ewarn -Enote http://lv2plug.in/plugins/eg-scope#Stereo

If you get any warnings or notes, you can enable debugging output to help you

lv2lint -d -Ewarn -Enote http://lv2plug.in/plugins/eg-scope#Stereo

fix the problems:

By default, lv2lint runs in packager mode and skips some tests. The latter are important only for plugins that are distributed in binary form. To activate those tests, run in (nopack)ager mode:

lv2lint -Mnopack http://lv2plug.in/plugins/eg-scope#Stereo

License

Copyright © 2016-2020 Hanspeter Portner (dev@open-music-kontrollers.ch)

This is free software: you can redistribute it and/or modify it under the terms of the Artistic License 2.0 as published by The Perl Foundation.

This source is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Artistic License 2.0 for more details.

You should have received a copy of the Artistic License 2.0 along the source as a COPYING file. If not, obtain it from http://www.perlfoundation.org/artistic_license_2_0.

Last update - 15 Jan 2020

Copyright © 2014-2020, Hanspeter Portner, Open Music Kontrollers, cc-by-sa 4.0.