winboat-electron
The npx command runs electron-builder on the locally checked-out project source, which is a standard and safe build practice; the tool is not executing arbitrary remote code but building the application from trusted, version-controlled source.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The npx command runs electron-builder on the locally checked-out project source, which is a standard and safe build practice; the tool is not executing arbitrary remote code but building the application from trusted, version-controlled source.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:66
npx electron-builder --linux --dir \
PKGBUILD
1 offending line(s) highlighted# Maintainer: Matt Quintanilla <matt @ matt quintanilla .xyz>
# Maintainer: ArjixWasTaken <me@arjix.dev>
# Contributor: tiziodcaio <d dot bass05 at pm dot me>
_pkgname=winboat
pkgname=winboat-electron
pkgver=0.9.2
pkgrel=1
pkgdesc="Run Windows apps on Linux with seamless integration"
arch=('x86_64')
url="https://www.winboat.app"
license=('MIT')
_electron=electron43
depends=(
'alsa-lib'
'docker'
'docker-compose'
'freerdp'
'gtk3'
'nss'
"$_electron"
)
makedepends=(
'git'
'npm'
'go'
'zip'
'imagemagick'
'asar'
)
options=('!strip')
source=("git+https://github.com/winboat-org/winboat.git#tag=v$pkgver")
sha256sums=('4537e93c28cd2311700279e135ddb13ac49ab6a85d124198ad2078927b2863fd')
provides=('winboat')
conflicts=('winboat')
prepare(){
cd "$_pkgname"
## don't use resourcesPath
sed --in-place -e "s/process\.resourcesPath, \"/\"\/usr\/lib\/winboat\//g" ./src/renderer/lib/*.ts
export npm_config_cache="$srcdir/npm_cache"
npm i --allow-git=all
npm update node-abi
}
build() {
cd "$_pkgname"
export GOPATH="$srcdir/gopath"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
#build:linux-gs
bash build-guest-server.sh
node scripts/build.ts
rm -rf main
cp -r build/main main
npx electron-builder --linux --dir \
-c.electronDist=/usr/lib/"$_electron" \
-c.electronVersion="$(</usr/lib/${_electron}/version)"
# Clean module cache for makepkg -C
go clean -modcache
mkdir -p dist/.icon-set
for i in 16 32 48 64 128 256 512; do
magick icons/winboat_logo.svg -resize "${i}x${i}" "dist/.icon-set/icon_${i}x${i}.png"
done
}
package() {
cd "$_pkgname"
install -Dm755 /dev/null "${pkgdir}/usr/bin/$_pkgname"
cat >>"${pkgdir}/usr/bin/$_pkgname" <<EOD
#! /usr/bin/sh
exec $_electron /usr/lib/$_pkgname/app.asar "\$@"
EOD
install -d "$pkgdir/usr/lib/$_pkgname/"
cp -a dist/linux-unpacked/resources/** "$pkgdir/usr/lib/$_pkgname"
for i in 16 32 48 64 128 256 512; do
install -Dm644 dist/.icon-set/icon_${i}x${i}.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_pkgname.png"
done
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/"
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/$_pkgname.desktop" <<EOF
[Desktop Entry]
Name=WinBoat
Exec=/usr/bin/$_pkgname
Icon=$_pkgname
Terminal=false
Type=Application
Comment=Run Windows apps on Linux with seamless integration
EOF
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |