moonfin

LOW
maintainer max2000 0 votes scanned 2026-11-03 18:05:30.002521
View on AUR
Why flagged

The package builds from a legitimate project source on GitHub, uses a pinned Flutter version, and includes standard AUR build practices; 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 a legitimate project source on GitHub, uses a pinned Flutter version, and includes standard AUR build practices; the low severity is due to few votes and recent upload, not malicious content.

PKGBUILD

1# Maintainer: Matthew Anderson <mpa.business@pm.me>
2pkgname=moonfin
3pkgver=3.0.0
4pkgrel=1
5pkgdesc='Jellyfin & Emby media client for Linux. Use this package for non-systemd distros'
6arch=('x86_64')
7url='https://github.com/Moonfin-Client/Moonfin-Core'
8license=('GPL-2.0-or-later')
9depends=('gtk3' 'glib2' 'libsecret' 'webkit2gtk-4.1' 'mpv' 'libepoxy'
10 'alsa-lib' 'libarchive' 'harfbuzz-icu' 'xdg-user-dirs')
11makedepends=('git' 'clang' 'cmake' 'ninja' 'pkgconf' 'curl' 'unzip' 'xz' 'which')
12conflicts=('moonfin-bin')
13options=('!strip' '!debug')
14_flutter_min=3.47.0
15_flutter_pin=3.47.2
16source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/${pkgver}.tar.gz")
17sha256sums=('3ed47f17b824898390f675acdbfec1ab792100b150ef7d15327ef6e2d064f986')
18
19_find_flutter() {
20 local c v
21 for c in \
22 "${FLUTTER_BIN:-}" \
23 "$(command -v flutter 2>/dev/null)" \
24 "${FVM_CACHE_PATH:+${FVM_CACHE_PATH}/default/bin/flutter}" \
25 "${FVM_HOME:+${FVM_HOME}/default/bin/flutter}" \
26 "${HOME}/fvm/default/bin/flutter" \
27 "${HOME}/.fvm/default/bin/flutter"; do
28 [[ -n "$c" && -x "$c" ]] || continue
29 v="$("$c" --version 2>/dev/null | sed -n 's/^Flutter \([0-9][0-9.]*\).*/\1/p' | head -n1)"
30 [[ -n "$v" ]] || continue
31 (($(vercmp "$v" "${_flutter_min}") >= 0)) || continue
32 printf '%s\n' "$c"
33 return 0
34 done
35 return 1
36}
37
38_env() {
39 local bin
40 if bin="$(_find_flutter)"; then
41 :
42 elif [[ -x "${srcdir}/flutter/bin/flutter" ]]; then
43 bin="${srcdir}/flutter/bin/flutter"
44 else
45 echo "error: no usable Flutter found" >&2
46 return 1
47 fi
48
49 unset FLUTTER_ROOT
50 export PATH="$(dirname "${bin}"):${PATH}"
51 export PUB_CACHE="${srcdir}/pub-cache"
52 export XDG_CONFIG_HOME="${srcdir}/config"
53 export FLUTTER_SUPPRESS_ANALYTICS=true
54 export CI=true
55
56 echo "==> Using Flutter: ${bin}"
57}
58
59prepare() {
60 if _find_flutter >/dev/null; then
61 echo "==> Found existing Flutter, not downloading one"
62 return 0
63 fi
64 echo "==> No Flutter >= ${_flutter_min} found, cloning ${_flutter_pin}"
65 [[ -d "${srcdir}/flutter" ]] || git clone --depth 1 --branch "${_flutter_pin}" \
66 https://github.com/flutter/flutter.git "${srcdir}/flutter"
67}
68
69build() {
70 _env || return 1
71 cd "${srcdir}/Moonfin-Core-${pkgver}"
72 flutter pub get
73 local attempt
74 for attempt in 1 2 3; do
75 if flutter build linux --release --dart-define=DISTRIBUTION_CHANNEL=linux_aur; then
76 break
77 fi
78 if [[ ${attempt} -eq 3 ]]; then
79 return 1
80 fi
81 echo "==> flutter build failed (attempt ${attempt}/3), purging pdfium cache and retrying" >&2
82 rm -rf build/linux/*/release/pdfium build/linux/*/release/.lib/*
83 sleep $((attempt * 10))
84 done
85}
86
87package() {
88 cd "${srcdir}/Moonfin-Core-${pkgver}"
89 local bundle=build/linux/x64/release/bundle
90
91 install -dm755 "${pkgdir}/usr/lib/moonfin"
92 cp -a "${bundle}/." "${pkgdir}/usr/lib/moonfin/"
93 chmod 755 "${pkgdir}/usr/lib/moonfin/moonfin"
94
95 install -dm755 "${pkgdir}/usr/bin"
96 printf '%s\n' '#!/bin/sh' 'exec /usr/lib/moonfin/moonfin "$@"' \
97 >"${pkgdir}/usr/bin/moonfin"
98 chmod 755 "${pkgdir}/usr/bin/moonfin"
99
100 install -Dm644 assets/icons/moonfin.png \
101 "${pkgdir}/usr/share/icons/hicolor/512x512/apps/org.moonfin.linux.png"
102 install -Dm644 assets/icons/moonfin.png \
103 "${pkgdir}/usr/share/pixmaps/org.moonfin.linux.png"
104
105 install -Dm644 /dev/stdin \
106 "${pkgdir}/usr/share/applications/org.moonfin.linux.desktop" <<EOF
107[Desktop Entry]
108Type=Application
109Name=Moonfin
110Exec=moonfin %U
111Icon=org.moonfin.linux
112Categories=AudioVideo;Video;
113Comment=Jellyfin & Emby media client
114Terminal=false
115StartupWMClass=org.moonfin.linux
116MimeType=x-scheme-handler/moonfin;
117EOF
118
119 install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
120}
121

Scan history

Scanned at (UTC)SeverityRules
2026-11-03 18:05:30 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