tine-outliner-git
The package builds from the project's own GitHub source; 'npx tauri build' runs the project's own locally-installed npm dependency (tauri-cli from npm ci), not a remote package, and 'rustup toolchain install' is a normal toolchain setup step with no self-update or privileged install—no real malicious behaviour is present, though the SKIP'd checksum and few votes are minor quality concerns.
Triggered rules
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 70%): The package builds from the project's own GitHub source; 'npx tauri build' runs the project's own locally-installed npm dependency (tauri-cli from npm ci), not a remote package, and 'rustup toolchain install' is a normal toolchain setup step with no self-update or privileged install—no real malicious behaviour is present, though the SKIP'd checksum and few votes are minor quality concerns.
2 higher static findings superseded - not the current verdict (shown for transparency)
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:46
npx tauri build --no-bundle -- --features custom-protocol
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
PKGBUILD:31
rustup toolchain install --no-self-update
PKGBUILD
2 offending line(s) highlighted# shellcheck shell=bash disable=SC2034,SC2154
# Maintainer: Damien Flament <damien dot flament at zoho dot com>
pkgname='tine-outliner-git'
pkgver=0.7.3.r2.g9c1f92d
pkgrel=1
pkgdesc="A fast, local, Logseq-compatible outliner (latest git version)"
url='https://tine.page/'
license=('AGPL-3.0-only')
arch=('x86_64')
makedepends=('git' 'rustup' 'npm')
depends=('gtk3' 'gdk-pixbuf2' 'libgcc' 'libsoup3' 'webkit2gtk-4.1' 'dbus' 'libx11' 'glib2' 'cairo' 'hicolor-icon-theme')
conficts=('tine-outliner' 'tine-outliner-bin')
provides=("tine-outliner=${pkgver}")
source=("${pkgname}::git+https://github.com/martinkoutecky/tine.git")
sha256sums=('SKIP')
function pkgver {
cd "$pkgname" || return
git describe --long --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
function prepare {
cd "$pkgname" || return
rustup toolchain install --no-self-update
npm ci
}
function build {
cd "$pkgname" || return
export CFLAGS
# Le drapeau `-flto=auto` dans les options de GCC semble générer une erreur
# lors de la création des liens dynamiques avec la bilbiothèque SQLite3. Il
# est donc supprimé.
CFLAGS=$(echo "$CFLAGS" | sed -E 's/-flto=auto//g')
npx tauri build --no-bundle -- --features custom-protocol
}
function package {
cd "$pkgname" || return
# L'exécutable principal est installé.
install -Dt "$pkgdir/usr/bin" "target/release/tine"
# Le fichier Desktop du Flatpak est utilisé.
install -Dt "$pkgdir/usr/share/applications" "flatpak/page.tine.Tine.desktop"
# Les icônes sont installées.
install -D "src-tauri/icons/32x32.png" "$pkgdir/usr/share/icons/hicolor/32x32/apps/page.tine.Tine.png"
install -D "src-tauri/icons/64x64.png" "$pkgdir/usr/share/icons/hicolor/64x64/apps/page.tine.Tine.png"
install -D "src-tauri/icons/128x128.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/page.tine.Tine.png"
install -D "src-tauri/icons/128x128@2x.png" "$pkgdir/usr/share/icons/hicolor/128x128@2/apps/page.tine.Tine.png"
install -D "src-tauri/icons/icon.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/page.tine.Tine.png"
install -D "docs/app-icon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/page.tine.Tine.svg"
# Les fichiers de manuel sont compressés et installés.
install -d "$pkgdir/usr/share/man/man1"
for page in tine-capture tine-doctor tine-export-live tine-export-static tine-export tine-open tine-version tine
do
gzip -c "docs/${page}.1" > "$pkgdir/usr/share/man/man1/${page}.1.gz"
done
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 00:21:55 | Low | 4 |
| 2026-10-16 00:12:47 | Low | 4 |
| 2026-10-15 23:16:14 | Low | 4 |
| 2026-10-15 23:13:54 | Medium | 3 |