nixpkgs/pkgs/games/tremulous/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

81 lines
2.6 KiB
Nix

{ lib, stdenv, fetchurl, unzip, libGLU, libGL, libX11, SDL, openal, runtimeShell }:
stdenv.mkDerivation rec {
pname = "tremulous";
version = "1.1.0";
src1 = fetchurl {
url = "mirror://sourceforge/tremulous/${pname}-${version}.zip";
sha256 = "11w96y7ggm2sn5ncyaffsbg0vy9pblz2av71vqp9725wbbsndfy7";
};
# http://tremulous.net/wiki/Client_versions
src2 = fetchurl {
url = "http://releases.mercenariesguild.net/client/mgclient_source_Release_1.011.tar.gz";
sha256 = "1vrsi7va7hdp8k824663s1pyw9zpsd4bwwr50j7i1nn72b0v9a26";
};
src3 = fetchurl {
url = "http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz";
sha256 = "1njrqlhzjvy9myddzkagszwdcf3m4h08wip888w2rmbshs6kz6ql";
};
buildInputs = [ unzip libGLU libGL libX11 SDL openal ];
unpackPhase = ''
unzip $src1
cd tremulous
tar xvf $src2
mkdir mg_tremded_source
cd mg_tremded_source
tar xvf $src3
cd ..
'';
patches = [ ./parse.patch ];
patchFlags = [ "-p" "0" ];
NIX_LD_FLAGS = ''
-rpath ${stdenv.cc}/lib
-rpath ${stdenv.cc}/lib64
'';
buildPhase = ''
cd Release_1.011
make
cd ..
cd mg_tremded_source
make
cd ..
'';
installPhase = ''
arch=$(uname -m | sed -e s/i.86/x86/)
mkdir -p $out/opt/tremulous
cp -v Release_1.011/build/release-linux-$arch/tremulous.$arch $out/opt/tremulous/
cp -v mg_tremded_source/build/release-linux-$arch/tremded.$arch $out/opt/tremulous/
cp -rv base $out/opt/tremulous
mkdir -p $out/bin
for b in tremulous tremded
do
cat << EOF > $out/bin/$b
#!${runtimeShell}
cd $out/opt/tremulous
exec ./$b.$arch "\$@"
EOF
chmod +x $out/bin/$b
done
'';
dontPatchELF = true;
meta = with lib; {
description = "A game that blends a team based FPS with elements of an RTS";
longDescription = ''
Tremulous is a free, open source game that blends a team based FPS with
elements of an RTS. Players can choose from 2 unique races, aliens and
humans. Players on both teams are able to build working structures
in-game like an RTS. These structures provide many functions, the most
important being spawning. The designated builders must ensure there are
spawn structures or other players will not be able to rejoin the game
after death. Other structures provide automated base defense (to some
degree), healing functions and much more...
'';
homepage = "http://www.tremulous.net";
license = with licenses; [
gpl2
cc-by-sa-25 /* media */
];
maintainers = with maintainers; [ astsmtl ];
platforms = platforms.linux;
broken = true;
};
}