codebuddy-ide-cn

maintainer JipZeonGit · 1 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package downloads a prebuilt .deb binary from a non-standard host (download.codebuddy.cn), which is not a widely recognized or whitelisted domain, and the checksum, while present, cannot be independently verified against an upstream source, creating a supply-chain risk if the host is compromised or maliciously redirected.

Triggered rules

MEDIUM source=() URL on a non-standard host source_untrusted_domain

One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).

  • PKGBUILD:48 "codebuddy-cn_${pkgver}_amd64.deb::https://download.codebuddy.cn/aiide/linux-x64/CodeBuddy-linux-x64-${pkgver}-${_cb_hash}-cn.deb"
MEDIUM AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt .deb binary from a non-standard host (download.codebuddy.cn), which is not a widely recognized or whitelisted domain, and the checksum, while present, cannot be independently verified against an upstream source, creating a supply-chain risk if the host is compromised or maliciously redirected.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Zeongit J. <https://github.com/JipZeonGit/codebuddy-ide-cn-linux/issues>
2#
3# This PKGBUILD is licensed under the MIT License.
4# It contains no proprietary code; it only orchestrates the download,
5# extraction, and packaging of upstream binaries that the end user
6# fetches directly from Tencent's official CDN at install time.
7#
8# The packaged software (Tencent CodeBuddy IDE) remains subject to
9# Tencent's proprietary CodeBuddy service license, NOT this MIT notice.
10
11pkgname=codebuddy-ide-cn
12_cb_ver=4.10.3
13_cb_build=33770460
14_cb_hash=427f3937
15pkgver="${_cb_ver}.${_cb_build}"
16pkgrel=1
17pkgdesc='腾讯云代码助手CodeBuddy IDE,是一款辅助编码工具。'
18arch=('x86_64')
19url='https://github.com/JipZeonGit/codebuddy-ide-cn-linux'
20license=('LicenseRef-Tencent-CodeBuddy')
21
22depends=(
23 'gtk3' 'nss' 'libxss' 'alsa-lib' 'libsecret' 'libxkbfile'
24 'libnotify' 'libcups'
25)
26
27# These are referenced only by optional bundled extensions / utility
28# scripts; the main IDE process uses the bundled Electron's node.
29optdepends=(
30 'python: required by the genie skill-creator extension scripts'
31 'nodejs: required only when invoking bundled CLI helpers in node_modules'
32)
33
34makedepends=(
35 'curl' 'python' 'nodejs' 'npm'
36 'gcc' 'make' 'pkgconf' 'imagemagick' 'binutils'
37)
38
39# Conflict with old package names
40conflicts=('codebuddy-cn-ide' 'codebuddycn-ide')
41options=('!strip' '!debug')
42
43# Helper repository pinned to a specific commit so the conversion
44# logic is reproducible. Bump together with pkgver if needed.
45_helper_commit='d8d41ad2884234c81a22247b9375ae61394501e0'
46
47source=(
48 "codebuddy-cn_${pkgver}_amd64.deb::https://download.codebuddy.cn/aiide/linux-x64/CodeBuddy-linux-x64-${pkgver}-${_cb_hash}-cn.deb"
49 "codebuddy-ide-cn-linux-${_helper_commit}.tar.gz::${url}/archive/${_helper_commit}.tar.gz"
50 'LICENSE.notice'
51)
52
53# Leave the deb as-is and let install.sh consume it from the srcdir
54noextract=(
55 "codebuddy-cn_${pkgver}_amd64.deb"
56)
57
58sha256sums=('39d3dac13fa4c3d42ea4d77ce2edfd15c20eb8abc4f819ebb009f984e2fae85f'
59 '844a7be205c1541f34ed7b1bcc24cb9f3cb884ea1e462e39a0e8e0d8bd7ffe4a'
60 'b3260549a765c478dc33680c7b9a1a30e5a038456e340d6d25f7748390724241')
61
62prepare() {
63 local helper_dir="${srcdir}/codebuddy-ide-cn-linux-${_helper_commit}"
64
65 [ -f "${helper_dir}/install.sh" ] || {
66 echo "ERROR: helper repo not extracted at ${helper_dir}" >&2
67 return 1
68 }
69}
70
71build() {
72 local helper_dir="${srcdir}/codebuddy-ide-cn-linux-${_helper_commit}"
73 local deb_path="${srcdir}/codebuddy-cn_${pkgver}_amd64.deb"
74 local out_dir="${srcdir}/build/${pkgname}"
75
76 install -d "${out_dir}"
77
78 # Drive the upstream automated installer. Passing CODEBUDDY_APP_ID
79 # makes its generated start.sh export the matching CHROME_DESKTOP
80 # value at runtime, so window managers attach the right .desktop.
81 CODEBUDDY_INSTALL_DIR="${out_dir}" \
82 CODEBUDDY_APP_ID="${pkgname}" \
83 CODEBUDDY_APP_DISPLAY_NAME='CodeBuddy CN' \
84 bash "${helper_dir}/install.sh" --fresh "${deb_path}"
85
86 # Discard build-time desktop file
87 rm -f "${out_dir}/.codebuddycn-linux/${pkgname}.desktop"
88}
89
90package() {
91 local helper_dir="${srcdir}/codebuddy-ide-cn-linux-${_helper_commit}"
92 local out_dir="${srcdir}/build/${pkgname}"
93
94 # 1) App payload under /opt/$pkgname.
95 install -d "${pkgdir}/opt/${pkgname}"
96 cp -a "${out_dir}/." "${pkgdir}/opt/${pkgname}/"
97
98 # Strip gyp/autotools build relics
99 find "${pkgdir}/opt/${pkgname}/resources/app/node_modules" \
100 \( -name 'obj.target' -o -name 'obj' -o -name '.deps' \) \
101 -type d -prune -exec rm -rf {} + 2>/dev/null || true
102
103 rm -f "${pkgdir}/opt/${pkgname}/resources/app/node_modules/@vscode/sqlite3/build/node-addon-api/nothing.a" \
104 "${pkgdir}/opt/${pkgname}/resources/app/node_modules/@vscode/sqlite3/build/Release/nothing.a" \
105 "${pkgdir}/opt/${pkgname}/resources/app/node_modules/@vscode/sqlite3/build/Release/node-addon-api/nothing.o" \
106 2>/dev/null || true
107
108 find "${pkgdir}/opt/${pkgname}/resources/app/node_modules" \
109 -type d -empty -delete 2>/dev/null || true
110
111 # 2) /usr/bin launcher.
112 install -d "${pkgdir}/usr/bin"
113 cat > "${pkgdir}/usr/bin/${pkgname}" <<EOF
114#!/bin/bash
115exec /opt/${pkgname}/start.sh "\$@"
116EOF
117 chmod 0755 "${pkgdir}/usr/bin/${pkgname}"
118
119 # 3) System desktop entry.
120 install -d "${pkgdir}/usr/share/applications"
121 cat > "${pkgdir}/usr/share/applications/${pkgname}.desktop" <<EOF
122[Desktop Entry]
123Name=CodeBuddy CN
124Comment=${pkgdesc}
125Exec=/usr/bin/${pkgname} %F
126Icon=${pkgname}
127Type=Application
128Categories=Development;IDE;
129StartupNotify=true
130StartupWMClass=CodeBuddy CN
131MimeType=x-scheme-handler/codebuddycn;
132EOF
133 chmod 0644 "${pkgdir}/usr/share/applications/${pkgname}.desktop"
134
135 # 4) Icon
136 if [ -f "${out_dir}/.codebuddycn-linux/codebuddycn.png" ]; then
137 install -Dm644 "${out_dir}/.codebuddycn-linux/codebuddycn.png" \
138 "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${pkgname}.png"
139 fi
140
141 # 5) Licenses.
142 install -Dm644 "${srcdir}/LICENSE.notice" \
143 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.notice"
144
145 if [ -f "${helper_dir}/LICENSE" ]; then
146 install -Dm644 "${helper_dir}/LICENSE" \
147 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.helper-MIT"
148 fi
149
150 # Copy upstream licenses
151 local upstream_license
152 while IFS= read -r upstream_license; do
153 install -Dm644 "${out_dir}/${upstream_license}" \
154 "${pkgdir}/usr/share/licenses/${pkgname}/upstream/${upstream_license}"
155 done < <(find "${out_dir}" -maxdepth 1 \
156 \( -name 'LICENSE*' -o -name 'EULA*' -o -name 'NOTICE*' \) \
157 -type f -exec basename {} \;)
158}
159

