fcitx5-vinput-git
The source uses a Git repository hosted on Gitee, a non-standard but plausible platform for a Chinese developer; it builds from the project's own VCS, which is normal AUR practice, and the code is reviewed and compiled locally, posing minimal risk.
Triggered rules
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 source uses a Git repository hosted on Gitee, a non-standard but plausible platform for a Chinese developer; it builds from the project's own VCS, which is normal AUR practice, and the code is reviewed and compiled locally, posing minimal risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:21
source=("$_pkgname::git+https://gitee.com/xander-lin/vinput.git")
PKGBUILD
1 offending line(s) highlighted# Maintainer: xander-lin
pkgname=fcitx5-vinput-git
_pkgname=fcitx5-vinput
# Placeholder only — makepkg needs a non-empty pkgver before it downloads the
# VCS source, and AUR/paru display whatever sits here (they cannot run
# pkgver()). Keep it at the current real version so the AUR listing is not
# stale; the authoritative version is computed from git history by pkgver()
# below at build time. Bump this + regenerate .SRCINFO before pushing to AUR.
pkgver=0.1.0.r151.f6ecc4b
pkgrel=1
pkgdesc="Voice input addon for fcitx5: push-to-talk ASR via CapsLock"
arch=('x86_64')
url="https://github.com/xander-lin/vinput"
license=('MIT')
depends=('fcitx5' 'libebur128' 'libpulse' 'curl' 'speexdsp' 'libsoxr')
makedepends=('git' 'meson' 'ninja')
provides=("$_pkgname")
conflicts=("$_pkgname")
install=PKGBUILD.install
source=("$_pkgname::git+https://gitee.com/xander-lin/vinput.git")
sha256sums=('SKIP')
pkgver() {
cd "$_pkgname"
printf "0.1.0.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
build() {
cd "$_pkgname"
meson setup build --prefix=/usr --buildtype=plain -Dcpp_args='-O2 -march=native'
meson compile -C build
}
package() {
cd "$_pkgname"
DESTDIR="$pkgdir" meson install -C build
install -Dm644 README.md "$pkgdir/usr/share/doc/$_pkgname/README.md"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
# No /etc layer: defaults live in code, user files are optional and sparse.
# Shipped examples carry comments and document every field.
for f in config/*.example; do
install -Dm644 "$f" "$pkgdir/usr/share/doc/$_pkgname/$f"
done
}
Changes since previous scan
--- PKGBUILD @ 2026-10-16 00:12+++ PKGBUILD @ 2026-11-01 00:21@@ -2,7 +2,12 @@ pkgname=fcitx5-vinput-git _pkgname=fcitx5-vinput-pkgver=0.1.0.r135.2a7c83e+# Placeholder only — makepkg needs a non-empty pkgver before it downloads the+# VCS source, and AUR/paru display whatever sits here (they cannot run+# pkgver()). Keep it at the current real version so the AUR listing is not+# stale; the authoritative version is computed from git history by pkgver()+# below at build time. Bump this + regenerate .SRCINFO before pushing to AUR.+pkgver=0.1.0.r151.f6ecc4b pkgrel=1 pkgdesc="Voice input addon for fcitx5: push-to-talk ASR via CapsLock" arch=('x86_64')@@ -13,20 +18,12 @@ provides=("$_pkgname") conflicts=("$_pkgname") install=PKGBUILD.install-# Primary: Gitee (fast in China). Fallback: change to github.com/xander-lin/vinput source=("$_pkgname::git+https://gitee.com/xander-lin/vinput.git") sha256sums=('SKIP')-backup=(- 'etc/vinput/advanced.json'- 'etc/vinput/audio.json'- 'etc/vinput/doubao.json'- 'etc/vinput/qwen.json'- 'etc/vinput/vinput.json'-) pkgver() { cd "$_pkgname"- git describe --long --tags 2>/dev/null || printf "0.1.0.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"+ printf "0.1.0.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() {@@ -40,10 +37,10 @@ DESTDIR="$pkgdir" meson install -C build install -Dm644 README.md "$pkgdir/usr/share/doc/$_pkgname/README.md" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"- for f in config/*.json.example; do- name=${f##*/}- name=${name%.example}- install -Dm644 "$f" "$pkgdir/etc/vinput/$name"+ # No /etc layer: defaults live in code, user files are optional and sparse.+ # Shipped examples carry comments and document every field.+ for f in config/*.example; do install -Dm644 "$f" "$pkgdir/usr/share/doc/$_pkgname/$f" done }+Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 07:15:06 | Medium | 1 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |