1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
{ stdenv, fetchurl, unzip, zlib, libpng, bzip2, SDL, SDL_mixer, makeWrapper } :
let
result = withPak (mkPak pak128);
ver_1 = "112";
ver_2 = "3";
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 = "mirror://sourceforge/simutrans/pak64/${ver_h2}/simupak64-${ver_h2}.zip";
sha256 = "1ng963n2gvnwmsj73iy3gp9i5iqf5g6qk1gh1jnfm86gnjrsrq4m";
};
pak128 = fetchurl {
url = "mirror://sourceforge/simutrans/pak128/pak128%20for%20${ver_1}/pak128-2.2.0--${ver_1}.0.zip";
sha256 = "13rwv9q3fa3ac0k11ds7zkpd00k4mn14rb0cknknvyz46icb9n80";
};
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}"'';
inherit (binaries) meta;
};
binaries = stdenv.mkDerivation rec {
pname = "simutrans";
name = "${pname}-${ver_1}.${ver_2}";
src = fetchurl {
url = "mirror://sourceforge/simutrans/simutrans/${ver_h2}/simutrans-src-${ver_h2}.zip";
sha256 = "0jdq2krfj3qsh8dks9ixsdvpyjq9yi80p58b0xjpsn35mkbxxaca";
};
sourceRoot = ".";
buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
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
# Different default data dir
sed -i -e 's:argv\[0\]:"'$out'/share/simutrans/":' \
simmain.cc
# Use ~/.simutrans instead of ~/simutrans ##not working
#sed -i -e 's@%s/simutrans@%s/.simutrans@' simsys_s.cc
# No optimization overriding
sed -i -e '/-O$/d' Makefile
'';
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
|