depot/third_party/nixpkgs/pkgs/by-name/et/etlegacy-unwrapped/package.nix

132 lines
2.9 KiB
Nix

{
lib,
stdenv,
writeShellApplication,
fetchFromGitHub,
fetchpatch,
cjson,
cmake,
git,
makeBinaryWrapper,
unzip,
curl,
freetype,
glew,
libjpeg,
libogg,
libpng,
libtheora,
lua5_4,
minizip,
openal,
SDL2,
sqlite,
zlib,
}:
let
version = "2.83.1";
fakeGit = writeShellApplication {
name = "git";
text = ''
if [ "$1" = "describe" ]; then
echo "${version}"
fi
'';
};
in
stdenv.mkDerivation {
pname = "etlegacy-unwrapped";
inherit version;
src = fetchFromGitHub {
owner = "etlegacy";
repo = "etlegacy";
rev = "refs/tags/v${version}";
hash = "sha256-k1H3irA9UVOICY3keKGVJMtBczW/b5ObyNvB7fGAcFA=";
};
patches = lib.optionals stdenv.hostPlatform.isDarwin [
# Fix compilation on Darwin archs
# Reported upstream at https://github.com/etlegacy/etlegacy/pull/3005
# Remove this patch when the PR is merged
(fetchpatch {
url = "https://github.com/etlegacy/etlegacy/commit/2767d15c67fe0680178d9cc85ed4cf2ad1d88ad0.patch?full_index=1";
hash = "sha256-rGfNIWb9zohk1QJLrYg9nqw6sMvXM0IbIl9kvYXRBuk=";
})
];
nativeBuildInputs = [
cjson
cmake
fakeGit
git
makeBinaryWrapper
unzip
];
buildInputs = [
curl
freetype
glew
libjpeg
libogg
libpng
libtheora
lua5_4
minizip
openal
SDL2
sqlite
zlib
];
preBuild = ''
# Required for build time to not be in 1980
export SOURCE_DATE_EPOCH=$(date +%s)
# This indicates the build was by a CI pipeline and prevents the resource
# files from being flagged as 'dirty' due to potentially being custom built.
export CI="true"
'';
cmakeFlags = [
"-DCROSS_COMPILE32=0"
"-DCMAKE_BUILD_TYPE=Release"
"-DBUILD_SERVER=1"
"-DBUILD_CLIENT=1"
"-DBUNDLED_ZLIB=0"
"-DBUNDLED_CJSON=0"
"-DBUNDLED_JPEG=0"
"-DBUNDLED_LIBS=0"
"-DBUNDLED_FREETYPE=0"
"-DBUNDLED_OGG_VORBIS=0"
"-DBUNDLED_OPENAL=0"
"-DBUNDLED_PNG=0"
"-DBUNDLED_THEORA=0"
"-DBUNDLED_MINIZIP=0"
"-DINSTALL_EXTRA=0"
"-DINSTALL_OMNIBOT=0"
"-DINSTALL_GEOIP=0"
"-DINSTALL_WOLFADMIN=0"
"-DFEATURE_AUTOUPDATE=0"
"-DINSTALL_DEFAULT_BASEDIR=${placeholder "out"}/lib/etlegacy"
"-DINSTALL_DEFAULT_BINDIR=${placeholder "out"}/bin"
];
hardeningDisable = [ "fortify" ];
meta = {
description = "ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license";
homepage = "https://etlegacy.com";
license = with lib.licenses; [ gpl3Plus ];
longDescription = ''
ET: Legacy, an open source project fully compatible client and server
for the popular online FPS game Wolfenstein: Enemy Territory - whose
gameplay is still considered unmatched by many, despite its great age.
'';
maintainers = with lib.maintainers; [
ashleyghooper
drupol
];
};
}