moonfin
LOW
maintainer max2000
0 votes
scanned 2026-11-03 18:05:30.002521
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>
2
pkgname=moonfin
3
pkgver=3.0.0
4
pkgrel=1
5
pkgdesc='Jellyfin & Emby media client for Linux. Use this package for non-systemd distros'
6
arch=('x86_64')
7
url='https://github.com/Moonfin-Client/Moonfin-Core'
8
license=('GPL-2.0-or-later')
9
depends=('gtk3' 'glib2' 'libsecret' 'webkit2gtk-4.1' 'mpv' 'libepoxy'
10
'alsa-lib' 'libarchive' 'harfbuzz-icu' 'xdg-user-dirs')
11
makedepends=('git' 'clang' 'cmake' 'ninja' 'pkgconf' 'curl' 'unzip' 'xz' 'which')
12
conflicts=('moonfin-bin')
13
options=('!strip' '!debug')
14
_flutter_min=3.47.0
15
_flutter_pin=3.47.2
16
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/${pkgver}.tar.gz")
17
sha256sums=('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
59
prepare() {
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
69
build() {
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
87
package() {
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]
108
Type=Application
109
Name=Moonfin
110
Exec=moonfin %U
111
Icon=org.moonfin.linux
112
Categories=AudioVideo;Video;
113
Comment=Jellyfin & Emby media client
114
Terminal=false
115
StartupWMClass=org.moonfin.linux
116
MimeType=x-scheme-handler/moonfin;
117
EOF
118
119
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
120
}
121
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-03 18:05:30 | Low | 2 |