|
Advertisement
|
|---|
Under Construction
This procedure is for building a 64-bit viewer on a 64-bit Kubuntu 10.10 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.
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 | libboost1.48-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 libboost1.48-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 13 and likely Ubuntu 12.04, these additional packages are needed:
| libqt4-core | libqt4-gui | libqt4-dev | libhunspell-dev | qt4-qmake |
sudo apt-get install libqt4-core libqt4-gui libqt4-dev libhunspell-dev qt4-qmake
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
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.
cd ~/src hg clone http://hg.secondlife.com/autobuild PATH="$PATH:~/src/autobuild/bin" # you should add this to your .profile, too
cd ~/src hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl phoenix-firestorm
This can take a bit, it's a rather large download.
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.
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
cd ~/src hg clone https://bitbucket.org/NickyD/ndphysicsstub cd ndphysicsstub cmake -G 'Unix Makefiles' make sudo make install
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
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
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
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
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
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
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.
cd ~/src/phoenix-firestorm/build-linux-i686/newview/packaged ./firestorm
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.