bilibili

LOW
maintainer zxp19821005 3 votes scanned 2026-09-20 07:32:26.301293
View on AUR
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>
2pkgname=bilibili
3_pkgver=1.19.0
4_subver=1
5pkgver="${_pkgver}_${_subver}"
6_electronversion=43
7_nodeversion=22
8pkgrel=1
9pkgdesc="Linux version based on Beilai official client porting supports roaming.基于哔哩哔哩官方客户端移植的Linux版本,支持漫游"
10arch=(
11 'aarch64'
12 'x86_64'
13)
14url="https://www.jysafe.cn/"
15_ghurl="https://github.com/msojocs/bilibili-linux"
16license=('MIT')
17provides=("${pkgname}")
18conflicts=(
19 "${pkgname}"
20)
21depends=(
22 "electron${_electronversion}"
23 'ffmpeg'
24 'libappindicator'
25 'nodejs'
26 'libinput'
27)
28makedepends=(
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)
41options=(
42 '!strip'
43 '!emptydirs'
44)
45source=(
46 "${pkgname}-${pkgver}::git+${_ghurl}#tag=v${_pkgver}-${_subver}"
47 "${pkgname}.sh"
48)
49sha256sums=('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}
111prepare() {
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}
126build() {
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}
137package() {
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[@]}";do

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion