yeetfile-common

maintainer vitaliikuzhdin · 0 votes · base yeetfile · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The PKGBUILD sources the main project and two submodules (StreamSaver.js and yeetfile-js) all from well-known git forges (GitHub and sr.ht) pinned to a specific tag for the main repo. The submodules use SKIP checksums, which is normal for git submodule sources in AUR. The 'npm install --no-save typescript@5.5.4' installs a pinned, specific version of TypeScript from the official npm registry — this is a build-time tool dependency, not an arbitrary remote script execution. The 'npx tsc' invocation uses the locally installed typescript package (just installed via npm), not a remote package fetch; npx will use the local node_modules/.bin/tsc. The Go build uses 'go mod download' with 'go mod verify', which provides integrity checking. The overall pattern is a legitimate build process for a self-hosted encrypted file sharing tool. The main concern is that npm fetches typescript@5.5.4 from the npm registry at build time without a lockfile checksum in the PKGBUILD, but this is a well-known, widely-used package at a specific version, making supply-chain risk low rather than medium.

Triggered rules

LOW AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 82%): The PKGBUILD sources the main project and two submodules (StreamSaver.js and yeetfile-js) all from well-known git forges (GitHub and sr.ht) pinned to a specific tag for the main repo. The submodules use SKIP checksums, which is normal for git submodule sources in AUR. The 'npm install --no-save typescript@5.5.4' installs a pinned, specific version of TypeScript from the official npm registry — this is a build-time tool dependency, not an arbitrary remote script execution. The 'npx tsc' invocation uses the locally installed typescript package (just installed via npm), not a remote package fetch; npx will use the local node_modules/.bin/tsc. The Go build uses 'go mod download' with 'go mod verify', which provides integrity checking. The overall pattern is a legitimate build process for a self-hosted encrypted file sharing tool. The main concern is that npm fetches typescript@5.5.4 from the npm registry at build time without a lockfile checksum in the PKGBUILD, but this is a well-known, widely-used package at a specific version, making supply-chain risk low rather than medium.

2 higher static findings superseded - not the current verdict (shown for transparency)
MEDIUM npm/yarn/pnpm install of an undeclared external package npm_install_external

Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.

  • PKGBUILD:49 npm install --no-save typescript@5.5.4
MEDIUM npx/bunx/deno executes a remote package remote_code_tool

`npx`/`bunx`/`pnpm dlx`/`deno run <url>` downloads AND runs a remote package at build time — the moral equivalent of piping a download into a shell. Severity downgraded: Node.js consumer context.

  • PKGBUILD:69 npx tsc --removeComments

PKGBUILD

2 offending line(s) highlighted
1# Maintainer: Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
2
3pkgbase="yeetfile"
4pkgname=(
5 "${pkgbase}-common"
6 "${pkgbase}"
7 "${pkgbase}-server"
8)
9pkgver=0.2.0
10pkgrel=1
11pkgdesc="A self-hosted service for encrypted file sharing and storage"
12arch=(
13 'aarch64'
14 'armv7h'
15 'i686'
16 'x86_64'
17)
18url="https://yeetfile.com"
19_url="https://github.com/benbusby/${pkgbase}"
20license=(
21 'AGPL-3.0-only'
22)
23makedepends=(
24 'git'
25 'go>=1.20'
26 # 'typescript'
27 'npm'
28)
29_pkgsrc="${_url##*/}"
30source=(
31 "${_pkgsrc}::git+${_url}.git#tag=v${pkgver}"
32 "benbusby-StreamSaver.js::git+https://github.com/benbusby/StreamSaver.js.git"
33 "yeetfile-js::git+https://git.sr.ht/~benbusby/yeetfile-js"
34)
35sha256sums=('bbc0f9b364f35b5f4d0f538a467a8fa84d9cd13be85ac99e8d2dc997e3163f76'
36 'SKIP'
37 'SKIP')
38
39prepare() {
40 export GOMODCACHE="${srcdir}/go-mod-cache"
41
42 cd "${srcdir}/${_pkgsrc}"
43 git submodule init
44 git config submodule.backend/static/stream_saver.url "${srcdir}/benbusby-StreamSaver.js"
45 git config submodule.backend/static/js.url "${srcdir}/yeetfile-js"
46 git -c protocol.file.allow=always submodule update
47
48 # https://github.com/benbusby/yeetfile/commit/d3af0cbd1c85b630a38a5a09f1da93889b25efa8
49 npm install --no-save typescript@5.5.4
50
51 go mod download -modcacherw -x
52 go mod verify
53
54 mkdir -p "build"
55}
56
57build() {
58 export CGO_CPPFLAGS="${CPPFLAGS}"
59 export CGO_CFLAGS="${CFLAGS}"
60 export CGO_CXXFLAGS="${CXXFLAGS}"
61 export CGO_LDFLAGS="${LDFLAGS}"
62 export GOCACHE="${srcdir}/go-cache"
63 export GOMODCACHE="${srcdir}/go-mod-cache"
64 export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
65
66 cd "${srcdir}/${_pkgsrc}"
67 go run utils/generate_typescript.go ./web/ts
68 # tsc --removeComments
69 npx tsc --removeComments
70
71 go build -v -tags "${pkgbase}" -o "build/${pkgbase}" ./cli
72 go build -v -tags "${pkgbase}-server" -o "build/${pkgbase}-server" ./backend
73}
74
75# check() {
76# cd "${srcdir}/${_pkgsrc}"
77# go test ./...
78# }
79
80package_yeetfile-common() {
81 pkgdesc+=" (common files)"
82 arch=(
83 'any'
84 )
85
86 cd "${srcdir}/${_pkgsrc}"
87 install -vDm644 "README.md" "${pkgdir}/usr/share/doc/${pkgbase}/README.md"
88 install -vDm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
89}
90
91package_yeetfile() {
92 pkgdesc+=" (CLI)"
93 depends=(
94 "${pkgbase}-common>=${pkgver}"
95 'glibc'
96 )
97
98 cd "${srcdir}/${_pkgsrc}"
99 install -vDm755 "build/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
100}
101
102package_yeetfile-server() {
103 pkgdesc+=" (server)"
104 depends=(
105 "${pkgbase}-common>=${pkgver}"
106 'glibc'
107 )
108
109 cd "${srcdir}/${_pkgsrc}"
110 install -vDm755 "build/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
111}
112

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 3
2026-08-02 00:16:08 LOW 3
2026-08-01 00:11:18 LOW 3
2026-07-31 00:14:10 LOW 3
2026-07-30 00:17:23 LOW 3
2026-07-29 00:25:53 LOW 3
2026-07-28 00:07:28 LOW 3
2026-07-27 00:24:32 LOW 3
2026-07-26 00:07:32 LOW 3
2026-07-25 00:13:44 LOW 3
2026-07-24 00:02:28 LOW 3
2026-07-23 00:14:47 LOW 3
2026-07-22 00:29:32 LOW 3
2026-07-21 00:24:15 LOW 3
2026-07-20 00:19:49 LOW 3
2026-07-19 00:17:08 LOW 3
2026-07-18 00:14:48 LOW 3
2026-07-17 00:06:16 LOW 3
2026-07-16 00:05:41 LOW 3
2026-07-15 00:09:25 LOW 3

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion