fcitx5-chengyin

LOW
maintainer zzttzz 0 votes scanned 2026-10-17 11:18:02.052738
View on AUR
Why flagged

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: zzttzz
2# Native x86_64 Fcitx 5 package for the Chengyin full-pinyin input method (PREVIEW).
3#
4# Built from the tagged source archive, never a binary drop: makepkg rebuilds
5# the module from source. The full lexicon ships with the package, and the module
6# compiles its installed location in as the default, so a new user gets the full
7# vocabulary without configuring a path.
8#
9# The version comes from the repository's single version source (version.json).
10# Arch needs a pacman-legal pkgver, which the upstream tag is not: a hyphen is the
11# pkgver/pkgrel separator and cannot appear inside pkgver. The dot form is the same
12# version text with a legal separator, and vercmp keeps it monotonic (and orders
13# every preview before a later plain 0.1.0).
14pkgname=fcitx5-chengyin
15pkgver=0.1.0.preview35
16pkgrel=1
17pkgdesc="Chengyin IME (preview) - Fcitx 5 full-pinyin input method with a bundled lexicon"
18arch=('x86_64')
19url="https://github.com/zzttzzmyswy/chengyin-ime"
20# Code is GPL-3.0-or-later; the bundled lexicon is built from Apache-2.0 (Rime
21# pinyin-simp) and MIT (jieba, THUOCL, phrase-pinyin-data) sources.
22license=('GPL-3.0-or-later' 'Apache-2.0' 'MIT')
23# Runtime links come from the built module: libFcitx5{Core,Config,Utils} belongs
24# to fcitx5, libstdc++/libgcc_s to gcc-libs, and libc/libm to glibc. The Rust
25# core is linked statically, so no separate chengyin shared library is required.
26depends=('fcitx5' 'gcc-libs' 'glibc')
27# python is used in prepare() to re-derive pkgver from the single version source.
28# glib2 (gio) builds the D-Bus end-to-end test client; dbus supplies the private
29# session bus that test runs on.
30makedepends=('cargo' 'cmake' 'python' 'glib2')
31checkdepends=('dbus')
32options=('!debug')
33# Source is the release tag, so what is built is exactly what was published as
34# v${pkgver/.preview/-preview}. The tag archive is reproducible: repeated downloads
35# were byte-identical, so the checksum is verifiable rather than a one-off capture.
36_tag="v${pkgver/.preview/-preview}"
37source=("$pkgname-$pkgver.tar.gz::https://github.com/zzttzzmyswy/chengyin-ime/archive/refs/tags/$_tag.tar.gz")
38sha256sums=('2e9b46c958d423907fe47de13d5093930e809170a6bcb2df6915c65af3882c64')
39
40prepare() {
41 cd "$srcdir/chengyin-ime-${_tag#v}"
42 # pkgver is derived from the repository's single version source, never typed
43 # here as a second copy. Re-derive it from the fetched tree and refuse to
44 # proceed if the two disagree, so a stale pkgver cannot ship a mislabelled
45 # package.
46 local expected
47 expected=$(python3 scripts/version.py --print arch-pkgver) || return 1
48 if [[ "$pkgver" != "$expected" ]]; then
49 printf 'PKGBUILD failure: pkgver=%s but version.json derives %s\n' "$pkgver" "$expected" >&2
50 return 1
51 fi
52}
53
54build() {
55 cd "$srcdir/chengyin-ime-${_tag#v}"
56 # The workspace has no external crates; --locked proves Cargo.lock is honoured
57 # and the build never reaches the network.
58 cargo build --release -p chengyin-ffi --locked
59 cmake -S platforms/fcitx5 -B build/fcitx5 \
60 -DCMAKE_BUILD_TYPE=Release \
61 -DCMAKE_INSTALL_PREFIX=/usr \
62 -DCHENGYIN_PACKAGED_DATA=ON \
63 -DCHENGYIN_DEBIAN_README=OFF \
64 -DBUILD_TESTING=OFF
65 cmake --build build/fcitx5 -j "$(nproc)"
66}
67
68check() {
69 cd "$srcdir/chengyin-ime-${_tag#v}"
70 # Rebuild with tests and run them against the same sources makepkg packaged.
71 cmake -S platforms/fcitx5 -B build/fcitx5-test \
72 -DCMAKE_BUILD_TYPE=Release \
73 -DCMAKE_INSTALL_PREFIX=/usr \
74 -DCHENGYIN_PACKAGED_DATA=ON \
75 -DCHENGYIN_DEBIAN_README=OFF
76 cmake --build build/fcitx5-test -j "$(nproc)"
77 ctest --test-dir build/fcitx5-test --output-on-failure
78}
79
80package() {
81 cd "$srcdir/chengyin-ime-${_tag#v}"
82 DESTDIR="$pkgdir" cmake --install build/fcitx5
83 # Package-owned documentation: the lexicon's own provenance record already
84 # landed with the data, so only the module's readme and the code license remain.
85 install -Dm644 packaging/arch/README.arch "$pkgdir/usr/share/doc/$pkgname/README.arch"
86 # Arch requires the licence texts that carry a copyright holder (MIT) under
87 # /usr/share/licenses/<pkgname>/; GPL and Apache-2.0 are common licences and need
88 # no copy, but the Apache text is kept next to the others since it ships anyway.
89 local source
90 for source in jieba thuocl phrase-pinyin-data rime-pinyin-simp; do
91 install -Dm644 "$pkgdir/usr/share/chengyin/licenses/LICENSE.$source" \
92 "$pkgdir/usr/share/licenses/$pkgname/LICENSE.$source"
93 done
94}
95

Changes since previous scan

--- PKGBUILD @ 2026-10-14 00:06
+++ PKGBUILD @ 2026-10-17 11:18
@@ -12,7 +12,7 @@
# version text with a legal separator, and vercmp keeps it monotonic (and orders
# every preview before a later plain 0.1.0).
pkgname=fcitx5-chengyin
-pkgver=0.1.0.preview34
+pkgver=0.1.0.preview35
pkgrel=1
pkgdesc="Chengyin IME (preview) - Fcitx 5 full-pinyin input method with a bundled lexicon"
arch=('x86_64')
@@ -35,7 +35,7 @@
# were byte-identical, so the checksum is verifiable rather than a one-off capture.
_tag="v${pkgver/.preview/-preview}"
source=("$pkgname-$pkgver.tar.gz::https://github.com/zzttzzmyswy/chengyin-ime/archive/refs/tags/$_tag.tar.gz")
-sha256sums=('4a34ac8568166ab727396b008cd6878877d396a0d9b6373d0e3304e4d0bcbbaf')
+sha256sums=('2e9b46c958d423907fe47de13d5093930e809170a6bcb2df6915c65af3882c64')
prepare() {
cd "$srcdir/chengyin-ime-${_tag#v}"

Scan history

Scanned at (UTC)SeverityRules
2026-10-17 11:18:02 Low 1
2026-10-14 00:06:47 Clean 2
2026-10-13 07:16:10 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