bili-live-hime
maintainer bianca
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The npx commands run Vite and Tauri build tools on the project's own source code, which is downloaded from the official GitHub repository; this is a standard part of building a legitimate Tauri application and poses no remote code execution risk.
Triggered rules
LOW
AI review downgraded a static finding
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 npx commands run Vite and Tauri build tools on the project's own source code, which is downloaded from the official GitHub repository; this is a standard part of building a legitimate Tauri application and poses no remote code execution risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
npx/bunx/deno executes a remote package
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:56
npx vite build --base ./ -
PKGBUILD:57
npx tauri build --no-bundle --config '{"build":{"beforeBuildCommand":""}}'
PKGBUILD
2 offending line(s) highlighted
1
# Maintainer: bianca <zhaoxiaokee@gmail.com>
2
3
pkgname=bili-live-hime
4
_upstream=bili-live-hime
5
pkgver=0.5.2
6
_tag="LiveHime-v${pkgver}"
7
pkgrel=1
8
pkgdesc="bilibili官方直播姬的轻量化替代工具"
9
arch=('x86_64')
10
url="https://github.com/Rsplwe/bili-live-hime"
11
license=('GPL-2.0-only')
12
depends=('webkit2gtk-4.1' 'gtk3' 'libnm' 'libayatana-appindicator' 'openssl')
13
makedepends=('nodejs' 'npm' 'rust' 'cargo')
14
conflicts=('bili-live-hime-git')
15
source=("${_upstream}-${_tag}.tar.gz::https://github.com/Rsplwe/${_upstream}/archive/refs/tags/${_tag}.tar.gz")
16
sha256sums=('9652247a9ff68f8f468adaf660591844bbcb4e4a2745b6f0d51b41aff66ac030')
17
18
prepare() {
19
cd "${srcdir}/${_upstream}-${_tag}"
20
21
export CARGO_HOME="${srcdir}/cargo-home"
22
export npm_config_cache="${srcdir}/npm-cache"
23
24
sed -i 's/^lto = true$/lto = false/' src-tauri/Cargo.toml
25
26
node <<'EOF_NODE'
27
const fs = require('fs');
28
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
29
30
delete pkg.overrides;
31
32
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
33
EOF_NODE
34
35
npm install --legacy-peer-deps
36
}
37
38
build() {
39
cd "${srcdir}/${_upstream}-${_tag}"
40
41
export CARGO_HOME="${srcdir}/cargo-home"
42
export npm_config_cache="${srcdir}/npm-cache"
43
export NODE_ENV=production
44
export CC=gcc
45
export CXX=g++
46
47
unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS RUSTFLAGS
48
export RUSTFLAGS='-C linker=gcc'
49
50
local main_css
51
main_css=$(find src -name '*.css' | head -n 1)
52
if [[ -n "${main_css}" ]]; then
53
sed -i '1i @source "./**/*.{ts,tsx,html}";' "${main_css}"
54
fi
55
56
npx vite build --base ./
57
npx tauri build --no-bundle --config '{"build":{"beforeBuildCommand":""}}'
58
}
59
60
package() {
61
cd "${srcdir}/${_upstream}-${_tag}"
62
63
install -Dm755 "src-tauri/target/release/${_upstream}" "${pkgdir}/usr/bin/${_upstream}"
64
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
65
66
for size in 32 128; do
67
install -Dm644 "src-tauri/icons/${size}x${size}.png" \
68
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${_upstream}.png"
69
done
70
71
install -Dm644 "src-tauri/icons/128x128@2x.png" \
72
"${pkgdir}/usr/share/icons/hicolor/256x256/apps/${_upstream}.png"
73
74
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/${_upstream}.desktop" <<EOF_DESKTOP
75
[Desktop Entry]
76
Name=Bili Live Hime
77
Exec=${_upstream}
78
Icon=${_upstream}
79
Type=Application
80
Categories=AudioVideo;Video;
81
Comment=${pkgdesc}
82
Terminal=false
83
EOF_DESKTOP
84
}
85
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |