CURRENTLY BROKEN, THIS WILL BE UPDATED WHEN EITHER THE REPOSITORY IS FIXED OR I GET DETAILS OF A NEW PROCEDURE.

Compile Firestorm on Ubuntu 20.04 (Focal Fossa) – A guide to compiling the Firestorm Viewer for Opensimulator. Official Firestorm guides are available on the Firestorm Wiki. However, they have not been updated for Linux in a few years. This guide shows how to successfully compile the viewer using Ubuntu Focal Fossa.

Compile Firestorm on Ubuntu 20.04- Folder structure

Let’s start with creating a sane directory tree structure. This structure can be changed, however, if it is, the paths used further down will require updating to match. The structure used throughout is:

~/src
└── firestorm
    ├── 3p-fmodstudio
    ├── fs-build-variables
    ├── phoenix-firestorm
    ├── pythod2-pip
    └── vorbis

The following lines assume you have no ‘src’ folder in your home directory. Adjust these instructions if this folder already exits.

cd ~/
mkdir src
cd src
mkdir firestorm
cd firestorm

Test System Pre Installed Packages and Settings

The test system is a Ubuntu 20.04 desktop standard installation running inside a Virtual box WM. When starting from minimal further packages may be required (probably will).

Compile Firestorm on Ubuntu 20.04 – Install The Dependencies

Installing the tools in the Focal Fossa Repository

This is slightly different from installing the dependencies on previous versions of Ubuntu. Package names for python2 have been changed and in some cases culled utterly. Additionally, GCC-6 and G++6 are no longer in the repositories for Focal Fossa, however, they are no longer required. Compilation works with GCC8 and 9.

sudo apt install --install-recommends make cmake curl doxygen gdb git python2 python2-dev python-all

Installing Python – Pip

Start by creating a new folder inside ‘firestorm to download the python-pip file into. Once the folder is created moved into the folder, download the python-pip file and run it.

cd ~/src/firestorm
mkdir python-pip
cd python-pip

curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py

sudo python2 get-pip.py

Install Autobuild

sudo pip2 install autobuild

Update the GCC and G++ Alternatives.

Please make sure you replace any existing alternatives set. In most cases, it is enough to add GCC6, 8 and 9. Custom systems may need to add others back. Clear all existing GCC alternatives then add-in again. Failing to add GCC 8 and 9 back as alternatives may cause package manger issues.

update-alternatives --remove-all gcc 

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9

update-alternatives --config gcc

On the menu select GCC6, just remember to set it back to 9 when the compilation is finished.

Install the rest of the required libraries

sudo apt install --install-recommends libalut-dev libapr1-dev libaprutil1-dev libatk1.0-dev libboost-all-dev libcairo2-dev libcollada-dom2.4-dp-dev libcurl4-openssl-dev sudo apt install --install-recommends libgl1-mesa-dev libglu1-mesa-dev libpython-all-dev libstdc++6 libx11-dev libxinerama-dev libxml2-dev libxrender-dev

Download the Firestorm build variables

cd ~/src/firestorm

git clone https://vcs.firestormviewer.org/fs-build-variables

Compile Firestorm on Ubuntu 20.04 – Download Vorbis

Credit for the vorbis file goes to Marissa Orloff. She states that when recompiling this the following changes were made: in ogg_vorbis build.sh in line 91 needs to be edited to remove LL_release. aclocal and automake need symlinks 1.15 > 1.16

cd ~/src/firestorm
mkdir vorbis
cd vorbis

wget https://fireandicegrid.net/downloads/ogg_vorbis-1.3.3-1.3.6.200930615-linux64-200930615.tar.bz2

md5 of the download: d888b4916006c28471b4f103854526c3

Download and compile Fmod

cd ~/src/firestorm

git clone https://vcs.firestormviewer.org/3p-libraries/3p-fmodstudio

