{
lib,
fetchzip,
stdenv,
copyDesktopItems,
imagemagick,
libicns,
makeBinaryWrapper,
curl,
libGL,
libGLU,
openal,
libXxf86vm,
SDL,
makeDesktopItem,
}:
let
version = "4.3.4";
urbanterror-maps = fetchzip {
name = "urbanterror-maps";
url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror${
builtins.replaceStrings [ "." ] [ "" ] version
}_full.zip";
hash = "sha256-C6Gb5PPECAOjQhmkrzkV6dpY/zHVtUj9oq3507o2PUI=";
};
urbanterror-source = fetchzip {
name = "urbanterror-source";
url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
hash = "sha256-zF6Tkaj5WYkFU66VwpBFr1P18OJGrGgxnc/jvcvt8hA=";
in
stdenv.mkDerivation {
pname = "urbanterror";
inherit version;
srcs = [
urbanterror-maps
urbanterror-source
];
sourceRoot = "urbanterror-source";
nativeBuildInputs = [
copyDesktopItems
imagemagick
libicns
makeBinaryWrapper
buildInputs = [
curl
libGL
libGLU
openal
libXxf86vm
SDL
preConfigure = ''
cp ${./Makefile.local} ./Makefile.local
'';
installTargets = [ "copyfiles" ];
installFlags = [ "COPYDIR=$(out)/share/urbanterror" ];
preInstall = ''
mkdir -p $out/share/urbanterror
postInstall = ''
icns2png --extract ${urbanterror-maps}/Quake3-UrT.app/Contents/Resources/quake3-urt.icns
for size in 16 24 32 48 64 128 256 512 1024; do
mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
if [ ! -e quake3-urt_"$size"x"$size"x32.png ] ; then
convert -resize "$size"x"$size" quake3-urt_512x512x32.png quake3-urt_"$size"x"$size"x32.png
fi
install -Dm644 quake3-urt_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/urbanterror.png
done;
makeWrapper $out/share/urbanterror/Quake3-UrT.* $out/bin/urbanterror
makeWrapper $out/share/urbanterror/Quake3-UrT-Ded.* $out/bin/urbanterror-ded
ln -s ${urbanterror-maps}/q3ut4 $out/share/urbanterror/
hardeningDisable = [ "format" ];
desktopItems = [
(makeDesktopItem {
name = "urbanterror";
exec = "urbanterror";
icon = "urbanterror";
comment = "A multiplayer tactical FPS on top of Quake 3 engine";
desktopName = "Urban Terror";
categories = [
"Game"
"ActionGame"
})
meta = {
description = "Multiplayer tactical FPS on top of Quake 3 engine";
homepage = "https://www.urbanterror.info";
license = lib.licenses.unfreeRedistributable;
longDescription = ''
Urban Terror is a free multiplayer first person shooter developed by
FrozenSand, that (thanks to the ioquake3-code) does not require
Quake III Arena anymore. Urban Terror can be described as a Hollywood
tactical shooter; somewhat realism based, but the motto is "fun over
realism". This results in a very unique, enjoyable and addictive game.
mainProgram = "urbanterror";
maintainers = with lib.maintainers; [
astsmtl
drupol
platforms = lib.platforms.linux;
}