nwn-diamond
maintainer Slash
· 11 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads prebuilt game client archives from lutris.net, a non-whitelisted but legitimate gaming community site; however, these are standard data/asset files for a classic game, not executable code, and the worst case of tampering is limited to non-malicious content replacement, not remote code execution.
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 90%): The package downloads prebuilt game client archives from lutris.net, a non-whitelisted but legitimate gaming community site; however, these are standard data/asset files for a classic game, not executable code, and the worst case of tampering is limited to non-malicious content replacement, not remote code execution.
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:22
'https://lutris.net/files/games/neverwinter-nights/nwclientgold.tar.gz'
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Slash <demodevil5[at]yahoo[dot]com>
2
# Contributor: Adam Griffiths <adam_griffithsAATTdart.net.au>
3
4
pkgname=nwn-diamond
5
pkgver=1.69
6
pkgrel=9
7
pkgdesc='Neverwinter Nights RPG from Bioware. Requires the Diamond Collection DVD. Update PKGBUILD with path to your DVD.'
8
url='http://nwn.bioware.com/'
9
license=('custom:EULA')
10
arch=('i686' 'x86_64')
11
if [ "$CARCH" = 'x86_64' ]; then
12
depends=('binkplayer-bin' 'elfutils' 'lib32-elfutils' 'lib32-libgl' 'lib32-libstdc++5' 'lib32-libxcursor' 'lib32-libxdamage' 'lib32-mesa' 'perl' 'lib32-sdl_mixer')
13
else
14
depends=('binkplayer-bin' 'elfutils' 'libgl' 'libstdc++5' 'libxcursor' 'mesa' 'perl' 'sdl_mixer')
15
fi
16
makedepends=('git' 'unzip' 'p7zip' 'perl')
17
provides=('nwn')
18
conflicts=('nwn')
19
install='nwn.install'
20
backup=('opt/nwn/nwncdkey.ini')
21
source=(
22
'https://lutris.net/files/games/neverwinter-nights/nwclientgold.tar.gz'
23
'https://lutris.net/files/games/neverwinter-nights/nwclienthotu.tar.gz'
24
'https://lutris.net/files/games/neverwinter-nights/English_linuxclient169_xp2.tar.gz'
25
'git+https://github.com/nwnlinux/nwlogger.git#commit=3bfa7aa5'
26
'git+https://github.com/nwnlinux/nwmouse.git#commit=6df8b96f'
27
'git+https://github.com/nwnlinux/nwmovies.git#commit=61fb3645'
28
'git+https://github.com/nwnlinux/nwuser.git#commit=3fbbf546'
29
'nwn.launcher'
30
'nwn.desktop'
31
'nwn.key'
32
)
33
noextract=(
34
'English_linuxclient169_xp2.tar.gz'
35
'nwclientgold.tar.gz'
36
'nwclienthotu.tar.gz'
37
)
38
sha256sums=('6aea73cee2f6c9733ef4a121888cb3451d8a31b968a02e1ec897242df53395f3'
39
'0a4ace1aacd69fb166d09bd249ce5ae98dd28f580765f52e0147bb85f7dfcfd7'
40
'09715e2b95c025ef7f00d218deec1b1edce501530d8cba51d61097c69699763f'
41
'SKIP'
42
'SKIP'
43
'SKIP'
44
'SKIP'
45
'bcaa399db7fdaba64535cc79ee9b8e0c02851fe6c06a72c47abe98530eff63e7'
46
'50f6272eebd8de19c018a24a5b3ce4ca15bd1fff0aef818ec1036f249faa612c'
47
'SKIP')
48
PKGEXT='.pkg.tar'
49
50
# Directory where the NWN Diamond DVD is mounted
51
# Tip: Create an ISO from your DVD to speed up the process
52
_dvdpath=/media/dvd
53
54
prepare()
55
{
56
# Extract Data Files from DVD
57
unzip -o "${_dvdpath}/Data_Shared.zip" -d "${srcdir}/gametmp/"
58
unzip -o "${_dvdpath}/Data_linux.zip" -d "${srcdir}/gametmp/"
59
unzip -o "${_dvdpath}/data/XP1.zip" -d "${srcdir}/gametmp/"
60
unzip -o "${_dvdpath}/data/XP2.zip" -d "${srcdir}/gametmp/"
61
62
# Extract Game Clients
63
tar -zxvf "${srcdir}/nwclientgold.tar.gz" -C "${srcdir}/gametmp/"
64
tar -zxvf "${srcdir}/nwclienthotu.tar.gz" -C "${srcdir}/gametmp/"
65
66
# Extract Latest Patch
67
tar -zxvf "${srcdir}/English_linuxclient169_xp2.tar.gz" -C \
68
"${srcdir}/gametmp/"
69
70
# Extract Kingmaker Files
71
7z x "${_dvdpath}/KingmakerSetup.exe" -xr0\!*PLUGINSDIR* -xr\!*.exe -xr\!*.dat \
72
-o"${srcdir}/kingmakertmp/" -aoa
73
74
# Copy License, Icon off DVD
75
cp -f "${_dvdpath}/"{EULA.txt,nwn.ico} "${srcdir}"
76
77
# Patch nwmouse so it can find user.h
78
/bin/sed -i 's|linux/user.h|sys/user.h|1' \
79
"${srcdir}/nwmouse/nwmouse/nwmouse_cookie.c"
80
81
# Patch nwlogger so it can find user.h
82
/bin/sed -i 's|linux/user.h|sys/user.h|1' \
83
"${srcdir}/nwlogger/nwlogger/nwlogger_cookie.c"
84
}
85
86
build()
87
{
88
cd "${srcdir}/nwmovies"
89
# Compile nwmovies using the appropriate SDL library
90
if [ "$CARCH" = "x86_64" ]; then
91
./nwmovies_install.pl /usr/lib32/libSDL-1.2.so.0
92
else
93
./nwmovies_install.pl /usr/lib/libSDL-1.2.so.0
94
fi
95
96
# Compile nwuser
97
cd "${srcdir}/nwuser"
98
./nwuser_install.pl
99
100
# Compile nwmouse
101
cd "${srcdir}/nwmouse"
102
./nwmouse_install.pl
103
104
# Compile nwlogger
105
cd "${srcdir}/nwlogger"
106
./nwlogger_install.pl
107
}
108
109
package()
110
{
111
# Create Destination Directory
112
install -d "${pkgdir}/opt/"
113
114
# Install Base Game Files
115
mv "${srcdir}/gametmp/" \
116
"${pkgdir}/opt/nwn"
117
118
# Install Kingmaker Files
119
cp -r "${srcdir}/kingmakertmp/\$0/"* \
120
"${pkgdir}/opt/nwn/"
121
122
# Check the Installation
123
cd "${pkgdir}/opt/nwn/"
124
./fixinstall
125
126
# Install Addons (nwmovies, nwuser, nwmouse, and nwlogger)
127
_install_addons
128
129
# Install CD Key File
130
install -D -m 0644 "${srcdir}/nwn.key" \
131
"${pkgdir}/opt/nwn/nwncdkey.ini"
132
133
# Install Custom License
134
install -D -m 0644 "${srcdir}/EULA.txt" \
135
"${pkgdir}/usr/share/licenses/${pkgname}/EULA.txt"
136
137
# Install Launcher (Client)
138
install -D -m 0755 "${srcdir}/nwn.launcher" \
139
"${pkgdir}/usr/bin/nwn"
140
141
# Install Desktop File
142
install -D -m 0644 "${srcdir}/nwn.desktop" \
143
"${pkgdir}/usr/share/applications/nwn.desktop"
144
145
# Install Icon File
146
install -D -m 0644 "${srcdir}/nwn.ico" \
147
"${pkgdir}/usr/share/pixmaps/nwn.ico"
148
149
# Remove Unneeded Files & Directories
150
rm -r "${pkgdir}/opt/nwn/SDL-1.2.5/"
151
152
# Fix Whacky Permissions
153
chown -R root:root "${pkgdir}"
154
chmod -R o+r "${pkgdir}"
155
}
156
157
_install_addons()
158
{
159
cd "${srcdir}"
160
161
# Install nwmovies binaries
162
install -D -m 0755 -t "${pkgdir}/opt/nwn/" \
163
"${srcdir}/nwmovies/"{nwmovies.so,nwmovies.pl}
164
165
# Install binkplayer binaries
166
install -D -m 0755 "${srcdir}/nwmovies/nwmovies/binklib.so" \
167
"${pkgdir}/opt/nwn/nwmovies/binklib.so"
168
169
# Install libdis binaries
170
install -D -m 0755 "${srcdir}/nwmovies/nwmovies/libdis/libdisasm.so" \
171
"${pkgdir}/opt/nwn/nwmovies/libdis/libdisasm.so"
172
173
# SymLink BinkPlayer to the NWN Directory so the Movie Launcher (nwmovies.pl) can find it
174
ln -s /usr/bin/binkplayer "${pkgdir}/opt/nwn/BinkPlayer"
175
176
# Install nwuser binaries
177
install -D -m 0755 "${srcdir}/nwuser/nwuser/nwuser.so" \
178
"${pkgdir}/opt/nwn/nwuser.so"
179
180
# Install 64bit binaries if Arch64
181
if [ "$CARCH" = "x86_64" ]; then
182
install -D -m 0755 "${srcdir}/nwuser/nwuser/nwuser64.so" \
183
"${pkgdir}/opt/nwn/nwuser64.so"
184
fi
185
186
# Install nwmouse binaries
187
install -D -m 0755 "${srcdir}/nwmouse/nwmouse/nwmouse.so" \
188
"${pkgdir}/opt/nwn/nwmouse.so"
189
190
# Install libdis binaries
191
install -D -m 0755 "${srcdir}/nwmouse/nwmouse/libdis/libdisasm.so" \
192
"${pkgdir}/opt/nwn/nwmouse/libdis/libdisasm.so"
193
194
# Install nwlogger binaries
195
install -D -m 0755 "${srcdir}/nwlogger/nwlogger/nwlogger.so" \
196
"${pkgdir}/opt/nwn/nwlogger.so"
197
198
# Install libdis binaries
199
install -D -m 0755 "${srcdir}/nwlogger/nwlogger/libdis/libdisasm.so" \
200
"${pkgdir}/opt/nwn/nwlogger/libdis/libdisasm.so"
201
202
# Install Cursors
203
install -d "${pkgdir}/opt/nwn/nwmouse/cursors/"
204
tar -zxvf "${srcdir}/nwmouse/nwmouse/cursors.tar.gz" -C \
205
"${pkgdir}/opt/nwn/nwmouse/cursors/"
206
}
207
208
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 |