Linux Setup Guide < Slackware install
Contents |
For packaging requests or complaints, please contact the packagers.
Slackware
version 89.0 for Slackware 13.37 and 14.00 x86_64 (there is an update for boost libraries for 13.37)
There is 3 ways to install springrts for Slackware, compiling from scratch, downloading slackbuild packages, or running a script that download the slackware packages and set the game for you.
Installing using script
There is a script named spring_slackware_64b_installer.sh, you must download it and run:
chmod +x spring_slackware_64b_installer.sh
su -c spring_slackware_64b_installer.sh
The command will ask for the root password, detect Slackware version and operative system architecture. The script will create the folder sb_packages to save files, and then install files. (just x86_64 is ready now).
At the end you just need to run springlobby to start to play.
springlobby
Installing using SlackBuilds packages
Download packages from next links and install them running as root:
upgradepkg --reinstall --install-new *.t?z
The packages are:
DevIL-1.6.8_rc2-x86_64-3_SBo.tgz
libtorrent-rasterbar-0.15.9-x86_64-1_SBo.tgz
springlobby-0.147-x86_64-1_SBo.tgz
The gcc 4.7.1 force us to upgrade boost library at least to 1.48 version, we choose 1.49 to distribute with spring because that will be the version of boost in Slackware 14 (not released yet), and until know there is no problems with libraries in 13.37 slackware version.
maps
Here is some maps that you want
- DeltaSiegeDry.sd7
- FolsomDamFinal.sd7
- LLTAComplexV2.sd7
- Small_Supreme_Battlefield_V2.sd7
- SpeedMetal.sd7
- Tabula-v2.sd7
- TheRockFinal.sd7
- Tropical.sd7
- Wide Pass v3.2.sd7
- folsomdamdeluxev4.sd7
packages
Depending on both, architecture and version of Slackware you are using, there are different versions of packages. this is an example for Slackware 13.37.0 64bits.
- DevIL-1.6.8_rc2-x86_64-3_SBo.tgz
- OpenAL-1.12.854-x86_64-1_SBo.tgz
- icu4c-4.6.1-x86_64-1_SBo.tgz
- libtorrent-rasterbar-0.15.5-x86_64-1_SBo.tgz
- p7zip-9.13-x86_64-1_SBo.tgz
- spring-0.82.7.1-x86_64-1_SBo.tgz
- springlobby-0.131-x86_64-1_SBo.tgz
- wxGTK-2.8.12-x86_64-1_SBo.tgz
How to choose the correct installer file?
You need to know just 3 things: what version of spring do you want, what version of Slackware is running, and what kind of architecture you have. To know what version of spring, you just need to go to http://www.springrts.com and check the last version. if this page is missing the latest version, just send us a mail. To get the Slackware version of your system, you just need to type this:
cat /etc/slackware-version
and to get the architecture of your CPU, just type:
uname -m
Architectures i686, i486 and any other different from x86_64 are 32bits and should work with i486.
For example, this Slackware version is 13.1.0 and the architecture is i686, and I know that the last version of spring is 0.82.7.1, so the required file is:
Spring-<SPRING_VERSION>-Slackware-<SLACKWARE_VERSION>-<ARCHITECTURE>.tar.gz
Spring-0.82.7.1-Slackware-13.1.0-i486.tar.gz
Install using script
After having downloaded the file, you have to decompress it with:
tar xzvf Spring-0.82.7.1-Slackware-13.1.0-i486.tar.gz
This should create a directory with the same name as the file:
cd Spring-0.82.7.1-Slackware-13.1.0-i486/
And there you just run:
./spring_slackware_32b_install.sh
The script will ask for the root password, install packages, copy maps and games, and check a boost symbolic link that this distribution needs to make to run springlobby properly.
Install by package
For a full install, the dependencies in precompiled tgz's for 32 bits:
There is all dependencies in precompiled tgz's for 64 bits (Slackware 13.0, working on 13.1):
Assuming that all .tgz are saved in the same directory, open a console and cd inside that directory; then do this:
su -c "installpkg *.tgz"
When asked for the root password, enter it.
A menu entry for spring and another for springlobby will apear in KDE, XFCE and GNOME.
Finalizing installation
You should have Spring installed by now; if not, please see the SetupGuide.
Depending on your distribution/package, you still need a Multiplayer Lobby. For Linux, the most common one is SpringLobby, which you can get here. For Slackware 13.1, the binaries required for SpringLobby:
32bits:
libtorrent-rasterbar-0.15.0-i486
- NOTE: By default, Slackware don't have *-mt libraries, so, if you want compile/run springlobby, you must make symbolic links to libboost_*.so libraries in this way:
##ln -s /usr/lib/libboost_system.so /usr/lib/libboost_system-mt.so
- NOTE: If you have problems compiling/runing springlobby, you must be sure that you are using UNICODE config, to do that, you must run:
, and, if you have a response different to##wx-config --selected-config
gtk2-unicode-release-2.8you have a problem, and you must compile/install correct package.
springlobby-0.114-i686 (out of date now on v0.120)
Maps & Mods
Since Spring is only an engine, you need to download games for it, and the maps that go with those games.
SpringLobby will automatically do this for you when you attempt to join a game with a map or mod that you do not currently have, using an integrated downloader.
If you want to download it manually or browse existing maps, there are several easy to use websites:
Pick any of those sites, download a map or mod, and then double click it. This will move it to your Spring folder, using the spring map/mod installer program. If you wish to move maps/mods by hand, they are located under ~/.spring/maps/ or ~/.spring/mods/ (if the folder does not exist - create it). Do not unpack the file in any way though, just download and save it. Reload your maps/mods in SpringLobby, (Tools - Reload maps/mods) and they will be ready to use.
These sites also may provide other neat things like Lua widgets, epic replays, AI bots (for playing offline or to team up on with a friend). Generally the installation requires you to download the file and place it in the appropriate folder in your ~/.spring directory. (you may have to create the folder)
Hint: If you know the name of the map you want, there is a Search function provided in those websites. Just write a part of the name, like one word, and you will easily find the map you were looking for.
Linux specific Troubleshooting
Compiletime
invalid use of ILvoid / ALCvoid
NOTE: this was fixed for Slackware 13.1
During compiling, if you get a lot of the following errors:
/usr/include/IL/il.h:497: error: '<anonymous>' has incomplete type
/usr/include/IL/il.h:497: error: invalid use of 'ILvoid'
This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer. Update it.
Ingame
Slow Mouse
Run:
echo '# Slow fullscreen cursor fix for Spring' >> ~/.xsessionrc
echo 'SDL_MOUSE_RELATIVE=0' >> ~/.xsessionrc
echo 'export SDL_MOUSE_RELATIVE' >> ~/.xsessionrc
And log out and log in again.
The mouse should now be as fast as in windowed mode.
Rotating Buildings
You can rotate a building before you give the build order, but the keys that do this do not work in Linux by default for some users. Issue the following commands in the beginning of the game:
/bind keycodex buildfacing inc
/bind keycodey buildfacing dec
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:
/keydebug yes
And then hit the keys you want to use, and spring prints the keycodes in the message buffer.
If you want to save these keys you have to edit the uikeys.txt.
Problems with Audio
The engine needs at least OpenAL Soft 1.6 for its sound. If you still have the old openal-0.0.8 installed, you should update it.
Additionally, pulseaudio causes lots of issues, so try to disable it for spring if you have sound problems.
Desync in game
Spring only send the commands and not the result over the network, so it needs to run all math in a repeatable manner, so all other clients in a multiplayer match get the same results. So some CPU specific features have to enabled/disabled. If you desync, you either have a CPU that is not SSE1 capable, or you set the wrong -march/-mtune compiler flags. If you compile Spring via CMake, remove CMakeCache.txt, and leave the march flag at the default.
If You Still Have Problems
Join either IRC chat in #taspring on Freenode or #sy on QuakeNet, or ask for help in the lobby channels #sy or #springlobby.
However, generic Linux problems not really related to installing spring should be asked elsewhere.
Prepare to list your distribution, which installation method you used, and what exactly is the error.
FAQ
IRC
How
Okay, so you need human help. This is how NOT to do it:
15:54 -!- **** [n=****@*] has joined #taspring
15:54 < ****> Hi, i have a problem with compiling spring on debian
15:54 < ****> can anyone help me?
15:57 -!- **** [n=****@*] has quit [Client Quit]
Do not 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.
Then WAIT for someone to notice you.
Where
- #sy @ QuakeNet
- #sy @ springrts.com (with a Spring lobby client only, f.e SpringLobby)
- #taspring @ FreeNode
