bsp2 / VeeSeeVSTRack

Open-source virtual modular synthesizer
http://vcvrack.com/
BSD 3-Clause "New" or "Revised" License
259 stars 29 forks source link

some build issues on older Linux #22

Open davephillips opened 5 years ago

davephillips commented 5 years ago

VeeSeeVSTRack from source Fedora 23 GCC 5.3.1

Greetings,

I don't know if these issues affect newer Linux distros, but I thought you should know about them.

First, the instructions for building on Linux at https://github.com/bsp2/VeeSeeVSTRack are incorrect. They state:

$ . setenv_linux.sh
$ alias m="make -j 20 makefile.linux"
$ m all

This will fail at two points. First, the alias needs the -f flag to call the indicated makefile. A better call:

$ alias m="make -f makefile.linux -j 20"

The build will then fail with the deps build. The libspeexdsp build needs to be completed manually, i.e.

$ autoreconf -i --force
$ ./configure
$ make

The library will build now but again the global build will fail here because dep/lib/linux_gcc/x64/ never gets created. Again, adding it by hand solves the issue.

There are a few plugins that might throw errors on older compilers like mine. Usually the problems can be solved by rewriting a line or two of code. Unfortunately I forget which ones I fixed, but perhaps I can help out if someone hits the same errors.

tank-trax commented 5 years ago

Using Debian 9.8 got as far as...

libspeexdsp/buffer.c:35:20: fatal error: config.h: No such file or directory
 #include "config.h"
                    ^
compilation terminated.
../yac/staticlib_linux.mk:54: recipe for target 'libspeexdsp/buffer.o' failed

but the next command

autoreconf -i --force

produced

autoreconf: 'configure.ac' or 'configure.in' is required

bsp2 commented 5 years ago

@davephillips: Sorry for the late reply ! You're right, there's the "-f" switch missing in the definition of the "m" alias (=> fixed the README).

@both of you: I just did a compile test with a fresh clone of the repo on Debian 9.8 (the latest version) / 64bit. There were indeed some files and folders missing (due to .gitignore, and b/c of missing .gitignore in case of the folders). I fixed these issues and commited the changes. Please "git pull" again ! p.s.: do not run configure in this repo -- just clone it, edit+run ". setenv_linux.sh", then "m all" (or "m vst" to skip "clean")

tank-trax commented 5 years ago

it built but is either not recognized by DAWS or gives errors when trying to load

tank-trax commented 5 years ago

I re-git cloned anew and tried m vst and got

