nixpkgs/pkgs/by-name/ur/urbanterror/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

116 lines
3.0 KiB
Nix

{ 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;
};
}