# Flatpak manifest for DLSS Updater # This manifest wraps the PyInstaller-built Linux application # # Build process: # 1. Build with PyInstaller: uv run pyinstaller DLSS_Updater_Linux.spec # 2. Run flatpak-builder with this manifest # # Local build (WSL2): # ./build_flatpak.sh # # Or manually: # uv run pyinstaller DLSS_Updater_Linux.spec --distpath dist --workpath build/pyinstaller # flatpak-builder --user --force-clean --build-only build-dir io.github.recol.dlss-updater.yml # flatpak build-export repo build-dir # flatpak build-bundle repo DLSS_Updater.flatpak io.github.recol.dlss-updater app-id: io.github.recol.dlss-updater runtime: org.freedesktop.Platform runtime-version: "25.08" sdk: org.freedesktop.Sdk command: dlss-updater finish-args: # Display & Graphics (required for Flutter UI) - --socket=wayland - --socket=fallback-x11 - --device=dri - --share=ipc # Network (for DLSS update checks and downloads) - --share=network # Filesystem - broad coverage for game directories # Read-only access to detect and scan game installations - --filesystem=home:rw - --filesystem=/mnt:rw - --filesystem=/media:rw - --filesystem=/run/media:rw # Read-write access for app config, cache, and data - --filesystem=xdg-config/DLSS-Updater:rw - --filesystem=xdg-cache/DLSS-Updater:rw - --filesystem=~/.local/share/dlss-updater:create # Flet framework cache directory (required for Flet to initialize) - --filesystem=~/.flet:create # Portal support - --talk-name=org.freedesktop.portal.FileChooser # Secret service for flutter_secure_storage (used by Flet) - --talk-name=org.freedesktop.secrets # Environment: Ensure Flet's downloaded client can find libsecret - --env=LD_LIBRARY_PATH=/app/lib64:/app/lib # Keep the free-threaded Python 3.14 GIL disabled at runtime even if a # bundled C extension (currently msgpack 1.1.2) hasn't declared Py_MOD_GIL_NOT_USED. # The PyInstaller spec also passes -X gil=0 at the bootloader level; this env var # is defense-in-depth and propagates to any child processes spawned by the app. - --env=PYTHON_GIL=0 modules: # libsecret - required by Flet's flutter_secure_storage # org.freedesktop.Platform does not include libsecret, so we build it - name: libsecret buildsystem: meson config-opts: - -Dmanpage=false - -Dvapi=false - -Dgtk_doc=false - -Dintrospection=false cleanup: - /bin - /include - /lib/pkgconfig - /share/man sources: - type: archive url: https://download.gnome.org/sources/libsecret/0.21/libsecret-0.21.4.tar.xz sha256: 163d08d783be6d4ab9a979ceb5a4fecbc1d9660d3c34168c581301cd53912b20 - name: dlss-updater buildsystem: simple build-commands: # Install the PyInstaller-built executable - install -Dm755 dist/DLSS_Updater /app/bin/dlss_updater # Create wrapper script for consistent naming # Set LD_LIBRARY_PATH so Flet's runtime-downloaded client can find libsecret - printf '#!/bin/bash\nexport LD_LIBRARY_PATH="/app/lib64:/app/lib:$LD_LIBRARY_PATH"\nexec /app/bin/dlss_updater "$@"\n' > /app/bin/dlss-updater - chmod +x /app/bin/dlss-updater # Install desktop integration files - install -Dm644 io.github.recol.dlss-updater.appdata.xml /app/share/metainfo/io.github.recol.dlss-updater.metainfo.xml # Convert CRLF to LF (Windows -> Unix line endings) and install desktop file - sed 's/\r$//' flatpak/io.github.recol.dlss-updater.desktop > /tmp/desktop.tmp && install -Dm644 /tmp/desktop.tmp /app/share/applications/io.github.recol.dlss-updater.desktop - install -Dm644 appimagex_png.png /app/share/icons/hicolor/256x256/apps/io.github.recol.dlss-updater.png sources: - type: dir path: .