kmatheussen / radium

A graphical music editor. A next generation tracker.
http://users.notam02.no/~kjetism/radium/
GNU General Public License v2.0
835 stars 36 forks source link

Can't compile Radium 7.1.90 on AV Linux due to a VST 2 SDK / Makefile problem. #1406

Closed Arkforest closed 11 months ago

Arkforest commented 11 months ago

Hi,

I'm trying to compile Radium from source on AV Linux. I installed the Debian/Ubuntu related dependencies and I corrected some Debian-specific issues like dependency names (it was pretty much just the dependency names and installing libiberty-dev).

After that and extracting the VST 3 Audio Plug-Ins SDK from https://www.steinberg.net/developers/ (this is where the link on GitHub redirects to) to ~/SDKs/, I input the following command I also got from the GitHub page into my terminal at ~/SDKs/:

export RADIUM_QT_VERSION=5
make packages
BUILDTYPE=RELEASE ./build_linux.sh -j `nproc`
QT_QPA_PLATFORM_PLUGIN_PATH=`$(./find_moc_and_uic_paths.sh qmake) -query QT_INSTALL_PLUGINS` bin/radium

I expected Radium to compile the first time, but I got the following warning:

Steinberg VST headers not found. (Missing "~/SDKs/vstsdk2.4/pluginterfaces/vst2.x/aeffect.h or "~/SDKs/VST3 SDK/pluginterfaces/vst2.x/aeffect.h" or "~/SDKs/VST_SDK/VST2_SDK/pluginterfaces/vst2.x/aeffect.h")
You should find these files in the "VST Audio Plug-Ins SDK" from http://www.steinberg.net/en/company/developers.html . Unless Steinberg has changed the directory structure again, it should enough to unzip the file into your ~/SDKs directory.
make: *** [Makefile:652: dependencies_ok] Error 5
          Radium  compiled. (2s)
bash: bin/radium: No such file or directory

I flicked through the Makefile and the VST_SDK directory and I couldn't locate any aeffect.h header and the Makefile didn't really reveal an obvious problem either behind -I flags pointing to vst related directories within ~/SDKs/.

If I use the same command as above for a second time, it commences compiling Radium anyways while showing the same VST2SDK warnings, and I also get typical gcc errors indicating that the headers qhttpserver.h and qhttpserverfwd.h can't be found. At that point, I didn't trust that the compile will go well without serious errors, so I stopped it at a "memcpy out of bounds" warning.

If I input each line of the command sequentially, the export statement works, but the make statement returns the same warning, sans the last two lines.

Also, according to this page, https://forums.steinberg.net/t/vst-2-sdk-discontinued/201774 The VST 2 SDK is discontinued and I'm not sure if that has any bearing on this problem.

I'm not sure whether there is a problem on my end or whether Steinberg changed something and the Makefile wasn't updated in response or whether Steinberg changed something in a way that is difficult to resolve with a Makefile modification. I'm also not sure whether the distro I'm using is too far removed from Debian/Ubuntu for Radium to compile on properly.

I downloaded Radium 7.1.90 from https://github.com/kmatheussen/radium/archive/7.1.90.tar.gz

I am running AV Linux, which is based on MX Linux, which is based on Debian. I made the following amendments to certain package names (I installed everything to the left of <~ as well as all the packages whose names weren't amended):

libsamplerate0-dev <~ libsamplerate-dev
liblrdf0-dev <~ liblrdf-dev
libsndfile1-dev <~ libsndfile-dev
libfftw3-dev <~ fftw3-dev
libncurses-dev <~ ncurses-dev
guile-3.0 (or guile-2.2 ?) <~ guile
tk <~ tk8.5
libglib2.0-dev <~ glib2-dev
xutils-dev <~ xorg-x11-util-macros
qtbase5-dev <~ qt5-dev
libqt5webkit5-dev <~ libqtwebkit-dev, qt5webkit-dev
qtbase5-dev <~ qt5-dev
libqt5x11extras5-dev <~ qt5x11extras-dev
qttools5-private-dev <~ qt5-qttools-static-dev
libgmp-dev <~ gmp-dev
libmpfr-dev <~ mpfr-dev
libiberty-dev <~ N/A

I installed guile-3.0, not guile-2.2.

kmatheussen commented 11 months ago

Yes, you need the VST2 headers. They are not distributed by steinberg anymore. You just need to find them somewhere else on the net.

Arkforest commented 11 months ago

I see. Thank you for the help. Would you happen to know any VST2 headers around on the net? I've found https://github.com/x42/lv2vst/blob/master/include/vestige.h but I'm not sure if certain superficial aspects of it like the name would still break the compile.

kmatheussen commented 11 months ago

I wouldn't use vestige unless you can't find the real thing. You just have to google it. Maybe you'll find an old VST3 sdk zip-file somewhere. The VST2 headers were included in the VST3 SDK until quite recently.