suzuri-bin
LOW
maintainer Cranyozen
1 votes
scanned 2026-10-17 00:21:55.226236
Why flagged
The package installs a prebuilt binary from the project's official GitHub releases, which is a normal AUR packaging practice; the low severity is due to limited votes and recent upload, not malicious content.
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.
Low
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package installs a prebuilt binary from the project's official GitHub releases, which is a normal AUR packaging practice; the low severity is due to limited votes and recent upload, not malicious content.
PKGBUILD
1
# Maintainer: Cranyozen <cranyozen@outlook.com>
2
# suzuri is NOT in the AUR; this PKGBUILD packages the official prebuilt
3
# Linux release tarball so that paru/pacman can manage it.
4
5
pkgname=suzuri-bin
6
pkgver=0.5.6
7
pkgrel=1
8
pkgdesc='Writing environment built on Zed: Obsidian-style live preview, Typst/LaTeX preview, PDF pane'
9
arch=('x86_64' 'aarch64')
10
url='https://github.com/harrywang/suzuri'
11
license=('GPL-3.0-or-later' 'Apache-2.0')
12
13
depends=('alsa-lib'
14
'gcc-libs'
15
'glib2'
16
'glibc'
17
'libglvnd'
18
'libx11'
19
'libxcb'
20
'libxkbcommon'
21
'libxkbcommon-x11'
22
'vulkan-driver'
23
'vulkan-icd-loader'
24
'wayland'
25
'zlib')
26
27
optdepends=('libpulse: PulseAudio audio backend'
28
'typst: Typst live preview compiler'
29
'tectonic: LaTeX live preview compiler (alternative to TeX Live)'
30
'openbsd-netcat: SSH remote development support'
31
'clang: improved C/C++ language support'
32
'cmake: building C/C++ projects'
33
'gopls: improved Go language support'
34
'pyright: improved Python language support'
35
'rust-analyzer: improved Rust language support'
36
'typescript-language-server: improved TypeScript/JavaScript support'
37
'org.freedesktop.secrets: to keep you logged into your Suzuri account')
38
39
provides=('suzuri')
40
conflicts=('suzuri' 'suzuri-git')
41
42
source_x86_64=("${pkgname}-${pkgver}-x86_64.tar.gz::${url}/releases/download/suzuri-v${pkgver}/suzuri-linux-x86_64.tar.gz")
43
source_aarch64=("${pkgname}-${pkgver}-aarch64.tar.gz::${url}/releases/download/suzuri-v${pkgver}/suzuri-linux-aarch64.tar.gz")
44
sha256sums_x86_64=('5eb8a9061f053d72816185465a74c0069579ee42d06e5e15246d74eb6504e529')
45
sha256sums_aarch64=('0d50f77f17704bfe040e688c11c23f7afec68fff66233720c8acfa1a60d89f74')
46
47
package() {
48
cd 'suzuri.app'
49
50
# Keep the upstream app-directory layout: the launcher resolves its main
51
# binary through '../libexec/zed-editor' relative to its own path.
52
# Installing under /usr/lib/suzuri (and not /usr/lib/zed) keeps this package
53
# installable alongside extra/zed, which owns /usr/lib/zed/zed-editor.
54
install -Dm755 'bin/suzuri' "${pkgdir}/usr/lib/suzuri/bin/suzuri"
55
install -Dm755 'libexec/zed-editor' "${pkgdir}/usr/lib/suzuri/libexec/zed-editor"
56
57
# Wrapper: hand updates to the package manager. The editor polls GitHub for
58
# releases and self-installs unless ZED_UPDATE_EXPLANATION is set in the
59
# environment; it also turns "Check for Updates" into an informational
60
# prompt. See crates/auto_update/src/auto_update.rs.
61
install -d "${pkgdir}/usr/bin"
62
cat > "${pkgdir}/usr/bin/suzuri" <<'EOF'
63
#!/bin/sh
64
export ZED_UPDATE_EXPLANATION='Suzuri is managed by your package manager. Update with: paru -Syu'
65
exec /usr/lib/suzuri/bin/suzuri "$@"
66
EOF
67
chmod 755 "${pkgdir}/usr/bin/suzuri"
68
69
# Desktop entry.
70
#
71
# A compositor resolves a window's icon by matching its app_id against a
72
# desktop file name. Through 0.5.4 those two disagreed on the dev channel
73
# (app_id 'dev.zed.Zed-Dev' vs file 'app.suzuri.Suzuri.desktop'), so this
74
# package renamed the file to compensate. Suzuri 0.5.5 fixed the runtime side
75
# (ReleaseChannel::app_id() now returns 'app.suzuri.Suzuri'), so the rename is
76
# gone. Keep whichever name upstream ships, derived from the tarball rather
77
# than hard-coded, and only make the Exec paths absolute.
78
mapfile -t desktops < <(find share/applications -maxdepth 1 -name '*.desktop')
79
if (( ${#desktops[@]} != 1 )); then
80
echo "error: expected exactly 1 .desktop file, found ${#desktops[@]}" >&2
81
return 1
82
fi
83
desktop="${pkgdir}/usr/share/applications/${desktops[0]##*/}"
84
install -Dm644 "${desktops[0]}" "$desktop"
85
sed -i -e 's|^Exec=suzuri |Exec=/usr/bin/suzuri |' \
86
-e 's|^TryExec=suzuri$|TryExec=/usr/bin/suzuri|' \
87
"$desktop"
88
89
# Icons into hicolor so the desktop entry's plain 'Icon=suzuri' resolves.
90
install -Dm644 'share/icons/hicolor/512x512/apps/suzuri.png' \
91
"${pkgdir}/usr/share/icons/hicolor/512x512/apps/suzuri.png"
92
install -Dm644 'share/icons/hicolor/1024x1024/apps/suzuri.png' \
93
"${pkgdir}/usr/share/icons/hicolor/1024x1024/apps/suzuri.png"
94
95
# Licenses (licenses.md carries the bundled theme/component licenses)
96
install -Dm644 'licenses.md' "${pkgdir}/usr/share/licenses/${pkgname}/licenses.md"
97
}
98
Changes since previous scan
--- PKGBUILD @ 2026-10-15 00:28+++ PKGBUILD @ 2026-10-17 00:21@@ -3,7 +3,7 @@ # Linux release tarball so that paru/pacman can manage it. pkgname=suzuri-bin-pkgver=0.5.5+pkgver=0.5.6 pkgrel=1 pkgdesc='Writing environment built on Zed: Obsidian-style live preview, Typst/LaTeX preview, PDF pane' arch=('x86_64' 'aarch64')@@ -41,8 +41,8 @@ source_x86_64=("${pkgname}-${pkgver}-x86_64.tar.gz::${url}/releases/download/suzuri-v${pkgver}/suzuri-linux-x86_64.tar.gz") source_aarch64=("${pkgname}-${pkgver}-aarch64.tar.gz::${url}/releases/download/suzuri-v${pkgver}/suzuri-linux-aarch64.tar.gz")-sha256sums_x86_64=('ece1c321194c2e91f10811ccff912ada94a20d374e9d4c33b01dd5e5ecf73fe9')-sha256sums_aarch64=('c52f06f4039be5a352ddddfda2e71a3d4716d6e324663591ec161f603406b3d5')+sha256sums_x86_64=('5eb8a9061f053d72816185465a74c0069579ee42d06e5e15246d74eb6504e529')+sha256sums_aarch64=('0d50f77f17704bfe040e688c11c23f7afec68fff66233720c8acfa1a60d89f74') package() { cd 'suzuri.app'Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 09:11:05 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 03:18:50 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 09:16:20 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |
| 2026-10-12 13:13:52 | Low | 2 |
| 2026-10-12 11:13:20 | Low | 2 |