Chapter 2. Installation

2.1. Building and installing libzzub

2.1.1. Required Packages

If you use a popular distribution of GNU/Linux, chances are that your local package manager already offers a libzzub package. If not, you will need to build libzzub yourself.

Independent of which distribution you use, building and installing libzzub shouldn't be hard, given that you follow this guide. If you have trouble installing libzzub, please contact your distribution maintainers and ask them to include support for libzzub.

libzzub consists of several components which have different requirements. Some of these may already come with the distro that you are using, some are a bit exotic and require individual building. We have focused on keeping the number of dependencies small and to include as much as required in the distribution package itself.

In order to assist you with building libzzub, libzzub features an extensive configuration process that notifies you of missing dependencies.

First make sure that you have all programs and libraries installed required to build libzzub. Usually, all of them should be provided by your distribution of GNU/Linux. Please check with your distributions package manager documentation on how to search and install packages. You are going to need following packages:

Depending on which sound API you wish to use, following libraries are required as well:

2.1.2. Ubuntu and Debian

On Debian-style distributions such as Ubuntu, you will require -dev packages additionally to regular library packages. The following command fetches the Debian or Ubuntu packages required for compiling libzzub and running Aldrin:

sudo apt-get install python python-ctypes python-gtk2 librsvg2-common scons libsndfile1-dev zlib1g-dev libasound2-dev jackd libjack-dev libsamplerate0-dev libfftw3-dev

Substitute fftw3-dev for libfftw3-dev if you are using Gutsy or earlier distributions of Ubuntu.

2.1.3. Downloading and Compiling

libzzub packages can currently be downloaded from Aldrin's SourceForge.net project website. You can either download a release or build libzzub from the source repository with the following command:

svn co http://svn.zeitherrschaft.org/zzub/trunk zzub
In this guide, we are going to download a release.

  1. On the project website, click on Downloads to see available releases. You will see the downloads page on which one or more releases are listed.

  2. Download the sources of the most recent release. Usually, the link should be named something like libzzub x.x Source Release (x86, .tar.bz2), where x.x is the release number.

  3. Unpack the downloaded sources into a new folder. You will get a new subfolder named something like libzzub-x.x:

    [paniq@aspera tmp]$ tar -vxf libzzub-x.x.tar.bz2
    ...
    libzzub-x.x/CREDITS
    libzzub-x.x/INSTALL
    libzzub-x.x/ChangeLog
    libzzub-x.x/LICENCE
  4. Change into the newly created folder. and run scons to configure libzzub for your system. If everything runs fine, you are going to see an output as below. If not, scons configure will tell you what is missing.

    [paniq@aspera tmp]$ cd libzzub-x.x
[paniq@aspera libzzub-x.x]$ scons configure
    scons: Reading SConscript files ...
    Checking for C header file zlib.h... yes
    Checking for C header file sndfile.h... yes
    Checking for C header file samplerate.h... yes
    Checking for C header file fftw3.h... yes
    Checking for C header file CoreAudio/CoreAudio.h... no
    Checking for C header file alsa/asoundlib.h... yes
    Checking for C header file jack/jack.h... yes
    Checking for C header file sys/soundcard.h... yes
    Checking for C header file ladspa.h... yes
    Checking for C header file dssi.h... yes
    Checking for 'sse' CPU flag... (cached) yes
    Checking for 'sse2' CPU flag... (cached) yes
    Finished configuration.
    
                      === Using ===                   
                        CoreAudio: no
                             JACK: yes
                             ALSA: yes
                              OSS: yes
            Use SSE CPU Extension: no
           Use SSE2 CPU Extension: yes
               Use Timestretching: yes
    
                    === Components ===                
                   Lunar DSP Host: yes
                     Lunar Target: gcc
                             DSSI: yes
                           LADSPA: yes
         pyzzub (zubb for Python): yes
    
                   === Directories ===                
                           Prefix: /usr/local
                     Install into: /usr/local
                Library Directory: /usr/local/lib
    
              Generate Debug Info: False
    
    Please check if above settings reflect what you want, then build libzzub using
            scons
    To install scons, run
            [sudo] scons install
    

    You can configure scons to install into a different target folder than /usr/local, to prevent libzzub from installing system wide:

    [paniq@aspera libzzub-x.x]$ scons configure PREFIX=/home/paniq/usr

    scons saves all settings, so you never need to pass an option twice.

    If you wish to build libzzub without Lunar (and thus, missing out on a lot of nifty DSP plugins), you can turn it off:

    [paniq@aspera libzzub-x.x]$ scons configure LUNAR=False

    You can get a full list of options using the --help option:

    [paniq@aspera libzzub-x.x]$ scons --help
  5. Now that everything is set up, build libzzub:

    [paniq@aspera libzzub-x.x]$ scons
    scons: Reading SConscript files ...
    scons: done reading SConscript files.
    scons: Building targets ...
    ...
    scons: done building targets.
  6. Now install libzzub to your system (you will need root rights if you are going to install libzzub system wide):

    [paniq@aspera libzzub-x.x]$ sudo scons install
    Password:
    scons: Reading SConscript files ...
    scons: done reading SConscript files.
    scons: Building targets ...
    Install file: "lib/libzzub" as "/usr/local/lib/libzzub"
    ...
    scons: done building targets.

libzzub is now installed.