etlegacy
maintainer jorgicio
· 21 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The binary assets are downloaded from the project's official domain (etlegacy.com) and are part of the official release, posing no additional supply-chain risk despite the non-whitelisted host.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The binary assets are downloaded from the project's official domain (etlegacy.com) and are part of the official release, posing no additional supply-chain risk despite the non-whitelisted host.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:16
"${_pkgbase}-${pkgver}-${arch}-binary.tar.gz::http://www.etlegacy.com/download/file/${_binaryversion}")
PKGBUILD
1 offending line(s) highlighted
1
# Full 64 bit ET:Legacy clients can only connect to ET:Legacy servers running mods providing a 64 bit version.
2
# If you want to connect to existing 32 bit only mods, install the cross-compiled "etlegacy32" package instead.
3
# The engine is dynamically compiled, while the official precompiled mod libraries are provided.
4
5
_pkgbase=etlegacy
6
pkgbase=etlegacy
7
pkgname=('etlegacy' 'etlegacy-mod')
8
pkgver=2.84.0
9
_binaryversion=715
10
pkgrel=1
11
arch=('x86_64' 'aarch64')
12
url="http://www.etlegacy.com/"
13
license=('GPL3' 'custom')
14
makedepends=('cmake' 'zip' 'alsa-lib' 'curl' 'freetype2' 'gcc-libs' 'glew' 'libjpeg-turbo' 'libvorbis' 'libtheora' 'minizip' 'openal>=1.14' 'sdl2' 'cjson')
15
source=("${_pkgbase}-${pkgver}.tar.gz::https://github.com/etlegacy/$_pkgbase/archive/v$pkgver.tar.gz"
16
"${_pkgbase}-${pkgver}-${arch}-binary.tar.gz::http://www.etlegacy.com/download/file/${_binaryversion}")
17
#noextract=("etl_bin_v$pkgver.pk3" "pak3_v$pkgver.pk3")
18
sha256sums=('8857ff04d8d632e75e0b3ebb2715cc5cb35f9ebf24699806bbdea3979434bffc'
19
'aacffc85c8f5b3d3579401aa6f4d85fcdfd0d245d39ae094cf5247f0b044a2d8')
20
21
build() {
22
cd "$_pkgbase-$pkgver"
23
24
export CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
25
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
26
-fstack-clash-protection -fcf-protection \
27
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
28
export CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
29
30
cmake . ${cmakeopts[@]} \
31
-DCMAKE_LIBRARY_PATH=/usr/lib \
32
-DCROSS_COMPILE32=0 \
33
-DCMAKE_BUILD_TYPE=Release \
34
-DCMAKE_INSTALL_PREFIX=/usr \
35
-DINSTALL_DEFAULT_BASEDIR=/usr/lib/etlegacy\
36
-DINSTALL_DEFAULT_BINDIR=bin \
37
-DINSTALL_DEFAULT_MODDIR=lib/etlegacy \
38
-DBUILD_SERVER=1 \
39
-DBUILD_CLIENT=1 \
40
-DBUILD_MOD=0 \
41
-DBUILD_MOD_PK3=0 \
42
-DBUNDLED_LIBS=0 \
43
-DFEATURE_AUTOUPDATE=0 \
44
-DINSTALL_OMNIBOT=0
45
46
make
47
}
48
49
package_etlegacy() {
50
pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy engine)"
51
depends=('etlegacy-mod' 'alsa-lib' 'curl' 'freetype2' 'gcc-libs' 'glew' 'libjpeg-turbo' 'libvorbis' 'lua' 'minizip' 'openal' 'sdl2')
52
provides=('etlegacy')
53
conflicts=('etlegacy')
54
backup=('etc/xdg/etlegacy/etmain/etl_server.cfg'
55
'etc/xdg/etlegacy/etmain/legacy.cfg'
56
'etc/xdg/etlegacy/etmain/campaigncycle.cfg'
57
'etc/xdg/etlegacy/etmain/lmscycle.cfg'
58
'etc/xdg/etlegacy/etmain/mapvotecycle.cfg'
59
'etc/xdg/etlegacy/etmain/objectivecycle.cfg')
60
install=etlegacy.install
61
62
cd "$_pkgbase-$pkgver"
63
64
# engine
65
make DESTDIR="$pkgdir/" install
66
67
# mod
68
rm -rf $pkgdir/usr/lib/$_pkgbase/legacy
69
70
# assets
71
ln -s /usr/share/enemy-territory/etmain/{pak0,pak1,pak2}.pk3 $pkgdir/usr/lib/$_pkgbase/etmain/
72
73
# doc
74
mkdir -p $pkgdir/usr/share/doc/$_pkgbase
75
install -m 644 VERSION.txt $pkgdir/usr/share/doc/$_pkgbase/
76
install -m 644 *.md $pkgdir/usr/share/doc/$_pkgbase/
77
install -m 644 docs/game/anticheat.html $pkgdir/usr/share/doc/$_pkgbase/
78
79
# license
80
mkdir -p $pkgdir/usr/share/licenses/$_pkgbase
81
install -m 644 COPYING.txt $pkgdir/usr/share/licenses/$_pkgbase/LICENSE
82
83
# systemd
84
mkdir -p $pkgdir/etc/xdg/$_pkgbase/etmain
85
mkdir -p $pkgdir/usr/lib/systemd/system
86
install -m 644 misc/etlegacy.conf $pkgdir/etc/xdg/$_pkgbase/
87
install -m 644 misc/etlegacy.x86_64.service $pkgdir/usr/lib/systemd/system/etlegacy.service
88
89
# config
90
mv $pkgdir/usr/lib/$_pkgbase/etmain/*.cfg $pkgdir/etc/xdg/$_pkgbase/etmain/
91
ln -s /etc/xdg/$_pkgbase/etmain/{etl_server,legacy,{campaign,lms,mapvote,objective}cycle}.cfg $pkgdir/usr/lib/$_pkgbase/etmain/
92
93
# server
94
mkdir -p $pkgdir/var/lib/$_pkgbase-server
95
ln -s /etc/xdg/$_pkgbase/etmain $pkgdir/var/lib/$_pkgbase-server/
96
}
97
98
package_etlegacy-mod() {
99
pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy mod)"
100
depends=('enemy-territory-data' 'geoip-database')
101
optdepends=('etlegacy-omnibot: artificial intelligence (AI) controlled opponent'
102
'geoip-database: GeoLite country geolocation database')
103
104
# mod
105
mkdir -p $pkgdir/usr/lib/$_pkgbase/legacy
106
install -m 644 $srcdir/etlegacy-v$pkgver-x86_64/legacy/legacy_v$pkgver.pk3 $pkgdir/usr/lib/$_pkgbase/legacy
107
install -m 644 $srcdir/etlegacy-v$pkgver-x86_64/legacy/qagame.mp.x86_64.so $pkgdir/usr/lib/$_pkgbase/legacy
108
109
# geoip
110
ln -s /usr/share/GeoIP/GeoIP.dat $pkgdir/usr/lib/$_pkgbase/legacy
111
}
112
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |