2018-02-24 13:12:44 +00:00
|
|
|
|
{ stdenv, fetchurl, patchelf, glibc, libX11, libGLU_combined }:
|
2014-04-25 19:35:18 +01:00
|
|
|
|
|
|
|
|
|
with stdenv.lib;
|
|
|
|
|
assert stdenv.isi686;
|
|
|
|
|
stdenv.mkDerivation {
|
2016-01-01 03:57:55 +00:00
|
|
|
|
name = "tibia-10.90";
|
2014-04-25 19:35:18 +01:00
|
|
|
|
|
|
|
|
|
src = fetchurl {
|
2016-01-01 03:57:55 +00:00
|
|
|
|
url = http://static.tibia.com/download/tibia1090.tgz;
|
|
|
|
|
sha256 = "11mkh2dynmbpay51yfaxm5dmcys3rnpk579s9ypfkhblsrchbkhx";
|
2014-04-25 19:35:18 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
shell = stdenv.shell;
|
|
|
|
|
|
|
|
|
|
# These binaries come stripped already and trying to strip after the
|
|
|
|
|
# files are in $out/res and after patchelf just breaks them.
|
|
|
|
|
# Strangely it works if the files are in $out but then nix doesn't
|
|
|
|
|
# put them in our PATH. We set all the files to $out/res because
|
|
|
|
|
# we'll be using a wrapper to start the program which will go into
|
|
|
|
|
# $out/bin.
|
|
|
|
|
dontStrip = true;
|
|
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
|
mkdir -pv $out/res
|
2014-09-22 23:16:37 +01:00
|
|
|
|
cp -r * $out/res
|
2014-04-25 19:35:18 +01:00
|
|
|
|
|
2015-04-26 18:54:51 +01:00
|
|
|
|
patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \
|
2018-02-24 13:12:44 +00:00
|
|
|
|
--set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 libGLU_combined ]} \
|
2014-04-28 20:31:46 +01:00
|
|
|
|
"$out/res/Tibia"
|
2014-04-25 19:35:18 +01:00
|
|
|
|
|
|
|
|
|
# We've patchelf'd the files. The main ‘Tibia’ binary is a bit
|
|
|
|
|
# dumb so it looks for ‘./Tibia.dat’. This requires us to be in
|
|
|
|
|
# the same directory as the file itself but that's very tedious,
|
|
|
|
|
# especially with nix which changes store hashes. Here we generate
|
|
|
|
|
# a simple wrapper that we put in $out/bin which will do the
|
|
|
|
|
# directory changing for us.
|
|
|
|
|
|
|
|
|
|
mkdir -pv $out/bin
|
|
|
|
|
|
|
|
|
|
# The wrapper script itself. We use $LD_LIBRARY_PATH for libGL.
|
|
|
|
|
cat << EOF > "$out/bin/Tibia"
|
|
|
|
|
#!${stdenv.shell}
|
|
|
|
|
cd $out/res
|
2015-04-26 18:54:51 +01:00
|
|
|
|
${glibc.out}/lib/ld-linux.so.2 --library-path \$LD_LIBRARY_PATH ./Tibia "\$@"
|
2014-04-25 19:35:18 +01:00
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
chmod +x $out/bin/Tibia
|
|
|
|
|
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
meta = {
|
2014-04-28 20:31:46 +01:00
|
|
|
|
description = "Top-down MMORPG set in a fantasy world";
|
2017-08-01 21:03:30 +01:00
|
|
|
|
homepage = http://tibia.com;
|
2014-06-19 05:19:00 +01:00
|
|
|
|
license = stdenv.lib.licenses.unfree;
|
2014-04-25 19:35:18 +01:00
|
|
|
|
platforms = ["i686-linux"];
|
2014-11-12 09:02:50 +00:00
|
|
|
|
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
|
2014-04-25 19:35:18 +01:00
|
|
|
|
};
|
|
|
|
|
}
|