guiman
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 npm install and npx tauri build commands are used to build the project from its own source code checked out from the declared GitHub repository, which is a normal and legitimate practice for AUR packages; the tools are not executing arbitrary remote code but building the package's own declared source.
2 higher static findings superseded - not the current verdict (shown for transparency)
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:63
npm install --silent @tauri-apps/cli
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:65
npx tauri build || {
PKGBUILD
2 offending line(s) highlighted# Maintainer: Junaid Rahman <junaid.cloud2@gmail.com>
pkgname=guiman
pkgver=1.6.0
pkgrel=1
pkgdesc="The Ultimate Arch Linux Package Manager - GUI with 100% pacman & AUR feature parity"
arch=('x86_64')
url="https://github.com/Junaid433/guiman"
license=('MIT')
depends=(
'webkit2gtk'
'gtk3'
'libayatana-appindicator'
'pacman'
'sudo'
)
makedepends=(
'nodejs'
'npm'
'git'
'ffmpeg'
'pkgconf'
'openssl'
'rust'
'cargo'
'base-devel'
)
optdepends=(
'yay: AUR helper support'
'paru: AUR helper support'
'reflector: Mirror management'
'polkit: Password-free operations'
)
provides=('guiman')
conflicts=('guiman-bin' 'guiman-git')
source=("git+$url.git")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir/guiman"
git describe --tags --abbrev=0 | sed 's/^v//'
}
prepare() {
cd "$srcdir/guiman"
if [ -f "src-tauri/icons/icon.png" ]; then
ffmpeg -y -loglevel error -i src-tauri/icons/icon.png -vf "format=rgba,scale=512:512:force_original_aspect_ratio=increase,crop=512:512" src-tauri/icons/icon_rgba.png
mv src-tauri/icons/icon_rgba.png src-tauri/icons/icon.png
echo "Icon converted to RGBA format and made square"
fi
if [ -f "src-tauri/tauri.conf.json" ]; then
sed -i 's/"productName": "GuiMan"/"productName": "guiman"/' src-tauri/tauri.conf.json
echo "Fixed productName in tauri.conf.json"
fi
}
build() {
cd "$srcdir/guiman"
npm ci --silent || npm install --silent
npm install --silent @tauri-apps/cli
npx tauri build || {
echo "Build failed" >&2
exit 1
}
}
package() {
cd "$srcdir/guiman"
install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" << 'EOF'
#!/bin/bash
export WEBKIT_DISABLE_COMPOSITING_MODE=0
export WEBKIT_USE_GPU=1
export WEBKIT_DISABLE_DMABUF_RENDERER=1
export GDK_BACKEND=x11
exec /usr/lib/guiman/guiman "$@"
EOF
install -Dm755 "src-tauri/target/release/$pkgname" "$pkgdir/usr/lib/guiman/$pkgname"
[ -f "$pkgname.desktop" ] && install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
[ -f "src-tauri/icons/icon.png" ] && install -Dm644 "src-tauri/icons/icon.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
if [ -f "polkit/com.guiman.pkexec.policy" ]; then
install -Dm644 "polkit/com.guiman.pkexec.policy" "$pkgdir/usr/share/polkit-1/actions/com.guiman.pkexec.policy"
fi
[ -f LICENSE ] && install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
[ -f README.md ] && install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 3 |
| 2026-08-02 00:16:08 | LOW | 3 |
| 2026-08-01 00:11:18 | LOW | 3 |
| 2026-07-31 00:14:10 | LOW | 3 |
| 2026-07-30 00:17:23 | LOW | 3 |
| 2026-07-29 00:25:53 | LOW | 3 |
| 2026-07-28 00:07:28 | LOW | 3 |
| 2026-07-27 00:24:32 | LOW | 3 |
| 2026-07-26 00:07:32 | LOW | 3 |
| 2026-07-25 00:13:44 | LOW | 3 |
| 2026-07-24 00:02:28 | LOW | 3 |
| 2026-07-23 00:14:47 | LOW | 3 |
| 2026-07-22 00:29:32 | LOW | 3 |
| 2026-07-21 00:24:15 | LOW | 3 |
| 2026-07-20 00:19:49 | LOW | 3 |
| 2026-07-19 00:17:08 | LOW | 3 |
| 2026-07-18 00:14:48 | LOW | 3 |
| 2026-07-17 00:06:16 | LOW | 3 |
| 2026-07-16 00:05:41 | LOW | 3 |
| 2026-07-15 00:09:25 | LOW | 3 |