Changes since previous scan

--- PKGBUILD @ 2026-07-25 00:13
+++ PKGBUILD @ 2026-08-03 00:08
@@ -9,9 +9,9 @@
# Tencent's proprietary CodeBuddy service license, NOT this MIT notice.
pkgname=codebuddy-ide-cn
-_cb_ver=4.10.1
-_cb_build=33158423
-_cb_hash=3ad58bcb
+_cb_ver=4.10.3
+_cb_build=33770460
+_cb_hash=427f3937
pkgver="${_cb_ver}.${_cb_build}"
pkgrel=1
pkgdesc='腾讯云代码助手CodeBuddy IDE,是一款辅助编码工具。'
@@ -42,7 +42,7 @@
# Helper repository pinned to a specific commit so the conversion
# logic is reproducible. Bump together with pkgver if needed.
-_helper_commit='6928c99f6389087861e6ce43ea6e1ebfc935f536'
+_helper_commit='d8d41ad2884234c81a22247b9375ae61394501e0'
source=(
"codebuddy-cn_${pkgver}_amd64.deb::https://download.codebuddy.cn/aiide/linux-x64/CodeBuddy-linux-x64-${pkgver}-${_cb_hash}-cn.deb"
@@ -55,8 +55,8 @@
"codebuddy-cn_${pkgver}_amd64.deb"
)
-sha256sums=('838fe89a19f2cac23c02aab67bf5cb34e613323cd47cb811588a3d90d4fe4398'
- 'e212427b8b0da1554328203bc0e5ec65e8ef81b3e710a9f20b755f9dec2ead6b'
+sha256sums=('39d3dac13fa4c3d42ea4d77ce2edfd15c20eb8abc4f819ebb009f984e2fae85f'
+ '844a7be205c1541f34ed7b1bcc24cb9f3cb884ea1e462e39a0e8e0d8bd7ffe4a'
'b3260549a765c478dc33680c7b9a1a30e5a038456e340d6d25f7748390724241')
prepare() {

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 MEDIUM 2
2026-08-02 00:16:08 MEDIUM 2
2026-08-01 00:11:18 MEDIUM 2
2026-07-31 00:14:10 MEDIUM 2
2026-07-30 00:17:23 MEDIUM 2
2026-07-29 00:25:53 MEDIUM 2
2026-07-28 00:07:28 MEDIUM 2
2026-07-27 00:24:32 MEDIUM 2
2026-07-26 00:07:32 MEDIUM 2
2026-07-25 05:29:17 MEDIUM 2
2026-07-25 00:13:44 MEDIUM 2
2026-07-24 00:02:28 MEDIUM 2
2026-07-23 00:14:47 MEDIUM 2
2026-07-22 00:29:32 MEDIUM 2
2026-07-21 00:24:15 MEDIUM 2
2026-07-20 00:19:49 MEDIUM 2
2026-07-19 00:17:08 MEDIUM 2
2026-07-18 00:14:48 MEDIUM 2
2026-07-17 00:06:16 MEDIUM 2
2026-07-16 00:05:41 MEDIUM 2

Report a package

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

0 / 4000
Your suggestion