simutrans: fix, update, split data, make pak128 the default
Today the monitor resolutions are quite high, so I set pak128 as the default. It's easy to change.
This commit is contained in:
parent
864c2ed99c
commit
602e6a94ee
@ -1,78 +1,95 @@
|
||||
{ stdenv, fetchurl, unzip, zlib, libpng, bzip2, SDL, SDL_mixer } :
|
||||
{ stdenv, fetchurl, unzip, zlib, libpng, bzip2, SDL, SDL_mixer, makeWrapper } :
|
||||
|
||||
let
|
||||
# This is the default "pakset" of objects, images, text, music, etc.
|
||||
result = withPak (mkPak pak128);
|
||||
|
||||
ver_1 = "112";
|
||||
ver_2 = "1";
|
||||
ver_h2 = "${ver_1}-${ver_2}";
|
||||
|
||||
# "pakset" of objects, images, text, music, etc.
|
||||
mkPak = src: stdenv.mkDerivation {
|
||||
name = "simutrans-pakset";
|
||||
inherit src;
|
||||
unpackPhase = "true";
|
||||
buildInputs = [ unzip ];
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cd $out
|
||||
unzip ${src}
|
||||
mv simutrans/*/* .
|
||||
rm -rf simutrans
|
||||
'';
|
||||
};
|
||||
pak64 = fetchurl {
|
||||
url = http://sourceforge.net/projects/simutrans/files/pak64/110-0-1/simupak64-110-0-1.zip/download;
|
||||
name = "pak64.zip";
|
||||
sha256 = "0gs6k9dbbhh60g2smsx2jza65vyss616bpngwpvilrvb5rzzrxcq";
|
||||
url = "mirror://sourceforge/simutrans/pak64/${ver_h2}/simupak64-${ver_h2}.zip";
|
||||
sha256 = "1197rl2534wx9wdafarlr42qjw6pyghz4bynq2g68pi10h8csypw";
|
||||
};
|
||||
pak128 = fetchurl {
|
||||
url = "mirror://sourceforge/simutrans/pak128/pak128%20for%20${ver_1}/pak128-2.2.0--${ver_1}.0.zip";
|
||||
sha256 = "13rwv9q3fa3ac0k11ds7zkpd00k4mn14rb0cknknvyz46icb9n80";
|
||||
};
|
||||
|
||||
# The source distribution seems to be missing some text files.
|
||||
# So we will get them from the binary Linux release (which apparently has them).
|
||||
langtab = fetchurl {
|
||||
url = http://sourceforge.net/projects/simutrans/files/simutrans/110-0-1/simulinux-110-0-1.zip/download;
|
||||
name = "simulinux-110-0-1.zip";
|
||||
sha256 = "15z13kazdzhfzwxry7a766xkkdzaidvscylzrjkx3nnbcq6461s4";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "simutrans";
|
||||
version = "110.0.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://github.com/aburch/simutrans/tarball/v110.0.1";
|
||||
name = "${name}.tar.gz";
|
||||
sha256 = "ab0e42e5013d6d2fd5d3176b39dc45e482583b3bad178aac1188bf2ec88feb51";
|
||||
withPak = pak: stdenv.mkDerivation {
|
||||
inherit (binaries) name;
|
||||
unpackPhase = "true";
|
||||
buildInputs = [ makeWrapper ];
|
||||
installPhase = ''makeWrapper "${binaries}/bin/simutrans" "$out/bin/simutrans" --add-flags -objects --add-flags "${pak}"'';
|
||||
};
|
||||
|
||||
buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
|
||||
binaries = stdenv.mkDerivation rec {
|
||||
pname = "simutrans";
|
||||
name = "${pname}-${ver_1}.${ver_2}";
|
||||
|
||||
prePatch = ''
|
||||
# Use ~/.simutrans instead of ~/simutrans
|
||||
sed -i 's@%s/simutrans@%s/.simutrans@' simsys_s.cc
|
||||
'';
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/simutrans/simutrans/${ver_h2}/simutrans-src-${ver_h2}.zip";
|
||||
sha256 = "1xrxpd5m2dc9bk8w21smfj28r41ji1qaihjwkwrifgz6rhg19l5c";
|
||||
};
|
||||
sourceRoot = ".";
|
||||
|
||||
preConfigure = ''
|
||||
# Configuration as per the readme.txt
|
||||
sed -i 's@#BACKEND = sdl@BACKEND = sdl@' config.template
|
||||
sed -i 's@#COLOUR_DEPTH = 16@COLOUR_DEPTH = 16@' config.template
|
||||
sed -i 's@#OSTYPE = linux@OSTYPE = linux@' config.template
|
||||
sed -i 's@#OPTIMISE = 1@OPTIMISE = 1@' config.template
|
||||
buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
|
||||
|
||||
cp config.template config.default
|
||||
'';
|
||||
preConfigure = ''
|
||||
# Configuration as per the readme.txt
|
||||
sed \
|
||||
-e 's@#BACKEND = sdl@BACKEND = sdl@' \
|
||||
-e 's@#COLOUR_DEPTH = 16@COLOUR_DEPTH = 16@' \
|
||||
-e 's@#OSTYPE = linux@OSTYPE = linux@' \
|
||||
< config.template > config.default
|
||||
|
||||
installPhase = ''
|
||||
# Erase the source distribution object definitions, will be replaced with langtab.
|
||||
rm -r simutrans
|
||||
# Different default data dir
|
||||
sed -i -e 's:argv\[0\]:"'$out'/share/simutrans/":' \
|
||||
simmain.cc
|
||||
|
||||
# Default pakset and binary release core objects.
|
||||
unzip ${pak64}
|
||||
unzip ${langtab}
|
||||
# Use ~/.simutrans instead of ~/simutrans ##not working
|
||||
#sed -i -e 's@%s/simutrans@%s/.simutrans@' simsys_s.cc
|
||||
|
||||
mv sim simutrans/
|
||||
|
||||
mkdir -p $out/simutrans
|
||||
cp -r simutrans $out
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/simutrans/sim $out/bin/simutrans
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Simutrans is a simulation game in which the player strives to run a successful transport system.";
|
||||
longDescription = ''
|
||||
Simutrans is a cross-platform simulation game in which the
|
||||
player strives to run a successful transport system by
|
||||
transporting goods, passengers, and mail between
|
||||
places. Simutrans is an open source remake of Transport Tycoon.
|
||||
# No optimization overriding
|
||||
sed -i -e '/-O$/d' Makefile
|
||||
'';
|
||||
|
||||
homepage = http://www.simutrans.com/;
|
||||
license = "Artistic";
|
||||
maintainers = [ stdenv.lib.maintainers.kkallio ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/
|
||||
mv simutrans $out/share/
|
||||
|
||||
mkdir -p $out/bin/
|
||||
mv build/default/sim $out/bin/simutrans
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A simulation game in which the player strives to run a successful transport system";
|
||||
longDescription = ''
|
||||
Simutrans is a cross-platform simulation game in which the
|
||||
player strives to run a successful transport system by
|
||||
transporting goods, passengers, and mail between
|
||||
places. Simutrans is an open source remake of Transport Tycoon.
|
||||
'';
|
||||
|
||||
homepage = http://www.simutrans.com/;
|
||||
license = "Artistic";
|
||||
maintainers = [ stdenv.lib.maintainers.kkallio ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
in result
|
||||
|
Loading…
Reference in New Issue
Block a user