Running Oolite-Linux

From Elite Wiki
LinuxWasch3.jpg

Overview

The Linux port of the game follows the Mac OS X version and is released at the same time. Both source and binary downloads are available. There are some minor differences between Oolite for Linux and Oolite on Mac OS X: the Linux version does not support iTunes integration, or Growl.

It is simple to install. Simply download and run the Autopackage, and then you can play the game.

Getting and installing the game

Ubuntu and Debian users

Oolite is available in the software repositories for both recent versions of Debian and Ubuntu (7.10, Gutsy Gibbon). Under Ubuntu, just go to Applications -> Add software, and search for Oolite in all packages. The game's icon appears in the Applications -> Games menu. Currently the version in Debian stable is the extremely old 1.65 (unstable does have 1.76), and the version in Ubuntu is 1.75.3. Until the repositories are updated we recommend you install 1.76 following the instructions below.

Other distributions

The latest current stable release, 1.90, can be downloaded at Oolite.space. New releases are announced on the Oolite forum.

If you just want to play the game it is strongly recommended you download the Autopackage. This contains everything needed to play the game on any recent Linux distribution. It has been tested on several distributions, including Gentoo, Fedora Core, CentOS, Debian and Ubuntu.

An autopackage is somewhat similar to the installers you might find on Windows. If you have never installed an autopackage before, once you have downloaded the game, you will need to do the following steps:

  • 1. Navigate to where you downloaded the game with your file manager (by default, Firefox will download things to the desktop).
  • 2. Right click on the file's icon, and select Properties.
  • 3. Select the 'Permissions' tab.
  • 4. Click on the check box 'Owner: Executable' to make it checked, and click Close.
  • 5. Double click the file's icon to run the installer. Follow any instructions.

Once you have installed at least one Autopackage, any further autopackages you download will be recognised by your system so the first four steps will not need to be done again.

Running the game

Important - Fedora Core >=5 users should read Running Oolite-Fedora Core 5

Once the game is installed, it should appear in your Applications -> Games menu. Just click its icon. Alternatively, typing 'oolite' in a Terminal will start the game.

Installing OXPs (AddOns)

OXPs are expansion packs for Oolite. If you installed the game by entering your root password, and therefore installing the game system-wide, you will need to put OXPs in /usr/lib/Oolite/AddOns. If you installed it in your home directory, you will need to put OXPs in ~/.local/lib/Oolite/AddOns.

Updating the game

The fastest way to update the game when a new version is out is to run 'oolite-update'. Run this as the user that installed the game (so run it as root if you installed the game system-wide). To run it, either use 'Run Command' from GNOME or KDE and enter 'oolite-update', or open a Terminal and run 'oolite-update'.

The bleeding edge

A nightly build is provided for those who want to live on the bleeding edge - it is built from the latest source in the Subversion source repository for Oolite. 32-bit Nightly or 64-bit Nightly. Remember that the nightly builds are under constant development and may at any time include serious bugs not present in the released versions. While the developers welcome feedback on test versions, we recommend that if you just want to play Oolite you use the stable released versions.

Building Oolite-Linux from source

You will need the following components:

  • The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.
  • GNUstep Startup. Your distro may provide the appropriate GNUstep development libraries.
  • SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from the SDL Library Development website.
  • OpenGL development libraries - your distribution will have these.
  • To build Autopackages, you will also need the Autopackage development kit, which is available at Autopackage.org

The source code for these dependencies is also available at [1]

You may also want the following optional component:

  • espeak, if you want speech (1.73 & later). Your distribution should have this; otherwise, see espeak.sourceforge.net.

It is recommended you use git to download the source tree. First do

git clone https://github.com/OoliteProject/oolite.git

to get the main repository. Then, in the directory this creates, do

git submodule update --init

to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.

Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.

Notes about the build process

  • The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.
  • A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:
    https://bb.oolite.space/viewtopic.php?p=42188&highlight=#42188
  • As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite. Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands. The included Spidermonkey dependency is automatically built as well. For a full list of targets, use 'make -f Makefile help'.
    • make -f Makefile debug
    • make -f Makefile release

Notes about GNUstep

Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent. As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good. The current trunk (gnustep-base1.21.1) appears to also be ok.

This forum post details how to build and install gnustep for developing Oolite.

General Comment on Linux

Oolite depends on some very specific versions of several libraries, and in some cases, special custom modified versions of those libraries, all of which are compiled and bundled with the Oolite tar package supplied at Oolite.org. Distros which supply Oolite via their package managers generally link to the standard installations of those same libraries, and when those libraries get updated, it tends to break things, so far as Oolite is concerned.

The Oolite.org version is linked to its own bundle of libraries, which are packaged in such a way that they do not interfere with the libraries as used by the rest of the OS. The only executable which will ever access them is Oolite. That way, we can make sure Oolite runs on the widest possible variety of Linux distros, without having to spend all our time tracking library version changes across dozens of distros, and also avoid having to deal with the creators of the libraries concerned, who have shown little interest in implementing our required customisations into their standard package.

(Diziet Sma (2017))

Links