gb-studio-git
maintainer orphaned
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The npx command is used to run electron-forge make, which is a standard build tool for Electron applications and part of the project's legitimate build process from its own source; the source is from a trusted upstream GitHub repository, and the executed code is not obfuscated or from an untrusted remote location.
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 npx command is used to run electron-forge make, which is a standard build tool for Electron applications and part of the project's legitimate build process from its own source; the source is from a trusted upstream GitHub repository, and the executed code is not obfuscated or from an untrusted remote location.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
npx/bunx/deno executes a remote package
remote_code_tool
`npx`/`bunx`/`pnpm dlx`/`deno run <url>` downloads AND runs a remote package at build time — the moral equivalent of piping a download into a shell. Severity downgraded: Node.js consumer context.
-
PKGBUILD:51
npx electron-forge make --targets @electron-forge/maker-zip
PKGBUILD
1 offending line(s) highlighted
1
# Ex-Maintainer: Valentijn V. <neko at catgirlsin dot space>
2
# Maintainer: Riley T. <rt@hellscaped.dev>
3
pkgname=gb-studio-git # '-bzr', '-git', '-hg' or '-svn'
4
_pkgname=gb-studio
5
pkgver=4.0.0.r3.g11278cb3a
6
pkgrel=1
7
pkgdesc="Visual retro game maker"
8
arch=('x86_64')
9
url="https://github.com/chrismaltby/gb-studio"
10
license=('MIT')
11
groups=()
12
depends=('gtk3' 'libnotify' 'nss' 'libxss' 'libxtst' 'xdg-utils' 'util-linux' 'trash-cli')
13
makedepends=('git' 'yarn' 'npm' 'nvm' 'nodejs')
14
provides=("gb-studio")
15
conflicts=("gb-studio")
16
replaces=()
17
backup=()
18
options=()
19
install=
20
source=('git+https://github.com/chrismaltby/gb-studio.git')
21
noextract=()
22
md5sums=('SKIP')
23
24
_ensure_local_nvm() {
25
# let's be sure we are starting clean
26
which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
27
export NVM_DIR="${srcdir}/.nvm"
28
29
# The init script returns 3 if version specified
30
# in ./.nvrc is not (yet) installed in $NVM_DIR
31
# but nvm itself still gets loaded ok
32
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
33
}
34
35
pkgver() {
36
cd "$srcdir/${_pkgname}"
37
printf "%s" "$(git describe --long | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')"
38
}
39
40
build() {
41
cd "${_pkgname}"
42
msg2 "Setting up NVM to switch NodeJS version..."
43
_ensure_local_nvm
44
nvm install
45
msg2 "Installing yarn packages..."
46
yarn
47
msg2 "Hacky fix until they merge my PR for the linux target..."
48
sed 's/\"win32\"\]/\"win32\"\, \"linux\"]/' forge.config.js > temporaryhackplsignoreuntilmyprismerged
49
mv temporaryhackplsignoreuntilmyprismerged forge.config.js
50
msg2 "Building zip file..."
51
npx electron-forge make --targets @electron-forge/maker-zip
52
cd out/make/zip/linux/x64
53
msg2 "Extracting zip file..."
54
buildzip=$(ls *.zip)
55
bsdtar -xf "${buildzip}"
56
}
57
58
package() {
59
cd "${_pkgname}/out/make/zip/linux/x64/GB Studio-linux-x64"
60
mkdir -p "${pkgdir}/usr/lib/gb-studio"
61
mkdir "${pkgdir}/usr/bin"
62
cp -r ./* "${pkgdir}/usr/lib/gb-studio"
63
ln -s /usr/lib/gb-studio/gb-studio "${pkgdir}/usr/bin/gb-studio"
64
65
install -D -m644 ./LICENSES.chromium.html "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
66
install -D -m644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT"
67
}
68
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 |