steinbergmedia / vst3sdk

VST 3 Plug-In SDK
Other
1.59k stars 162 forks source link

Clarify the Linux bundle format #66

Closed jpcima closed 3 years ago

jpcima commented 3 years ago

Hi, the VST 3 Locations / Format documentation indicates the following as Linux is concerned. MyPlugin.vst3/Contents/XXXX-linux => with XXXX the architecture name (based on the RPM Terminology + "-linux"),

I am told that this specification is in disagreement with the practice currently found in some hosts and plugins, including the hosting code provided by Steinberg.

This is the current state of things:

If the specification is to be believed, I should use armv7hl, but my users report this as non-working. (eg. Reaper host for Raspberry Pi computer)

If the plugin author should use uname -m as naming convention as opposed to RPM, it will be great to make this clear in the document.

notify @x42, author of VST3 support in the Ardour DAW

scheffle commented 3 years ago

Hi, can you point me to the definition that the ARM v7 processor with a floating-point unit should use "armv7hl" instead of "armv7l". Thank you.

jpcima commented 3 years ago

can you point me to the definition that the ARM v7 processor with a floating-point unit should use "armv7hl" instead of "armv7l"

I'm afraid that this is a case of "defined by implementation", and I can't find a quote from any specification document. It seems simply to be the case that armv7hl package repositories exist (eg. Fedora).

What I find at best is some mentions of them, in RPM source code. https://github.com/rpm-software-management/rpm/blob/master/rpmrc.in

If RPM architecture naming is not very well specified, maybe it's not the best leg for VST to stand on?

@x42, perhaps you know more on this?

x42 commented 3 years ago

I too have wondered where to find the canonical reference of "RPM Terminology" that the VST3 spec mentions.

@x42, perhaps you know more on this?

Not really, I have only got armv7hl RPM packages. I was not aware that any RPM provided armv7l packages, until now.

"armv7hl" is the most widespread ad-hoc architecture used for .rpm [1], the only "armv7l" RPMs were made by openSuSE and are discontinued since 8 years [2]. What's worse is that Fedora recently changed to use armhfp [3].

If RPM architecture naming is not very well specified, maybe it's not the best leg for VST to stand on?

I'm beginning to think that as well. Perhaps https://steinbergmedia.github.io/vst3_doc/vstinterfaces/vst3loc.html#linuxformat should make it explicit. Remove the "based on the RPM Terminology", and suggest uname -m instead.


[1] "This page is about ARM (armv7hl and aarch64) support within RPM Fusion. " (https://rpmfusion.org/Architectures/ARM) [2] https://lists.opensuse.org/opensuse-arm/2012-05/msg00037.html established armv7hl and mentions that there's no standard [3] https://fedoraproject.org/wiki/Architectures/ARM

scheffle commented 3 years ago

OK, thanks both for your comments. We will change the documentation to use "uname -m" and make a hint about an implementation in module_linux.cpp.