anki-plus-bin

maintainer zmr233 · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package installs a prebuilt binary from a non-official, third-party GitHub repository with no upstream source verification beyond a git commit hash, creating a supply-chain risk if the release artifact is tampered with.

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.

MEDIUM 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 MEDIUM (confidence 85%): The package installs a prebuilt binary from a non-official, third-party GitHub repository with no upstream source verification beyond a git commit hash, creating a supply-chain risk if the release artifact is tampered with.

PKGBUILD

1# Maintainer: zmr233 <zmr_233@outlook.com>
2# Upstream: Anki Team <https://github.com/ankitects/anki>
3
4# 本文件由 prepare.py 从 pre-PKGBUILD 生成,不要直接编辑。
5#
6# anki-plus 是 Anki 的特化发行版,源码在 https://github.com/zmr-233/anki-dev
7# 当前包含的改动:
8# * 调度时区与设备 OS 时区解耦(collection config `schedTimezone`,IANA 名,
9# 按被调度的时刻分别求偏移,因此 DST 正确)
10# * 日界支持分钟精度(collection config `rolloverMinute`)
11# 两者都是普通 config,AnkiWeb 当作不透明 JSON 原样往返,不触发全量同步。
12#
13# 预编译包:wheel 由 https://github.com/zmr-233/anki-workspace 的 tag 触发 CI 产出。
14# `_rsbridge.so` 是 pyo3 abi3(cp310-abi3)扩展,sqlite / zstd 静态链入、TLS 走
15# rustls,因此只依赖 glibc + libgcc,不随 Arch 的 python / sqlite / openssl 升级而失效。
16
17_pkgname=anki
18pkgname=anki-plus-bin
19pkgver=26.05.2
20pkgrel=1
21
22# 本包对应的确切源码(AGPL 要求可指回,写仓库名不够):
23# git clone https://github.com/zmr-233/anki-dev && git checkout baf44f63312a3bf6eac28ea5572449ad45e8d9cf
24_srcref=baf44f63312a3bf6eac28ea5572449ad45e8d9cf
25
26# 上游 .version,用于 provides 的版本号
27_ankiver=26.05
28# PEP 440 归一化之后的版本,决定 wheel 的文件名(26.05 → 26.5)
29_wheelver=26.5
30
31pkgdesc="Anki with a pinned scheduling timezone and minute-level day rollover (prebuilt)"
32arch=('x86_64')
33url="https://github.com/zmr-233/anki-dev"
34license=('AGPL-3.0-or-later')
35
36provides=("$_pkgname=$_ankiver")
37conflicts=("$_pkgname" 'anki-git' 'anki-snapshot')
38
39# 运行时依赖对齐 pylib/pyproject.toml + qt/pyproject.toml。
40# 与 extra/anki 的差异:
41# + python-truststore / python-packaging / python-typing_extensions / python-asgiref
42# (26.05 之后新增或此前漏掉的,flask[async] 的 extra 需要 asgiref)
43# - python-flask-cors(上游已不再引用,全树 grep 无命中)
44# - sqlite / zstd(本包静态链入,见文件头)
45depends=(
46 'glibc'
47 'libgcc'
48 'python'
49 'python-asgiref'
50 'python-beautifulsoup4'
51 'python-decorator'
52 'python-distro'
53 'python-flask'
54 'python-jsonschema'
55 'python-markdown'
56 'python-orjson'
57 'python-packaging'
58 'python-protobuf'
59 'python-pyqt6'
60 'python-pyqt6-webengine'
61 'python-pysocks'
62 'python-requests'
63 'python-send2trash'
64 'python-truststore'
65 'python-typing_extensions'
66 'python-urllib3' # anki/httpclient.py 直接 import,不只是 requests 的传递依赖
67 'python-waitress'
68 'qt6-multimedia' # 录音插件,运行时加载
69 'qt6-svg' # SVG 图标插件,运行时加载
70)
71
72makedepends=('python-installer')
73
74optdepends=(
75 'lame: record sound'
76 'mpv: play sound. prefered over mplayer'
77 'mplayer: play sound'
78 'texlive-most: render LaTex in cards'
79)
80
81# 预编译包不做 debug 分包:tarball 里没有源码,makepkg 生成的 -debug 包会指向不存在的路径
82options=('!debug')
83
84# 产物挂在 workspace 仓库的 release 上:只有它同时看得见 anki / 后端 / AnkiDroid
85# 三条构建链,一个 tag 才能代表一次完整的发行
86_releases="https://github.com/zmr-233/anki-workspace/releases/download"
87_tarball="$pkgname-$pkgver-$CARCH.tar.zst"
88source_x86_64=("$_tarball::$_releases/v$pkgver/$_tarball")
89sha256sums_x86_64=('3a27eb64e51dd3596d08ae9eb863a8c5afc00604518b25ebc14b219d122b36f6')
90
91package() {
92 cd "$srcdir/$pkgname-$pkgver-$CARCH"
93
94 # anki-<wheelver>-cp310-abi3-manylinux_2_35_x86_64.whl(含 _rsbridge.so)
95 # aqt-<wheelver>-py3-none-any.whl(纯 Python)
96 # installer 按构建机的 python 决定 site-packages 路径,所以不写死 python3.x
97 for _whl in wheels/*.whl; do
98 python -m installer --destdir="$pkgdir" "$_whl"
99 done
100
101 install -vDm644 -t "$pkgdir/usr/share/applications" share/anki.desktop
102 install -vDm644 -t "$pkgdir/usr/share/pixmaps" share/anki.png share/anki.xpm
103 install -vDm644 -t "$pkgdir/usr/share/man/man1" share/anki.1
104 install -vDm644 -t "$pkgdir/usr/share/mime/packages" share/anki.xml
105}
106

Changes since previous scan

--- PKGBUILD @ 2026-07-27 13:35
+++ PKGBUILD @ 2026-08-03 00:08
@@ -16,7 +16,7 @@
_pkgname=anki
pkgname=anki-plus-bin
-pkgver=26.05.1
+pkgver=26.05.2
pkgrel=1
# 本包对应的确切源码(AGPL 要求可指回,写仓库名不够):
@@ -86,7 +86,7 @@
_releases="https://github.com/zmr-233/anki-workspace/releases/download"
_tarball="$pkgname-$pkgver-$CARCH.tar.zst"
source_x86_64=("$_tarball::$_releases/v$pkgver/$_tarball")
-sha256sums_x86_64=('28b030ff71b2d0347a9472311dd5d00596626b04a0fd1dc466914d14d19b82a5')
+sha256sums_x86_64=('3a27eb64e51dd3596d08ae9eb863a8c5afc00604518b25ebc14b219d122b36f6')
package() {
cd "$srcdir/$pkgname-$pkgver-$CARCH"

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 17:35:03 MEDIUM 2
2026-07-27 13:35:00 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