compiling SuperCollider from source on Ubuntu in 2021

Despite the fact I really want to move away from WordPress, I need to write this down here.

The other day I did a heavy update of my ‘workstation’ machine. I jump several Ubuntu releases and suprisingly most of things ended up working the way they worked before. SuperCollider was unfortunately not one of them. So I decided to recompile from source, using the latest release from SuperCollider Download page (3.12.1) and my notes for compilation on Ubuntu from 2019.

I’m now on Ubuntu version 20.04 codenamed focal. I first fetched all packages needed for compilation:

sudo apt-get install build-essential libsndfile1-dev libasound2-dev libavahi-client-dev  libicu-dev libreadline6-dev libncurses5-dev libfftw3-dev libxt-dev libudev-dev pkg-config cmake  qt5-default qt5-qmake qttools5-dev qttools5-dev-tools qtdeclarative5-dev qtpositioning5-dev  libqt5sensors5-dev libqt5opengl5-dev qtwebengine5-dev libqt5svg5-dev libqt5websockets5-dev libjack-jackd2-dev checkinstall

If something goes wrong in the above step, you can refer to the page Installing SuperCollider from source on Ubuntu on SuperCollider github’s wiki.

Download SuperCollider sources from the download page mentioned above and uncompress (it’s a bziped tar) them somewhere with a

tar xjvf SuperCollider-3.12.1-Source.tar.bz2

Enter the folder with sources, create a build folder and enter it:

cd SuperCollider-3.12.1-Source; mkdir build; cd build

Configure make (cmake):

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=RelWithDebInfo -DNATIVE=ON ..

Start compilation (-j 12 argument means how many (12) paralel cores can make use. also lotsa warnings but if you don’t end up with ‘Build failed’, then build was successful):

make -j 12

Now create a deb with checkinstall (using date and $HOSTNAME for package version):

export DATE=`date +%Y%m%d`
sudo checkinstall -D --pkgname=supercollider --backup=no --install=no --nodoc -y --pkgversion=1:3.12.1-$HOSTNAME$DATE

SC3 plugins

Similarly untar, configure and compile sc3-plugins (adjust DSC_PATH and pkgversion):

cd ../../sc3-plugins-3.12.1-Source/
mkdir build
cd build/
cmake -DSC_PATH=/home/$USER/.local/src/supercollider/SuperCollider-3.12.1-Source -DCMAKE_BUILD_TYPE=Release -DSUPERNOVA=ON ..
cmake --build . -j 12 --config Release
export DATE=`date +%Y%m%d`
sudo checkinstall -D --pkgname=sc3-plugins --backup=no --install=no --nodoc -y --pkgversion=1:3.12.1-$HOSTNAME$DATE 

Installing

Remove previous installation of SuperCollider and plugins first:

sudo apt remove supercollider sc3-plugins

Install the debs:

sudo gdebi SuperCollider-3.12.1-Source/build/supercollider_3.12.1-$HOSTNAME$DATE-1_amd64.deb

and

sudo gdebi sc3-plugins-3.12.1-Source/build/sc3-plugins_3.12.2-$HOSTNAME$DATE-1_amd64.deb