appflowy
The flagged privileged install refers to creating a symlink in /usr/bin, which is standard for AUR packages to provide command access; this is a common, non-malicious practice and does not involve actual privilege escalation or self-update mechanisms.
Triggered rules
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 flagged privileged install refers to creating a symlink in /usr/bin, which is standard for AUR packages to provide command access; this is a common, non-malicious practice and does not involve actual privilege escalation or self-update mechanisms.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:60
rustup toolchain install --no-self-update
PKGBUILD
1 offending line(s) highlighted# Maintainer: Sergey Kanafyev <sergeykanafyev@gmail.com>
# Automation: https://github.com/its-me/aur.appflowy
pkgname=appflowy
pkgver=0.14.11
pkgrel=1
pkgdesc="Open-source alternative to Notion – you own your data and customizations"
arch=('x86_64')
url="https://appflowy.com"
license=('AGPL-3.0-or-later')
conflicts=('appflowy-bin' 'appflowy-git')
depends=(
'glib2>=2.80'
'gst-plugins-base-libs'
'gtk3'
'hicolor-icon-theme'
'libkeybinder3'
'libnotify'
'rocksdb'
)
_flutter_ver=3.27.4
makedepends=(
'clang'
'cmake'
'git'
'ninja'
'pkg-config'
'sqlite'
'openssl'
'unzip'
'protobuf'
'rsync'
'rustup'
'cargo-make'
)
optdepends=(
'kdialog: file picker on KDE Plasma'
'zenity: file picker on GNOME/GTK'
)
options=('!lto' '!debug' '!buildflags')
source=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/AppFlowy-IO/AppFlowy/archive/refs/tags/${pkgver}.tar.gz"
"flutter::git+https://github.com/flutter/flutter.git#tag=${_flutter_ver}"
"appflowy.desktop"
)
sha256sums=('c22295bea960b56fe8bed65d2678b8561da50c89ef2fbfe26fbf1581faef6279'
'41d2ef9589b0ff14b4c55a614933fb8f68307738882c8e6c454fc334d4952ce3'
'55c02d13249b333088ee452e76c8f36254e510651023549dc7e35efca02ca821')
prepare() {
export PATH="${srcdir}/flutter/bin:${PATH}"
cd "AppFlowy-${pkgver}/frontend"
# Upstream sets the real version at release time; the tag still carries a stale one
sed -i "s/^APPFLOWY_VERSION = .*/APPFLOWY_VERSION = \"${pkgver}\"/" Makefile.toml
sed -i "s/^version: .*/version: ${pkgver}/" appflowy_flutter/pubspec.yaml
# Install the Rust toolchain declared in rust-toolchain.toml (channel = "1.85")
rustup toolchain install --no-self-update
rustup target add ${CARCH}-unknown-linux-gnu
# Pre-fetch Rust crate dependencies
cargo fetch --manifest-path=rust-lib/Cargo.toml
# Fetch Flutter package dependencies
cd appflowy_flutter
flutter pub get
# Run code generation explicitly so it runs visibly and before cargo-make
cd ..
./scripts/code_generation/generate.sh --skip-pub-get
}
build() {
export PATH="${srcdir}/flutter/bin:${HOME}/.pub-cache/bin:${PATH}"
export CC=clang
export CXX=clang++
export ROCKSDB_LIB_DIR=/usr/lib
# hotkey_manager plugin has uninitialized variables that clang promotes to errors
export CXXFLAGS="-Wno-error=sometimes-uninitialized"
cd "AppFlowy-${pkgver}/frontend"
cargo make --profile production-linux-${CARCH} appflowy
}
package() {
cd "AppFlowy-${pkgver}/frontend"
# APPFLOWY_VERSION in Makefile.toml determines the product subdirectory name
local _appver
_appver=$(sed -n 's/^APPFLOWY_VERSION = "\(.*\)"/\1/p' Makefile.toml)
local _product="appflowy_flutter/product/${_appver}/linux/Release/AppFlowy"
# Install AppFlowy bundle
install -dm755 "${pkgdir}/usr/lib/AppFlowy"
cp -r "${_product}/." "${pkgdir}/usr/lib/AppFlowy/"
chmod 755 "${pkgdir}/usr/lib/AppFlowy/AppFlowy"
# Symlink into PATH
install -dm755 "${pkgdir}/usr/bin"
ln -s "/usr/lib/AppFlowy/AppFlowy" "${pkgdir}/usr/bin/appflowy"
# Desktop entry
install -Dm644 "${srcdir}/appflowy.desktop" \
"${pkgdir}/usr/share/applications/appflowy.desktop"
# Icons
install -Dm644 "appflowy_flutter/linux/packaging/assets/logo.png" \
"${pkgdir}/usr/share/icons/hicolor/256x256/apps/appflowy.png"
install -Dm644 "appflowy_flutter/assets/images/flowy_logo.svg" \
"${pkgdir}/usr/share/icons/hicolor/scalable/apps/appflowy.svg"
install -Dm644 "../LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
Changes since previous scan
--- PKGBUILD @ 2026-10-26 00:12+++ PKGBUILD @ 2026-11-01 00:21@@ -2,7 +2,7 @@ # Automation: https://github.com/its-me/aur.appflowy pkgname=appflowy-pkgver=0.14.10+pkgver=0.14.11 pkgrel=1 pkgdesc="Open-source alternative to Notion – you own your data and customizations" arch=('x86_64')@@ -43,7 +43,7 @@ "flutter::git+https://github.com/flutter/flutter.git#tag=${_flutter_ver}" "appflowy.desktop" )-sha256sums=('9e68884f841d9fa70fe6d19cf62cf48914edde7c3c18b2744b2406257f456080'+sha256sums=('c22295bea960b56fe8bed65d2678b8561da50c89ef2fbfe26fbf1581faef6279' '41d2ef9589b0ff14b4c55a614933fb8f68307738882c8e6c454fc334d4952ce3' '55c02d13249b333088ee452e76c8f36254e510651023549dc7e35efca02ca821') Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 05:43:49 | Medium | 1 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 07:31:05 | Medium | 1 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |