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
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-184.108.40.206930615-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
#!/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-220.127.116.11930615-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:
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.