saur-git

maintainer josefandersson · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The source is a Git repository from the maintainer's own domain, used to build the project from source; this is normal for a -git AUR package, and the host, while not standard, is plausibly project-owned.

Triggered rules

LOW AI review downgraded a static finding 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 is a Git repository from the maintainer's own domain, used to build the project from source; this is normal for a -git AUR package, and the host, while not standard, is plausibly project-owned.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host 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:22 source=("${_binname}::git+https://git.josf.dev/josefandersson/saur.git")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Josef Andersson <josefandersson@tuta.io>
2#
3# Builds the saur binary from source with bun and installs it. This is a VCS (-git) package;
4# update `url`/`source` to the published repo before uploading to the AUR.
5
6pkgname=saur-git
7_binname=saur
8pkgver=1.4.0
9pkgrel=1
10pkgdesc="A safer AUR helper with Claude security review baked in"
11arch=('x86_64' 'aarch64')
12url="https://git.josf.dev/josefandersson/saur"
13license=('MIT')
14depends=('claude-code') # runtime: the `claude` CLI (authenticated)
15makedepends=('bun' 'git')
16provides=('saur')
17conflicts=('saur')
18# Do NOT strip: this is a bun standalone executable with the app bundle appended after the ELF.
19# `strip` (which makepkg runs by default) corrupts that trailer, so the binary falls back to bun's
20# own CLI — `saur update` then runs `bun update`. Keep the compiled binary intact.
21options=('!strip')
22source=("${_binname}::git+https://git.josf.dev/josefandersson/saur.git")
23sha256sums=('SKIP')
24
25pkgver() {
26 cd "$_binname"
27 printf "%s.r%s.g%s" \
28 "$(awk -F'\"' '/"version"/{print $4; exit}' package.json)" \
29 "$(git rev-list --count HEAD)" \
30 "$(git rev-parse --short HEAD)"
31}
32
33build() {
34 cd "$_binname"
35 bun install --frozen-lockfile
36 bun build src/main.ts --compile --outfile "$_binname"
37}
38
39check() {
40 cd "$_binname"
41 bun test
42 # Guard: a corrupt/miscompiled standalone binary falls back to bun's OWN CLI, so saur's
43 # `install`/`update` subcommands would run `bun install`/`bun update` (this shipped in the
44 # v1.0.0 saur-bin). A good build answers `--version` with `saur <ver>`; anything else means
45 # bun couldn't find the embedded app — fail the build rather than install a hijacked binary.
46 ./"$_binname" --version | grep -q '^saur ' || {
47 echo "saur: compiled binary is hijacked by the bun runtime (embedded app not found);" >&2
48 echo " this build is corrupt. Try a different bun version and rebuild." >&2
49 return 1
50 }
51}
52
53package() {
54 cd "$_binname"
55 install -Dm755 "$_binname" "$pkgdir/usr/bin/$_binname"
56 install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
57 install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
58}
59

Changes since previous scan

--- PKGBUILD @ 2026-07-25 00:13
+++ PKGBUILD @ 2026-08-03 00:08
@@ -5,7 +5,7 @@
pkgname=saur-git
_binname=saur
-pkgver=1.2.0
+pkgver=1.4.0
pkgrel=1
pkgdesc="A safer AUR helper with Claude security review baked in"
arch=('x86_64' 'aarch64')

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 19:30:43 MEDIUM 1
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 09:14:00 MEDIUM 1
2026-07-20 00:19:49 LOW 2
2026-07-19 23:12:22 MEDIUM 1
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 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