codebuddy-ide-cn

LOW
maintainer JipZeonGit 1 votes scanned 2026-11-02 00:26:00.633185
View on AUR
Why flagged

The package downloads a prebuilt .deb from Tencent's official CDN (download.codebuddy.cn), which is plausibly the project's own infrastructure; the source is not from a swappable host like personal cloud storage, and the checksums are verified, making the risk low despite the non-whitelisted domain.

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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt .deb from Tencent's official CDN (download.codebuddy.cn), which is plausibly the project's own infrastructure; the source is not from a swappable host like personal cloud storage, and the checksums are verified, making the risk low despite the non-whitelisted domain.

1 higher static finding superseded - not the current verdict (shown for transparency)
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"

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.12.0
13_cb_build=37847260
14_cb_hash=b4c35ed0
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='4b9e6db012bd312c2b233ced9f5d4de8ad341c02'
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=('1d6d88eb13bb04f4953fc3702130f28cd8bb8b0a5688cd5023230ff2cfcdf7f0'
59 'ce8b6a6d03c60e31470e1d4625416f81f28f5acd2df6b34d7027252080c2c7f1'
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

Scan history

Scanned at (UTC)SeverityRules
2026-11-02 00:26:00 Low 2
2026-11-01 00:21:48 Low 2
2026-10-31 00:07:41 Low 2
2026-10-30 00:29:30 Low 2
2026-10-29 00:13:55 Low 2
2026-10-28 00:06:54 Low 2
2026-10-27 00:23:28 Low 2
2026-10-26 00:12:40 Low 2
2026-10-25 00:20:48 Low 2
2026-10-24 00:14:55 Low 2
2026-10-23 00:02:19 Low 2
2026-10-22 00:13:10 Low 2
2026-10-21 00:12:50 Low 2
2026-10-20 00:10:31 Low 2
2026-10-19 00:03:55 Low 2
2026-10-18 00:06:55 Low 2
2026-10-17 00:21:55 Low 2
2026-10-16 00:12:47 Low 2
2026-10-15 00:28:05 Low 2
2026-10-14 00:06:47 Low 2

Report a package

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

0 / 4000
Your suggestion