Name: fladder Version: 0.11.1 Release: 1%{?dist} Summary: A cross-platform Jellyfin Frontend built on top of Flutter. License: GPL-3.0-only URL: https://github.com/DonutWare/Fladder Source0: fladder-%{version}.tar.zst BuildRequires: ImageMagick BuildRequires: ninja-build BuildRequires: patchelf BuildRequires: cmake BuildRequires: clang BuildRequires: curl BuildRequires: git BuildRequires: tar BuildRequires: xz BuildRequires: pkgconfig(mimalloc) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(mpv) Requires: gtk3 Requires: mpv %description Fladder is a modern, cross-platform Jellyfin client built with Flutter. Connect to your self-hosted Jellyfin server and enjoy your personal media library with a clean, responsive interface on any device. Playback: - Stream movies, TV shows, music, and more directly from your Jellyfin server - Direct play, transcoding, and offline (synced) playback support - Hardware-accelerated video playback - Media segment skipping (intro, credits, recap, and more) - Trickplay support for timeline scrubbing thumbnails - Background audio playback Library & Metadata: - Browse and search your entire media library - Manage metadata and artwork directly from the app - Jellyseerr / Overseerr integration for requesting new content - Server management tools (scan libraries, restart server, etc.) Multi-user & Profiles: - Add multiple user profiles or connect to different servers - Per-user app-lock with biometrics or passcode support - Sync watch progress and favorites across devices Offline Support: - Download movies and episodes for offline viewing - Keep playback progress synced when back online - Manage synced items from within the app Customization & UI: - Adaptive layout for phones, tablets, TV, and desktop - Dark and light mode with multiple color styles - Configurable home screen and dashboard - Keyboard shortcut support Other Features: - Comic book reader (CBZ / CBR formats) - Android TV / leanback support - Next-up overview when watching a queue - Background update notifications Fladder requires a running Jellyfin server to connect to. It does not include any media content of its own. %prep %autosetup -p1 -n Fladder-%{version} %build curl "$(cat flutter-download-url.txt)" -o flutter-sdk.tar.xz tar -xvf flutter-sdk.tar.xz PATH="./flutter/bin:$PATH" flutter pub get PATH="./flutter/bin:$PATH" flutter build linux --release # FIX RPATH for lib in "build/linux/x64/release/bundle"/*.so; do [[ -f "$lib" && -n "$(patchelf --print-rpath "$lib")" ]] && \ patchelf --set-rpath '$ORIGIN' "$lib" done patchelf --set-rpath '$ORIGIN/lib' "build/linux/x64/release/bundle/fladder" %install mkdir -p %{buildroot}{%_datadir}fladder mkdir -p %{buildroot}{%_datadir}fladder/data mkdir -p %{buildroot}{%_datadir}fladder/lib mkdir -p %{buildroot}%{_bindir} install -Dm755 build/linux/x64/release/bundle/fladder \ %{buildroot}{%_datadir}/fladder/fladder install -Dm644 build/linux/x64/release/bundle/lib/* \ %{buildroot}{%_datadir}/fladder/lib cp -r build/linux/x64/release/bundle/data/* \ %{buildroot}{%_datadir}/fladder/data/ ln -s {%buildroot}{%_datadir}/fladder/fladder \ %{buildroot}%{_bindir}/fladder install -Dm644 flatpak/Fladder.desktop \ %{buildroot}{%_datadir}/applications/nl.jknaapen.fladder.desktop install -Dm644 "icons/fladder_icon.svg" \ %{buildroot}/%{_datadir}/icons/hicolor/scalable/apps/nl.jknaapen.fladder.svg for size in 128 256 512 ; do magick -background none icons/fladder_icon.svg -resize "${size}x${size}" "icons/${size}x${size}.png" install -Dm644 "icons/${size}x${size}.png" \ "%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/nl.jknaapen.fladder.png done %files %license LICENSE %doc README.md %{_datadir}/fladder/fladder %{_datadir}/fladder/data/* %{_datadir}/fladder/lib/* %{_bindir}/fladder %{_datadir}/applications/nl.jknaapen.fladder.desktop %{_datadir}/icons/hicolor/*/apps/nl.jknaapen.fladder.* %changelog * Mon Oct 12 2026 Shane C. - 0.11.1-1 - Initial Fedora Release