kopuz-git
The npx call runs @tailwindcss/cli, which is a well-known official npm package installed locally via 'npm install' in prepare(), not fetched remotely at build time; the rest of the build compiles the project's own source from its official GitHub repo with cargo --frozen, posing no meaningful supply-chain risk beyond normal AUR packaging.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 75%): The npx call runs @tailwindcss/cli, which is a well-known official npm package installed locally via 'npm install' in prepare(), not fetched remotely at build time; the rest of the build compiles the project's own source from its official GitHub repo with cargo --frozen, posing no meaningful supply-chain risk beyond normal AUR packaging.
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. Severity downgraded: Node.js consumer context.
-
PKGBUILD:61
npx @tailwindcss/cli -i ./tailwind.css -o ./crates/kopuz/assets/tailwind.css \
PKGBUILD
1 offending line(s) highlighted# Maintainer: temidaradev <temidaradev@proton.me>
# Contributor: umceko
pkgname=kopuz-git
pkgver=0.9.0.r2.g45515c01
pkgrel=1
pkgdesc="A modern music player (latest git, built from source)"
arch=('x86_64')
url="https://github.com/Kopuz-org/kopuz"
license=('MIT')
provides=('kopuz')
conflicts=('kopuz')
depends=(
'webkit2gtk-4.1'
'gtk3'
'libsoup3'
'glib-networking'
'alsa-lib'
'openssl'
'xdotool'
'dbus'
'opus'
'libayatana-appindicator'
)
makedepends=(
'git'
'rust'
'nodejs'
'npm'
'cmake'
'pkgconf'
)
optdepends=(
'yt-dlp'
'python-mutagen'
)
# makepkg's default lto option injects -flto=auto into CFLAGS; the bundled
# sqlite3.c then compiles to LTO bitcode that rustc's link of sqlx's proc-macro
# dylib silently drops, and the macro fails to load with
# "undefined symbol: sqlite3_value_type".
options=('!lto')
source=("$pkgname::git+https://github.com/Kopuz-org/kopuz.git")
sha256sums=('SKIP')
pkgver() {
cd "$pkgname"
git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./'
}
prepare() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
npm install
}
build() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
# tailwind.css is include_str!-embedded; regenerate it from the current
# sources like upstream's own builds do, so styling matches this checkout.
npx @tailwindcss/cli -i ./tailwind.css -o ./crates/kopuz/assets/tailwind.css \
--content './crates/kopuz/**/*.rs,./crates/components/**/*.rs,./crates/pages/**/*.rs,./crates/hooks/**/*.rs,./crates/player/**/*.rs,./crates/reader/**/*.rs'
cargo build --frozen --release -p kopuz
}
package() {
cd "$pkgname"
install -Dm755 target/release/kopuz "$pkgdir/usr/bin/kopuz"
install -Dm644 "data/com.temidaradev.kopuz.desktop" \
"$pkgdir/usr/share/applications/com.temidaradev.kopuz.desktop"
sed -i "s|Exec=kopuz|Exec=/usr/bin/kopuz|" \
"$pkgdir/usr/share/applications/com.temidaradev.kopuz.desktop"
install -Dm644 "crates/kopuz/assets/logo.png" \
"$pkgdir/usr/share/icons/hicolor/256x256/apps/com.temidaradev.kopuz.png"
install -Dm644 "data/com.temidaradev.kopuz.metainfo.xml" \
"$pkgdir/usr/share/metainfo/com.temidaradev.kopuz.metainfo.xml"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
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 |