runescape-launcher
The package downloads a .deb and associated metadata from Jagex's official domain with PGP and SHA256 verification, building from the project's own release infrastructure, which is a normal and safe AUR practice despite the non-whitelisted host.
Triggered rules
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 a .deb and associated metadata from Jagex's official domain with PGP and SHA256 verification, building from the project's own release infrastructure, which is a normal and safe AUR practice despite the non-whitelisted host.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:51
source=("${pkgname}_${pkgver}_Release::https://content.runescape.com/downloads/ubuntu/dists/trusty/Release"
PKGBUILD
1 offending line(s) highlighted# Upstream: RuneScape Linux <noreply@jagex.com>
# Contributor: Ivan Puntiy <ivan.puntiy-at-gmail>
# Contributor: Mantas Mikulėnas <grawity@gmail.com>
pkgname=runescape-launcher
pkgver=2.2.12
pkgrel=1
pkgdesc="RuneScape Game Client (NXT)"
arch=(x86_64)
license=(custom)
url="https://www.runescape.com/"
depends=(
cairo # libcairo2
#libcairo.so=2
libgcc # libgcc1
gdk-pixbuf2 # libgdk-pixbuf2.0-0
#libgdk_pixbuf-2.0.so=0
glib2 # libglib2.0-0
#libglib-2.0.so=0
#libgobject-2.0.so=0
glibc # libc6
#ld-linux-x86-64.so=2
#libc.so=6
#libdl.so=2
#libm.so=6
#libpthread.so=0
gtk2 # libgtk2.0-0
#libgdk-x11-2.0.so=0
#libgtk-x11-2.0.so=0
libcap # libcap2-bin
#libcap.so=2
libglvnd # libopengl0, libegl1
#libOpenGL.so=0
#libEGL.so=1
libsm # libsm6
#libSM.so=6
libx11 # libx11-6
#libX11.so=6
libxxf86vm # libxxf86vm1
#libXxf86vm.so=1
openssl-1.1 # libssl1.1
#libcrypto.so=1.1
#libssl.so=1.1
pango # libpango-1.0-0, libpangocairo-1.0-0
#libpango-1.0.so=0
#libpangocairo-1.0.so=0
sdl2 # libsdl2-2.0-0
zlib # zlib1g
#libz.so=1
)
source=("${pkgname}_${pkgver}_Release::https://content.runescape.com/downloads/ubuntu/dists/trusty/Release"
"${pkgname}_${pkgver}_Release.gpg::https://content.runescape.com/downloads/ubuntu/dists/trusty/Release.gpg")
source_x86_64=("${pkgname}_${pkgver}_Packages::https://content.runescape.com/downloads/ubuntu/dists/trusty/non-free/binary-amd64/Packages"
"${pkgname}_${pkgver}_amd64.deb::https://content.runescape.com/downloads/ubuntu/pool/non-free/r/$pkgname/${pkgname}_${pkgver}_amd64.deb")
sha256sums=('SKIP'
'SKIP')
sha256sums_x86_64=('SKIP'
'SKIP')
validpgpkeys=("AAC9264309E4D717441DB9527373B12CE03BEB4B")
install="install.sh"
# avoid caching in makepkg!
SRCDEST=$startdir
_msg() {
printf '%s\n' "$*"
}
_err() {
printf '\e[1;31mError:\e[m %s\n' "$*" >&2
}
_verify_repo() {
if (( SKIPPGPCHECK )); then
return 0
fi
local Release=${source[0]%%::*}
local Packages=${source_x86_64[0]%%::*}
local debfile=${source_x86_64[1]%%::*}
local jagexpgpkey=${validpgpkeys[0]}
local _out
_msg "Verifying 'Release' file (PGP)..."
if ! _out=$(gpg --batch --status-fd 1 \
--trust-model always \
--verify "$Release.gpg" "$Release" \
2>&1); then
_err "PGP signature of 'Release' could not be verified"
echo "$_out" | grep -v "^\\[GNUPG:\\]"
return 1
elif ! grep -Eqs "^\\[GNUPG:\\] VALIDSIG $jagexpgpkey " <<< "$_out"; then
_err "PGP signature of 'Release' was not made by Jagex"
echo "$_out" | grep -v "^\\[GNUPG:\\]"
return 1
fi
_msg "Parsing 'Release' file..."
_out=$(awk 'ok && $3 == "non-free/binary-amd64/Packages" {print $1; exit}
/^[^[:space:]]/ {ok=0}
/^SHA256:$/ {ok=1}' < "$Release")
if ! [[ $_out =~ ^[0-9a-f]{64}$ ]]; then
_err "Could not find hash of 'non-free/binary-amd64/Packages' in the 'Release' file"
return 1
fi
_msg "Verifying 'Packages' file (SHA256)..."
if ! sha256sum --quiet --check <<< "$_out *$Packages"; then
_err "Hash sum of 'Packages' did not match expected"
return 1
fi
_msg "Parsing 'Packages' file..."
_out=$(awk 'ok && /^SHA256:/ {print $2; exit}
/^Package:/ {ok=0}
/^Package: runescape-launcher$/ {ok=1}' < "$Packages")
if ! [[ $_out =~ ^[0-9a-f]{64}$ ]]; then
_err "Could not find hash of '$debfile' in the 'Packages' file"
return 1
fi
_msg "Verifying '$debfile' (SHA256)..."
if ! sha256sum --quiet --check <<< "$_out *$debfile"; then
_err "Hash sum of '$debfile' did not match expected"
return 1
fi
}
prepare() {
_verify_repo
rm -rf "$srcdir/$pkgname-$pkgver"
mkdir "$srcdir/$pkgname-$pkgver"
cd "$srcdir/$pkgname-$pkgver"
_msg "Extracting control files..."
bsdtar xvf ../control.tar.xz
_msg "Extracting data files..."
bsdtar xvf ../data.tar.xz
}
package() {
cd "$srcdir/$pkgname-$pkgver"
cp -a usr "$pkgdir"
# XXX: maybe move the binary out of /usr/share to where it belongs
#mkdir -p "$pkgdir"/usr/lib/runescape-launcher
#mv "$pkgdir"/usr/{share/games,lib}/runescape-launcher/runescape
#sed -i 's,/usr/share/games,/usr/lib,' "$pkgdir"/usr/bin/runescape-launcher
install -Dm0644 copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
install -Dm0644 changelog "$pkgdir"/usr/share/doc/$pkgname/changelog
}
# vim: ft=sh:ts=4:sw=4:et:nowrap
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |