jorvik-git

LOW
maintainer Xuruh 0 votes scanned 2026-09-23 01:39:21.955055
View on AUR
Why flagged

The package builds from the project's own git repository, uses system Electron, and installs only project-built assets; the low severity is due to few 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 builds from the project's own git repository, uses system Electron, and installs only project-built assets; the low severity is due to few votes and recent upload, not malicious content.

PKGBUILD

1# Maintainer: Xuruh <admin@jorvik.app>
2
3pkgname=jorvik-git
4_pkgname=jorvik
5pkgver=1.0.8.r2.gd6a31a4
6pkgrel=1
7pkgdesc="Self-hosted Matrix client built to feel like Discord (git)"
8arch=('x86_64')
9url="https://github.com/jorvikapp/jorvik"
10license=('AGPL-3.0-only')
11# Runs on the system Electron rather than bundling its own: the app declares no
12# runtime dependencies and its main process imports only electron and node
13# builtins, so nothing else needs to ship.
14depends=('electron44')
15# ttf-dejavu is not optional: the tray badge assets are rendered from SVG text,
16# and gen-tray-badges.js exits non-zero when no font resolves, so a clean chroot
17# without one fails the build rather than producing blank badges.
18makedepends=('git' 'nodejs' 'pnpm' 'ttf-dejavu')
19provides=("$_pkgname=${pkgver%%.r*}")
20conflicts=("$_pkgname")
21options=('!strip')
22source=("$_pkgname::git+$url.git")
23sha256sums=('SKIP')
24
25pkgver() {
26 cd "$srcdir/$_pkgname"
27 git describe --long --tags --abbrev=7 2>/dev/null |
28 sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' ||
29 printf "r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
30}
31
32build() {
33 cd "$srcdir/$_pkgname"
34
35 # electron-builder is never invoked here, so its Electron download would be
36 # dead weight. sharp is still fetched: it renders the icon set and the tray
37 # badge assets during the build.
38 export ELECTRON_SKIP_BINARY_DOWNLOAD=1
39
40 pnpm install --frozen-lockfile
41 pnpm --filter @heorot/desktop run build
42}
43
44package() {
45 cd "$srcdir/$_pkgname/apps/desktop"
46
47 install -dm755 "$pkgdir/usr/lib/$_pkgname"
48 cp -r dist web package.json "$pkgdir/usr/lib/$_pkgname/"
49
50 # With a system Electron, process.resourcesPath points at Electron's own
51 # resources, so main.ts falls back to app.getAppPath()/build for the window
52 # icon and the tray badge set. That fallback is this layout.
53 install -Dm644 build/icon.png "$pkgdir/usr/lib/$_pkgname/build/icon.png"
54 cp -r build/tray-badges "$pkgdir/usr/lib/$_pkgname/build/"
55
56 install -dm755 "$pkgdir/usr/bin"
57 cat > "$pkgdir/usr/bin/$_pkgname" <<'LAUNCH'
58#!/bin/sh
59exec electron44 /usr/lib/jorvik "$@"
60LAUNCH
61 chmod 755 "$pkgdir/usr/bin/$_pkgname"
62
63 # Generated during the build from the one tracked source image, so these
64 # stay correct without assets being copied into this repository.
65 local size
66 for size in 16 24 32 48 64 128 256 512; do
67 install -Dm644 "build/icons/${size}x${size}.png" \
68 "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/$_pkgname.png"
69 done
70
71 # Mirrors linux.desktop.entry in apps/desktop/electron-builder.json; the
72 # binary packages get theirs from Electron Builder, which is not used here.
73 install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/$_pkgname.desktop" <<'DESKTOP'
74[Desktop Entry]
75Name=Jorvik
76Comment=Jorvik Desktop Client
77Exec=jorvik %U
78Icon=jorvik
79Terminal=false
80Type=Application
81Categories=Network;Chat;
82StartupWMClass=jorvik
83DESKTOP
84
85 install -Dm644 "$srcdir/$_pkgname/LICENSE" \
86 "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
87}
88

Scan history

Scanned at (UTC)SeverityRules
2026-09-23 01:39:21 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