#1054233 liblilv-0-0: Package does not follow FHS, it adds /usr/lib/$(DEB_HOST_MULTIARCH) to the --default-lv2-path waf configure option, see rules file, line 21. #1054233
- Package:
- liblilv-0-0
- Source:
- liblilv-0-0
- Description:
- library for simple use of LV2 plugins
- Submitter:
- Jeremy Jongepier
- Date:
- 2023-10-29 18:45:08 UTC
- Severity:
- normal
- Tags:
Package does not follow FHS, it adds /usr/lib/$(DEB_HOST_MULTIARCH) to the --default-lv2-path waf configure option, see rules file, line 21. The addition of this line indicates that something fundamental has changed, namely the default path where Debian installs its LV2 plugins. These go into /usr/lib/$(DEB_HOST_MULTIARCH) too now which breaks setups running software that uses the FHS as a starting point for LV2 plugin discovery. The LV2 plugin packages that Debian now installs are now not discovered anymore.
The LV2 FHS that Jeremy mention can be found at https://lv2plug.in/pages/filesystem-hierarchy-standard.html Now you may not like, or disagree with the official standard, but breaking it is not acceptable. This affects various 3rd party software, notably Reaper, Harrison Mixbus, Ardour and other non-free DAWs that expect LV2 plugins in /usr/lib/lv2/ LV2s are to be installed $PREFIX/lib/lv2 (unrelated to $LIBDIR). Most LV2 plugin build systems use LV2DIR = $PREFIX/lib/lv2 for this. Thanks in advance, robin PS. VST3 has a similar spec using /usr/lib/vst3/ - https://steinbergmedia.github.io/vst3_dev_portal/pages/Technical+Documentation/Locations+Format/Plugin+Locations.html
Control: tags -1 moreinfo I think you are mistaken. It you compare the the default path in meson.build and the one specified in debian/rules, it extends the default path with /usr/lib/$(DEB_HOST_MULTIARCH)/lv2 (note the lv2). Please describe the actual problem that you are seeing. Cheers
Sebastian, I'm fairly certian Robin Gareus made it quite clear what Jeremy was saying in his reply: >The LV2 FHS that Jeremy mention can be found at >https://lv2plug.in/pages/filesystem-hierarchy-standard.html > >Now you may not like, or disagree with the official standard, but breaking it is not acceptable. This affects various >3rd party software, notably Reaper, Harrison Mixbus, Ardour and other non-free DAWs that expect LV2 plugins in >/usr/lib/lv2/ > >LV2s are to be installed $PREFIX/lib/lv2 (unrelated to $LIBDIR). >Most LV2 plugin build systems use LV2DIR = $PREFIX/lib/lv2 for this. This does divert from the standard location in which shared libraries are expected to be located, but LV2 plugins, as you are aware, are not normal shared libraries. If they cannot be found in /usr/lib/lv2, then it literally breaks the functionality of several DAWs out there, including Ardour (which we ship). Sure, users can always manually add the search path of /usr/lib/$(DEB_HOST_MULTIARCH)/lv2 to the software, but that's an unnecessary inconvenience. I checked the salsa repo for liblilv (and another) and it seems as though /usr/lib/$(DEB_HOST_MULTIARCH)/lv2 is being intentionally set as the install location here, so this simply needs to be reverted. I can even set-up the pull request. Beyond that, I will be fairly unhappy if I have to downstream patch this. Cheers, Erich
lilv does not install LV2 plugins. If other packages abuse lilv's libdir as base to determine LV2DIR, those packages are buggy. As you explain above, it's not $libdir/lv2 but $prefix/lib/lv2 that's to be used. Please point me to the place where this is set as install location. Cheers
FWIW, the only packages in Debian installing LV2 plugins in multi-arch locations are mda-lv2 and naspro-bridges. Fixes for both have been uploaded to unstable. Cheers