Skip to content

Commit 4fd4fe5

Browse files
updated Linux build configuration and dependencies for compatibility
1 parent 9913aa2 commit 4fd4fe5

2 files changed

Lines changed: 32 additions & 13 deletions

File tree

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ jobs:
215215
# Linux packages
216216
linux:
217217
if: ${{ github.event_name != 'workflow_dispatch' || inputs.run_all || inputs.linux }}
218-
runs-on: ubuntu-24.04
218+
runs-on: ubuntu-22.04
219219
steps:
220220
- uses: actions/checkout@v4
221221

build-linux.sh

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,24 @@ resolve_shared_lib() {
9292

9393
# Prefer distro packages to avoid /usr/local builds that dpkg-query cannot map.
9494
if command -v dpkg-query >/dev/null 2>&1; then
95-
local dpkg_pkg
95+
local pkg_candidates=()
9696
case "$soname" in
97-
libmpv.so.2) dpkg_pkg="libmpv2" ;;
98-
libsecret-1.so.0) dpkg_pkg="libsecret-1-0" ;;
97+
# Prefer libmpv2 where available; keep libmpv1 as distro compatibility fallback.
98+
libmpv.so.2) pkg_candidates=("libmpv2" "libmpv1") ;;
99+
libsecret-1.so.0) pkg_candidates=("libsecret-1-0") ;;
100+
libwebkit2gtk-4.1.so.0) pkg_candidates=("libwebkit2gtk-4.1-0") ;;
101+
libwebkit2gtk-4.0.so.37) pkg_candidates=("libwebkit2gtk-4.0-37") ;;
99102
esac
100-
if [ -n "$dpkg_pkg" ]; then
103+
104+
local dpkg_pkg
105+
for dpkg_pkg in "${pkg_candidates[@]:-}"; do
101106
local pkg_path
102107
pkg_path="$(dpkg-query -L "$dpkg_pkg" 2>/dev/null | awk -v s="$soname" 'index($0, "/" s) {print; exit}')"
103108
if [ -n "$pkg_path" ] && [ -f "$pkg_path" ]; then
104109
printf '%s\n' "$pkg_path"
105110
return 0
106111
fi
107-
fi
112+
done
108113
fi
109114

110115
if command -v ldconfig >/dev/null 2>&1; then
@@ -144,7 +149,7 @@ runtime_seed_libs() {
144149

145150
local libmpv_path
146151
if ! libmpv_path="$(resolve_shared_lib libmpv.so.2)"; then
147-
echo "Error: could not resolve libmpv.so.2. Install libmpv2 on the build host." >&2
152+
echo "Error: could not resolve libmpv.so.2. Install libmpv2 (preferred) or libmpv1 compatibility package on the build host." >&2
148153
return 1
149154
fi
150155
seed_libs="$libmpv_path"
@@ -156,6 +161,19 @@ runtime_seed_libs() {
156161
fi
157162
seed_libs="$seed_libs"$'\n'"$libsecret_path"
158163

164+
local webkit_path=""
165+
local webkit_soname
166+
for webkit_soname in libwebkit2gtk-4.1.so.0 libwebkit2gtk-4.0.so.37; do
167+
if webkit_path="$(resolve_shared_lib "$webkit_soname")"; then
168+
break
169+
fi
170+
done
171+
if [ -z "$webkit_path" ]; then
172+
echo "Error: could not resolve WebKitGTK runtime library (4.1 or 4.0). Install libwebkit2gtk-4.1-0 or libwebkit2gtk-4.0-37 on the build host." >&2
173+
return 1
174+
fi
175+
seed_libs="$seed_libs"$'\n'"$webkit_path"
176+
159177
printf '%s\n' "$seed_libs" | grep -v '^$' || true
160178
}
161179

@@ -321,8 +339,9 @@ EOF
321339
}
322340

323341
ensure_flatpak_runtime() {
324-
local runtime="org.freedesktop.Platform//24.08"
325-
local sdk="org.freedesktop.Sdk//24.08"
342+
# GNOME runtime includes WebKitGTK required by linux webview plugin.
343+
local runtime="org.gnome.Platform//47"
344+
local sdk="org.gnome.Sdk//47"
326345

327346
if flatpak info --user "$runtime" >/dev/null 2>&1 && flatpak info --user "$sdk" >/dev/null 2>&1; then
328347
return 0
@@ -478,7 +497,7 @@ Version: ${version}
478497
Architecture: ${deb_arch}
479498
Maintainer: Moonfin Team <support@moonfin.dev>
480499
Installed-Size: $(du -sk "$pkg_root/usr" | cut -f1)
481-
Depends: libgtk-3-0, libglib2.0-0, libmpv2, libsecret-1-0, libwebkit2gtk-4.1-0
500+
Depends: libgtk-3-0, libglib2.0-0, libmpv2 | libmpv1, libsecret-1-0, libwebkit2gtk-4.1-0
482501
Description: Jellyfin & Emby media client
483502
Moonfin is a media client for Jellyfin and Emby servers,
484503
available on mobile, TV, and desktop platforms.
@@ -727,9 +746,9 @@ build_flatpak() {
727746

728747
cat > "$flatpak_dir/${APP_ID}.yml" << EOF
729748
app-id: ${APP_ID}
730-
runtime: org.freedesktop.Platform
731-
runtime-version: '24.08'
732-
sdk: org.freedesktop.Sdk
749+
runtime: org.gnome.Platform
750+
runtime-version: '47'
751+
sdk: org.gnome.Sdk
733752
734753
command: moonfin
735754

0 commit comments

Comments
 (0)