waveterm

LOW
maintainer zxp19821005 1 votes scanned 2026-09-17 00:27:14.276658
View on AUR
Why flagged

The flagged npm and go installs are part of building the project from its own source via git clone from the official repository, using declared build tools; this is normal AUR packaging behavior and not inherently dangerous.

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 90%): The flagged npm and go installs are part of building the project from its own source via git clone from the official repository, using declared build tools; this is normal AUR packaging behavior and not inherently dangerous.

2 higher static findings superseded - not the current verdict (shown for transparency)
Medium npm/yarn/pnpm install of an undeclared external package npm_install_external

Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.

  • PKGBUILD:104 s/npm install/NODE_ENV=development npm install --include=optional/g
  • PKGBUILD:111 NODE_ENV=development npm add -D node-gyp sharp
Medium External install via pipx/uv/poetry/cargo/go/gem alt_pkg_manager_install

A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:110 gem install fpm

PKGBUILD

3 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2# Maintainer: Edu4rdSHL <edu4rdshl@protonmail.com>
3# Maintainer: Evan Simkowitz <https://simkowitz.dev/>
4pkgname=waveterm
5_pkgname=Wave
6_appname="${_pkgname} Terminal"
7pkgver=0.14.5
8_electronversion=41
9_nodeversion=22
10pkgrel=1
11pkgdesc="An open-source, cross-platform terminal for seamless workflows.(Use system-wide electron)"
12arch=(
13 'aarch64'
14 'x86_64'
15)
16url="https://www.waveterm.dev/"
17_ghurl="https://github.com/wavetermdev/waveterm"
18license=('Apache-2.0')
19conflicts=("${pkgname}")
20depends=(
21 "electron${_electronversion}"
22)
23makedepends=(
24 'gendesk'
25 'npm'
26 'go'
27 'curl'
28 'zip'
29 'curl'
30 'nvm'
31 'ruby'
32 'go-task'
33 'zig'
34 'ruby-bundler'
35 'libarchive'
36 'openjpeg2'
37 'python'
38 'git'
39 'yarn'
40)
41source=("${pkgname}.sh")
42sha256sums=('31ad33b633744f5361abd964be306cea53ae1050e760c787115f7eca60045ae6')
43_ensure_local_nvm() {
44 local NVM_DIR="${srcdir}/.nvm"
45 source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
46 nvm install "${_nodeversion}"
47 nvm use "${_nodeversion}"
48}
49_get_electron_version() {
50 _elec_ver="$(grep '"electron":' "${srcdir}/${pkgname}-${pkgver}/package.json" | cut -d'"' -f4 | tr -d '^' | cut -d. -f1)"
51 echo -e "The electron version is: \033[1;31m${_elec_ver}\033[0m"
52}
53prepare() {
54 cd "${srcdir}"
55 if [[ ! -d "${pkgname}-${pkgver}" ]]; then
56 git clone \
57 --depth 1 \
58 --branch "v${pkgver}" \
59 "${_ghurl}" \
60 "${pkgname}-${pkgver}"
61 fi
62 cd "${srcdir}/${pkgname}-${pkgver}"
63 sed -i -e "
64 s/@electronversion@/${_electronversion}/g
65 s/@appname@/${pkgname}/g
66 s/@runname@/app.asar/g
67 s/@cfgdirname@/${_pkgname}/g
68 s/@options@/env ELECTRON_OZONE_PLATFORM_HINT=auto/g
69 " "${srcdir}/${pkgname}.sh"
70 _get_electron_version
71 _ensure_local_nvm
72 gendesk -f -n -q \
73 --pkgname="${pkgname}" \
74 --pkgdesc="${pkgdesc}" \
75 --categories="Utility" \
76 --name="${_appname}" \
77 --exec="${pkgname} %U"
78 export CGO_ENABLED=1
79 export GO111MODULE=on
80 export GOOS=linux
81 export GOCACHE="${srcdir}/go-build"
82 export GOMODCACHE="${srcdir}/go/pkg/mod"
83 export RUBY_ENV="production"
84 export ELECTRON_SKIP_BINARY_DOWNLOAD=1
85 export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')"
86 local HOME="${srcdir}/.electron-gyp"
87 export NPM_CONFIG_CACHE="${srcdir}/.npm_cache"
88 export NPM_CONFIG_MAXSOCKETS=32
89 if [[ "$(curl -s ipinfo.io/country)" == *"CN"* ]]; then
90 # 设置Go代理
91 export GOPROXY=https://goproxy.cn,direct
92 # 设置Ruby使用国内镜像
93 gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
94 bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
95 # 设置npm使用国内镜像
96 export NPM_CONFIG_REGISTRY="https://registry.npmmirror.com"
97 export NPM_CONFIG_ELECTRON_MIRROR="https://registry.npmmirror.com/-/binary/electron/"
98 export NPM_CONFIG_ELECTRON_BUILDER_BINARIES_MIRROR="https://registry.npmmirror.com/-/binary/electron-builder-binaries/"
99 find ./ -type f -name "package-lock.json" -exec sed -i "s/registry.npmjs.org/registry.npmmirror.com/g" {} +
100 fi
101 sed -i "s/\"electron\": \"[^\"]*\"/\"electron\": \"${SYSTEM_ELECTRON_VERSION}\"/g" package.json
102 sed -i "s/build\/icons.icns/build\/appicon.png/g" electron-builder.config.cjs
103 sed -i -e "
104 s/npm install/NODE_ENV=development npm install --include=optional/g
105 /- task: build:server:macos/d
106 /- task: build:server:windows/d
107 s/ && npm exec electron-builder -- -c electron-builder.config.cjs -p never {{.CLI_ARGS}}//g
108 " Taskfile.yml
109 find emain -type f -exec sed -i "s/process.resourcesPath/\'\/usr\/lib\/${pkgname}\'/g" {} +
110 gem install fpm
111 NODE_ENV=development npm add -D node-gyp sharp
112 NODE_ENV=development go-task init
113}
114build() {
115 cd "${srcdir}/${pkgname}-${pkgver}"
116 _ensure_local_nvm
117 export ELECTRON_SKIP_BINARY_DOWNLOAD=1
118 local electronDist="/usr/lib/electron${_electronversion}"
119 NODE_ENV=production go-task package
120 NODE_ENV=production npm exec -c "electron-builder --linux dir -c.electronDist=${electronDist} -c electron-builder.config.cjs"
121}
122package() {
123 install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
124 install -Dm755 -d "${pkgdir}/usr/lib/${pkgname}"
125 cp -a "${srcdir}/${pkgname}-${pkgver}/make/linux-"*"/resources/". "${pkgdir}/usr/lib/${pkgname}/"
126 install -Dm644 "${srcdir}/${pkgname}-${pkgver}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications"
127 _icon_sizes=(16x16 32x32 128x128 256x256 512x512)
128 for _icons in "${_icon_sizes[@]}";do
129 install -Dm644 "${srcdir}/${pkgname}-${pkgver}/build/icons/${_icons}.png" \
130 "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png"
131 done
132}
133

Scan history

Scanned at (UTC)SeverityRules
2026-09-17 00:27:14 Low 3
2026-09-16 00:03:17 Low 3
2026-09-15 00:25:31 Low 3
2026-09-14 00:27:57 Low 3
2026-09-13 00:19:54 Low 3
2026-09-12 00:25:17 Low 3
2026-09-11 00:19:22 Low 3
2026-09-10 00:22:44 Low 3
2026-09-09 00:04:09 Low 3
2026-09-08 00:18:08 Low 3
2026-09-07 00:30:15 Low 3
2026-09-06 00:17:06 Low 3
2026-09-05 00:16:27 Low 3
2026-09-04 00:03:13 Low 3
2026-09-03 00:15:47 Low 3
2026-09-02 00:02:31 Low 3
2026-09-01 00:11:19 Low 3
2026-08-31 00:19:57 Low 3
2026-08-30 00:04:14 Low 3
2026-08-29 00:29:17 Low 3

Report a package

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

0 / 4000
Your suggestion