futo-notes-bin

MEDIUM
maintainer D3SOX 1 votes scanned 2026-11-01 00:21:48.120785
View on AUR
Why flagged

The package downloads a prebuilt AppImage from a non-whitelisted but project-owned GitLab instance (gitlab.futo.org), which is used to extract and install binaries; while the host is not standard, it is plausibly official and the AppImage checksum is verified, reducing risk from arbitrary code execution but still presenting a supply-chain risk if the source were swapped.

Triggered rules

Medium source=() URL on a non-standard host source_untrusted_domain

One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).

  • PKGBUILD:15 source=("LICENSE.md::https://gitlab.futo.org/futo-notes/futo-notes/-/raw/v${pkgver}/LICENSE.md")
Medium AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt AppImage from a non-whitelisted but project-owned GitLab instance (gitlab.futo.org), which is used to extract and install binaries; while the host is not standard, it is plausibly official and the AppImage checksum is verified, reducing risk from arbitrary code execution but still presenting a supply-chain risk if the source were swapped.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Nico <d3sox at protonmail dot com>
2_pkgname=futo-notes
3pkgname=${_pkgname}-bin
4pkgver=1.9.1
5pkgrel=1
6pkgdesc="Fast, private, local-first notes"
7arch=('x86_64')
8url="https://notes.futo.tech"
9license=('LicenseRef-SourceFirst-1.1')
10depends=('hicolor-icon-theme' 'desktop-file-utils')
11provides=("${_pkgname}")
12conflicts=("${_pkgname}")
13options=('!strip')
14_appimage="${pkgname}-${pkgver}-x86_64.AppImage"
15source=("LICENSE.md::https://gitlab.futo.org/futo-notes/futo-notes/-/raw/v${pkgver}/LICENSE.md")
16source_x86_64=("${_appimage}::https://gitlab.futo.org/api/v4/projects/488/packages/generic/${_pkgname}/v${pkgver}/FUTO-Notes-${pkgver}-x86_64.AppImage")
17noextract=("${_appimage}")
18sha256sums=('808950f8388f37b47a07217fbb90ef2e3512fd60abd492f1abe4ea1507857a8a')
19sha256sums_x86_64=('758f3838c0edf720d306ffca87e623a07a3e0a1ad4874bbef0a0e156d9fa76ab')
20
21prepare() {
22 chmod +x "${_appimage}"
23 "./${_appimage}" --appimage-extract
24}
25
26package() {
27 install -dm755 "${pkgdir}/opt/${_pkgname}"
28 cp -a squashfs-root/usr "${pkgdir}/opt/${_pkgname}/"
29 cp -a squashfs-root/apprun-hooks "${pkgdir}/opt/${_pkgname}/"
30 install -Dm755 squashfs-root/AppRun "${pkgdir}/opt/${_pkgname}/AppRun"
31 install -Dm755 squashfs-root/AppRun.wrapped "${pkgdir}/opt/${_pkgname}/AppRun.wrapped"
32 install -Dm644 "squashfs-root/FUTO Notes.png" "${pkgdir}/opt/${_pkgname}/FUTO Notes.png"
33 ln -s "usr/share/applications/FUTO Notes.desktop" "${pkgdir}/opt/${_pkgname}/FUTO Notes.desktop"
34
35 install -dm755 "${pkgdir}/usr/bin"
36 install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${_pkgname}" <<EOF
37#!/usr/bin/env bash
38exec /opt/${_pkgname}/AppRun "\$@"
39EOF
40
41 install -Dm644 "squashfs-root/usr/share/applications/FUTO Notes.desktop" \
42 "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
43 sed -i \
44 -e "s|^Exec=.*|Exec=${_pkgname}|" \
45 -e 's|^Categories=.*|Categories=Office;Utility;|' \
46 "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
47
48 install -dm755 "${pkgdir}/usr/share/icons/hicolor"
49 cp -a squashfs-root/usr/share/icons/hicolor/. "${pkgdir}/usr/share/icons/hicolor/"
50
51 install -Dm644 "$srcdir/LICENSE.md" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
52}
53

Changes since previous scan

--- PKGBUILD @ 2026-10-22 00:13
+++ PKGBUILD @ 2026-11-01 00:21
@@ -1,7 +1,7 @@
# Maintainer: Nico <d3sox at protonmail dot com>
_pkgname=futo-notes
pkgname=${_pkgname}-bin
-pkgver=1.9.0
+pkgver=1.9.1
pkgrel=1
pkgdesc="Fast, private, local-first notes"
arch=('x86_64')
@@ -16,7 +16,7 @@
source_x86_64=("${_appimage}::https://gitlab.futo.org/api/v4/projects/488/packages/generic/${_pkgname}/v${pkgver}/FUTO-Notes-${pkgver}-x86_64.AppImage")
noextract=("${_appimage}")
sha256sums=('808950f8388f37b47a07217fbb90ef2e3512fd60abd492f1abe4ea1507857a8a')
-sha256sums_x86_64=('234ba7f4115740bca8838246a9f4b809d9f77aea9c48b1dc4ff040bb67d81fcf')
+sha256sums_x86_64=('758f3838c0edf720d306ffca87e623a07a3e0a1ad4874bbef0a0e156d9fa76ab')
prepare() {
chmod +x "${_appimage}"

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Medium 2
2026-10-31 00:07:41 Medium 2
2026-10-30 00:29:30 Medium 2
2026-10-29 00:13:55 Medium 2
2026-10-28 00:06:54 Medium 2
2026-10-27 00:23:28 Medium 2
2026-10-26 00:12:40 Medium 2
2026-10-25 00:20:48 Medium 2
2026-10-24 00:14:55 Medium 2
2026-10-23 17:38:05 Medium 2
2026-10-23 00:02:19 Medium 2
2026-10-22 19:36:04 Medium 2
2026-10-22 00:13:10 Low 2
2026-10-21 00:12:50 Low 2
2026-10-20 17:28:05 Medium 1
2026-10-20 00:10:31 Medium 2
2026-10-19 00:03:55 Medium 2
2026-10-18 00:06:55 Medium 2
2026-10-17 00:21:55 Medium 2
2026-10-16 00:12:47 Medium 2

Report a package

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

0 / 4000
Your suggestion