@@ -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
321339}
322340
323341ensure_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}
478497Architecture: ${deb_arch}
479498Maintainer: Moonfin Team <support@moonfin.dev>
480499Installed-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
482501Description: 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
729748app-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
734753command: moonfin
735754
0 commit comments