<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Semi2</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Semi2"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Semi2"/>
	<updated>2026-11-08T18:29:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16675</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16675"/>
		<updated>2008-02-13T19:36:37Z</updated>

		<summary type="html">&lt;p&gt;Semi2: gamedata/defs.lua missing solved&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Page Maintenance =&lt;br /&gt;
&lt;br /&gt;
When I first installed spring on linux, it was damn hard. I almost gave up a couple times, but finally got it to work, after lots of time wasted.&lt;br /&gt;
&lt;br /&gt;
This setup guide was horribly outdated back then. Since I liked the game, I gave sth back, by updating this page, and some patches for engine. It wasn&#039;t very hard to update this page, it just took some time and effort. Now it&#039;s basically in a state, where almost every question on the irc channel regarding linux setup is already answered here, if people just bother to check.&lt;br /&gt;
&lt;br /&gt;
This page doesn&#039;t probably require so much modification in the future, assuming no major changes to spring installation procedure. But I am not going to do that, I have no time anymore. This is probably the only up to date page on the whole wiki, and it might be that it again becomes outdated. So I challenge everyone who ever got helped by this page to keep it up to date in the future.  &lt;br /&gt;
&lt;br /&gt;
It&#039;s a wiki so everyone can edit it, so when you see something that is wrong or missing, just fix it, and that means you! Making an account is trivial.&lt;br /&gt;
&lt;br /&gt;
- semi&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These lines are long and they are split to match the formatting of this page, you can copy-paste this to your terminal as is, as long as you copy the entire wrapped command and not just one line.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you get a &amp;quot;sudo&amp;quot; error (1st command) or an &amp;quot;unsupported scheme&amp;quot; error (2nd command) with the above code, then try this code instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, then do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.winehq.org/images/distro/slackware.png Slackware 12 ===&lt;br /&gt;
&lt;br /&gt;
Working for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
There is all dependencies in precompiled tgz&#039;s:&lt;br /&gt;
&lt;br /&gt;
glew (http://www.linuxpackages.net/pkg_details.php?id=12051)&amp;lt;br/&amp;gt;&lt;br /&gt;
DeviL (http://www.linuxpackages.net/pkg_details.php?id=10571)&amp;lt;br/&amp;gt;&lt;br /&gt;
boost (http://www.linuxpackages.net/pkg_details.php?id=12046)&amp;lt;br/&amp;gt;&lt;br /&gt;
icu (http://www.linuxpackages.net/pkg_details.php?id=12034)&amp;lt;br/&amp;gt;&lt;br /&gt;
openal (http://www.linuxpackages.net/pkg_details.php?id=11993)&amp;lt;br/&amp;gt;&lt;br /&gt;
wxWidgets (http://www.linuxpackages.net/pkg_details.php?id=12072)&amp;lt;br/&amp;gt;&lt;br /&gt;
springlobby (http://www.linuxpackages.net/pkg_details.php?id=12144)&amp;lt;br/&amp;gt;&lt;br /&gt;
spring - thanks to leo moisio - (http://www.springlobby.info/slackware/spring-0.76b1-i486-1leo.tgz)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assuming that all .tgz are saved in the same direcory, open a console and cd inside that directory; later:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
su -c &amp;quot;installpkg *.tgz&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
when asked for the root password, give it.&lt;br /&gt;
&lt;br /&gt;
a menu entre for spring and another to springlobby will apear in KDE, XFCE and GNOME.&lt;br /&gt;
&lt;br /&gt;
also, spring and springlobby executables will be accessible via shell; put it on you fluxbox menu, ;D&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OVERLAY CHANGED 2008-01-21. SpringLobby and Spring overlays are merged, so you need to add this overlay, if you haven&#039;t already, so you can upgrade again. If you are new user, you can ignore this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a springlobby \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo &amp;quot;games-util/springlobby ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== http://upload.wikimedia.org/wikipedia/en/thumb/9/95/Mandriva_logo.png/96px-Mandriva_logo.png  Mandriva ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
Mandriva has Spring in the official Contrib  repositories, follow the instructions at [http://easyurpmi.zarb.org Easy Urpmi] to add contrib mirrors&lt;br /&gt;
&lt;br /&gt;
after being done, to install enter the following command in a console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;su root -C &amp;quot;urpmi spring&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and select yes to the confirmation question&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at /usr/games/spring and read-only data in /usr/share/games/spring.&lt;br /&gt;
&lt;br /&gt;
=== Binary for Other Linux Systems ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
There is an unofficial installer if none of the above work for you:&lt;br /&gt;
http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12802&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.76b1) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 \&lt;br /&gt;
/usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs and Kernel Panic, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler. I compiled it but I can&#039;t test it due to lack of Wine+TASClient setup. Here is the binary anyway: http://buildbot.no-ip.org/~tvo/spring/spring.exe&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
LuaUI can also be restarted after it crashed. Often this does the trick and it works fine the rest of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/luaui reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== could not open file: gamedata/defs.lua ===&lt;br /&gt;
&lt;br /&gt;
Make sure your ~/.spring does not contain an outdated version of base/springcontent.sdz because a new version of this file is distributed with spring.&lt;br /&gt;
If you do, just remove it.&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode or #sy on QuakeNet and try your luck.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to list your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if people are around or not, just go straight to business and tell all details, for maximizing your chances of getting help.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 3&lt;br /&gt;
&lt;br /&gt;
debugdefines: Set to no to suppress DEBUG and _DEBUG preprocessor #defines \&lt;br /&gt;
 (use to add symbols to release build)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
synccheck: Set to yes to enable sync checker &amp;amp; resyncer&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
profile_generate: Set to yes to compile with -fprofile-generate \&lt;br /&gt;
 to generate profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
profile_use: Set to yes to compile with -fprofile-use to use \&lt;br /&gt;
profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual:&lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual:&lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable (only when neither \&lt;br /&gt;
debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
dc_allowed: Specifies whether FPS mode (Direct Control) is allowed in game&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual:&lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16659</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16659"/>
		<updated>2008-02-03T23:06:51Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* If You Still Have Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Page Maintenance =&lt;br /&gt;
&lt;br /&gt;
When I first installed spring on linux, it was damn hard. I almost gave up a couple times, but finally got it to work, after lots of time wasted.&lt;br /&gt;
&lt;br /&gt;
This setup guide was horribly outdated back then. Since I liked the game, I gave sth back, by updating this page, and some patches for engine. It wasn&#039;t very hard to update this page, it just took some time and effort. Now it&#039;s basically in a state, where almost every question on the irc channel regarding linux setup is already answered here, if people just bother to check.&lt;br /&gt;
&lt;br /&gt;
This page doesn&#039;t probably require so much modification in the future, assuming no major changes to spring installation procedure. But I am not going to do that, I have no time anymore. This is probably the only up to date page on the whole wiki, and it might be that it again becomes outdated. So I challenge everyone who ever got helped by this page to keep it up to date in the future.  &lt;br /&gt;
&lt;br /&gt;
It&#039;s a wiki so everyone can edit it, so when you see something that is wrong or missing, just fix it, and that means you! Making an account is trivial.&lt;br /&gt;
&lt;br /&gt;
- semi&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These lines are long and they are split to match the formatting of this page, you can copy-paste this to your terminal as is, as long as you copy the entire wrapped command and not just one line.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you get a &amp;quot;sudo&amp;quot; error (1st command) or an &amp;quot;unsupported scheme&amp;quot; error (2nd command) with the above code, then try this code instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, then do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OVERLAY CHANGED 2008-01-21. SpringLobby and Spring overlays are merged, so you need to add this overlay, if you haven&#039;t already, so you can upgrade again. If you are new user, you can ignore this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a springlobby \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo &amp;quot;games-util/springlobby ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode or #sy on QuakeNet and try your luck.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to list your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if people are around or not, just go straight to business and tell all details, for maximizing your chances of getting help.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16658</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16658"/>
		<updated>2008-02-03T23:01:00Z</updated>

		<summary type="html">&lt;p&gt;Semi2: note about page maintenance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Page Maintenance =&lt;br /&gt;
&lt;br /&gt;
When I first installed spring on linux, it was damn hard. I almost gave up a couple times, but finally got it to work, after lots of time wasted.&lt;br /&gt;
&lt;br /&gt;
This setup guide was horribly outdated back then. Since I liked the game, I gave sth back, by updating this page, and some patches for engine. It wasn&#039;t very hard to update this page, it just took some time and effort. Now it&#039;s basically in a state, where almost every question on the irc channel regarding linux setup is already answered here, if people just bother to check.&lt;br /&gt;
&lt;br /&gt;
This page doesn&#039;t probably require so much modification in the future, assuming no major changes to spring installation procedure. But I am not going to do that, I have no time anymore. This is probably the only up to date page on the whole wiki, and it might be that it again becomes outdated. So I challenge everyone who ever got helped by this page to keep it up to date in the future.  &lt;br /&gt;
&lt;br /&gt;
It&#039;s a wiki so everyone can edit it, so when you see something that is wrong or missing, just fix it, and that means you! Making an account is trivial.&lt;br /&gt;
&lt;br /&gt;
- semi&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These lines are long and they are split to match the formatting of this page, you can copy-paste this to your terminal as is, as long as you copy the entire wrapped command and not just one line.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you get a &amp;quot;sudo&amp;quot; error (1st command) or an &amp;quot;unsupported scheme&amp;quot; error (2nd command) with the above code, then try this code instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, then do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OVERLAY CHANGED 2008-01-21. SpringLobby and Spring overlays are merged, so you need to add this overlay, if you haven&#039;t already, so you can upgrade again. If you are new user, you can ignore this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a springlobby \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo &amp;quot;games-util/springlobby ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16655</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16655"/>
		<updated>2008-01-21T17:23:07Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/gentoo-small.png Gentoo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OVERLAY CHANGED 2008-01-21. SpringLobby and Spring overlays are merged, so you need to add this overlay, if you haven&#039;t already, so you can upgrade again. If you are new user, you can ignore this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a springlobby \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo &amp;quot;games-util/springlobby ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16654</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16654"/>
		<updated>2008-01-20T23:52:18Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/gentoo-small.png Gentoo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OVERLAY CHANGED 2008-01-21. SpringLobby and Spring overlays are merged, so you need to add this overlay, if you haven&#039;t already, so you can upgrade again. If you are new user, you can ignore this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a springlobby \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
emerge springlobby&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16653</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16653"/>
		<updated>2008-01-20T12:36:25Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Couldn&amp;#039;t find matching GLX visual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldnt find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16652</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16652"/>
		<updated>2008-01-20T12:35:54Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Startup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment.&lt;br /&gt;
Except two extra steps:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://apt.wxwidgets.org/ etch-wx main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The rest is right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme spring-maps-teamplay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
Also, on 64-bit be sure to build against devIl 1.6.8-rc2 or higher, 1.6.7 has a bug in the PNG loading code that causes issues.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== Couldn&#039;t find matching GLX visual ===&lt;br /&gt;
&lt;br /&gt;
Reduce anti aliasing.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16646</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16646"/>
		<updated>2008-01-14T14:32:21Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.76b1. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] ([http://springlobby.info SpringLobby] has this integrated).&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
Automatic: if you are using [http://trac.springlobby.info/wiki/SpringSettings SpringSettings] you can select a dual screen resolution in simple mode and the rest is done automatically. &lt;br /&gt;
&lt;br /&gt;
Manual: to make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1.exe&lt;br /&gt;
wine spring_0.76b1.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.76b1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 TASCLIENT-start-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look into this thread on the forums for a fix: http://spring.clan-sy.com/phpbb/viewtopic.php?f=20&amp;amp;t=12568&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16641</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16641"/>
		<updated>2008-01-03T13:01:39Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fully updated for 0.76b1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.76b1.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16640</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16640"/>
		<updated>2008-01-03T13:00:46Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Configure Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
This might not be up to date for 0.76b1.&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16639</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16639"/>
		<updated>2008-01-03T12:58:50Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Build From Source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.76b1 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.76b1_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.76b1_src.tar.bz2&lt;br /&gt;
cd spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.76b1 /usr/local/src/spring_0.76b1&lt;br /&gt;
cd /usr/local/src/spring_0.76b1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip media-libs/libogg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16638</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16638"/>
		<updated>2008-01-03T12:53:28Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/debian-small.png Debian Etch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is not updated for 0.76b1. Somebody check if the install succeeds for the new release this way?&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
aptitude install libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16637</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16637"/>
		<updated>2008-01-03T12:52:31Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/debian-small.png Debian Unstable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
aptitude install libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16636</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16636"/>
		<updated>2008-01-03T12:50:14Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/debian-small.png Debian Unstable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
aptitude install libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16635</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16635"/>
		<updated>2008-01-03T12:44:52Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/gentoo-small.png Gentoo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you own the original Total Annihilation and want to use mods that require the original TA content, you can do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-data-nonfree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.76b1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions. (updated libboost-serialization-dev, and libvorbis-dev dependencies for 0.76b1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install libboost-serialization-dev python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
aptitude install libvorbis-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16631</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16631"/>
		<updated>2008-01-01T13:49:29Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/debian-small.png Debian Etch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to install SpringLobby also, follow the instructions in http://trac.springlobby.info/wiki/Install#Debian&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16630</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16630"/>
		<updated>2007-12-30T11:07:56Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximize your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use [http://springlobby.info SpringLobby]. Besides being a lobby client, it can also edit spring settings.&lt;br /&gt;
&lt;br /&gt;
=== Dual Head ===&lt;br /&gt;
&lt;br /&gt;
To make Dual Monitors work add/change these settings in your .springrc file.            &lt;br /&gt;
&amp;quot;DualScreenMiniMapOnLeft=1,&lt;br /&gt;
DualScreenMode=1,&lt;br /&gt;
XResolution=2560,&lt;br /&gt;
YResolution=1024&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure to use your own resolution for the X,Y resolutions.  For example: you have two monitors configured for 1280x1024, the X,Y is 2560x1024.&lt;br /&gt;
&lt;br /&gt;
Save then restart Spring.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16627</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16627"/>
		<updated>2007-12-30T02:09:40Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* LuaUI Crash Ingame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16626</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16626"/>
		<updated>2007-12-30T02:09:29Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* LuaUI Crash Ingame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== LuaUI Crash Ingame ===&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16625</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16625"/>
		<updated>2007-12-30T02:09:17Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Ingame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16624</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16624"/>
		<updated>2007-12-30T02:08:29Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
=== OpenAL Segfault ===&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16623</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16623"/>
		<updated>2007-12-30T02:07:48Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
&lt;br /&gt;
=== Missing Default Cursor ===&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
=== GL_ARB_texture_compression not found ===&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== Compiletime ==&lt;br /&gt;
&lt;br /&gt;
=== make_gamedata_arch.sh not found ===&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
=== invalid use of ILvoid ===&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16622</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16622"/>
		<updated>2007-12-30T02:04:31Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Ingame ==&lt;br /&gt;
&lt;br /&gt;
=== Mouse is slow in fullscreen mode ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Rotating Buildings Ingame ===&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
=== Map is White ===&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16621</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16621"/>
		<updated>2007-12-30T02:01:31Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== Rotating Buildings Ingame ==&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16620</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16620"/>
		<updated>2007-12-30T01:47:40Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Rotating Buildings Ingame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== Rotating Buildings Ingame ==&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
== Network Setup ==&lt;br /&gt;
&lt;br /&gt;
Usually you don&#039;t need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:&lt;br /&gt;
&lt;br /&gt;
Host needs to enable incoming udp to port 8452, and outgoing replies to those.&lt;br /&gt;
Non-host players need to enable outgoing udp, and incoming replies to those.&lt;br /&gt;
So basically only non-host players initiate &amp;quot;connections&amp;quot;, and only the server listens on a well-known port.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16619</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16619"/>
		<updated>2007-12-29T22:23:19Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Rotating Buildings Ingame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== Rotating Buildings Ingame ==&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default for some users. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16618</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16618"/>
		<updated>2007-12-29T22:20:57Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* If You Still Have Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== Rotating Buildings Ingame ==&lt;br /&gt;
&lt;br /&gt;
You can rotate a building before you give the build order, but the keys that do this don&#039;t work in linux by default. Issue the following commands in the beginning of the game:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/bind keycodex buildfacing inc&lt;br /&gt;
/bind keycodey buildfacing dec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/keydebug yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.&lt;br /&gt;
&lt;br /&gt;
TODO: add information on how to save the settings so that they work the next time you start spring.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17082</id>
		<title>SpringEngineTODO</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17082"/>
		<updated>2007-12-19T10:32:23Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This page is badly out of date. Some of these items have been done, abandoned or replaced with better ideas.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first before you add things here.&lt;br /&gt;
&lt;br /&gt;
* Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically. &lt;br /&gt;
&lt;br /&gt;
* [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync, as suggested by Jesse Schoch in [http://lolut.utbm.info/pipermail/taspring-linux/2006-February/000810.html]. After using rsync on it should be able to continue normally until the next sync error is detected.&lt;br /&gt;
&lt;br /&gt;
* Abstract and improve unit rendering:&lt;br /&gt;
** Improve the S3O rendering: It doesn&#039;t generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).&lt;br /&gt;
** 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).&lt;br /&gt;
&lt;br /&gt;
* Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).&lt;br /&gt;
&lt;br /&gt;
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).&lt;br /&gt;
&lt;br /&gt;
* Implement a general sensor system replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105&lt;br /&gt;
&lt;br /&gt;
* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of &amp;quot;approximating lights&amp;quot; for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well.&lt;br /&gt;
&lt;br /&gt;
* Get a mac version working. Contact the developers on the forums for this, as there are people looking into this already.&lt;br /&gt;
&lt;br /&gt;
* Make nano particles unsynced, ie. make them respect the MaxParticles setting.&lt;br /&gt;
&lt;br /&gt;
Even though this isn&#039;t really about the Spring engine:&lt;br /&gt;
&lt;br /&gt;
* SpringLobby is a cross-platform lobby client, implemented in C++ and wxWidgets. We encourage you to look into our todo list on http://springlobby.info and see what you could do for it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source development]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17081</id>
		<title>SpringEngineTODO</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17081"/>
		<updated>2007-12-19T10:32:06Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This page is badly out of date. Some of these items have been done, abandoned or replaced with better ideas.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first before you add things here.&lt;br /&gt;
&lt;br /&gt;
* Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically. &lt;br /&gt;
&lt;br /&gt;
* [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync, as suggested by Jesse Schoch in [http://lolut.utbm.info/pipermail/taspring-linux/2006-February/000810.html]. After using rsync on it should be able to continue normally until the next sync error is detected.&lt;br /&gt;
&lt;br /&gt;
* Abstract and improve unit rendering:&lt;br /&gt;
** Improve the S3O rendering: It doesn&#039;t generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).&lt;br /&gt;
** 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).&lt;br /&gt;
&lt;br /&gt;
* Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).&lt;br /&gt;
&lt;br /&gt;
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).&lt;br /&gt;
&lt;br /&gt;
* Implement a general sensor system replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105&lt;br /&gt;
&lt;br /&gt;
* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of &amp;quot;approximating lights&amp;quot; for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well.&lt;br /&gt;
&lt;br /&gt;
* Get a mac version working. Contact the developers on the forums for this, as there are people looking into this already.&lt;br /&gt;
&lt;br /&gt;
* Make nano particles unsynced, ie. make them respect the MaxParticles setting.&lt;br /&gt;
&lt;br /&gt;
Even though this isn&#039;t really about the Spring engine:&lt;br /&gt;
&lt;br /&gt;
 * SpringLobby is a cross-platform lobby client, implemented in C++ and wxWidgets. We encourage you to look into our todo list on http://springlobby.info and see what you could do for it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source development]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17080</id>
		<title>SpringEngineTODO</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17080"/>
		<updated>2007-12-19T10:31:21Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This page is badly out of date. Some of these items have been done, abandoned or replaced with better ideas.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first before you add things here.&lt;br /&gt;
&lt;br /&gt;
* Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically. &lt;br /&gt;
&lt;br /&gt;
* [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync, as suggested by Jesse Schoch in [http://lolut.utbm.info/pipermail/taspring-linux/2006-February/000810.html]. After using rsync on it should be able to continue normally until the next sync error is detected.&lt;br /&gt;
&lt;br /&gt;
* Abstract and improve unit rendering:&lt;br /&gt;
** Improve the S3O rendering: It doesn&#039;t generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).&lt;br /&gt;
** 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).&lt;br /&gt;
&lt;br /&gt;
* Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).&lt;br /&gt;
&lt;br /&gt;
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).&lt;br /&gt;
&lt;br /&gt;
* Implement a general sensor system replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105&lt;br /&gt;
&lt;br /&gt;
* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of &amp;quot;approximating lights&amp;quot; for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well.&lt;br /&gt;
&lt;br /&gt;
* Get a mac version working. Contact the developers on the forums for this, as there are people looking into this already.&lt;br /&gt;
&lt;br /&gt;
* Make nano particles unsynced, ie. make them respect the MaxParticles setting.&lt;br /&gt;
&lt;br /&gt;
Even though this isn&#039;t really about the Spring engine:&lt;br /&gt;
&lt;br /&gt;
 * SpringLobby is a cross-platform lobby client, implemented in C++ and&lt;br /&gt;
wxWidgets. We encourage you to look into our todo list on&lt;br /&gt;
http://springlobby.info and see what you could do for it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source development]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17079</id>
		<title>SpringEngineTODO</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17079"/>
		<updated>2007-12-19T10:30:47Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This page is badly out of date. Some of these items have been done, abandoned or replaced with better ideas.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first before you add things here.&lt;br /&gt;
&lt;br /&gt;
* Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically. &lt;br /&gt;
&lt;br /&gt;
* [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync, as suggested by Jesse Schoch in [http://lolut.utbm.info/pipermail/taspring-linux/2006-February/000810.html]. After using rsync on it should be able to continue normally until the next sync error is detected.&lt;br /&gt;
&lt;br /&gt;
* Abstract and improve unit rendering:&lt;br /&gt;
** Improve the S3O rendering: It doesn&#039;t generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).&lt;br /&gt;
** 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).&lt;br /&gt;
&lt;br /&gt;
* Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).&lt;br /&gt;
&lt;br /&gt;
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).&lt;br /&gt;
&lt;br /&gt;
* Implement a general sensor system replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105&lt;br /&gt;
&lt;br /&gt;
* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of &amp;quot;approximating lights&amp;quot; for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well.&lt;br /&gt;
&lt;br /&gt;
* Get a mac version working. Contact the developers on the forums for this, as there are people looking into this already.&lt;br /&gt;
&lt;br /&gt;
* Make nano particles unsynced, ie. make them respect the MaxParticles setting.&lt;br /&gt;
&lt;br /&gt;
Even though this isn&#039;t really about the Spring engine:&lt;br /&gt;
&lt;br /&gt;
 * SpringLobby is a cross-platform lobby client, implemented in C++ and wxWidgets. We encourage you to look into our todo list on http://springlobby.info and see what you could do for it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source development]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16617</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16617"/>
		<updated>2007-12-18T16:27:44Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.springlobby.info/images/ubuntu-small.png Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
&lt;br /&gt;
If you have some older version of ubuntu, you can easily upgrade to Gutsy with these instructions: http://www.ubuntu.com/getubuntu/upgrading&lt;br /&gt;
&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16616</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16616"/>
		<updated>2007-12-08T08:47:58Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes with this output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
Segmentation fault (core dumped)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
- Star Wars mod, unknown version, by user report&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
- unknown file&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16615</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16615"/>
		<updated>2007-12-08T08:44:25Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes, and gives you a segfault, and the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
This is mod-related, ie. it only happens on some mods. Please list here the mod versions that give this error for you.&lt;br /&gt;
&lt;br /&gt;
The problematic mod contains a sound file that crashes openal. You can try to unzip the mod file that crashed for you, and play each sound file. Please report any sound files that fail to play right, just list them here.&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16614</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16614"/>
		<updated>2007-12-02T16:26:31Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes, and gives you a segfault, and the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format&lt;br /&gt;
AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16613</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16613"/>
		<updated>2007-12-02T16:26:13Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* OpenAL Segfault */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes, and gives you a segfault, and the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3&lt;br /&gt;
AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16612</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16612"/>
		<updated>2007-12-02T16:25:37Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* GL_ARB_texture_compression not found */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring -y&lt;br /&gt;
sudo apt-get --build source spring -y&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions should work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring -y&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Also, if you want to download a few large maps you can do following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install spring-maps-hunterw spring-maps-deltasiege spring-maps-smallsupreme&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== OpenAL Segfault ==&lt;br /&gt;
&lt;br /&gt;
If spring crashes, and gives you a segfault, and the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenAL: ALC_EXT_capture AL_EXT_capture AL_EXT_vorbis AL_EXT_MP3 &lt;br /&gt;
                AL_LOKI_quadriphonic AL_LOKI_play_position AL_LOKI_WAVE_format AL_LOKI_IMA_ADPCM_format AL_LOKI_buffer_data_callback ALC_LOKI_audio_channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then bug nemo in #taspring to finish this troubleshooting entry. He knows how to fix it.&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16601</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16601"/>
		<updated>2007-11-15T17:15:44Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install spring&lt;br /&gt;
sudo apt-get install spring-lobby-springlobby # optional, installs lobby client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== Mouse is slow in fullscreen mode ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;export SDL_MOUSE_RELATIVE=0&#039; &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
And log out and log in again.&lt;br /&gt;
&lt;br /&gt;
The mouse should now be as fast as in windowed mode.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16599</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16599"/>
		<updated>2007-11-09T20:31:48Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Can&amp;#039;t See Configure Options Before Configuring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16597</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16597"/>
		<updated>2007-11-06T13:50:42Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* invalid use of &amp;#039;ILvoid&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== invalid use of ILvoid ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16596</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16596"/>
		<updated>2007-11-06T13:50:24Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* If You Still Have Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== invalid use of &#039;ILvoid&#039; ==&lt;br /&gt;
&lt;br /&gt;
During compiling, if you get a lot of the following errors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/include/IL/il.h:497: error: &#039;&amp;lt;anonymous&amp;gt;&#039; has incomplete type &lt;br /&gt;
/usr/include/IL/il.h:497: error: invalid use of &#039;ILvoid&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.&lt;br /&gt;
&lt;br /&gt;
You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.&lt;br /&gt;
&lt;br /&gt;
TODO: add critical version numbers of libdevil.&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16595</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16595"/>
		<updated>2007-11-06T12:45:33Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Network */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a public ip and no firewall, then you don&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16594</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16594"/>
		<updated>2007-11-06T12:44:04Z</updated>

		<summary type="html">&lt;p&gt;Semi2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
&lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16593</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16593"/>
		<updated>2007-11-06T12:42:32Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
If you have a firewall, to be able to host, you must enable incoming udp to port 8452. If you are behind a NAT, to be able to host you must either use nat traversal / hole punching feature in your lobby client, OR port forward that port from your public ip to your gaming machine.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to host any games, just join them, you shouldn&#039;t need to do anything.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16592</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16592"/>
		<updated>2007-11-04T16:58:03Z</updated>

		<summary type="html">&lt;p&gt;Semi2: Title sizes fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Etch ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/debian-small.png Debian Unstable ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== http://www.springlobby.info/images/gentoo-small.png Gentoo ===&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Build From Source ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== Get Source ===&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
==== Tarball ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
=== Build And Install ===&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Finalizing installation =&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
== Data Directories ==&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
== Mods ==&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
== OTA Content ==&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
== Settings == &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
== LuaUI ==&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
== Lobby Client ==&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
=== Omni ===&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== UnityLobby ===&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
=== [http://springlobby.info SpringLobby] ===&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
=== AFLobby ===&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
=== TASClient ===&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Map is White ==&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
== Missing Default Cursor ==&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
== make_gamedata_arch.sh not found ==&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
== GL_ARB_texture_compression not found ==&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
== If You Still Have Problems ==&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
== Asking For Help ==&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
== Can&#039;t See Configure Options Before Configuring ==&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LuaUI Crash Ingame ==&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16591</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16591"/>
		<updated>2007-11-04T16:13:58Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Gentoo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/gentoo-transparentSmall.png */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Etch ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Unstable ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/gentoo-small.png Gentoo ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build From Source ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
==== Get Source ====&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
===== Tarball =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Subversion =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
==== Build And Install ====&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Finalizing installation ==&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
=== Data Directories ===&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
=== Mods ===&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
=== OTA Content ===&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
=== Settings === &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
=== LuaUI ===&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Lobby Client ===&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
==== Omni ====&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== UnityLobby ====&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== [http://springlobby.info SpringLobby] ====&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
==== AFLobby ====&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
==== TASClient ====&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Map is White ====&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
==== Missing Default Cursor ====&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
==== make_gamedata_arch.sh not found ====&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== GL_ARB_texture_compression not found ====&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
==== If You Still Have Problems ====&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
==== IRC ====&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
==== Asking For Help ====&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
==== Can&#039;t See Configure Options Before Configuring ====&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LuaUI Crash Ingame ====&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16590</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16590"/>
		<updated>2007-11-04T16:13:27Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* Ubuntu &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/UbuntuLogoTiny.png */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Etch ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Unstable ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/ubuntu-small.png Ubuntu ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Gentoo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/gentoo-transparentSmall.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build From Source ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
==== Get Source ====&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
===== Tarball =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Subversion =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
==== Build And Install ====&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Finalizing installation ==&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
=== Data Directories ===&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
=== Mods ===&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
=== OTA Content ===&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
=== Settings === &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
=== LuaUI ===&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Lobby Client ===&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
==== Omni ====&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== UnityLobby ====&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== [http://springlobby.info SpringLobby] ====&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
==== AFLobby ====&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
==== TASClient ====&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Map is White ====&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
==== Missing Default Cursor ====&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
==== make_gamedata_arch.sh not found ====&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== GL_ARB_texture_compression not found ====&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
==== If You Still Have Problems ====&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
==== IRC ====&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
==== Asking For Help ====&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
==== Can&#039;t See Configure Options Before Configuring ====&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LuaUI Crash Ingame ====&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16589</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16589"/>
		<updated>2007-11-04T16:12:58Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.darkstars.co.uk/images/debianlogo.png &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Debian Unstable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Etch ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Unstable ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/UbuntuLogoTiny.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Gentoo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/gentoo-transparentSmall.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build From Source ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
==== Get Source ====&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
===== Tarball =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Subversion =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
==== Build And Install ====&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Finalizing installation ==&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
=== Data Directories ===&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
=== Mods ===&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
=== OTA Content ===&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
=== Settings === &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
=== LuaUI ===&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Lobby Client ===&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
==== Omni ====&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== UnityLobby ====&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== [http://springlobby.info SpringLobby] ====&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
==== AFLobby ====&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
==== TASClient ====&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Map is White ====&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
==== Missing Default Cursor ====&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
==== make_gamedata_arch.sh not found ====&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== GL_ARB_texture_compression not found ====&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
==== If You Still Have Problems ====&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
==== IRC ====&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
==== Asking For Help ====&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
==== Can&#039;t See Configure Options Before Configuring ====&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LuaUI Crash Ingame ====&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16588</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16588"/>
		<updated>2007-11-04T16:12:28Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.darkstars.co.uk/images/debianlogo.png &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Debian Etch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
==== http://www.springlobby.info/images/debian-small.png Debian Etch ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.darkstars.co.uk/images/debianlogo.png &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Debian Unstable ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/UbuntuLogoTiny.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Gentoo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/gentoo-transparentSmall.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build From Source ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
==== Get Source ====&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
===== Tarball =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Subversion =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS. Note&lt;br /&gt;
that Spring 0.75b2 depends on the boost libraries version 1.34.* and won&#039;t&lt;br /&gt;
work on lower versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
==== Build And Install ====&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Finalizing installation ==&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
=== Data Directories ===&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
=== Mods ===&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
=== OTA Content ===&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
=== Settings === &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
=== LuaUI ===&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Lobby Client ===&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
==== Omni ====&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== UnityLobby ====&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== [http://springlobby.info SpringLobby] ====&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
==== AFLobby ====&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
==== TASClient ====&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Map is White ====&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
==== Missing Default Cursor ====&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
==== make_gamedata_arch.sh not found ====&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== GL_ARB_texture_compression not found ====&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
==== If You Still Have Problems ====&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
==== IRC ====&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
==== Asking For Help ====&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
==== Can&#039;t See Configure Options Before Configuring ====&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LuaUI Crash Ingame ====&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16586</id>
		<title>SetupGuide</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SetupGuide&amp;diff=16586"/>
		<updated>2007-11-04T14:12:59Z</updated>

		<summary type="html">&lt;p&gt;Semi2: /* http://www.darkstars.co.uk/images/gentoo-transparentSmall.png */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ALL SUBTITLES CHANGED, IF YOU GOT HERE BY LINK PLEASE FIND CORRECT SUBTITLE FROM BELOW&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The guide is fully up to date with release 0.75b2.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To play online, you must have the same version as everyone else in the game.&lt;br /&gt;
&lt;br /&gt;
Most people should get the current release, version 0.75b2. There are usually&lt;br /&gt;
between 100 and 200 people online in the lobby, and if you want to play with&lt;br /&gt;
them, you need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not use older than current release version&#039;&#039;&#039;, unless you really know what you are doing.&lt;br /&gt;
&lt;br /&gt;
If you want to see the bleeding edge, you can checkout svn head of spring, but&lt;br /&gt;
it can not be used to play with people who have the release, so you are&lt;br /&gt;
practically limited to playing against nemo. This is mainly interesting for&lt;br /&gt;
people who want to contribute to the project, for testing, finding bugs and&lt;br /&gt;
fixing them, and implementing new features. Head can be seriously broken from&lt;br /&gt;
time to time, or not even compile.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
If there is a package for your distributions preferred package manager, it is&lt;br /&gt;
recommended to use it instead of compiling the program yourself from sources.&lt;br /&gt;
&lt;br /&gt;
==== http://www.darkstars.co.uk/images/debianlogo.png &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Debian Etch ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We need to use Yokozar&#039;s Ubuntu package, so we need some tricks.&lt;br /&gt;
&lt;br /&gt;
The --build step will take about 15 minutes. Hopefully we have precompiled binaries for etch soon too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get build-dep spring&lt;br /&gt;
sudo apt-get --build source spring&lt;br /&gt;
sudo dpkg -i spring_0.75~b2-1_i386.deb spring-data_0.75~b2-1_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/spring &amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== http://www.darkstars.co.uk/images/debianlogo.png &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Debian Unstable ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
Ubuntu instructions work for debian unstable as is at the moment. They are right below.&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/UbuntuLogoTiny.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
We now have a maintained and up to date APT repository for Ubuntu 7.10 (Gutsy)&lt;br /&gt;
Do the following:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Those lines are long and split to fit on this page, you can copy-paste this to your terminal as is, as long as you copy all lines and not just one.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -q http://buildbot.no-ip.org/~yokozar/apt/387EE263.gpg -O- | \&lt;br /&gt;
    sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
sudo wget http://buildbot.no-ip.org/~yokozar/apt/sources.list.d/gutsy.list \&lt;br /&gt;
    -O /etc/apt/sources.list.d/springproject.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For configuring the lobbies, you can note that the package installs the Spring executable at &amp;lt;code&amp;gt;/usr/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Gentoo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; http://www.darkstars.co.uk/images/gentoo-transparentSmall.png ====&lt;br /&gt;
&lt;br /&gt;
This is for version 0.75b2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The location of the overlay will change as soon as we get this in official portage.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An overlay to use with layman is provided. If gentoo overlays and/or layman are new to you, [http://overlays.gentoo.org/ read about them], as they are an essential part of gentoo.&lt;br /&gt;
&lt;br /&gt;
This example assumes you never used layman before. If it&#039;s not your first time, you hopefully know what to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman&lt;br /&gt;
layman -f -a spring-unofficial \&lt;br /&gt;
     -o http://svn.springlobby.info/trunk/gentoo/overlays.xml&lt;br /&gt;
echo &amp;quot;source /usr/portage/local/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo &amp;quot;games-strategy/spring ~x86&amp;quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layman makes upgrading really easy too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
layman --sync ALL&lt;br /&gt;
emerge spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/games/bin/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Build From Source ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You might encounter sync errors in online play if you are not using the exact same version of the compiler and same compiler settings as used for prebuilt packages!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For 0.75b2 these are: TODO add them here.&lt;br /&gt;
&lt;br /&gt;
If there is no package tailored for your distribution, you have to install from sources manually. Doing this for distributions where packages are available is not recommended.&lt;br /&gt;
&lt;br /&gt;
==== Get Source ====&lt;br /&gt;
&lt;br /&gt;
You can either download the source as a 3.9MB tarball (recommended; v. 0.75b2) or get it from the subversion repository. Either way, the result is the same.&lt;br /&gt;
&lt;br /&gt;
===== Tarball =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/src # or /var/tmp, or whatever&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2_src.tar.bz2&lt;br /&gt;
tar xjf spring_0.75b2_src.tar.bz2&lt;br /&gt;
cd spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The .zip release is for windows only. Linux users have to get .bz2 like shown above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Subversion =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion # if you are not on debian, figure it out&lt;br /&gt;
svn co https://spring.clan-sy.com/svn/spring/tags/spring_0.75b2 /usr/local/src/spring_0.75b2&lt;br /&gt;
cd /usr/local/src/spring_0.75b2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
For Etch (debian 4.0 stable) and Sid (debian unstable), I&#039;ve confirmed the&lt;br /&gt;
following to be the minimal set that is necessary to get. I have not tested&lt;br /&gt;
with any version of Ubuntu, but the line is probably almost identical if not&lt;br /&gt;
the same. Quilted tested with ubuntu fiesty fawn on july 28 2007 WORKS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install scons build-essential zlib1g-dev libfreetype6-dev&lt;br /&gt;
aptitude install libsdl1.2-dev libopenal-dev libglew-dev libboost-dev&lt;br /&gt;
aptitude install libboost-thread-dev libboost-regex-dev libdevil-dev&lt;br /&gt;
aptitude install python2.5-dev zip&lt;br /&gt;
aptitude install sun-java6-jdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This has been tested to work with a clean install of gentoo 2007.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/scons \&amp;gt;=media-libs/freetype-2.0.0 \&amp;gt;=media-libs/libsdl-1.2.0&lt;br /&gt;
emerge media-libs/openal =dev-lang/python-2.4\* media-libs/glew dev-libs/boost&lt;br /&gt;
emerge media-libs/devil app-arch/zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users of other distributions should be able to figure out the correct package&lt;br /&gt;
names from this. The scons configure will whine if you forget something, but it&lt;br /&gt;
does not check if you remembered to install zip, even though you still need it.&lt;br /&gt;
&lt;br /&gt;
==== Build And Install ====&lt;br /&gt;
&lt;br /&gt;
The build will spew out warnings like the following, which you can safely ignore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: division by zero&lt;br /&gt;
warning: &#039;q&#039; may be used uninitialized in this function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure and build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons configure&lt;br /&gt;
scons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scons install&lt;br /&gt;
mkdir -p /etc/spring&lt;br /&gt;
echo &#039;$HOME/.spring&#039; &amp;gt; /etc/spring/datadir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your paths are: Spring executable in &amp;lt;code&amp;gt;/usr/local/games/spring&amp;lt;/code&amp;gt; and&lt;br /&gt;
read-only data in &amp;lt;code&amp;gt;/usr/local/share/games/spring&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Finalizing installation ==&lt;br /&gt;
&lt;br /&gt;
Now all the things you needed to run as root have been done. Some stuff needs to be done by the user who is going to play spring.&lt;br /&gt;
&lt;br /&gt;
I&#039;m assuming bash here, but you can use anything you like to do it of course.&lt;br /&gt;
&lt;br /&gt;
=== Data Directories ===&lt;br /&gt;
&lt;br /&gt;
Do this to create your per-user data directories. You will be downloading maps and mods etc to these dirs later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.spring/{base,maps,mods}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above did not work for you, then you can try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/.spring ~/.spring/base ~/.spring/maps ~/.spring/mods&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
You need at least one map to succesfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/13/Maps/ Unknown Files, Map Section] and download at least one map. Save it under ~/.spring/maps/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the map name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
=== Mods ===&lt;br /&gt;
&lt;br /&gt;
You need at least one mod to successfully run spring.&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.unknown-files.net/spring/category/14/Mods/ Unknown Files, Mod Section] and download at least one mod. Save it under ~/.spring/mods/ without unpacking the file in any way.&lt;br /&gt;
&lt;br /&gt;
Hint: If you know the mod name you want, there is a Quick Search in the top right corner of the page. Just write a part of the name, like one word, and you&#039;ll easily find what you were looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to view unit stats of mods, [http://modinfo.unknown-files.net/modit/modit.php this] is the site for you.&lt;br /&gt;
&lt;br /&gt;
=== OTA Content ===&lt;br /&gt;
&lt;br /&gt;
If you want to play mods based on Total Annihilation, for example XTA, AA, BA, then you have to do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip&lt;br /&gt;
unzip -d ~/.spring/base base-ota-content.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you need to own a copy of Total Annihilation, to download this file legally.&lt;br /&gt;
&lt;br /&gt;
Mods that do not require this file are at least NanoBlobs, TODO list other mods that don&#039;t need it.&lt;br /&gt;
&lt;br /&gt;
=== Settings === &lt;br /&gt;
Defaults should be usable, so you can ignore this until you want to maximise your eye candy or fps :)&lt;br /&gt;
&lt;br /&gt;
When you run spring the first time, it creates ~/.springrc which contains all the settings. It is a simple text file with name=value lines, most of which are pretty obvious and can be edited by hand.&lt;br /&gt;
&lt;br /&gt;
If you want a tool for editing the file, you can use Kloot&#039;s [http://members.chello.nl/mjtobi/Settings++.tar.gz Settings++]. Untar it anywhere and open it by typing &amp;quot;./Settings++&amp;quot; and edit away.&lt;br /&gt;
&lt;br /&gt;
=== LuaUI ===&lt;br /&gt;
&lt;br /&gt;
Spring UI is scriptable with Lua. This is called LuaUI, and it is not enabled per default.&lt;br /&gt;
&lt;br /&gt;
Replace LuaUI=0 with LuaUI=1 in your ~/.springrc to use LuaUI. &lt;br /&gt;
&lt;br /&gt;
To install some LuaUI scripts, start by copying LuaUI folder from you read-only data directory to your read-write data directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -r ~/.spring/LuaUI&lt;br /&gt;
cp -r /usr/share/games/spring/LuaUI ~/.spring/LuaUI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go find the LuaUI scripts you need from [http://spring.unknown-files.net/category/19/Lua_Scripts/ Unknown Files LuaUI Section]. All LuaUI scripts are released there, so if you make good ones yourself, make sure to upload them.&lt;br /&gt;
&lt;br /&gt;
The scripts can come in any setup, so prepare to decompress them if they are compressed. They might have a whole directory structure, and they should have their own instructions on how to install them. Check which directory you need to extract them to. Most likely it is ~/.spring/LuaUI but it might be a directory inside this directory too for some script.&lt;br /&gt;
&lt;br /&gt;
Once you have copied the script into place, when you start spring next time, you can press F11 to enable/disable anything from your list of installed LuaUI scripts. If your new script is not there, you copied it wrong.&lt;br /&gt;
&lt;br /&gt;
=== Lobby Client ===&lt;br /&gt;
&lt;br /&gt;
To setup online games, you need a lobby client. There are several options to choose from.&lt;br /&gt;
&lt;br /&gt;
You can also use lobby client to setup single player matches against the AI. TODO more information about setting up tasclient to play against AI.&lt;br /&gt;
&lt;br /&gt;
Recommended lobby client for linux is either SpringLobby or AFLobby. You can use them in windows and mac too.&lt;br /&gt;
&lt;br /&gt;
==== Omni ====&lt;br /&gt;
&lt;br /&gt;
This project has been abandoned, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== UnityLobby ====&lt;br /&gt;
&lt;br /&gt;
UnityLobby has been abandoned since april 2007, and you should not use it.&lt;br /&gt;
&lt;br /&gt;
==== [http://springlobby.info SpringLobby] ====&lt;br /&gt;
&lt;br /&gt;
SpringLobby is for (at least) Windows, Linux and Mac. It&#039;s now in a usable state and has a feature set close to that of TASClient for windows. Try it out! Bug reports and feature requests are very much welcome.&lt;br /&gt;
&lt;br /&gt;
Visit http://springlobby.info for all things SpringLobby.&lt;br /&gt;
&lt;br /&gt;
==== AFLobby ====&lt;br /&gt;
&lt;br /&gt;
This project is very promising, and is usable for online multi player. Its the oldest lobby still actively maintained.&lt;br /&gt;
&lt;br /&gt;
Official webpage for the project is http://www.darkstars.co.uk which should always have the latest release for download.&lt;br /&gt;
&lt;br /&gt;
==== TASClient ====&lt;br /&gt;
&lt;br /&gt;
I used to recommend wine+TASClient solution before, but now you should try SpringLobby or AFLobby first, before you go this route.&lt;br /&gt;
&lt;br /&gt;
Certain newish version of wine fails with tasclient, TODO can&#039;t remember which one. It should be fixed in the very latest version of wine.&lt;br /&gt;
&lt;br /&gt;
This is a windows program, but it works just fine under wine in linux, and can be used together with native linux spring. I used it myself before moving to SpringLobby.&lt;br /&gt;
&lt;br /&gt;
The only two downsides in using this are that you have to use wine (which should not be a big problem) and your rank won&#039;t increase as long as you use it (also because of win-linux binary interaction).&lt;br /&gt;
&lt;br /&gt;
TODO there is a way to make it support rank increases too, using trepans cool proxy, add info.&lt;br /&gt;
&lt;br /&gt;
Download the installer of Spring for Windows, and run it in wine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://spring.clan-sy.com/dl/spring_0.75b2.exe&lt;br /&gt;
wine spring_0.75b2.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No configuration of wine should be needed, if your distribution is sane.&lt;br /&gt;
&lt;br /&gt;
Complete the install, and let it install to the default location, which is Program Files\Spring.&lt;br /&gt;
&lt;br /&gt;
Assuming you completed the earlier step of creating the data directories, now we need to link the windows and linux data together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
WINESPRING=~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
NATIVE=~/.spring&lt;br /&gt;
&lt;br /&gt;
touch &amp;quot;${WINESPRING}/script.txt&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${WINESPRING}/script.txt&amp;quot; &amp;quot;${NATIVE}/script.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/maps&amp;quot; &amp;quot;${WINESPRING}/maps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/mods&amp;quot; &amp;quot;${WINESPRING}/mods&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/base&amp;quot; &amp;quot;${WINESPRING}/base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
ln -s &amp;quot;${NATIVE}/demos&amp;quot; &amp;quot;${WINESPRING}/demos&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the windows-TASClient to be able to launch native linux spring, we need a wrapper exe in between them. Source code for wrapper exe is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NATIVE_SPRING_LOCATION TEXT(&amp;quot;/usr/games/spring&amp;quot;)&lt;br /&gt;
#define SPRING_VERSION_REPLY &amp;quot;Spring 0.75b2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  if (argc &amp;gt; 1 &amp;amp;&amp;amp; !strcmp(argv[1], &amp;quot;/V&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
     puts(SPRING_VERSION_REPLY);&lt;br /&gt;
     return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  STARTUPINFO si;&lt;br /&gt;
  ZeroMemory( &amp;amp;si, sizeof(si) );&lt;br /&gt;
  si.cb = sizeof(si);&lt;br /&gt;
&lt;br /&gt;
  PROCESS_INFORMATION pi;&lt;br /&gt;
  ZeroMemory( &amp;amp;pi, sizeof(pi) );&lt;br /&gt;
&lt;br /&gt;
  // Start the child process.&lt;br /&gt;
  if (!CreateProcess(&lt;br /&gt;
    _tcsdup(NATIVE_SPRING_LOCATION), // No module name (use command line)&lt;br /&gt;
    GetCommandLine(),                // Command line&lt;br /&gt;
    NULL,                            // Process handle not inheritable&lt;br /&gt;
    NULL,                            // Thread handle not inheritable&lt;br /&gt;
    FALSE,                           // Set handle inheritance to FALSE&lt;br /&gt;
    0,                               // No creation flags&lt;br /&gt;
    NULL,                            // Use parent&#039;s environment block&lt;br /&gt;
    NULL,                            // Use parent&#039;s starting directory&lt;br /&gt;
    &amp;amp;si,                             // Pointer to STARTUPINFO structure&lt;br /&gt;
    &amp;amp;pi))                            // Pointer to PROCESS_INFORMATION structure&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;CreateProcess failed (%d).\n&amp;quot;, GetLastError() );&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  // Wait until child process exits. Wine actually does not know how to wait&lt;br /&gt;
  // for native linux process, so this will return instantly and your gametime&lt;br /&gt;
  // counter does not increase so you don&#039;t get any rank.&lt;br /&gt;
  WaitForSingleObject( pi.hProcess, INFINITE );&lt;br /&gt;
&lt;br /&gt;
  // Close process and thread handles.&lt;br /&gt;
  CloseHandle( pi.hProcess );&lt;br /&gt;
  CloseHandle( pi.hThread );&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might need to modify the define-lines in the beginning to match your location and version. Remember, the version reply must be exactly right, or your game just breaks totally in multiplayer or you can&#039;t even login to lobby server.&lt;br /&gt;
&lt;br /&gt;
Save this code to spring.cc for example, and then we need to install a windows-crosscompiler and compile a windows binary from it inside our linux box like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mingw32&lt;br /&gt;
i586-mingw32msvc-g++ spring.cc -o ~/.wine/drive_c/Program\ Files/Spring/spring.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assumed debian for installing the crosscompiler, but mingw32 is probably simple to install on other distributions as well.&lt;br /&gt;
&lt;br /&gt;
TODO should provide binary packages for this launcher, as all people don&#039;t have the possibility to set up cross compiler.&lt;br /&gt;
&lt;br /&gt;
Then you should make a script for launching TASClient. The script can be named tasclient for example, and just put it somewhere in your path and make it executable. The script code is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
cd ~/.wine/drive_c/Program\ Files/Spring&lt;br /&gt;
wine TASClient.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to type tasclient on the command line, and the lobby appears. &#039;&#039;&#039;This cd operation is necessary. If your working directory is not the same as TASClient.exe&#039;s location, it will just give access violations to you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that every time when you have added new maps, the lobby client caches them and this will take some time, or a long time if you downloaded many maps since last time. Just wait patiently.&lt;br /&gt;
&lt;br /&gt;
Then you should register an account and login with it, and you should be ready to join an online multiplayer game from the list that appears.&lt;br /&gt;
&lt;br /&gt;
It&#039;s likely that you don&#039;t have the correct map or mod at this point, so just get them and join the game. You don&#039;t need to restart your lobby client after downloading the files.&lt;br /&gt;
&lt;br /&gt;
It&#039;s recommended that you spectate a couple of high rank games first, to get some idea of how the game should be played. Some hosts don&#039;t allow spectators, but most do.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Map is White ====&lt;br /&gt;
&lt;br /&gt;
If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.&lt;br /&gt;
&lt;br /&gt;
==== Missing Default Cursor ====&lt;br /&gt;
&lt;br /&gt;
This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download &amp;amp; install as explained [[SetupGuide#Getting_OTA_Content|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== sounds/button9.wav &amp;quot;cant find wav file&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Same problem as above.&lt;br /&gt;
&lt;br /&gt;
==== make_gamedata_arch.sh not found ====&lt;br /&gt;
&lt;br /&gt;
The .zip you downloaded is for windows, you must download a .bz2, instructions [[SetupGuide#Downloading_A_Tarball|earlier in this document]].&lt;br /&gt;
&lt;br /&gt;
==== GL_ARB_texture_compression not found ====&lt;br /&gt;
&lt;br /&gt;
This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.&lt;br /&gt;
&lt;br /&gt;
If you use the fglrx ati-graphics driver and you are getting this error there might be a chance that still spring work (I use this with ubuntu gusty).&lt;br /&gt;
At first we must check that fglrx is installed correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ fglrxinfo&lt;br /&gt;
display: :0.0  screen: 0&lt;br /&gt;
OpenGL vendor string: ATI Technologies Inc.&lt;br /&gt;
OpenGL renderer string: ATI Mobility Radeon X1400&lt;br /&gt;
OpenGL version string: 2.0.6747 (8.40.4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then lets check the glx-extention.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ glxinfo | grep direct&lt;br /&gt;
Xlib:  extension &amp;quot;XFree86-DRI&amp;quot; missing on display &amp;quot;:1.0&amp;quot;.&lt;br /&gt;
direct rendering: No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this message, notice that glxinfo releates to display &#039;:1&#039; and fglrxinfo to display &#039;:0&#039;!! Lets check the glx-extention on display :0 now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 glxinfo | grep direct&lt;br /&gt;
direct rendering: Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tis message mean that you can start spring by typing (in a terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
~$ DISPLAY=:0 spring&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use the TASclient with wine and the native linux spring. Start the whole TASclient-start-script by typing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
DISPLAY=:0 start-TASCLIENT-script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But Notice under circumstances is no windowmanager running on screen :0! This means there are NO windowframes at the TASClient window! You can&#039;t move it or close it by clicking the closebutton (unless you click at the close button on the terminal-window in witch you startet TAS). You can although close TAS with the keys ALT-F4&lt;br /&gt;
&lt;br /&gt;
==== If You Still Have Problems ====&lt;br /&gt;
&lt;br /&gt;
Join to #taspring on Freenode and tell me (semi_) that you have problems with installing, and I&#039;ll try to improve this guide to solve your problem, if I have time.&lt;br /&gt;
&lt;br /&gt;
However, generic linux problems not really related to installing this should be asked elsewhere.&lt;br /&gt;
&lt;br /&gt;
Prepare to tell me your distribution, which installation method you used, and what exactly is the error. Don&#039;t ask if I&#039;m here or not, just state your problem there and I&#039;ll look into it when I come back.&lt;br /&gt;
&lt;br /&gt;
Other common problems and solutions coming soon.&lt;br /&gt;
&lt;br /&gt;
==== IRC ====&lt;br /&gt;
&lt;br /&gt;
# #taspring @ FreeNode&lt;br /&gt;
# #sy @ QuakeNet&lt;br /&gt;
&lt;br /&gt;
==== Asking For Help ====&lt;br /&gt;
&lt;br /&gt;
Ok so you need human help. This is how &#039;&#039;&#039;NOT&#039;&#039;&#039; to do it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
15:54 -!- **** [n=****@*] has joined #taspring&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; Hi, i have a problem with compiling spring on debian&lt;br /&gt;
15:54 &amp;lt; ****&amp;gt; can anyone help me?&lt;br /&gt;
15:57 -!- **** [n=****@*] has quit [Client Quit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.&lt;br /&gt;
&lt;br /&gt;
Then WAIT for someone to notice you.&lt;br /&gt;
&lt;br /&gt;
==== Can&#039;t See Configure Options Before Configuring ====&lt;br /&gt;
&lt;br /&gt;
If you want to see the configure options, because of a bug in the buildsystem you have to have spring configured first. But if configure fails, you are out of luck. So I have listed the options here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scons --help&lt;br /&gt;
scons: Reading SConscript files ...&lt;br /&gt;
make: Nothing to be done for `all&#039;.&lt;br /&gt;
Succes building streflop!&lt;br /&gt;
Updating bitmaps.sdz&lt;br /&gt;
Updating springcontent.sdz&lt;br /&gt;
scons: done reading SConscript files.&lt;br /&gt;
&lt;br /&gt;
platform: Set to linux, freebsd or windows&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: linux&lt;br /&gt;
&lt;br /&gt;
debug: Set to yes to produce a binary with debug information&lt;br /&gt;
    default: 0&lt;br /&gt;
    actual: 0&lt;br /&gt;
&lt;br /&gt;
syncdebug: Set to yes to enable the sync debugger&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
optimize: Enable processor optimizations during compilation&lt;br /&gt;
    default: 1&lt;br /&gt;
    actual: 2&lt;br /&gt;
&lt;br /&gt;
profile: Set to yes to produce a binary with profiling information&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cpppath: Set path to extra header files&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
libpath: Set path to extra libraries&lt;br /&gt;
    default: []&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
fpmath: Set to 387 or SSE on i386 and AMD64 architectures&lt;br /&gt;
    default: 387&lt;br /&gt;
    actual: 387&lt;br /&gt;
&lt;br /&gt;
prefix: Install prefix used at runtime&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
installprefix: Install prefix used for installion&lt;br /&gt;
    default: /usr/local&lt;br /&gt;
    actual: /usr/local&lt;br /&gt;
&lt;br /&gt;
datadir: Data directory (relative to prefix)&lt;br /&gt;
    default: share/games/spring&lt;br /&gt;
    actual: share/games/spring&lt;br /&gt;
&lt;br /&gt;
bindir: Directory for executables (rel. to prefix)&lt;br /&gt;
    default: games&lt;br /&gt;
    actual: games&lt;br /&gt;
&lt;br /&gt;
libdir: Directory for AI plugin modules (rel. to prefix)&lt;br /&gt;
    default: lib/spring&lt;br /&gt;
    actual: lib/spring&lt;br /&gt;
&lt;br /&gt;
strip: Discard symbols from the executable &lt;br /&gt;
(only when neither debugging nor profiling)&lt;br /&gt;
    default: True&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
disable_avi: Set to no to turn on avi support&lt;br /&gt;
    default: False on windows, True otherwise&lt;br /&gt;
    actual: True&lt;br /&gt;
&lt;br /&gt;
use_tcmalloc: Use tcmalloc from goog-perftools for memory allocation&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
use_mmgr: Use memory manager&lt;br /&gt;
    default: False&lt;br /&gt;
    actual: False&lt;br /&gt;
&lt;br /&gt;
cachedir: Cache directory (see scons manual)&lt;br /&gt;
    default: None&lt;br /&gt;
    actual: &lt;br /&gt;
&lt;br /&gt;
Use scons -H for help about command-line options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LuaUI Crash Ingame ====&lt;br /&gt;
&lt;br /&gt;
LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won&#039;t see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/resbar 1&lt;br /&gt;
/tooltip 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These might not be necessary in 0.75 anymore at all.&lt;br /&gt;
&lt;br /&gt;
Also, you won&#039;t be able to change the build menu page with mouse anymore, but keys , and . do the trick.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section contains just some old crap I didn&#039;t write, and shouldn&#039;t be necessary.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If spring hangs/crashes while in full screen mode, you can press ctrl+alt+backspace to restart X, so no need for a reboot.&lt;br /&gt;
&lt;br /&gt;
* Spring uses OpenAL for sound, Config your sound output i.e esd / arts / oss / alsa by editing /etc/openalrc or ~/.openalrc, example: (&amp;quot;&#039;(&amp;quot; is not a typo)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(define devices &#039;(alsa))&amp;lt;br&amp;gt;(define speaker-num 2)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;(define alsa-out-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;br&amp;gt;(define alsa-in-device &amp;quot;hw:0,0&amp;quot;)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Adventurous people with an emu10k1 based card (sblive) can try the accelerated openal version. http://www.lost.org.uk/openal.html , don&#039;t submit audiobugs if you do.&lt;br /&gt;
&lt;br /&gt;
* If you really can&#039;t figure out how to get spring compiled, or you think there&#039;s a bug in the code or the buildsystem...&lt;br /&gt;
:* Just poke any developer on IRC:&lt;br /&gt;
::* channel &amp;lt;code&amp;gt;#taspring&amp;lt;/code&amp;gt; on [http://freenode.net/ FreeNode]&lt;br /&gt;
::* or channel &amp;lt;code&amp;gt;#sy&amp;lt;/code&amp;gt; on [http://www.quakenet.org/ QuakeNet]&lt;br /&gt;
:* Post it on [http://taspring.clan-sy.com/phpbb/ the forum]&lt;br /&gt;
:* or file a bug in our [http://taspring.clan-sy.com/mantis/ bug tracking system].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [[Main_Page|&amp;lt;- Back to Main page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Port]][[Category:Playing]]&lt;/div&gt;</summary>
		<author><name>Semi2</name></author>
	</entry>
</feed>