--- app-id: dev.lizardbyte.sunshine runtime: org.freedesktop.Platform runtime-version: "21.08" sdk: org.freedesktop.Sdk command: sunshine separate-locales: false finish-args: - --device=all # access all devices - --env=PULSE_PROP_media.category=Manager # allow sunshine to manage audio sinks - --filesystem=home # need to save files in user's home directory - --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=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: - name: boost disabled: false buildsystem: simple build-commands: - cd tools/build && bison -y -d -o src/engine/jamgram.cpp src/engine/jamgram.y - ./bootstrap.sh --prefix=$FLATPAK_DEST --with-libraries=system,thread,log || cat bootstrap.log - ./b2 install variant=release link=static,shared runtime-link=shared cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" -j $FLATPAK_BUILDER_N_JOBS sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/main/b/boost1.74/boost1.74_1.74.0.orig.tar.xz sha256: 2467be4af625b5ae4b3c93fc7af196a09eba39c11a7338cd9e8b356fa44d2f45 - name: ffmpeg disabled: false config-opts: - --enable-gpl - --disable-static - --enable-shared - --disable-doc - --disable-programs - --disable-decoders - --disable-vdpau - --disable-audiotoolbox - --disable-videotoolbox - --disable-vulkan - --disable-sdl2 - --disable-filters - --disable-avfilter - --disable-postproc - --disable-autodetect - --enable-nvenc - --enable-ffnvcodec - --enable-vaapi - --enable-libx264 - --enable-libx265 cleanup: - /share sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/universe/f/ffmpeg/ffmpeg_5.1.1.orig.tar.xz sha256: 95bf3ff8c496511e71e958fb249e663c8c9c3de583c5bebc0f5a9745abbc0435 modules: - name: x264 config-opts: - --disable-cli - --enable-shared sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/universe/x/x264/x264_0.164.3095+gitbaee400.orig.tar.gz sha256: 8b237e94b08c196a1da22f2f25875f10be4cff3648df4eeff21e00da8f683fc2 - name: x265 disabled: false buildsystem: cmake-ninja builddir: true subdir: source config-opts: - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DENABLE_CLI=OFF sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/universe/x/x265/x265_3.5.orig.tar.gz sha256: e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8 - name: nv-codec-headers no-autogen: true make-install-args: - PREFIX=${FLATPAK_DEST} cleanup: - '*' sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/universe/n/nv-codec-headers/nv-codec-headers_11.1.5.1.orig.tar.gz sha256: d095fbd56aa93772471a323be0ebe65504a0f43f06c76a30b6d25da77b06ae9c - name: avahi disabled: false cleanup: - /bin - /lib/avahi - /share config-opts: - --with-distro=none - --disable-gobject - --disable-introspection - --disable-qt3 - --disable-qt4 - --disable-qt5 - --disable-gtk - --disable-core-docs - --disable-manpages - --disable-libdaemon - --disable-python - --disable-pygobject - --disable-mono - --disable-monodoc - --disable-autoipd - --disable-doxygen-doc - --disable-doxygen-dot - --disable-doxygen-xml - --disable-doxygen-html - --disable-manpages - --disable-xmltoman - --disable-libevent sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/main/a/avahi/avahi_0.8.orig.tar.gz sha256: 060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda - name: libevdev disabled: false buildsystem: meson config-opts: - -Ddocumentation=disabled - -Dtests=disabled cleanup: - /bin sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/main/libe/libevdev/libevdev_1.13.0+dfsg.orig.tar.xz sha256: a882e13ef1dd6bd227318080cabf60fe5af3c06471259d3acfc9dbfb202351a7 - name: cuda disabled: false buildsystem: simple only-arches: - x86_64 - aarch64 cleanup: - '*' build-commands: - chmod u+x ./cuda.run - ./cuda.run --silent --toolkit --toolkitpath=$FLATPAK_DEST/cuda --no-opengl-libs --no-man-page --no-drm --tmpdir=$FLATPAK_BUILDER_BUILDDIR - rm -r $FLATPAK_DEST/cuda/nsight-systems-2021.3.2 - rm ./cuda.run sources: - type: file only-arches: - x86_64 url: https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run sha256: bbd87ca0e913f837454a796367473513cddef555082e4d86ed9a38659cc81f0a dest-filename: cuda.run - type: file only-arches: - aarch64 url: https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux_sbsa.run # yamllint disable-line rule:line-length sha256: f2c4a52e06329606c8dfb7c5ea3f4cb4c0b28f9d3fdffeeb734fcc98daf580d8 dest-filename: cuda.run - name: sunshine disabled: false buildsystem: cmake no-make-install: false builddir: true build-options: cxxflags: -I${C_INCLUDE_PATH}/libevdev-1.0 config-opts: - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX=/app - -DCMAKE_CUDA_COMPILER=/app/cuda/bin/nvcc - -DSUNSHINE_ASSETS_DIR=share/sunshine - -DSUNSHINE_EXECUTABLE_PATH=/app/bin/sunshine - -DSUNSHINE_ENABLE_WAYLAND=ON - -DSUNSHINE_ENABLE_X11=ON - -DSUNSHINE_ENABLE_DRM=ON - -DSUNSHINE_ENABLE_CUDA=ON - -DSUNSHINE_CONFIGURE_FLATPAK=ON sources: - type: git url: '@GITHUB_CLONE_URL@' branch: '@GITHUB_BRANCH@' commit: '@GITHUB_COMMIT@' post-install: # use `sed` to update apps.json with prefixes required for flatpak # -r (regex) # -z (handle new lines) https://linuxhint.com/sed-replace-newline-with-space # `/gm` global and multiline - sed -r -z -i -e 's/("((do)|(undo)|(cmd)|(detached))"\s*:\s*\[?\n*\s*")(.*")/\1flatpak-spawn --host \7/gm' /app/share/sunshine/apps.json