planarally-bin
The pip install is used to install the project's own editable package from the verified source tarball, not an external untrusted package, so the risk is low despite the static analysis flag.
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 pip install is used to install the project's own editable package from the verified source tarball, not an external untrusted package, so the risk is low despite the static analysis flag.
1 higher static finding superseded - not the current verdict (shown for transparency)
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:38
pip install --upgrade pip
PKGBUILD
1 offending line(s) highlightedpkgname=planarally-bin
pkgver=2026.1.2
pkgrel=19
pkgdesc="PlanarAlly v${pkgver}"
arch=('x86_64')
url='https://www.planarally.io'
license=('MIT')
depends=(
'python-aiohttp' 'python-bcrypt' 'python-cryptography'
'python-email-validator' 'python-jinja' 'python-peewee'
'python-pillow' 'python-pydantic' 'python-rtoml'
'python-socketio' 'python-typing_extensions' 'python-watchdog'
'nodejs' 'npm' 'git'
)
makedepends=('npm' 'nodejs' 'python-virtualenv' 'base-devel' 'python-pip')
source=("https://github.com/Kruptein/PlanarAlly/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('bc73bfc68b8e5bdfe1c5d8ab7165a8171ab48c7a7ece34aede7827a501e00e80')
package() {
cd "$srcdir/PlanarAlly-$pkgver"
cd client
npm ci
npm run build
cd ..
install -dm755 "$pkgdir/usr/lib/planarally/server"
cp -a server/. "$pkgdir/usr/lib/planarally/server/"
cd "$pkgdir/usr/lib/planarally/server"
rm -rf .git
export LANG=en_US.UTF-8
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -e .
find "$pkgdir/usr/lib/planarally" -type d -exec chmod 755 {} +
find "$pkgdir/usr/lib/planarally" -type f -exec chmod 644 {} +
# Guys I got the jackpot
install -dm777 "$pkgdir/usr/lib/planarally/server/static/assets"
install -dm777 "$pkgdir/usr/lib/planarally/server/static/temp"
install -dm777 "$pkgdir/usr/lib/planarally/server/data"
install -dm777 "$pkgdir/usr/lib/planarally/server/config"
# Simple launcher - no mkdir needed (dirs pre-created)
install -Dm755 /dev/stdin "$pkgdir/usr/bin/planarally" << 'EOF'
#!/bin/bash
# Kill any existing instances
pkill -f planarally.py 2>/dev/null || true
cd /usr/lib/planarally/server
source venv/bin/activate
exec python planarally.py "$@"
EOF
# Favicon with safety check
[[ -f "$srcdir/PlanarAlly-$pkgver/favicon.ico" ]] && \
install -Dm644 "$srcdir/PlanarAlly-$pkgver/favicon.ico" \
"$pkgdir/usr/share/icons/hicolor/64x64/apps/planarally.png"
# Desktop entry
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/planarally.desktop" << 'EOF'
[Desktop Entry]
Name=PlanarAlly
Exec=planarally
Icon=planarally
Comment=TTRPG Virtual Tabletop
Categories=Game;RolePlaying;
Type=Application
EOF
}
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 |