futo-notes-bin
maintainer D3SOX
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a prebuilt AppImage from the project's own GitLab instance, which is a legitimate source for the software; while the host is not a standard one, it is plausibly official and the AppImage is checksum-verified, reducing supply-chain risk.
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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt AppImage from the project's own GitLab instance, which is a legitimate source for the software; while the host is not a standard one, it is plausibly official and the AppImage is checksum-verified, reducing supply-chain risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
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/main/LICENSE.md")
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Nico <d3sox at protonmail dot com>
2
_pkgname=futo-notes
3
pkgname=${_pkgname}-bin
4
pkgver=1.6.1
5
pkgrel=1
6
pkgdesc="Fast, private, local-first notes"
7
arch=('x86_64')
8
url="https://notes.futo.tech"
9
license=('LicenseRef-SourceFirst-1.1')
10
depends=('hicolor-icon-theme' 'desktop-file-utils')
11
provides=("${_pkgname}")
12
conflicts=("${_pkgname}")
13
options=('!strip')
14
_appimage="${pkgname}-${pkgver}-x86_64.AppImage"
15
source=("LICENSE.md::https://gitlab.futo.org/futo-notes/futo-notes/-/raw/main/LICENSE.md")
16
source_x86_64=("${_appimage}::https://gitlab.futo.org/api/v4/projects/488/packages/generic/${_pkgname}/v${pkgver}/FUTO-Notes-${pkgver}-x86_64.AppImage")
17
noextract=("${_appimage}")
18
sha256sums=('4d8522558ced82190b4b7e2d86d0955e4dc910d0fbb8eb2f01eed7cacd4f94ef')
19
sha256sums_x86_64=('4f4ed5804c2410502b11735dbe2fb7547266e75e82dd7054c9596ab94a920a96')
20
21
prepare() {
22
chmod +x "${_appimage}"
23
"./${_appimage}" --appimage-extract
24
}
25
26
package() {
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
38
exec /opt/${_pkgname}/AppRun "\$@"
39
EOF
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-07-28 00:07+++ PKGBUILD @ 2026-08-03 00:08@@ -1,7 +1,7 @@ # Maintainer: Nico <d3sox at protonmail dot com> _pkgname=futo-notes pkgname=${_pkgname}-bin-pkgver=1.6.0+pkgver=1.6.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=('4d8522558ced82190b4b7e2d86d0955e4dc910d0fbb8eb2f01eed7cacd4f94ef')-sha256sums_x86_64=('1ac975d9e467772777d311f5d671a507c796a886cd9abfd3656bef7917e2fdfd')+sha256sums_x86_64=('4f4ed5804c2410502b11735dbe2fb7547266e75e82dd7054c9596ab94a920a96') prepare() { chmod +x "${_appimage}"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 09:37:42 | MEDIUM | 1 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |