winboat-electron
maintainer tiziodcaio
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The npx command runs electron-builder on the locally built project, which is a standard part of the build process for Electron apps and does not execute untrusted remote code.
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 npx command runs electron-builder on the locally built project, which is a standard part of the build process for Electron apps and does not execute untrusted remote code.
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:64
npx electron-builder --linux --dir \
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Matt Quintanilla <matt @ matt quintanilla .xyz>
2
# Maintainer: ArjixWasTaken <me@arjix.dev>
3
# Contributor: tiziodcaio <d dot bass05 at pm dot me>
4
5
_pkgname=winboat
6
pkgname=winboat-electron
7
pkgver=0.9.0
8
pkgrel=4
9
pkgdesc="Run Windows apps on Linux with seamless integration"
10
arch=('x86_64')
11
url="https://www.winboat.app"
12
license=('MIT')
13
_electron=electron39
14
depends=(
15
'alsa-lib'
16
'docker'
17
'docker-compose'
18
'freerdp'
19
'gtk3'
20
'nss'
21
"$_electron"
22
)
23
makedepends=(
24
'git'
25
'npm'
26
'go'
27
'zip'
28
'imagemagick'
29
'asar'
30
)
31
options=('!strip')
32
source=("git+https://github.com/TibixDev/winboat.git#tag=v$pkgver")
33
sha256sums=('11051ae91c399ccc75ef69910d4e8a526f6cc50210f9c70525829d5017715cce')
34
provides=('winboat')
35
conflicts=('winboat')
36
37
prepare(){
38
cd "$_pkgname"
39
40
## don't use resourcesPath
41
sed --in-place -e "s/process\.resourcesPath, \"/\"\/usr\/lib\/winboat\//g" ./src/renderer/lib/*.ts
42
43
export npm_config_cache="$srcdir/npm_cache"
44
npm i
45
}
46
47
build() {
48
cd "$_pkgname"
49
50
export GOPATH="$srcdir/gopath"
51
export CGO_CPPFLAGS="${CPPFLAGS}"
52
export CGO_CFLAGS="${CFLAGS}"
53
export CGO_CXXFLAGS="${CXXFLAGS}"
54
export CGO_LDFLAGS="${LDFLAGS}"
55
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
56
57
#build:linux-gs
58
bash build-guest-server.sh
59
node scripts/build.ts
60
61
rm -rf main
62
cp -r build/main main
63
64
npx electron-builder --linux --dir \
65
-c.electronDist=/usr/lib/"$_electron" \
66
-c.electronVersion="$(</usr/lib/${_electron}/version)"
67
68
# Clean module cache for makepkg -C
69
go clean -modcache
70
71
mkdir -p dist/.icon-set
72
for i in 16 32 48 64 128 256 512; do
73
magick icons/winboat_logo.svg -resize "${i}x${i}" "dist/.icon-set/icon_${i}x${i}.png"
74
done
75
}
76
77
package() {
78
cd "$_pkgname"
79
install -Dm755 /dev/null "${pkgdir}/usr/bin/$_pkgname"
80
cat >>"${pkgdir}/usr/bin/$_pkgname" <<EOD
81
#! /usr/bin/sh
82
exec $_electron /usr/lib/$_pkgname/app.asar "\$@"
83
EOD
84
install -d "$pkgdir/usr/lib/$_pkgname/"
85
86
cp -a dist/linux-unpacked/resources/** "$pkgdir/usr/lib/$_pkgname"
87
88
for i in 16 32 48 64 128 256 512; do
89
install -Dm644 dist/.icon-set/icon_${i}x${i}.png \
90
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_pkgname.png"
91
done
92
93
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/"
94
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/$_pkgname.desktop" <<EOF
95
[Desktop Entry]
96
Name=WinBoat
97
Exec=/usr/bin/$_pkgname
98
Icon=$_pkgname
99
Terminal=false
100
Type=Application
101
Comment=Run Windows apps on Linux with seamless integration
102
EOF
103
}
104
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 |