# Flatpak manifest for OpenMods Manager. # # Why the GNOME 46 runtime: it's the last GNOME runtime that ships # libwebkit2gtk-4.1 (which Photino dynamically links to). GNOME 47+ replaced # it with libwebkitgtk-6.0 (incompatible API rename). When Photino moves to # 6.0, we can bump this. # # Why no SDK extension: we build the .NET binary on the GitHub Actions # runner (via actions/setup-dotnet) BEFORE running flatpak-builder, then # bundle the pre-built `publish/linux-x64/` tree as a `type: dir` source. # That keeps the manifest small, the flatpak build offline (no NuGet inside # the sandbox), and Flathub-submission-friendly later on. # # The manifest itself lives in flatpak/ but the source paths reference `..` # because flatpak-builder is invoked from the repo root. app-id: net.openmods.manager runtime: org.gnome.Platform runtime-version: '46' sdk: org.gnome.Sdk command: openmodsmanager finish-args: # Display - --socket=wayland - --socket=fallback-x11 - --share=ipc - --device=dri # Network for HTTPS calls (openmods.net) and the loopback listener used by # the browser-based login flow (BrowserLoginService binds 127.0.0.1:). - --share=network # Audio — webkit2gtk probes for it during init even when we don't play sound. - --socket=pulseaudio # Game install paths can live anywhere under the user home (Steam libraries, # custom dirs, etc.). The user picks the folder via the native picker. - --filesystem=host # Allow opening URLs in the system browser (for "Login from browser") and # opening folders in the file manager. - --talk-name=org.freedesktop.portal.OpenURI - --talk-name=org.freedesktop.portal.FileChooser - --talk-name=org.freedesktop.portal.Documents # Future: notification support for download completion. - --talk-name=org.freedesktop.Notifications # Register the openmodsmanager:// URI scheme. - --own-name=net.openmods.manager modules: - name: openmodsmanager buildsystem: simple sources: # The pre-built .NET self-contained tree (produced by the CI step that # runs `dotnet publish -r linux-x64 --self-contained` before flatpak-builder). - type: dir path: ../publish/linux-x64 dest: dotnet-app # Flatpak-managed assets that live alongside this manifest. - type: file path: net.openmods.manager.desktop - type: file path: net.openmods.manager.metainfo.xml - type: file path: openmodsmanager-wrapper.sh # App icon. Resized to 256x256 by the CI step before flatpak-builder # runs — the source logo (1100x1100) exceeds Flatpak's 512x512 icon cap. # icon-256.png is .gitignored; generate locally via: # convert OpenMods.Manager/wwwroot/img/logo.png -resize 256x256 flatpak/icon-256.png - type: file path: icon-256.png dest-filename: app-icon.png build-commands: # The .NET payload goes under /app/lib (opaque app data — not on PATH). - install -d /app/lib/openmodsmanager - cp -a dotnet-app/. /app/lib/openmodsmanager/ - chmod +x /app/lib/openmodsmanager/OpenModsManager # Wrapper script becomes the actual `openmodsmanager` command on PATH. - install -Dm 755 openmodsmanager-wrapper.sh /app/bin/openmodsmanager # Desktop entry, AppStream metainfo, icon — at the standard XDG paths # so the desktop / app menu / Discover pick them up automatically. - install -Dm 644 net.openmods.manager.desktop -t /app/share/applications/ - install -Dm 644 net.openmods.manager.metainfo.xml -t /app/share/metainfo/ - install -Dm 644 app-icon.png /app/share/icons/hicolor/256x256/apps/net.openmods.manager.png