Engine backends are loaded dynamically, and Ardour can start without
them. This is manly to relax the requirement of having libpulse.so.
libardour itself depends on libasound, so the ALSA backend is always
present, and the jack-backend dynamically dlopen()s libjack.
ldd may not print errors to stderr (Debian GLIBC 2.28-10 doesn't),
and hence the current check did nothing on debian and derivative
systems. While on other GNU/Linux distros (e.g. openSuSe),
other errors do show up (e.g. checking session-utils shell script
-> "not a dynamic executable")
This explicitly checks for missing libraries hopefully in a
distro independent way.
Previously, if $PATH contains whitespaces the startup script would split
the new exported $PATH on the first whitespace. This was observed on an
Ubuntu system where $PATH contained a directory with whitespaces.
The change adds weak quotation around the new path to prevent expansion
of whitespaces. $PATH though, is still expanded.
Currently, the startup script for GNU/Linux adds the current working directory
to LD_LIBRARY_PATH if LD_LIBRARY_PATH is not empty or unset.
For example, if LD_LIBRARY_PATH is set to "/lib" when the current script is
run, it will be set to "<install-dir>/lib::/lib", which includes the current
working directory as one of the paths.
This commit removes the extra colon added to LD_LIBRARY_PATH (without changing
the script's behavior of setting LD_LIBRARY_PATH to an empty string when it is
unset).
Inside the bundle, those files are read-only, anyway.
This alleviates us from generating/updating the files with whenever
the built-in default changes and also makes architecture dependent
default-config (compile time #defines) work.