# (C) 2025-2026 MWBM Partners Ltd # # MeedyaManager — Flatpak Manifest # # Builds MeedyaManager as a Flatpak application targeting Flathub. # # Prerequisites on the build host: # flatpak install flathub org.gnome.Platform//47 org.gnome.Sdk//47 # flatpak install flathub org.freedesktop.Sdk.Extension.rust-stable//24.08 # flatpak-builder build-dir ltd.MWBMpartners.MeedyaManager.yaml --install --user # # Runtime: GNOME 47 (includes GTK4 + libadwaita 1.5) app-id: ltd.MWBMpartners.MeedyaManager runtime: org.gnome.Platform runtime-version: "47" sdk: org.gnome.Sdk sdk-extensions: # The Rust stable toolchain extension for flatpak-builder - org.freedesktop.Sdk.Extension.rust-stable # Main executable within the Flatpak sandbox command: mm-gtk # Finish args — permissions granted to the sandboxed application finish-args: # Access to the user's home directory (read media files) - --filesystem=home # Wayland display protocol - --socket=wayland # X11 fallback (for non-Wayland sessions) - --socket=x11 # GPU / hardware acceleration via DRI - --device=dri # Outbound network access (metadata provider lookups + update check) - --share=network # IPC shared memory (required by GTK4) - --share=ipc # D-Bus session bus (for GNOME integration) - --socket=session-dbus # Secret service (for API key storage via keyring) - --talk-name=org.freedesktop.secrets build-options: # Prepend the Rust toolchain to PATH for cargo commands prepend-path: /usr/lib/sdk/rust-stable/bin env: # Cargo home within the Flatpak build environment CARGO_HOME: /run/build/mm-gtk/cargo # Enable offline mode after sources are fetched CARGO_NET_OFFLINE: "true" modules: # --------------------------------------------------------------------------- # Module: MeedyaManager (Rust / GTK4 binary) # --------------------------------------------------------------------------- - name: mm-gtk buildsystem: simple build-commands: # Build only the GTK4 frontend (mm-gtk crate) in release mode - cargo build --release -p mm-gtk # Install the binary into the Flatpak prefix - install -Dm755 target/release/mm-gtk ${FLATPAK_DEST}/bin/mm-gtk # Install the CLI binary as well - install -Dm755 target/release/mm-cli ${FLATPAK_DEST}/bin/mm-cli 2>/dev/null || true sources: # Clone from the canonical GitHub repository. # Pin to the exact release tag for reproducible Flathub builds. - type: git url: https://github.com/MWBMPartners/MeedyaManager.git tag: v1.0.0 commit: placeholder-pin-to-actual-commit-sha # Cargo vendor archive (generated by `cargo vendor` + `cargo2flatpak`). # This satisfies Flathub's offline build requirement. # Regenerate with: cargo vendor vendor && tar czf vendor.tar.gz vendor/ - type: archive url: https://github.com/MWBMPartners/MeedyaManager/releases/download/v1.0.0/vendor.tar.gz sha256: placeholder-sha256-update-before-submission dest: vendor # Cargo config that redirects registry to the local vendor directory - type: inline contents: | [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" dest-filename: .cargo/config.toml # --------------------------------------------------------------------------- # Desktop integration files # --------------------------------------------------------------------------- - name: desktop-integration buildsystem: simple build-commands: # Install .desktop file for application launchers - install -Dm644 linux/flatpak/ltd.MWBMpartners.MeedyaManager.desktop ${FLATPAK_DEST}/share/applications/ltd.MWBMpartners.MeedyaManager.desktop # Install AppStream metadata for Flathub listing - install -Dm644 linux/flatpak/ltd.MWBMpartners.MeedyaManager.metainfo.xml ${FLATPAK_DEST}/share/metainfo/ltd.MWBMpartners.MeedyaManager.metainfo.xml # Install application icon set (SVG + PNG sizes) - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ltd.MWBMpartners.MeedyaManager.svg - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-16.png ${FLATPAK_DEST}/share/icons/hicolor/16x16/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-24.png ${FLATPAK_DEST}/share/icons/hicolor/24x24/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-32.png ${FLATPAK_DEST}/share/icons/hicolor/32x32/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-48.png ${FLATPAK_DEST}/share/icons/hicolor/48x48/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-64.png ${FLATPAK_DEST}/share/icons/hicolor/64x64/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-96.png ${FLATPAK_DEST}/share/icons/hicolor/96x96/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-128.png ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-256.png ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps/ltd.MWBMpartners.MeedyaManager.png - install -Dm644 linux/flatpak/icons/ltd.MWBMpartners.MeedyaManager-512.png ${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/ltd.MWBMpartners.MeedyaManager.png # Install GPL-2.0-or-later licence — required by the GPL to accompany binaries - install -Dm644 LICENSE ${FLATPAK_DEST}/share/licenses/ltd.MWBMpartners.MeedyaManager/LICENSE sources: - type: git url: https://github.com/MWBMPartners/MeedyaManager.git tag: v1.0.0 commit: placeholder-pin-to-actual-commit-sha