rotki

maintainer chadsr · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The pip install of pyinstaller and uv sync are part of the build process for the application's own source from a trusted GitHub repository, not execution of untrusted external code.

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-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The pip install of pyinstaller and uv sync are part of the build process for the application's own source from a trusted GitHub repository, not execution of untrusted external code.

2 higher static findings superseded - not the current verdict (shown for transparency)
MEDIUM pip install of an external package pip_install_external

`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:50 uv pip install pyinstaller
MEDIUM External install via pipx/uv/poetry/cargo/go/gem alt_pkg_manager_install

A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:50 uv pip install pyinstaller

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Ross Chadwick <git at ross dot ch>
2# Contributor: goose (Block/Open Source)
3
4pkgname=rotki
5pkgver=1.43.2
6pkgrel=1
7pkgdesc='A portfolio tracking, analytics, accounting and management application that protects your privacy'
8arch=('x86_64' 'aarch64')
9url='https://rotki.com'
10license=('AGPL-3.0-only')
11provides=('rotki')
12conflicts=('rotki-bin')
13depends=(
14 'gtk3'
15 'nss'
16)
17makedepends=(
18 'python'
19 'uv'
20 'cargo'
21 'nodejs'
22 'pnpm'
23 'nvm'
24)
25options=(!lto)
26source=(
27 "$pkgname-$pkgver.tar.gz::https://github.com/rotki/rotki/archive/refs/tags/v$pkgver.tar.gz"
28 "rotki.sh"
29 "rotki.desktop"
30)
31sha512sums=(
32 '7056697b15864f7fbed3d932b007453ec829a2ea4130c346f86a694f5215c43beaf7f3dd2d8ad33b7273db8ed65b8936ac8c4df668b8dfefdb45a829ebdbfe35'
33 'eb0bda9312d9b7f09d758c7b13dc60acb32af5119b63e526c04b52bf15630cc80d0a69d867aa062253c332592e5e6490ea63f8f765023032d4994a6a2fe05cca'
34 'ecaa5f356d0fabe9b6baa1432c6f047f9acfc75d5dc0e859dab06e182b34c9442cefcff1efac8cec826dc943c7f0f85e5809aea60dea21c99b41927f17e5117a'
35)
36
37_ensure_local_nvm() {
38 which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
39 export NVM_DIR="${srcdir}/.nvm"
40 source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
41}
42
43prepare() {
44 cd "$srcdir/$pkgname-$pkgver"
45 _ensure_local_nvm
46
47 uv sync --group packaging
48
49 # Rotki doesn't include pyinstaller as a UV dependency, so install it
50 uv pip install pyinstaller
51
52 cd frontend
53 nvm install
54 nvm use
55 export CYPRESS_INSTALL_BINARY=0 # Avoid downloading Cypress binary during frontend install
56 pnpm install --frozen-lockfile
57}
58
59build() {
60 cd "$srcdir/$pkgname-$pkgver"
61 _ensure_local_nvm
62
63 # Build colibri rust binary
64 cargo build \
65 --target-dir build/colibri \
66 --manifest-path ./colibri/Cargo.toml \
67 --release
68
69 mkdir -p build/colibri/bin/
70 mv build/colibri/release/colibri build/colibri/bin/
71
72 # Create the Python backend onefile with PyInstaller from rotkehlchen.spec
73 export PYTHONOPTIMIZE=2
74 export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
75 uv run pyinstaller --noconfirm --clean --distpath "${PWD}/build/backend" rotkehlchen.spec
76
77 # Build the Electron frontend and package into an unpacked directory (--dir)
78 cd frontend
79 nvm use
80 export ROTKI_VERSION="$pkgver"
81 pnpm run build
82 pnpm run electron:package -- --dir
83}
84
85package() {
86 cd "$srcdir/$pkgname-$pkgver"
87
88 install -d "$pkgdir/opt/$pkgname" "$pkgdir/usr/bin"
89
90 # Move the unpacked electron app produced by electron-builder --dir
91 mv frontend/app/build/linux-unpacked/* "$pkgdir/opt/$pkgname/"
92
93 install -Dm755 "$srcdir/rotki.sh" "$pkgdir/usr/bin/rotki"
94
95 install -Dm644 "$srcdir/rotki.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
96
97 install -Dm644 frontend/app/public/assets/images/protocols/rotki.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/rotki.svg"
98
99 # License
100 install -Dm644 LICENSE.md "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
101}
102

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