Quantcast
Channel: Phoenix Firestorm Project - Wiki
Viewing all articles
Browse latest Browse all 5258

archive:fs_compiling_firestorm_64bit_ubuntu_16 - ↷ Page moved from ...

$
0
0
The current viewer codebase includes AlexIvy components from Linden Lab. This code does not compile in Linux. Developers are working on the code to make it compile correctly. New procedures will be published

Building Firestorm in 64-bit Ubuntu 16.04

There is no official support for compiling or operating self-compiled viewers. Unofficial support options are listed at the bottom of this page.

This procedure is used for building a non-standalone viewer on 64-bit Ubuntu 16.04 LTS systems and was tested on a fresh installation within a virtual guest. This procedure assumes that your Ubuntu system has been properly updated, and also assumes any derivative system (eg.: Mint) includes all the standard Ubuntu libraries.

The build process requires at least 4GB RAM with swap, a modern dual-core CPU and 32GB available HDD space. Recommded 8GB or more RAM, quad-core CPU and 32GB available HDD space.

Establish your programming environment

This is needed for compiling any viewer based on the LL open source code and only needs to be done once.

Install Required Tools

The required tools are:

bison bzip2 cmake curl flex g++ 4.7 m4 (for make) mercurial (for hg) python newer than 2.4.3 but not 3.0 python development pip llbase
sudo apt-get update # to make sure the repository list is current
sudo apt-get upgrade # to make sure all installed packages are current
sudo apt-get install --install-recommends bison bzip2 cmake curl flex g++-4.7 m4 mercurial python python-dev python-pip
sudo pip install --upgrade pip # The version in the repository is not the latest version
sudo pip install llbase

(the –install-recommends flag tells apt-get to install all packages recommended by each named package.)

In case you have multiple versions of g++ installed, which is possible, we need to identify 4.7.x as the default version.

update-alternatives --remove-all gcc 
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 47 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.7
update-alternatives --config gcc

It doesn't hurt to run those commands if you only have one g++ version installed.

Install Required Libraries

These libraries may be included with your distribution, and some may be automatically installed as dependencies for the tools you just installed:

libc.so (libc6-dev) libGL.so (libgl1-mesa-dev) LibGLU.so (libglu1-mesa-dev) libstdc++.so.6 (libstdc++6)
libx11.so (libx11-dev) libxinerama.so (libxinerama-dev ) libxml2.so (libxml2-dev) libXrender.so (libxrender-dev)
sudo apt-get install --install-recommends libc6-dev libgl1-mesa-dev libglu1-mesa-dev libstdc++6 \
  libx11-dev libxinerama-dev libxml2-dev libxrender-dev 

You can optionally install doxygen to eliminate related errors, but it is not needed to build Firestorm

sudo apt-get install --install-recommends doxygen

Install Autobuild

Autobuild is a Linden Lab resource that does all the hard work. For Firestorm, you will need a modified version of autobuild from one of our Developers.

sudo hg clone https://bitbucket.org/NickyD/autobuild-1.0 /opt/autobuild
sudo ln -s /opt/autobuild/bin/autobuild /usr/bin/autobuild 

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. This document will refer to src in your home directory, ~/src.

cd ~/src

There are several repositories but the one we are after is the development repository. You can grab all the sources if you wish, but but keep in mind that each FS source requires around 110MB initially and around 4.3GB after the binaries have been built, plus possible compiling overhead.

hg clone https://hg.firestormviewer.org/phoenix-firestorm-lgpl

It will create a folder called phoenix-firestorm-lgpl. You can choose a different destination folder by adding that folder's name to the end of the command, such as:

hg clone https://hg.firestormviewer.org/phoenix-firestorm-lgpl firestorm-source

The rest of this document will assume the default directory, phoenix-firestorm-lgpl

Cloning the Firestorm repository can take a bit, it's a rather large download. On a slow network, it may fail, and this script can help:

pull_in_chunks.sh
#!/bin/bash
 
cd ~/src
hg clone -r 10000 https://hg.firestormviewer.org/phoenix-firestorm-lgpl
cd phoenix-firestorm-lgpl
for i in {15000..40000..5000}
do
	echo "Grabbing to change $i"
	hg pull -u -r $i
done
echo "Grabbing to tip"
hg pull -u
cd ~/src

Configuring the Viewer

cd ~/src/phoenix-firestorm-lgpl
autobuild configure -c ReleaseFS_open

This will set up to compile with all defaults and without third party libraries. It will fetch any additional necessary libraries.

Configuration Switches

There are a number of switches you can use to modify the configuration process. The name of each switch is followed by its type and then by the value you want to set.

  • LL_TESTS (bool) controls if the tests are compiled and run. There are quite a lot of them so excluding them is recommended unless you have some reason to need one or
    more of them.
  • clean will cause autobuild to remove any previously compiled objects and fetched packages. It can be useful if you need to force a reload of all packages
  • package will result in a bzip2 archive of the completed viewer. Enabled by default, you would have to use -DPACKAGE:BOOL=Off to disable it

TIP: OFF and NO are the same as FALSE; anything else is considered to be TRUE

Examples:

autobuild -m64 configure -c ReleaseFS_open -- --clean -DLL_TESTS:BOOL=FALSE
autobuild -m64 configure -c ReleaseFS_open -- --clean

The first time you configure, several additional files will be downloaded from Firestorm and Second Life sources. These are mostly binary packages maintained outside the viewer development itself. And if you use the –clean switch, you will re-download them all.

Compiling the Viewer

autobuild -m64 build -c ReleaseFS_open

Now, sit back, read War and Peace, calculate PI to 50 places, tour the country, whatever you desire. Compiling can take quite a bit of time depending on your computer's processing power.

NOTE: It is possible to use autobuild to do both the configure step (only needed once) and the build step with one command (autobuild -m64 build -c ReleaseFS_open [– switches] . For clarity, they are mentioned separately.

Running your newly built viewer

Running from a menu item

Create the desktop launcher

cd ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/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-lgpl/build-linux-i686/newview/packaged
./firestorm

"Installing" the viewer

You can copy or move the contents of ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged to another location if you choose, and then launch firestorm from there. Example:

mkdir ~/Firestorm64
cp -a ~/src/phoenix-firestorm-lgpl/build-linux-x86_64/newview/packaged/* ~/Firestorm64
cd ~/Firestorm64
./firestorm # or etc/refresh_desktop_app_entry.sh to create a desktop launcher

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:The #phoenixviewer-dev channel 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.
  • Included documentation: In the Firestorm root folder are several “README” documents. You should make yourself familiar with their content, even if they appear to be out of date.

If you found a procedural error in this document, please let us know in as much detail as you can, either contact the author (preferred) or discuss on IRC.

Common Issues/Bugs/Glitches And Solutions

  • Missing libraries/applications/packages This may occur if you did not or could not install the listed packages. The packages do exist in the default Ubuntu repositories, so make sure you did not disable those. If you find that a library or application is in a different package for your system, contact the team with the name of the library or application, the name of its package and your Linux OS so that information can be checked and added here.
  • Delayed sounds Some users have noted that OpenAL plays sounds from the viewer up to 20 seconds after they are triggered. There is no solution to this via the viewer, but there may be some solutions on the Internet
  • Voice Won't Connect It was observed in testing that voice would not connect and no devices could be selected in Preferences ⇒ Sound & Media ⇒ Voice ⇒ Audio Device Settings. This was resolved by replacing Firestorm/lib/libvivoxal.so.1 with a copy from release.

Viewing all articles
Browse latest Browse all 5258

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>