User Tools

Site Tools


fs_compiling_firestorm_64bit_kubuntu
Advertisement

Under Construction

Firestorm Ubuntu Builds

This procedure is for building a 64-bit viewer on a 64-bit Kubuntu system. It was originally provided and verified by Manwa Pastorelli. This version was extended and tested with Linux Mint 13 for x86_64, and should work with Ubuntu 12.04 LTS as well. It is current as of Firestorm 4.3.0.30616.

Do not attempt to build a 32-bit version of Firestorm on a 64-bit Linux system unless you know exactly what you are doing. You are likely to make your system unusable. Multiarchitecture support on Linux is still very much a work in progress.

Establish your programming environment

Install these packages. This includes everything that is mentioned on the SL Wiki for compiling on Linux.

bison build-essential cmake flex freeglut3
freeglut3-dev g++-multilib google-mock libalut-dev libapr1-dev
libaprutil1-dev libberkeleydb-perl libboost-all-dev libc-ares-dev libc6-dev
libc6-dev-i386 libdb-dev libdbus-glib-1-dev libgl1-mesa-dev libglu1-mesa-dev
libglui2c2 libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libgtk2.0-dev libjpeg62-dev
libogg-dev libopenal-dev libopenjpeg-dev libpng12-dev libsdl1.2-dev
libssl-dev libstdc++6 libvorbis-dev libX11-dev libxml2-dev
libxmlrpc-epi-dev libxmlrpc-epi0 libxrender-dev mercurial zlib1g-dev
sudo apt-get install bison build-essential cmake flex freeglut3 freeglut3-dev g++-multilib \
     google-mock libalut-dev libapr1-dev libaprutil1-dev libberkeleydb-perl libboost-all-dev \
     libc-ares-dev libc6-dev libc6-dev-i386 libdb-dev libdbus-glib-1-dev libgl1-mesa-dev \
     libglu1-mesa-dev libglui2c2 libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev \
     libgtk2.0-dev libjpeg62-dev libogg-dev libopenal-dev libopenjpeg-dev libpng12-dev \
     libsdl1.2-dev libssl-dev libstdc++6 libvorbis-dev libX11-dev libxml2-dev libxmlrpc-epi-dev \
     libxmlrpc-epi0 libxrender-dev mercurial zlib1g-dev

Try installing these packages. They may not exist in your version of Linux; if not, try building anyway, as other packages may include the parts you need.

libglui2c2-dev libstdc++6-4.6-dev libxmlrpc
sudo apt-get install libglui2c2-dev libstdc++6-4.6-dev libxmlrpc

For Linux Mint and likely Ubuntu, these additional packages are needed:

libqt4-core libqt4-gui libqt4-dev libhunspell-dev qt4-qmake autoconf libtool
sudo apt-get install libqt4-core libqt4-gui libqt4-dev libhunspell-dev qt4-qmake autoconf libtool

Get other precompiled packages

Edit your package source list:

sudo kate /etc/apt/sources.list

Add the following lines:

# Openmetaverse repo
deb http://ppa.launchpad.net/openmetaverse/ppa/ubuntu lucid main

Save the file.

Add the package signing keys in a terminal window:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-key 0x50A40F50
gpg --export 0x50A40F50 | sudo apt-key add -

Get the remaining packages:

sudo apt-get update
sudo apt-get install glh-linear libndofdev-dev

Set up your source code tree

Plan your directory structure ahead of time. If you are going to be producing changes or patches you will be cloning a copy of an unaltered source code tree for every change or patch you make, so you might want to have all this work stored in its own directory. If you are a casual compiler and won't be producing any changes, you can use one directory. For this document, I will assume ~/src.

Download and configure Autobuild from Linden Lab

cd ~/src
hg clone http://hg.secondlife.com/autobuild 
PATH="$PATH:~/src/autobuild/bin" # you should add this to your .profile, too

Download the Firestorm source tree

cd ~/src
hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl phoenix-firestorm

This can take a bit, it's a rather large download.

Compile the Viewer

Building a standalone copy now requires more than the SL Wiki suggests. Several items must be downloaded and compiled, since there are no packages available currently in K/Ubuntu.

Build Google Breakpad

cd ~/src
hg clone https://bitbucket.org/tonyasouther/3p-google-breakpad-64
cd 3p-google-breakpad-64
autoreconf -i # fixes a nasty compile issue
autobuild build # this will error out, but the needed parts will have been built by then
sudo cp -aR stage/include/google_breakpad /usr/local/include
sudo cp -aR stage/lib/release/* /usr/local/lib

Build ndphysicsstub

cd ~/src
hg clone https://bitbucket.org/NickyD/ndphysicsstub
cd ndphysicsstub
cmake -G 'Unix Makefiles'
make
sudo make install

Build jsoncpp

Note: You must build jsoncpp from source. The one in the libjsoncpp-dev package won't work.

cd ~/src
hg clone https://bitbucket.org/NickyD/jsoncpp
cd jsoncpp
cmake -G 'Unix Makefiles'
make
sudo make install

Build GLOD

cd ~/src
hg clone https://bitbucket.org/tonyasouther/llglod-64
cd llglod-64
autobuild build
sudo cp -aR stage/include/glod /usr/local/include
sudo cp -aR stage/lib/release/* /usr/local/lib

Build colladadom

cd ~/src
hg clone https://bitbucket.org/tonyasouther/colladadom-64
cd colladadom-64
autobuild build
sudo cp -aR stage/include/collada /usr/local/include
sudo cp -aR stage/lib/release/* /usr/local/lib

Build llqtwebkit

Note: You must build this from source, as well. The one in the openmetaverse repository is too old.

cd ~/src
hg clone https://bitbucket.org/tonyasouther/llqtwebkit-64
cd llqtwebkit-64
autobuild build
sudo cp stage/include/llqtwebkit.h /usr/local/include
sudo cp stage/lib/release/* /usr/local/lib

Build libcurl-cares

Note: You must build this from source, as well. The one in the openmetaverse repository is too old.

cd ~/src
hg clone https://bitbucket.org/tonyasouther/3p-curl-64
cd 3p-curl-64
autobuild build
sudo cp -aR stage/include/curl /usr/local/include
sudo cp -aR stage/lib/lib* /usr/local/lib

Build Firestorm

Note: Currently, the build directory will be build-linux-i686, even when building a 64-bit build is requested.

autobuild build -c ReleaseFS_open -- -DSTANDALONE:BOOL=ON -DWORD_SIZE=64
# add --clean if you want to start fresh

Running your newly built viewer

Running from a menu item

cd ~/src/phoenix-firestorm/build-linux-i686/newview/packaged/etc/
./refresh_desktop_app_entry.sh

Then open your applications menu and look in the Internet or Network branch for the Firestorm launcher.

Running from command line or file browser

cd ~/src/phoenix-firestorm/build-linux-i686/newview/packaged
./firestorm

Troubleshooting

Handling problems

If you encounter errors or run into problems, please first double check that you followed the steps correctly.
One typo can break it. Then, check whether someone else already had the same issue. A solution might be known already.

  • IRC: #phoenixviewer-dev at irc.freenode.com is the best place to look for solutions.
    A lot of self-compilers and project developers hang out there and are ready to help you.
  • Jira: JIRA may contain resolved tickets.
    Search using the error you encountered. Also, if you found a procedural error in this document, please let us know in as much detail as you can.

Common Issues/Bugs/Glitches And Solutions

  • Missing libraries This may occur if you did not install the packages listed.
    I have tried to cover all of them in writing this document.
fs_compiling_firestorm_64bit_kubuntu.txt · Last modified: 2013/09/21 20:19 by misteracacia