storyboarder
The external download is a transparent PNG image from Wikimedia Commons used as a static asset, not executable code, and the build process otherwise uses the official source tarball and standard npm commands for a legitimate project build.
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 external download is a transparent PNG image from Wikimedia Commons used as a static asset, not executable code, and the build process otherwise uses the official source tarball and standard npm commands for a legitimate project build.
1 higher static finding superseded - not the current verdict (shown for transparency)
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:18
curl https://upload.wikimedia.org/wikipedia/commons/8/8c/Transparent.png > "${srcdir}"/storyboarder-${pkgver}/src/img/watermark.png
PKGBUILD
1 offending line(s) highlighted#Maintainer: Bazza <bazza@riseup.net>
pkgname=('storyboarder')
pkgver=3.0.0
pkgrel=1
pkgdesc="The best way to visualize your story. It makes it easy to visualize a story as fast you can draw stick figures."
provides=("storyboarder")
depends=('zlib' 'hicolor-icon-theme' )
makedepends=('nvm' 'nodejs')
url='https://wonderunit.com/storyboarder/'
arch=('x86_64')
source=("https://github.com/wonderunit/storyboarder/archive/refs/tags/v${pkgver}.zip")
md5sums=('e4d21697c9f90adf7344a87917aa3a6f')
license=()
options=(!strip)
prepare(){
curl https://upload.wikimedia.org/wikipedia/commons/8/8c/Transparent.png > "${srcdir}"/storyboarder-${pkgver}/src/img/watermark.png
cd "${srcdir}/storyboarder-${pkgver}"
source /usr/share/nvm/init-nvm.sh
nvm install 14.16.0
npm install
npm run build
npm run dist:linux
echo "[Desktop Entry]
Name=Storyboader
Exec=/opt/storyboarder/storyboarder
Icon=storyboarder
Type=Application
Terminal=false
StartupNotify=true
Categories=Graphics;" > "${srcdir}"/storyboarder-${pkgver}/storyboarder.desktop
}
package(){
# opt dir
mkdir -p "${pkgdir}"/usr/bin/
echo -e '#!/bin/sh\n/opt/storyboarder/storyboarder' > "${pkgdir}"/usr/bin/storyboarder
chmod 755 "${pkgdir}"/usr/bin/storyboarder
mkdir -p "${pkgdir}"/opt/storyboarder/
# linux unpacked
cp -ar "${srcdir}"/storyboarder-${pkgver}/dist/linux-unpacked/* "${pkgdir}"/opt/storyboarder/
# Desktop
install -Dm644 "${srcdir}"/storyboarder-${pkgver}/storyboarder.desktop "${pkgdir}"/usr/share/applications/storyboarder.desktop
# Icon
install -Dm644 "${srcdir}"/storyboarder-${pkgver}/src/img/logoicon.png "${pkgdir}"/usr/share/pixmaps/storyboarder.png
}
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 |