bilibili
LOW
maintainer zxp19821005
3 votes
scanned 2026-09-20 07:32:26.301293
Why flagged
The package builds from a public GitHub repository and uses standard build tools; the variable-named dependency is resolved via versioned system packages or project metadata, posing no clear supply-chain risk.
Triggered rules
Low
AI review of an ambiguous pattern
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (qwen/qwen3-235b-a22b-2507) reviewed it and judged it LOW (confidence 95%): The package builds from a public GitHub repository and uses standard build tools; the variable-named dependency is resolved via versioned system packages or project metadata, posing no clear supply-chain risk.
-
PKGBUILD:100
npm install -g "pnpm@${_pnpmver}" --prefix "${PNPM_GLOBAL_DIR}"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2
pkgname=bilibili
3
_pkgver=1.19.0
4
_subver=1
5
pkgver="${_pkgver}_${_subver}"
6
_electronversion=43
7
_nodeversion=22
8
pkgrel=1
9
pkgdesc="Linux version based on Beilai official client porting supports roaming.基于哔哩哔哩官方客户端移植的Linux版本,支持漫游"
10
arch=(
11
'aarch64'
12
'x86_64'
13
)
14
url="https://www.jysafe.cn/"
15
_ghurl="https://github.com/msojocs/bilibili-linux"
16
license=('MIT')
17
provides=("${pkgname}")
18
conflicts=(
19
"${pkgname}"
20
)
21
depends=(
22
"electron${_electronversion}"
23
'ffmpeg'
24
'libappindicator'
25
'nodejs'
26
'libinput'
27
)
28
makedepends=(
29
'wget'
30
'perl-image-exiftool'
31
'asar'
32
'unzip'
33
'p7zip'
34
'curl'
35
'npm'
36
'nvm'
37
'pnpm'
38
'git'
39
'jq'
40
)
41
options=(
42
'!strip'
43
'!emptydirs'
44
)
45
source=(
46
"${pkgname}-${pkgver}::git+${_ghurl}#tag=v${_pkgver}-${_subver}"
47
"${pkgname}.sh"
48
)
49
sha256sums=('f74ff78054f34342b2073139793915ffdaf7378fd60e4e4b492e0a5b18d85d08'
50
'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d')
51
_ensure_local_nvm() {
52
local NVM_DIR="${srcdir}/.nvm"
53
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
54
nvm install "${_nodeversion}"
55
nvm use "${_nodeversion}"
56
}
57
_get_app_dir() {
58
find "${srcdir}" -type d -name "node_modules" -prune -o -type f -name "resources.pak" -print0 | xargs -0 dirname | head -n 1
59
}
60
_set_build_env() {
61
export ELECTRON_DIST="/usr/lib/electron${_electronversion}"
62
export ELECTRON_OVERRIDE_DIST_PATH="${ELECTRON_DIST}"
63
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
64
_ev="$(electron${_electronversion} -v)"
65
export SYSTEM_ELECTRON_VERSION="${_ev#v}"
66
export HOME="${srcdir}/.electron-gyp"
67
mkdir -p "${HOME}"
68
export XDG_CACHE_HOME="${srcdir}/.cache"
69
export XDG_CONFIG_HOME="${srcdir}/.config"
70
export XDG_DATA_HOME="${srcdir}/.local/share"
71
export XDG_STATE_HOME="${srcdir}/.local/state"
72
export PNPM_HOME="${srcdir}/.pnpm/bin"
73
export PNPM_GLOBAL_DIR="${srcdir}/.pnpm/global"
74
export PNPM_STATE_DIR="${srcdir}/.pnpm/state"
75
export PNPM_MINIMUM_RELEASE_AGE=0
76
export PNPM_NODE_LINKER=hoisted
77
export PNPM_FETCH_RETRIES=3
78
export PNPM_FETCH_RETRY_MAXTIMEOUT=10000
79
export PNPM_UPDATE_NOTIFIER=false
80
export PNPM_NO_COLOR=true
81
export PNPM_NO_PROGRESS=true
82
export pnpm_config_platform=linux
83
export pnpm_config_arch="${CARCH}"
84
export NODE_OPTIONS="--max-old-space-size=4096"
85
export npm_config_node_options="--max-old-space-size=4096"
86
mkdir -p "${PNPM_CACHE_DIR}" "${PNPM_STORE_DIR}" "${PNPM_GLOBAL_DIR}" "${PNPM_HOME}" "${PNPM_STATE_DIR}"
87
export PATH="${PNPM_HOME}:${PATH}"
88
local _pnpmver="${_pnpmversion}"
89
if [[ -z "${_pnpmver}" ]]; then
90
_pnpmver="$(node -p "const pm=require('./package.json').packageManager; pm && pm.startsWith('pnpm@') ? pm.split('@')[1] : ''" 2>/dev/null)"
91
fi
92
if [[ -n "${_pnpmver}" ]]; then
93
export COREPACK_HOME="${srcdir}/.corepack"
94
install -dm755 "${srcdir}/.bin"
95
if command -v corepack &>/dev/null; then
96
corepack enable --install-directory "${srcdir}/.bin"
97
export PATH="${srcdir}/.bin:${PATH}"
98
corepack prepare "pnpm@${_pnpmver}" --activate
99
else
100
npm install -g "pnpm@${_pnpmver}" --prefix "${PNPM_GLOBAL_DIR}"
101
export PATH="${PNPM_GLOBAL_DIR}/bin:${PATH}"
102
fi
103
fi
104
}
105
_get_electron_version() {
106
_elec_ver=$(find "${srcdir}" -maxdepth 5 -name "package.json" ! -path "*/node_modules/*" \
107
-exec grep -l '"electron"' {} + | xargs -I{} jq -r '(.devDependencies.electron // .dependencies.electron) // empty' {} 2>/dev/null | head -1)
108
[[ -z "${_elec_ver}" ]] && return 1
109
echo -e "The electron version is: \033[1;31m${_elec_ver%%.*}\033[0m"
110
}
111
prepare() {
112
cd "${srcdir}/${pkgname}-${pkgver}"
113
_get_electron_version
114
sed -i -e "
115
s/@electronversion@/${_electronversion}/g
116
s/@appname@/${pkgname}/g
117
s/@runname@/app.asar/g
118
s/@cfgdirname@/${pkgname}/g
119
" "${srcdir}/${pkgname}.sh"
120
sed -i "s/mkdir tmp/mkdir tmp \&\& cp ..\/..\/..\/.npmrc tmp/g" tools/fix-other.sh
121
_ensure_local_nvm
122
_set_build_env
123
sed -i "s/\"electronVersion\": \"[^\"]*\"/\"electronVersion\": \"${SYSTEM_ELECTRON_VERSION}\"/g" conf/build.json
124
NODE_ENV=development pnpm install
125
}
126
build() {
127
cd "${srcdir}/${pkgname}-${pkgver}"
128
_ensure_local_nvm
129
_set_build_env
130
sed -i '/一次版本校验/,/^fi$/d' tools/update-bilibili.sh
131
sh tools/update-bilibili.sh
132
sh tools/fix-other.sh
133
sh tools/extension.sh
134
mv tmp/bili/resources/* app
135
find "${srcdir}/${pkgname}-${pkgver}/app" -type d \( -name "*win32*" -o -name "*darwin*" \) -exec rm -rf {} +
136
}
137
package() {
138
install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
139
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname}"
140
cp -a "${srcdir}/${pkgname}-${pkgver}/app/." "${pkgdir}/usr/lib/${pkgname}/"
141
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/res/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications"
142
_icon_sizes=(16x16 24x24 32x32 48x48 64x64 96x96 128x128 256x256 512x512 1024x1024)
143
for _icons in "${_icon_sizes[@]}";do
144
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/res/icons/${_icons}.png" \
145
"${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname}.png"
146
done
147
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/license" -t "${pkgdir}/usr/share/licenses/${pkgname}"
148
}
149
Changes since previous scan
--- PKGBUILD @ 2026-08-20 07:10+++ PKGBUILD @ 2026-09-20 07:32@@ -1,17 +1,18 @@ # Maintainer: zxp19821005 <zxp19821005 at 163 dot com> pkgname=bilibili-_pkgver=1.17.9-_subver=2+_pkgver=1.19.0+_subver=1 pkgver="${_pkgver}_${_subver}" _electronversion=43 _nodeversion=22 pkgrel=1-pkgdesc="Linux version based on Beilai official client porting supports roaming.(Use system-wide electron).基于哔哩哔哩官方客户端移植的Linux版本,支持漫游"+pkgdesc="Linux version based on Beilai official client porting supports roaming.基于哔哩哔哩官方客户端移植的Linux版本,支持漫游" arch=( 'aarch64' 'x86_64' )-url="https://github.com/msojocs/bilibili-linux"+url="https://www.jysafe.cn/"+_ghurl="https://github.com/msojocs/bilibili-linux" license=('MIT') provides=("${pkgname}") conflicts=(@@ -21,6 +22,8 @@ "electron${_electronversion}" 'ffmpeg' 'libappindicator'+ 'nodejs'+ 'libinput' ) makedepends=( 'wget'@@ -35,11 +38,15 @@ 'git' 'jq' )+options=(+ '!strip'+ '!emptydirs'+) source=(- "${pkgname}-${pkgver}::git+${url}#tag=v${_pkgver}-${_subver}"+ "${pkgname}-${pkgver}::git+${_ghurl}#tag=v${_pkgver}-${_subver}" "${pkgname}.sh" )-sha256sums=('0c3e136bcd5e0857e61ec81a6098d33c9bc3ff0da17827ac38ef2b8a60bec18e'+sha256sums=('f74ff78054f34342b2073139793915ffdaf7378fd60e4e4b492e0a5b18d85d08' 'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d') _ensure_local_nvm() { local NVM_DIR="${srcdir}/.nvm"@@ -47,31 +54,53 @@ nvm install "${_nodeversion}" nvm use "${_nodeversion}" }+_get_app_dir() {+ find "${srcdir}" -type d -name "node_modules" -prune -o -type f -name "resources.pak" -print0 | xargs -0 dirname | head -n 1+} _set_build_env() {- export ELECTRON_DIST="/usr/lib/electron${_electronversion}"- export ELECTRON_SKIP_BINARY_DOWNLOAD=1- export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')"- export HOME="${srcdir}/.electron-gyp"- {- export PNPM_LINK_WORKSPACE_PACKAGES=true- export PNPM_FETCH_RETRY_MAXTIMEOUT=10000- export PNPM_CACHE_DIR="${srcdir}/.pnpm_cache"- export PNPM_STORE_DIR="${srcdir}/.pnpm_store"- export PNPM_VIRTUAL_STORE_DIR="${srcdir}/.pnpm_store"- export PNPM_SHAMEFULLY_HOIST=true- export PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH=80- export PNPM_NODE_LINKER=hoisted- export PNPM_NETWORK_CONCURRENCY=32- }- if [[ "$(curl -s ipinfo.io/country)" == *"CN"* ]]; then- {- export pnpm_config_registry="https://registry.npmmirror.com"- export npm_config_registry="https://registry.npmmirror.com"- export NPM_CONFIG_ELECTRON_MIRROR="https://registry.npmmirror.com/-/binary/electron/"- export NPM_CONFIG_ELECTRON_BUILDER_BINARIES_MIRROR="https://registry.npmmirror.com/-/binary/electron-builder-binaries/"- export NODEJS_ORG_MIRROR="https://npmmirror.com/mirrors/node"- }- fi+ export ELECTRON_DIST="/usr/lib/electron${_electronversion}"+ export ELECTRON_OVERRIDE_DIST_PATH="${ELECTRON_DIST}"+ export ELECTRON_SKIP_BINARY_DOWNLOAD=1+ _ev="$(electron${_electronversion} -v)"+ export SYSTEM_ELECTRON_VERSION="${_ev#v}"+ export HOME="${srcdir}/.electron-gyp"+ mkdir -p "${HOME}"+ export XDG_CACHE_HOME="${srcdir}/.cache"+ export XDG_CONFIG_HOME="${srcdir}/.config"+ export XDG_DATA_HOME="${srcdir}/.local/share"+ export XDG_STATE_HOME="${srcdir}/.local/state"+ export PNPM_HOME="${srcdir}/.pnpm/bin"+ export PNPM_GLOBAL_DIR="${srcdir}/.pnpm/global"+ export PNPM_STATE_DIR="${srcdir}/.pnpm/state"+ export PNPM_MINIMUM_RELEASE_AGE=0+ export PNPM_NODE_LINKER=hoisted+ export PNPM_FETCH_RETRIES=3+ export PNPM_FETCH_RETRY_MAXTIMEOUT=10000+ export PNPM_UPDATE_NOTIFIER=false+ export PNPM_NO_COLOR=true+ export PNPM_NO_PROGRESS=true+ export pnpm_config_platform=linux+ export pnpm_config_arch="${CARCH}"+ export NODE_OPTIONS="--max-old-space-size=4096"+ export npm_config_node_options="--max-old-space-size=4096"+ mkdir -p "${PNPM_CACHE_DIR}" "${PNPM_STORE_DIR}" "${PNPM_GLOBAL_DIR}" "${PNPM_HOME}" "${PNPM_STATE_DIR}"+ export PATH="${PNPM_HOME}:${PATH}"+ local _pnpmver="${_pnpmversion}"+ if [[ -z "${_pnpmver}" ]]; then+ _pnpmver="$(node -p "const pm=require('./package.json').packageManager; pm && pm.startsWith('pnpm@') ? pm.split('@')[1] : ''" 2>/dev/null)"+ fi+ if [[ -n "${_pnpmver}" ]]; then+ export COREPACK_HOME="${srcdir}/.corepack"+ install -dm755 "${srcdir}/.bin"+ if command -v corepack &>/dev/null; then+ corepack enable --install-directory "${srcdir}/.bin"+ export PATH="${srcdir}/.bin:${PATH}"+ corepack prepare "pnpm@${_pnpmver}" --activate+ else+ npm install -g "pnpm@${_pnpmver}" --prefix "${PNPM_GLOBAL_DIR}"+ export PATH="${PNPM_GLOBAL_DIR}/bin:${PATH}"+ fi+ fi } _get_electron_version() { _elec_ver=$(find "${srcdir}" -maxdepth 5 -name "package.json" ! -path "*/node_modules/*" \@@ -88,25 +117,27 @@ s/@runname@/app.asar/g s/@cfgdirname@/${pkgname}/g " "${srcdir}/${pkgname}.sh"- _set_build_env sed -i "s/mkdir tmp/mkdir tmp \&\& cp ..\/..\/..\/.npmrc tmp/g" tools/fix-other.sh _ensure_local_nvm+ _set_build_env sed -i "s/\"electronVersion\": \"[^\"]*\"/\"electronVersion\": \"${SYSTEM_ELECTRON_VERSION}\"/g" conf/build.json NODE_ENV=development pnpm install } build() { cd "${srcdir}/${pkgname}-${pkgver}" _ensure_local_nvm- local electronDist="/usr/lib/electron${_electronversion}"+ _set_build_env+ sed -i '/一次版本校验/,/^fi$/d' tools/update-bilibili.sh sh tools/update-bilibili.sh sh tools/fix-other.sh sh tools/extension.sh mv tmp/bili/resources/* app+ find "${srcdir}/${pkgname}-${pkgver}/app" -type d \( -name "*win32*" -o -name "*darwin*" \) -exec rm -rf {} + } package() { install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}" install -Dm755 -d "${pkgdir}/usr/lib/${pkgname}"- cp -a "${srcdir}/${pkgname}-${pkgver}/app/"* "${pkgdir}/usr/lib/${pkgname}/"+ cp -a "${srcdir}/${pkgname}-${pkgver}/app/." "${pkgdir}/usr/lib/${pkgname}/" install -Dm644 "${srcdir}/${pkgname}-${pkgver}/res/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications" _icon_sizes=(16x16 24x24 32x32 48x48 64x64 96x96 128x128 256x256 512x512 1024x1024) for _icons in "${_icon_sizes[@]}";doScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-20 07:32:26 | Low | 1 |
| 2026-08-20 07:10:50 | Clean | 0 |
| 2026-07-27 03:34:02 | Clean | 0 |
| 2026-06-19 22:34:54 | Clean | 0 |