--- app-id: "@PROJECT_FQDN@" runtime: org.kde.Platform runtime-version: "6.10" sdk: org.kde.Sdk add-build-extensions: org.freedesktop.Sdk.Extension.node20: directory: lib/sdk/node20 version: "25.08" no-autodownload: true autodelete: false command: sunshine separate-locales: false finish-args: - --device=all # access all devices - --env=PULSE_PROP_media.category=Manager # allow sunshine to manage audio sinks - --env=SUNSHINE_MIGRATE_CONFIG=1 # migrate config files to the new location - --filesystem=home # need to save files in user's home directory - --filesystem=xdg-run/pipewire-0 # required for XDG portal grab audio - --share=ipc # required for X11 shared memory extension - --share=network # access network - --socket=pulseaudio # play sounds using pulseaudio - --socket=wayland # show windows using Wayland - --socket=fallback-x11 # show windows using X11 - --system-talk-name=org.freedesktop.Avahi # talk to avahi on the system bus - --talk-name=org.freedesktop.Flatpak # talk to flatpak on the session bus cleanup: - /include - /lib/cmake - /lib/pkgconfig - /lib/*.la - /lib/*.a - /share/man modules: # Test dependencies - "modules/xvfb/xvfb.json" # Build dependencies - "modules/nlohmann_json.json" # Runtime dependencies - "modules/avahi.json" - "modules/boost.json" - "modules/libevdev.json" - "modules/miniupnpc.json" - "modules/numactl.json" # Caching is configured until here, not including CUDA, since it is too large for GitHub cache - "modules/cuda.json" # FFmpeg prebuilt binaries - "modules/ffmpeg.json" # Python PyPI build-time dependencies (e.g. jinja2 for glad generator). # glad-dependencies.json is generated from uv.lock at CI time by flatpak-pip-generator # and placed alongside the manifest in the build directory. - "glad-dependencies.json" - name: sunshine builddir: true build-options: append-path: /usr/lib/sdk/node20/bin env: BUILD_VERSION: "@BUILD_VERSION@" BRANCH: "@GITHUB_BRANCH@" COMMIT: "@GITHUB_COMMIT@" XDG_CACHE_HOME: /run/build/sunshine/flatpak-node/cache npm_config_cache: /run/build/sunshine/flatpak-node/npm-cache npm_config_nodedir: /usr/lib/sdk/node20 npm_config_offline: 'true' NPM_CONFIG_LOGLEVEL: info buildsystem: cmake-ninja config-opts: - -DBOOST_USE_STATIC=OFF - -DBUILD_DOCS=OFF - -DBUILD_WERROR=ON - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CUDA_COMPILER=/app/cuda/bin/nvcc - -DFFMPEG_PREPARED_BINARIES=/app/ffmpeg - -DGLAD_SKIP_PIP_INSTALL=ON - -DSUNSHINE_ASSETS_DIR=share/sunshine - -DSUNSHINE_BUILD_FLATPAK=ON - -DSUNSHINE_ENABLE_CUDA=ON - -DSUNSHINE_ENABLE_DRM=ON - -DSUNSHINE_ENABLE_KWIN=ON - -DSUNSHINE_ENABLE_PORTAL=ON - -DSUNSHINE_ENABLE_WAYLAND=ON - -DSUNSHINE_ENABLE_X11=ON - -DSUNSHINE_EXECUTABLE_PATH=/app/bin/sunshine - -DSUNSHINE_PUBLISHER_NAME='LizardByte' - -DSUNSHINE_PUBLISHER_WEBSITE='https://app.lizardbyte.dev' - -DSUNSHINE_PUBLISHER_ISSUE_URL='https://app.lizardbyte.dev/support' no-make-install: false post-install: - install -D $FLATPAK_BUILDER_BUILDDIR/packaging/linux/flatpak/scripts/* /app/bin - install -D $FLATPAK_BUILDER_BUILDDIR/packaging/linux/flatpak/apps.json /app/share/sunshine/apps.json run-tests: true test-rule: "" # empty to disable test-commands: - npm run serve & xvfb-run tests/test_sunshine --gtest_color=yes sources: - generated-sources.json - type: git url: "@GITHUB_CLONE_URL@" commit: "@GITHUB_COMMIT@" - type: file path: package-lock.json