1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
{ lib
, stdenv
, writeShellApplication
, fetchFromGitHub
, cjson
, cmake
, git
, makeBinaryWrapper
, unzip
, curl
, freetype
, glew
, libjpeg
, libogg
, libpng
, libtheora
, lua5_4
, minizip
, openal
, SDL2
, sqlite
, zlib
}:
let
version = "2.82.0";
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-yNVVEa+3+Swm3hgwm9cSLV0K88E37TgVVjh1uUl8O2o=";
};
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"
"-DBUILD_SERVER=1"
"-DBUILD_CLIENT=1"
"-DBUNDLED_JPEG=0"
"-DBUNDLED_LIBS=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 ];
platforms = lib.platforms.linux;
};
}
|