deepchat-git

LOW
maintainer zxp19821005 0 votes scanned 2026-11-04 00:25:23.536954
View on AUR
Why flagged

The package builds from a public Git repository and uses standard build tools; the variable-named package install refers to pnpm, a legitimate package manager fetching dependencies from npm, which is expected behavior for Node.js projects.

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 Git repository and uses standard build tools; the variable-named package install refers to pnpm, a legitimate package manager fetching dependencies from npm, which is expected behavior for Node.js projects.

  • PKGBUILD:84 npm install -g "pnpm@${_pnpmver}" --prefix "${HOME}/.pnpm" \

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2pkgname=deepchat-git
3_pkgname=DeepChat
4pkgver=1.1.3.r1.gbfa6d76
5_electronversion=43
6_nodeversion=24
7pkgrel=1
8pkgdesc="A smart assistant that connects powerful AI to your personal world."
9arch=('any')
10url="https://deepchat.thinkinai.xyz/"
11_ghurl="https://github.com/ThinkInAIXYZ/deepchat"
12license=('Apache-2.0')
13provides=("${pkgname%-git}=${pkgver%.r*}")
14conflicts=("${pkgname%-git}")
15depends=(
16 "electron${_electronversion}"
17 'python'
18 'python-defusedxml'
19 'python-pillow'
20 'python-yaml'
21 'python-lxml'
22 'nodejs'
23)
24makedepends=(
25 'npm'
26 'nvm'
27 'git'
28 'gendesk'
29 'jq'
30)
31source=(
32 "${pkgname//-/.}::git+${_ghurl}.git"
33 "${pkgname%-git}.sh"
34)
35sha256sums=('SKIP'
36 'cebedc3391cbab6d43f37fbf3a87ddaad16597cb5ea487a4d55b1f478d810082')
37pkgver() {
38 cd "$(_get_project_dir)"
39 set -o pipefail
40 git describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//g' ||
41 printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
42}
43_get_project_dir() {
44 local d
45 while IFS= read -r d; do
46 find "$d" -name "package.json" ! -path "*/node_modules/*" 2>/dev/null | grep -q . && { echo "$d"; return; }
47 done < <(find "${srcdir}" -maxdepth 1 -mindepth 1 -type d ! -name '.*')
48}
49_get_app_dir() {
50 find "${srcdir}" -type f -name "resources.pak" -print 2>/dev/null | while read f; do [ -d "${f%/*}/resources" ] && echo "${f%/*}" && break; done
51}
52_set_build_env() {
53 export ELECTRON_DIST="/usr/lib/electron${_electronversion}"
54 export ELECTRON_OVERRIDE_DIST_PATH="${ELECTRON_DIST}"
55 export ELECTRON_SKIP_BINARY_DOWNLOAD=1
56 export ELECTRON_BUILDER_OFFLINE=true
57 export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/^v//')"
58 export HOME="${srcdir}/.home"
59 export XDG_CACHE_HOME="${HOME}/.cache"
60 export XDG_CONFIG_HOME="${HOME}/.config"
61 export XDG_DATA_HOME="${HOME}/.local/share"
62 export XDG_STATE_HOME="${HOME}/.local/state"
63 export PNPM_HOME="${HOME}/.pnpm/bin"
64 export pnpm_config_cache_dir="${HOME}/.pnpm_cache"
65 export pnpm_config_store_dir="${HOME}/.pnpm_store"
66 export pnpm_config_global_dir="${HOME}/.pnpm/global"
67 export pnpm_config_state_dir="${HOME}/.pnpm/state"
68 export pnpm_config_node_linker=hoisted
69 export pnpm_config_minimum_release_age=0
70 export pnpm_config_update_notifier=false
71 export COREPACK_NPM_REGISTRY="${COREPACK_NPM_REGISTRY:-${NPM_CONFIG_REGISTRY:-https://registry.npmjs.org}}"
72 export COREPACK_HOME="${HOME}/.corepack"
73 mkdir -p "${HOME}" "${PNPM_HOME}" "${pnpm_config_cache_dir}" "${pnpm_config_store_dir}" "${pnpm_config_global_dir}" "${pnpm_config_state_dir}" "${COREPACK_HOME}"
74 export PATH="${PNPM_HOME}:${PATH}"
75 local _pnpmver=""
76 local _pkgjson="$(_get_project_dir)/package.json"
77 if [ -f "${_pkgjson}" ]; then
78 _pnpmver="$(grep -o '"packageManager"[^,]*' "${_pkgjson}" 2>/dev/null | grep -oE 'pnpm@[^"+]+' | head -n1 | sed 's/^pnpm@//')"
79 if [ -z "${_pnpmver}" ]; then
80 _pnpmver="$(grep -oE '"pnpm"[[:space:]]*:[[:space:]]*"[^"]+"' "${_pkgjson}" 2>/dev/null | grep -oE '[0-9][0-9.]*' | head -n1)"
81 fi
82 fi
83 if [ -n "${_pnpmver}" ]; then
84 npm install -g "pnpm@${_pnpmver}" --prefix "${HOME}/.pnpm" \
85 --registry "${COREPACK_NPM_REGISTRY}"
86 fi
87}
88_ensure_local_nvm() {
89 local NVM_DIR="${srcdir}/.nvm"
90 source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
91 nvm install "${_nodeversion}"
92 nvm use "${_nodeversion}"
93}
94_get_electron_version() {
95 _elec_ver=$(find "$(_get_project_dir)" -name "package.json" ! -path "*/node_modules/*" -print \
96 | xargs -I{} jq -r '(.devDependencies.electron // .dependencies.electron) // empty' {} 2>/dev/null \
97 | grep -oE '[0-9]+' | head -1)
98 [[ -z "${_elec_ver}" ]] && return 1
99 (( _elec_ver == _electronversion )) && c=32 || c=31
100 echo -e "Electron version: \033[1;${c}m${_elec_ver}$([[ $c -eq 31 ]] && echo " (expected ${_electronversion})")\033[0m"
101}
102prepare() {
103 cd "$(_get_project_dir)"
104 _get_electron_version
105 sed -i -e "
106 s/@electronversion@/${_electronversion}/g
107 s/@appname@/${pkgname%-git}/g
108 s/@runname@/app.asar/g
109 " "${srcdir}/${pkgname%-git}.sh"
110 gendesk -q -f -n \
111 --pkgname="${pkgname%-git}" \
112 --pkgdesc="${pkgdesc}" \
113 --categories="Utility" \
114 --name="${_pkgname}" \
115 --exec="${pkgname%-git} %U"
116 _ensure_local_nvm
117 _set_build_env
118 find src -type f -exec sed -i "s/process.resourcesPath/\'\/usr\/lib\/${pkgname%-git}\'/g" {} +
119 jq --arg ver "${SYSTEM_ELECTRON_VERSION}" '.devDependencies.electron = $ver' package.json > package.json.tmp && mv package.json.tmp package.json
120 cp .env.example .env
121 export NODE_ENV=development
122 pnpm install --ignore-scripts
123 pnpm run install:sharp
124}
125build() {
126 cd "$(_get_project_dir)"
127 _ensure_local_nvm
128 _set_build_env
129 local _eb_arch
130 case "${CARCH}" in
131 aarch64)
132 _eb_arch="arm64"
133 _armrem="x64"
134 ;;
135 x86_64)
136 _eb_arch="x64"
137 _armrem="arm"
138 ;;
139 esac
140 export NODE_ENV=production
141 sed -i "s/deps.resourcesPath ?? '\/usr\/lib\/deepchat' ?? ''/deps.resourcesPath ?? '\/usr\/lib\/deepchat'/" src/main/plugin/index.ts
142 pnpm run build
143 pnpm -c exec "electron-builder --linux dir --${_eb_arch} -c.electronDist=${ELECTRON_DIST} --config=electron-builder.yml"
144 local _app_dir="$(_get_app_dir)"
145 find "${_app_dir}/resources" -depth \( \
146 -name "*darwin*" -o \
147 -name "*win32*" \
148 -name "*${_armrem}*" \
149 \) -exec rm -rf {} +
150}
151package() {
152 install -Dm755 "${srcdir}/${pkgname%-git}.sh" "${pkgdir}/usr/bin/${pkgname%-git}"
153 install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}"
154 local _app_dir="$(_get_app_dir)"
155 rm -rf "${_app_dir}/resources/default_app.asar"
156 cp -a "${_app_dir}/resources/." "${pkgdir}/usr/lib/${pkgname%-git}/"
157 local _src="$(_get_project_dir)"
158 install -Dm644 "${_src}/resources/icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-git}.png"
159 install -Dm644 "${_src}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications"
160}
161

Scan history

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

Report a package

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

0 / 4000
Your suggestion