unrealtournament
maintainer XenGi
· 17 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads ISO images from archive.org, a legitimate archival service, and official patch binaries from GitHub; both sources are trustworthy and the files are verified via checksums, posing no real security risk.
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 package downloads ISO images from archive.org, a legitimate archival service, and official patch binaries from GitHub; both sources are trustworthy and the files are verified via checksums, posing no real security risk.
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:21
"https://archive.org/download/ut-goty/UT_GOTY_CD1.iso"
PKGBUILD
1 offending line(s) highlighted
1
# Contributor: quantax -- contact via Arch Linux forum or AUR
2
# M0Rf30
3
# Mantainer: XenGi
4
pkgname=unrealtournament
5
pkgver=469e
6
#pkgver=469e_rc10
7
pkgrel=1
8
pkgdesc="The classic Unreal Tournament from 1999 (GOTY + OldUnreal patches)"
9
arch=('i686' 'x86_64' 'aarch64')
10
url="http://www.unrealtournament.com/"
11
license=('custom')
12
conflicts=('unrealtournament-bonuspack1' 'unrealtournament-bonuspack2' 'unrealtournament-bonuspack3')
13
depends=('libfmod' 'libxmp' 'mpg123' 'openal' 'sdl2-compat' 'sdl2_ttf')
14
makedepends=('libarchive' # bsdtar: unpack ISO
15
'zstd') # zstdcat: unpack SVG
16
source=("ut.desktop"
17
"ut.svg.zstd"
18
"UnrealTournament.ini"
19
"User.ini"
20
"ut-wrapper.sh"
21
"https://archive.org/download/ut-goty/UT_GOTY_CD1.iso"
22
"https://archive.org/download/ut-goty/UT_GOTY_CD2.iso")
23
source_i686=("OldUnreal-UTPatch${pkgver}-Linux-x86.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver}/OldUnreal-UTPatch${pkgver}-Linux-x86.tar.bz2")
24
source_x86_64=("OldUnreal-UTPatch${pkgver}-Linux-amd64.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver}/OldUnreal-UTPatch${pkgver}-Linux-amd64.tar.bz2")
25
source_aarch64=("OldUnreal-UTPatch${pkgver}-Linux-arm64.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver}/OldUnreal-UTPatch${pkgver}-Linux-arm64.tar.bz2")
26
#source_i686=("OldUnreal-UTPatch-${pkgver//_/-}-Linux-x86.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver//_/-}/OldUnreal-UTPatch${pkgver%%_*}-Linux-x86.tar.bz2")
27
#source_x86_64=("OldUnreal-UTPatch-${pkgver//_/-}-Linux-amd64.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver//_/-}/OldUnreal-UTPatch${pkgver%%_*}-Linux-amd64.tar.bz2")
28
#source_aarch64=("OldUnreal-UTPatch-${pkgver//_/-}-Linux-arm64.tar.bz2::https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${pkgver//_/-}/OldUnreal-UTPatch${pkgver%%_*}-Linux-arm64.tar.bz2")
29
#noextract=("OldUnreal-UTPatch-${pkgver//_/-}-Linux-x86.tar.bz2"
30
noextract=("OldUnreal-UTPatch${pkgver}-Linux-x86.tar.bz2"
31
"OldUnreal-UTPatch${pkgver}-Linux-amd64.tar.bz2"
32
"OldUnreal-UTPatch${pkgver}-Linux-arm64.tar.bz2"
33
"UT_GOTY_CD1.iso"
34
"UT_GOTY_CD2.iso")
35
sha256sums=('fea5efdcac67564f2b5b8ef215115990739243a53a5f86e67f9414081d5b28dc'
36
'8fc6bc71f20b8395d75fad8b30d18fc6c9d39fee1f9633be090ad8fd779e8827'
37
'b03456f17f3e50627b3193519166aa554b5ee9aa6c8df37b0cc333708a949bda'
38
'66e96135314ab34b18a7b2041b6570fc4f3f8e9ed76a416bb019cf34e1b961d7'
39
'b944b7dec13b3b96230997695c8892ab06b764f004636629b72133d58aa8000f'
40
'e184984ca88f001c5ddd52035d76cd64e266e26c74975161b5ed72366c74704f'
41
'd95d8ee1cf95562ee023fd54035ec8813d4275f63d1847423220986edc8d00d8')
42
sha256sums_i686=('cbd6d8016efb30e3982757a582c688532803721ec1ec738fc28af9b3e15d3c14')
43
sha256sums_x86_64=('08c806aa3721b1970045aa158ad90051329d982e8a9a3661153900e9ccbf6b0c')
44
sha256sums_aarch64=('4c3978073b12b049c3ffdeb4d275cfc7a2313650f3eb5b94db06fbfee77c3e3b')
45
46
prepare() {
47
# Extract ISOs manually because makepkg would extract them into the same dir and overwrite the contents
48
mkdir -p ${srcdir}/cd1 ${srcdir}/cd2
49
bsdtar -x -f ${srcdir}/UT_GOTY_CD1.iso -C ${srcdir}/cd1
50
bsdtar -x -f ${srcdir}/UT_GOTY_CD2.iso -C ${srcdir}/cd2
51
}
52
53
package() {
54
# Create game directory
55
install --mode=755 -d -- ${pkgdir}/opt/ut/{Music,Sounds,Maps}
56
57
# Set system directory and unpack patch into game directory
58
if [ "$CARCH" = "i686" ]; then
59
_system_dir=/opt/ut/System
60
tar xaf ${srcdir}/OldUnreal-UTPatch${pkgver}-Linux-x86.tar.bz2 -C ${pkgdir}/opt/ut
61
elif [ "$CARCH" = "x86_64" ]; then
62
_system_dir=/opt/ut/System64
63
tar xaf ${srcdir}/OldUnreal-UTPatch${pkgver}-Linux-amd64.tar.bz2 -C ${pkgdir}/opt/ut
64
elif [ "$CARCH" = "aarch64" ]; then
65
_system_dir=/opt/ut/System64
66
tar xaf ${srcdir}/OldUnreal-UTPatch${pkgver}-Linux-arm64.tar.bz2 -C ${pkgdir}/opt/ut
67
fi
68
69
# fix permissions
70
find ${pkgdir}/opt/ut -type d -exec chmod 755 {} \;
71
72
# Remove bundled libraries to use native versions instead
73
rm -f \
74
${pkgdir}${_system_dir}/libfmod.so* \
75
${pkgdir}${_system_dir}/libmpg123.so* \
76
${pkgdir}${_system_dir}/libopenal.so* \
77
${pkgdir}${_system_dir}/libSDL2* \
78
${pkgdir}${_system_dir}/libxmp.so*
79
80
# Copy the Music and Sounds directories from the isos into the game directory
81
install --mode=644 -t ${pkgdir}/opt/ut/Music ${srcdir}/cd1/Music/*
82
install --mode=644 -t ${pkgdir}/opt/ut/Sounds ${srcdir}/cd1/Sounds/*
83
install --mode=644 -t ${pkgdir}/opt/ut/Sounds ${srcdir}/cd2/Sounds/*
84
85
# Copy the contents of the Textures directory from the distribution directory into the existing Textures directory
86
# within your game directory WITHOUT REPLACING the existing files
87
cp --update=none ${srcdir}/cd1/Textures/* ${srcdir}/cd2/Textures/* ${pkgdir}/opt/ut/Textures/
88
# fix permissions
89
chmod 644 ${pkgdir}/opt/ut/Textures/*
90
91
# Create a Maps directory within the game directory and copy over the unpacked Maps (i.e., map files with a .unr
92
# extension) from the distribution directory
93
install --mode=644 -t ${pkgdir}/opt/ut/Maps ${srcdir}/cd1/Maps/*.unr
94
95
# Extract all compressed maps (i.e., maps with a .uz extension) into your game's Maps directory.
96
#find ${srcdir}/Maps/ -name "*.uz" -exec ${pkgdir}${_system_dir}/ucc-bin decompress {} -nohomedir \;
97
#set -- ${pkgdir}${_system_dir}/*.unr
98
#[ -f "$1" ] && mv ${pkgdir}${_system_dir}/*.unr ${pkgdir}/opt/ut/Maps
99
## CD2 has a lower case maps directory
100
#find ${srcdir}/maps/ -name "*.uz" -exec ${pkgdir}${_system_dir}/ucc-bin decompress {} -nohomedir \;
101
#set -- ${pkgdir}${_system_dir}/*.unr
102
#[ -f "$1" ] && mv ${pkgdir}${_system_dir}/*.unr ${pkgdir}/opt/ut/Maps
103
# Uncompressing maps in parallel
104
for map in ${srcdir}/{cd1/Maps,cd2/maps}/*.uz; do
105
${pkgdir}${_system_dir}/ucc-bin decompress $map -nohomedir >/dev/null &
106
done
107
wait
108
mv ${pkgdir}${_system_dir}/*.unr ${pkgdir}/opt/ut/Maps
109
110
# cleanup
111
rm ${pkgdir}${_system_dir}/ucc.log
112
113
# copy optimized default config
114
install --mode=644 -t ${pkgdir}${_system_dir} ${srcdir}/UnrealTournament.ini
115
install --mode=644 -t ${pkgdir}${_system_dir} ${srcdir}/User.ini
116
117
# Copy the .u and .int files from CD2 to the game's System directory.
118
install --mode=644 -t ${pkgdir}${_system_dir} ${srcdir}/cd2/System/*.u
119
install --mode=644 -t ${pkgdir}${_system_dir} ${srcdir}/cd2/System/*.int
120
121
#install --mode 755 -d -- ${pkgdir}/usr/bin
122
#ln -s ${_system_dir}/ut-bin ${pkgdir}/usr/bin/ut
123
install --mode=755 -D -- "${srcdir}/ut-wrapper.sh" "${pkgdir}/usr/bin/ut"
124
install --mode=755 -d -- "${pkgdir}/usr/share/pixmaps"
125
zstdcat "${srcdir}/ut.svg.zstd" > "${pkgdir}/usr/share/pixmaps/ut.svg"
126
install --mode=644 -D -- "${srcdir}/ut.desktop" "${pkgdir}/usr/share/applications/ut.desktop"
127
#install --mode=644 -D -- "${srcdir}/ut-wayland.desktop" "${pkgdir}/usr/share/applications/ut-wayland.desktop"
128
install --mode=644 -D -- "${pkgdir}/opt/ut/LICENSE.md" "${pkgdir}/usr/share/licenses/unrealtournament/LICENSE.md"
129
130
# fix ownership
131
chown -R root:root ${pkgdir}/opt/ut
132
}
133
134
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 |