sfztools/sfizz-ui

Issue with the build process in Arch/Manjaro, and possibly other distros

Opened this issue · 2 comments

I use Manjaro x64 and there is an issue while building Sfizz from source. The terminal shows several warnings in the process, and in the step 73 of the build operation, while dealing with the plugins, it just stops. The issue is solved by switching to Clang beforehand, so I'll transcribe here the solution for other users who may need it.

1) You go to :

https://github.com/sfztools/sfizz-ui/releases

and download sfizz-1.2.2.tar.gz (or whatever version you need)

2) Extract the tar.gz file

You enter the directory of the extracted content and open a terminal right there (in Thunar or Nemo, right click and choose "Terminal" or "Open in terminal")

3) The usual method could be normally achieved by copying and pasting these instructions in the terminal (Ctrl-Shift+V inside the terminal) :

mkdir build && cd build && cmake .. && make && sudo make install

This is, in other words, the process described in the Build section of the Sfizz homepage. BUT, after a while in the process it could happen that, reaching a certain point, things get messed up. So, when you try it again you add these lines to switch to Clang (another compiler to build) :

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
mkdir build && cd build && cmake .. && make && sudo make install

A side note : Manjaro, at least, has the clang and compiler-rt packages already installed. Those are the requisites for switching to Clang. If you have any problem while trying this procedure, check that they are installed in your system.

That did it for @vertfin, who kindly told me about it, and me . I don't know if it is a universal solution for the build issue, but it worked here in Manjaro. If any of the devs need further information, I can repeat the process in another machine to copy the warning messages.

I'd suggest to include binaries for Linux in all releases (including the previous ones). It's quite strange that there are indeed binaries for Windows and Mac, but not for Linux. I know that experienced Linux users prefer to build things from source, but for the end user this can be quite problematic. Most build tutorials take way too many things for granted, and when an issue occurs as in this case, you don ´t have any other choice.

Apart from this, thanks so much for the instrument. It's excellent in many ways...

Our dependency on VSTGUI makes it a bit of a nightmare to compile a universal binary for Linux. Long story short, we depend on a slurry of graphic- and input-related libraries to build the GUI for Linux. It's quite impractical to statically build all those libraries in a "universal" binary, and is actually frowned upon by packagers in distros (see #135 for a more recent example but this is always an ongoing problem).

Our solution at the time was to depend on OBS to populate packages for distros, however this comes at a cost. Even when I had time to spare for sfizz, packaging is time-demanding, especially if you're maintaining packages across the Linux landscape. So things tend to degrade and rot over time, sadly.

I'll try to find some time to improve and update OBS for later distros, update the build information so that it's easier, and see if I can enable older packages on OBS somehow.

I think this is a duplicate of #139, in which case both issues would be fixed by merging this PR in sfztools/vstgui and updating the corresponding submodule in sfizz-ui.

The root cause is an unused but invalid line of code in VSTGUI that was previously silently ignored by GCC, but now errors in GCC 14. It would explain why switching to Clang also “fixes” the issue.