kg-config gtk+-2.0 --libs` -lGL -ldl -L/usr/lib -lm -lpthread 
g++: error: plugins/community/repos//21kHz/21kHz.a: No such file or directory
g++: error: plugins/community/repos//AmalgamatedHarmonics/AmalgamatedHarmonics.a: No such file or directory
g++: error: plugins/community/repos//Alikins/Alikins.a: No such file or directory
g++: error: plugins/community/repos//alto777_LFSR/alto777_LFSR.a: No such file or directory
g++: error: plugins/community/repos//arjo_modules/arjo_modules.a: No such file or directory
g++: error: plugins/community/repos//AS/AS.a: No such file or directory
g++: error: plugins/community/repos//AudibleInstruments/AudibleInstruments.a: No such file or directory
g++: error: plugins/community/repos//Autodafe/Autodafe.a: No such file or directory
g++: error: plugins/community/repos//BaconMusic/BaconMusic.a: No such file or directory
g++: error: plugins/community/repos//Bark/Bark.a: No such file or directory
g++: error: plugins/community/repos//Befaco/Befaco.a: No such file or directory
g++: error: plugins/community/repos//Bidoo/Bidoo.a: No such file or directory
g++: error: plugins/community/repos//Bogaudio/Bogaudio.a: No such file or directory
g++: error: plugins/community/repos//CastleRocktronics/CastleRocktronics.a: No such file or directory
g++: error: plugins/community/repos//cf/cf.a: No such file or directory
g++: error: plugins/community/repos//com-soundchasing-stochasm/com-soundchasing-stochasm.a: No such file or directory
g++: error: plugins/community/repos//computerscare/computerscare.a: No such file or directory
g++: error: plugins/community/repos//DHE-Modules/DHE-Modules.a: No such file or directory
g++: error: plugins/community/repos//DrumKit/DrumKit.a: No such file or directory
g++: error: plugins/community/repos//Edge/Edge.a: No such file or directory
g++: error: plugins/community/repos//EH_modules/EH_modules.a: No such file or directory
g++: error: plugins/community/repos//ErraticInstruments/ErraticInstruments.a: No such file or directory
g++: error: plugins/community/repos//ESeries/ESeries.a: No such file or directory
g++: error: plugins/community/repos//FrankBussFormula/FrankBussFormula.a: No such file or directory
g++: error: plugins/community/repos//FrozenWasteland/FrozenWasteland.a: No such file or directory
g++: error: plugins/community/repos//Fundamental/Fundamental.a: No such file or directory
g++: error: plugins/community/repos//Geodesics/Geodesics.a: No such file or directory
g++: error: plugins/community/repos//Gratrix/Gratrix.a: No such file or directory
g++: error: plugins/community/repos//HetrickCV/HetrickCV.a: No such file or directory
g++: error: plugins/community/repos//huaba/huaba.a: No such file or directory
g++: error: plugins/community/repos//ImpromptuModular/ImpromptuModular.a: No such file or directory
g++: error: plugins/community/repos//JE/JE.a: No such file or directory
g++: error: plugins/community/repos//JW-Modules/JW-Modules.a: No such file or directory
g++: error: plugins/community/repos//Koralfx-Modules/Koralfx-Modules.a: No such file or directory
g++: error: plugins/community/repos//LabSeven/LabSeven.a: No such file or directory
g++: error: plugins/community/repos//LindenbergResearch/LindenbergResearch.a: No such file or directory
g++: error: plugins/community/repos//LOGinstruments/LOGinstruments.a: No such file or directory
g++: error: plugins/community/repos//mental/mental.a: No such file or directory
g++: error: plugins/community/repos//MicMusic/MicMusic.a: No such file or directory
g++: error: plugins/community/repos//ML_modules/ML_modules.a: No such file or directory
g++: error: plugins/community/repos//moDllz/moDllz.a: No such file or directory
g++: error: plugins/community/repos//modular80/modular80.a: No such file or directory
g++: error: plugins/community/repos//mscHack/mscHack.a: No such file or directory
g++: error: plugins/community/repos//mtsch-plugins/mtsch-plugins.a: No such file or directory
g++: error: plugins/community/repos//NauModular/NauModular.a: No such file or directory
g++: error: plugins/community/repos//Nohmad/Nohmad.a: No such file or directory
g++: error: plugins/community/repos//noobhour/noobhour.a: No such file or directory
g++: error: plugins/community/repos//Ohmer/Ohmer.a: No such file or directory
g++: error: plugins/community/repos//PG-Instruments/PG-Instruments.a: No such file or directory
g++: error: plugins/community/repos//PvC/PvC.a: No such file or directory
g++: error: plugins/community/repos//QuantalAudio/QuantalAudio.a: No such file or directory
g++: error: plugins/community/repos//Qwelk/Qwelk.a: No such file or directory
g++: error: plugins/community/repos//rcm/rcm.a: No such file or directory
g++: error: plugins/community/repos//RJModules/RJModules.a: No such file or directory
g++: error: plugins/community/repos//SerialRacker/SerialRacker.a: No such file or directory
g++: error: plugins/community/repos//Skylights/Skylights.a: No such file or directory
g++: error: plugins/community/repos//SonusModular/SonusModular.a: No such file or directory
g++: error: plugins/community/repos//Southpole/Southpole.a: No such file or directory
g++: error: plugins/community/repos//Southpole-parasites/Southpole-parasites.a: No such file or directory
g++: error: plugins/community/repos//squinkylabs-plug1/squinkylabs-plug1.a: No such file or directory
g++: error: plugins/community/repos//SubmarineFree/SubmarineFree.a: No such file or directory
g++: error: plugins/community/repos//SynthKit/SynthKit.a: No such file or directory
g++: error: plugins/community/repos//Template/Template.a: No such file or directory
g++: error: plugins/community/repos//TheXOR/TheXOR.a: No such file or directory
g++: error: plugins/community/repos//trowaSoft/trowaSoft.a: No such file or directory
g++: error: plugins/community/repos//unless_modules/unless_modules.a: No such file or directory
g++: error: plugins/community/repos//Valley/Valley.a: No such file or directory
g++: error: dep/lib/linux_gcc/x64/libspeexdsp.a: No such file or directory
g++: error: dep/lib/linux_gcc/x64/glew.a: No such file or directory
g++: error: dep/lib/linux_gcc/x64/jansson.a: No such file or directory
dep/yac/sharedlib_linux.mk:33: recipe for target 'bin' failed
make[1]: *** [bin] Error 1
make[1]: Leaving directory '/home/studio/src/VeeSeeVSTRack'
makefile.linux:23: recipe for target 'vst' failed
make: *** [vst] Error 2

m all is building again

tank-trax commented 5 years ago

it builds but is not functional

bsp2 commented 5 years ago

The squinkylabs plugin config is now aligned to the one in the Windows version. This solves some missing symbol errors when the plugin is loaded. I still can't see the graphics output but I'm using VirtualBox, maybe it needs to be updated. At least the plugin loads (tested in Renoise).

bsp2 commented 5 years ago

Hah, almost forgot: FBOs need to be turned off in the VirtualBox environment. Now the UI is visible.

@tank-trax: Can you confirm that it's working now with the updated squinkylabs makefile.linux ?

tank-trax commented 5 years ago

this comment was written before I read your last update but will add it

it's recognized by Renoise but fails to load

Bitwig blacklisted it it's error report had a similar response as I saw when trying to load it in Carla

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: 
could not read metadata: 
64-bit plugin host error: 
PluginHost: 
Could not list devices in ~/.vst/VCVRack/veeseevstrack_instr.so: 
Failed to load VST plug-in ~/.vst/VCVRack/veeseevstrack_instr.so: 
~/.vst/VCVRack/veeseevstrack_instr.so: 
undefined symbol: _Z40create_model_squinkylabs_plug1_Sequencerv

32-bit plugin host error: 
PluginHost: 
Could not list devices in ~/.vst/VCVRack/veeseevstrack_instr.so: 
Failed to load VST plug-in ~/.vst/VCVRack/veeseevstrack_instr.so: 
~/.vst/VCVRack/veeseevstrack_instr.so: wrong ELF class: ELFCLASS64

Carla also responded with -> undefined symbol: _Z40create_model_squinkylabs_plug1_Sequencerv

bsp2 commented 5 years ago

Yes, the update solves these undefined symbol errors.

tank-trax commented 5 years ago

I still get the same error... how do I clean the previous install?

bsp2 commented 5 years ago

go to "plugins/community/repos/squinkylabs-plug1", "m clean", "m bin", then go to the repo root and "m vst"

bsp2 commented 5 years ago

(and you may want to do the same thing with the LindenbergResearch plugin, I fixed a buffer overflow issue earlier today)

tank-trax commented 5 years ago

g++: error: plugins/community/repos//Valley/Valley.a: No such file or directory dep/yac/sharedlib_linux.mk:33: recipe for target 'bin' failed make[1]: [bin] Error 1 make[1]: Leaving directory '/home/studio/src/VeeSeeVSTRack.02' makefile.linux:23: recipe for target 'vst' failed make: [vst] Error 2

bsp2 commented 5 years ago

Once you've done a "m clean" in the repo root, "m vst" won't work and you need to rebuild all modules again ("m all").

tank-trax commented 5 years ago

I used a clean folder that had not been used build in and m vst

failed at

kg-config gtk+-2.0 --libs` -lGL -ldl -L/usr/lib -lm -lpthread g++: error: plugins/community/repos//21kHz/21kHz.a: No such file or directory

there is a double slash after repos. could that affect things?

or is m vst only good after m all has been executed in a previous build?

tank-trax commented 5 years ago

that did the trick

it built, is recognized and loads in Carla, Bitwig, Giada, Qtractor and Renoise...

it also loads in Tracktion 7 but freezes up Waveform 9 it demands a lot and causes xruns in Ardour and Mixbus, it tends to behave if I set the buffer to 512 or 1024 but at those settings there is too much latency It does not load in Radium (but I have an older version)

thanks!!