materialious
Triggered rules
llm_review
The static rules flagged this HIGH, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 85%): The flagged npx calls are legitimate: 'npx cap telemetry off' disables Capacitor telemetry, 'npx cap sync @capacitor-community/electron' syncs the Capacitor Electron platform (both use the locally installed 'cap' CLI from npm ci), and 'npx electron-builder build' invokes the locally installed electron-builder. None of these fetch remote packages at runtime since npm ci installs all dependencies from package-lock.json first. The source is fetched from the official GitHub release tarball with a pinned sha256sum. The nvm usage is a common AUR pattern for managing Node.js versions in the build environment. The only concern is the standard supply-chain risk inherent in any npm-based build (npm ci pulls many packages), but this is not malicious behavior specific to this PKGBUILD.
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.
-
PKGBUILD:58
npx cap telemetry off -
PKGBUILD:59
npx cap sync @capacitor-community/electron -
PKGBUILD:65
npx electron-builder build --linux dir -c ./electron-builder.config.json \
PKGBUILD
3 offending line(s) highlighted# Maintainer: Mark Wagie <mark dot wagie at proton dot me>
pkgname=materialious
_app_id=us.materialio.Materialious
pkgver=1.17.10
pkgrel=1
_nodeversion=24
_electronversion=43
pkgdesc="Modern material design for Invidious."
arch=('x86_64')
url="https://materialio.us"
license=('AGPL-3.0-or-later')
depends=("electron${_electronversion}")
makedepends=(
'desktop-file-utils'
'nvm'
'python'
)
checkdepends=('appstream')
source=("Materialious-$pkgver.tar.gz::https://github.com/Materialious/Materialious/archive/refs/tags/$pkgver.tar.gz"
"$pkgname.sh")
sha256sums=('6ff8a3156863ba83305ea6ff8e2143ec742731aec78cc44bbe20254f280e7897'
'ae23af6865ab1638d46df5158fa09d41357f57068f1676af86e1a0e6e00459ed')
_ensure_local_nvm() {
# let's be sure we are starting clean
which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
export NVM_DIR="$srcdir/.nvm"
# The init script returns 3 if version specified
# in ./.nvrc is not (yet) installed in $NVM_DIR
# but nvm itself still gets loaded ok
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
}
prepare() {
_ensure_local_nvm
nvm install "${_nodeversion}"
cd "Materialious-$pkgver/$pkgname"
# Set desktop file Exec
desktop-file-edit --set-key=Exec --set-value="$pkgname" "electron/$pkgname.desktop"
# Set Electron version
sed -i "s|@ELECTRONVERSION@|${_electronversion}|" "$srcdir/$pkgname.sh"
}
build() {
cd "Materialious-$pkgver/$pkgname"
export npm_config_cache="$srcdir/npm_cache"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
electronDist="/usr/lib/electron${_electronversion}"
electronVer="$(sed s/^v// /usr/lib/electron${_electronversion}/version)"
_ensure_local_nvm
npm ci
npm run build
npm prune --omit=dev
npx cap telemetry off
npx cap sync @capacitor-community/electron
cd electron
python patch_capacitor_plugin.py
npm ci
npm run build
npx electron-builder build --linux dir -c ./electron-builder.config.json \
-c.electronDist=$electronDist -c.electronVersion=$electronVer
}
check() {
cd "Materialious-$pkgver/$pkgname/electron"
appstreamcli validate --no-net "$pkgname.metainfo.xml" || :
desktop-file-validate "$pkgname.desktop"
}
package() {
cd "Materialious-$pkgver/$pkgname/electron"
install -Dm644 dist/linux-unpacked/resources/app.asar -t "$pkgdir/usr/lib/$pkgname/"
cp -a dist/linux-unpacked/resources/app.asar.unpacked -t "$pkgdir/usr/lib/$pkgname/"
install -Dm644 assets/appIcon.png \
"$pkgdir/usr/share/icons/hicolor/512x512/apps/${_app_id}.png"
install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/${_app_id}.desktop"
install -Dm644 "$pkgname.metainfo.xml" "$pkgdir/usr/share/metainfo/${_app_id}.metainfo.xml"
install -Dm755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
}
Changes since previous scan
--- PKGBUILD @ 2026-07-29 17:15+++ PKGBUILD @ 2026-08-18 00:03@@ -1,7 +1,7 @@ # Maintainer: Mark Wagie <mark dot wagie at proton dot me> pkgname=materialious _app_id=us.materialio.Materialious-pkgver=1.17.6+pkgver=1.17.10 pkgrel=1 _nodeversion=24 _electronversion=43@@ -18,7 +18,7 @@ checkdepends=('appstream') source=("Materialious-$pkgver.tar.gz::https://github.com/Materialious/Materialious/archive/refs/tags/$pkgver.tar.gz" "$pkgname.sh")-sha256sums=('8fb5455f76c15940206fa57b9cd9fbb96577ec1f6b498c3e26a97a2fcaf9577c'+sha256sums=('6ff8a3156863ba83305ea6ff8e2143ec742731aec78cc44bbe20254f280e7897' 'ae23af6865ab1638d46df5158fa09d41357f57068f1676af86e1a0e6e00459ed') _ensure_local_nvm() {@@ -75,6 +75,7 @@ package() { cd "Materialious-$pkgver/$pkgname/electron" install -Dm644 dist/linux-unpacked/resources/app.asar -t "$pkgdir/usr/lib/$pkgname/"+ cp -a dist/linux-unpacked/resources/app.asar.unpacked -t "$pkgdir/usr/lib/$pkgname/" install -Dm644 assets/appIcon.png \ "$pkgdir/usr/share/icons/hicolor/512x512/apps/${_app_id}.png" install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/${_app_id}.desktop"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-18 00:03:42 | LOW | 2 |
| 2026-08-17 00:18:29 | LOW | 2 |
| 2026-08-16 00:03:42 | LOW | 2 |
| 2026-08-15 00:26:13 | LOW | 2 |
| 2026-08-14 00:03:41 | LOW | 2 |
| 2026-08-13 00:17:07 | LOW | 2 |
| 2026-08-12 00:27:08 | LOW | 2 |
| 2026-08-11 15:31:07 | LOW | 2 |
| 2026-08-11 15:21:23 | HIGH | 1 |
| 2026-07-29 17:15:48 | CLEAN | 2 |
| 2026-07-29 17:12:22 | HIGH | 1 |
| 2026-07-12 17:43:53 | CLEAN | 2 |
| 2026-07-12 17:40:40 | HIGH | 1 |
| 2026-07-04 17:17:13 | CLEAN | 2 |
| 2026-07-04 17:14:52 | HIGH | 1 |
| 2026-07-04 00:27:25 | LOW | 2 |
| 2026-07-03 00:17:07 | LOW | 2 |
| 2026-07-02 18:47:07 | LOW | 2 |
| 2026-07-02 00:22:12 | LOW | 2 |
| 2026-07-01 00:30:02 | LOW | 2 |