LOstorm SL Viewer

Source Code

back to main website

Git: https://git.allthefallen.moe/lostorm/lostorm

(Mirror: https://gitlab.com/lostorm/lostorm)

Follow the official compilation instructions: fs_compiling_firestorm_linux / fs_compiling_firestorm_windows

Note: As of LOStorm 10, Python 3 is required instead of Python 2.7

Note: As of LOStorm 11, Python 3.7 or newer is required when following the official Firestorm instructions for Linux. On systems where Python 3.7 is not available, this can be worked around by substituting the following command when installing autobuild: pip3 install git+https://bitbucket.org/lindenlab/autobuild.git@v3.0.0#egg=autobuild.


Building on Windows

Typical Windows build process (after dependencies are installed and setup -- reboot may be required to set environment variables):

One time:
X:\> git clone http://.../lostorm
X:\> git clone http://.../fs-build-variables
X:\> cd lostorm

Every time:
X:\lostorm> set AUTOBUILD_VSVER=170
X:\lostorm> set AUTOBUILD_VARIABLES_FILE=X:\fs-build-variables\variables
X:\lostorm> autobuild configure -v -A 64 -c ReleaseFS_open -- --package --openal -DLL_TESTS:BOOL=FALSE

Then open build-vc170-64\Firestorm.sln in Visual Studio and build.
Build result is located at build-vc170-64\newview\Release

(adjust version parameter based on Visual Studio version: VS2017 is version 150, VS2019 is 160 and VS2022 is 170)

Historical notes

These notes are only relevant to older versions of LOStorm. If building old versions be aware that you may need to use an era-appropriate snapshot of fs-build-variables.

Windows: Git4Windows' bash.exe should be in the PATH. Having multiple editions of Visual Studio installed together does not work unless you patch the file C:\Python38\Lib\site-packages\autobuild\autobuild_tool_source_environment.py (line 172):

-        VCINSTALLDIR = os.path.join(where, 'VC', 'Auxiliary', 'Build')
+        VCINSTALLDIR = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build"

(This no longer seems to be required)

LOStorm 11: Must only have Visual Studio 2017 installed. Visual Studio 2019 does not work.
(as of LOStorm 12, Visual Studio 2019 or 2022 should both work)


Building on Linux

Typical Linux build process:

One time:
~$ git clone http://.../lostorm
~$ git clone http://.../fs-build-variables
~$ cd lostorm

Every time:
~/lostorm$ export AUTOBUILD_VARIABLES_FILE=$HOME/fs-build-variables/variables
~/lostorm$ autobuild configure -v -A 64 -c ReleaseFS_open -- --package -DLL_TESTS:BOOL=FALSE -DUSE_OPENAL:BOOL=TRUE
~/lostorm$ nice ionice autobuild build -A 64 -c ReleaseFS_open

Build result is located at build-linux-x86_64/newview/packaged
Historical notes

These notes are only relevant to older versions of LOStorm. If building old versions be aware that you may need to use an era-appropriate snapshot of fs-build-variables.

[LOStorm 7 and earlier] Old Ubuntu chroot instructions (Ubuntu 16.04 LTS)

You should use Ubuntu 16.04 (xenial) with GCC 5 specifically to build.
To create and use an Ubuntu 16.04 chroot from a Debian based system use these commands:

Download and enter Ubuntu chroot:
$ sudo debootstrap --arch=amd64 xenial ./lostorm-build-root http://archive.ubuntu.com/ubuntu
$ sudo chroot ./lostorm-build-root

You are now operating within the Ubuntu chroot and can install the required packages:
# apt install ...

And create a user account to build with:
# adduser build
# su build
$ git clone ...
etc...

WARNING: Peak memory consumption will be ~1.5GB per CPU thread (e.g. 24GB of available memory required for 8 core / 16 thread CPU). Using swap or pagefile is OK.

WARNING: SL / FS build process downloads many dependencies as pre-compiled binaries over the internet. These cannot be vetted and may become unavailable and make building impossible. Substituting them with self-compiled versions is difficult.

WARNING: Care must be taken to ensure that custom builds are indistinguishable from official releases (matching release name, channel name, version number, revision number), otherwise there is a risk of being blocked or banned.