Also, download Fmod studio API from the fmod website (you will need to make an account) and put the downloaded file into ‘~/src/firestorm/3p-fmodstudio’ folder. At the time of writing the latest version is 2.00.09.

Next edit the build-cmd.sh file (located inside the 3p-fmod) folder to match the version just download. The text below is a sample from the very top of the original at the time of writing

#!/usr/bin/env bash

FMOD_DOWNLOAD_BASE="http://192.168.1.115/dev/pkg/"
FMOD_ROOT_NAME="fmodstudioapi"
FMOD_VERSION="20101"
FMOD_VERSION_PRETTY="2.01.01"

This needs updating to match the version of Fmod Studio download, if that is 2.00.09 update accordingly

nano ~/src/firestorm/3p-fmodstudio/build-cmd.sh
#!/usr/bin/env bash

FMOD_DOWNLOAD_BASE="http://192.168.1.115/dev/pkg/"
FMOD_ROOT_NAME="fmodstudioapi"
FMOD_VERSION="20009"
FMOD_VERSION_PRETTY="2.00.09"

Save the changes and exit then compile 3p-fmod

cd ~/src/firestorm/3p-fmodstudio
autobuild build -A 64 --all
autobuild package -A 64

The output at the end will look similar to:

wrote  /home/username/src/firestorm/3p-fmodstudio/fmodstudio-2.00.09-linux64-201822306.tar.bz2
md5    30c4b8096b6268617bcdc2f6ee6b36d3

The path will be different as it will match your system. Make a note of the information; it is needed later.

Compile Firestorm on Ubuntu 20.04 – Download and Compile the Firestorm source code

cd ~/src/firestorm
git clone https://vcs.firestormviewer.org/phoenix-firestorm

A little preparation work

cd ~/src/firestorm/phoenix-firestorm
source ../fs-build-variables/convenience Release

export AUTOBUILD_VARIABLES_FILE=$HOME/src/firestorm/fs-build-variables/variables

Now a couple of edits are required to the autobuild.xml. These are done using ‘autobuild installables edit’.

autobuild installables edit item platform=platform=linux64 hash= url=file////

It is easiest to prepare these in a text editor. Use the information at the end of the 3p-fmod compile to create a line similar to the one below (the hash will be different). If your system is using a different path that will also be different.

autobuild installables edit fmodstudio platform=linux64 hash=87c1670a3338c9583364fc35f50a8eb6 url=file://$HOME/src/firestorm/3p-fmodstudio/fmodstudio-2.01.02-linux64-202151830.tar.bz2

Do the same for the vorbis file downloaded earlier (the hash will be the same this time).

autobuild installables edit ogg_vorbis platform=linux64 hash=d888b4916006c28471b4f103854526c3 url=file://$HOME/src/firestorm/vorbis/ogg_vorbis-1.3.3-1.3.6.200930615-linux64-200930615.tar.bz2

Configure and then compile

If you wish to add a channel name to the viewer such as the name of your grid change “MyChannelName” to what ever you like.

autobuild configure -A 64 -c ReleaseFS_open -- --package --fmodstudio  --chan MyChannelName --clean

autobuild build -A 64 -c ReleaseFS_open --no-configure

A couple of possible variations on this are:

--no-opensim (removes OS support and you will get an SL viewer only)

--avx (build with AVX CPU instruction support (should be safe as long as your CPU supports that instruction set)

Compile Firestorm on Ubuntu 20.04 – The packaged files

All that’s left is to copy and extract the tarball. Look inside the following folder:

~/src/firestorm/phoenix-firestorm/build-linux-x86-64/newview

Inside it, there will be a file which ends with .tar.xz. That file is the compressed tarball for the viewer. Don’t forget to subscribe to the RSS feed for more updates like this one.

Written by Sara Payne

Student of Computer Science at The University Of Hull and small. The proprietor of 2 small businesses (1st Class Travel Taxis and The Fire And Ice Opensim Grid), also an app-based student of Italian.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.