diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cd8cfc03f43..115e0ad85db 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -98,9 +98,9 @@ jobs: submodules: recursive - name: Setup Dependencies Linux Flatpak + env: + PLATFORM_VERSION: "23.08" run: | - PLATFORM_VERSION=22.08 - sudo apt-get update -y sudo apt-get install -y \ cmake \ diff --git a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml b/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml index b4c7dbce98d..35e1baebf46 100644 --- a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml +++ b/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml @@ -1,10 +1,10 @@ --- app-id: "@PROJECT_FQDN@" runtime: org.freedesktop.Platform -runtime-version: "22.08" +runtime-version: "23.08" sdk: org.freedesktop.Sdk sdk-extensions: - - org.freedesktop.Sdk.Extension.node18 + - org.freedesktop.Sdk.Extension.node20 - org.freedesktop.Sdk.Extension.vala command: sunshine separate-locales: false @@ -34,227 +34,19 @@ build-options: prepend-ld-library-path: /usr/lib/sdk/vala/lib modules: + # Test dependencies - "modules/xvfb/xvfb.json" - - 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 - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/a/avahi/avahi_0.8-6ubuntu1.debian.tar.xz - sha256: ebf1dfe5e853b6bc6843e3bd784cb6af632041f305abd0e5415114f80c1dcea4 - - type: shell - commands: - - for n in $(cat patches/series); do if [[ $n != "#"* ]]; then patch -Np1 -i "patches/$n" -d .; fi; done - - autoreconf -ivf - - # yamllint disable-line rule:line-length - # https://github.com/flathub/org.localsend.localsend_app/blob/7465669c22a2a4fc35e707e1e4e7e882772adc0e/org.localsend.localsend_app.yml#L27-L106 - # https://github.com/flathub/app.vup.Vup/blob/8c5073c7c5b8f24805013abc85a0860ca2439396/app.vup.Vup.yaml#L30-L78 - - name: libayatana-appindicator - buildsystem: cmake-ninja - config-opts: - - -DENABLE_BINDINGS_MONO=NO - - -DENABLE_BINDINGS_VALA=NO - modules: - - shared-modules/intltool/intltool-0.51.json - - name: libdbusmenu-gtk3 # Dependency of libayatana-appindicator - buildsystem: autotools - build-options: - cflags: -Wno-error - env: - HAVE_VALGRIND_FALSE: '#' - HAVE_VALGRIND_TRUE: '' - config-opts: - - --with-gtk=3 - - --disable-dumper - - --disable-static - - --disable-tests - - --disable-gtk-doc - - --enable-introspection=no - - --disable-vala - sources: - - type: archive - url: https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz - sha256: b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a - cleanup: - - /include - - /libexec - - /lib/pkgconfig - - /lib/*.la - - /share/doc - - /share/libdbusmenu - - /share/gtk-doc - - /share/gir-1.0 - - name: ayatana-ido - buildsystem: cmake-ninja - sources: - - type: git - url: https://github.com/AyatanaIndicators/ayatana-ido.git - tag: 0.10.1 - commit: 13402a2cc4616b4b5f4244413599e635fcfc1401 - x-checker-data: - type: anitya - project-id: 18445 - tag-template: $version - stable-only: true - - name: libayatana-indicator - buildsystem: cmake-ninja - sources: - - type: git - url: https://github.com/AyatanaIndicators/libayatana-indicator.git - tag: 0.9.3 - commit: a62e8ca13040554a8fc2536ce7e6aa888c5729d9 - x-checker-data: - type: anitya - project-id: 18447 - tag-template: $version - stable-only: true - sources: - - type: git - url: https://github.com/AyatanaIndicators/libayatana-appindicator.git - tag: 0.5.92 - commit: d214fe3e7a6b1ba8faea68d70586310b34dc643c - x-checker-data: - type: anitya - project-id: 18446 - tag-template: $version - stable-only: true - - - 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 - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/libe/libevdev/libevdev_1.13.0+dfsg-1.debian.tar.xz - sha256: d33c56acbbfff2dc540e45c57a38d92210b5e7fd0947ac47fbe48183468aad74 - - type: shell - commands: - - for n in $(cat patches/series); do if [[ $n != "#"* ]]; then patch -Np1 -i "patches/$n" -d .; fi; done + # Runtime dependencies + - shared-modules/libappindicator/libappindicator-gtk3-12.10.json + - "modules/avahi.json" + - "modules/libevdev.json" + - "modules/libnotify.json" + - "modules/miniupnpc.json" + - "modules/numactl.json" # TODO: is this still needed? - - name: libnotify - buildsystem: meson - config-opts: - - -Dtests=false - - -Dintrospection=disabled - - -Dman=false - - -Dgtk_doc=false - - -Ddocbook_docs=disabled - sources: - - type: archive - url: https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.2.tar.xz - sha256: c5f4ed3d1f86e5b118c76415aacb861873ed3e6f0c6b3181b828cf584fc5c616 - x-checker-data: - type: gnome - name: libnotify - stable-only: true - - type: archive - url: https://download.gnome.org/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz - sha256: 22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf - x-checker-data: - type: gnome - name: gnome-common - stable-only: true - - - name: miniupnpc - buildsystem: cmake-ninja - config-opts: - - -DUPNPC_BUILD_SAMPLE=OFF - - -DUPNPC_BUILD_SHARED=ON - - -DUPNPC_BUILD_TESTS=OFF - sources: - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/m/miniupnpc/miniupnpc_2.2.5.orig.tar.gz - sha256: 38acd5f4602f7cf8bcdc1ec30b2d58db2e9912e5d9f5350dd99b06bfdffb517c - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/m/miniupnpc/miniupnpc_2.2.5-1.debian.tar.xz - sha256: f6ab181f3c999ae0630508ea1e6c76ae302262414061acaab12bf8763431ffd1 - - type: shell - commands: - - for n in $(cat patches/series); do if [[ $n != "#"* ]]; then patch -Np1 -i "patches/$n" -d .; fi; done - - - name: numactl - buildsystem: autotools - make-args: - - install - sources: - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/n/numactl/numactl_2.0.14.orig.tar.gz - sha256: 1ee27abd07ff6ba140aaf9bc6379b37825e54496e01d6f7343330cf1a4487035 - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/n/numactl/numactl_2.0.14-3ubuntu2.debian.tar.xz - sha256: 49089e5be5367f6367f8b0389d1d523944432607783b53f0605705792e1015ee - - type: shell - commands: - - for n in $(cat patches/series); do if [[ $n != "#"* ]]; then patch -Np1 -i "patches/$n" -d .; fi; done - cleanup: - - "/bin" - - # Caching is configured until here, not including CUDA - - 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-* - - rm ./cuda.run - sources: - - type: file - only-arches: - - x86_64 - url: https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run - sha256: 905e9b9516900839fb76064719db752439f38b8cb730b49335d8bd53ddfad392 - dest-filename: cuda.run - - type: file - only-arches: - - aarch64 - url: https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux_sbsa.run # yamllint disable-line rule:line-length - sha256: cd13e9c65d4c8f895a968706f46064d536be09f9706bce081cc864b7e4fa4544 - dest-filename: cuda.run + # Caching is configured until here, not including CUDA, since it is too large for GitHub cache + - "modules/cuda.json" - name: sunshine disabled: false @@ -262,7 +54,7 @@ modules: no-make-install: false builddir: true build-options: - append-path: /usr/lib/sdk/node18/bin + append-path: /usr/lib/sdk/node20/bin build-args: - --share=network test-args: diff --git a/packaging/linux/flatpak/modules/avahi.json b/packaging/linux/flatpak/modules/avahi.json new file mode 100644 index 00000000000..3e0998c7c4f --- /dev/null +++ b/packaging/linux/flatpak/modules/avahi.json @@ -0,0 +1,53 @@ +{ + "name": "avahi", + "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": "git", + "url": "https://salsa.debian.org/utopia-team/avahi.git", + "commit": "1412c015d348166d58ea9c192239b00769eae24e", + "tag": "debian/0.8-13", + "x-checker-data": { + "type": "git", + "tag-pattern": "^debian\\/(\\d.+)$", + "versions": { + "<": "0.9" + } + } + }, + { + "type": "shell", + "commands": [ + "autoreconf -ivf" + ] + } + ] +} diff --git a/packaging/linux/flatpak/modules/cuda.json b/packaging/linux/flatpak/modules/cuda.json new file mode 100644 index 00000000000..6bef3e1bd54 --- /dev/null +++ b/packaging/linux/flatpak/modules/cuda.json @@ -0,0 +1,74 @@ +{ + "name": "cuda", + "build-options": { + "no_debuginfo": true + }, + "buildsystem": "simple", + "cleanup": [ + "*" + ], + "build-commands": [ + "rm ./*/LICENSE", + "mkdir -p $FLATPAK_DEST/cuda", + "cp -r cuda_nvcc/* $FLATPAK_DEST/cuda", + "cp -r cuda_cudart/* $FLATPAK_DEST/cuda", + "cp -r libcurand/* $FLATPAK_DEST/cuda", + "mv $FLATPAK_DEST/cuda/lib $FLATPAK_DEST/cuda/lib64" + ], + "sources": [ + { + "type": "archive", + "only-arches": [ + "x86_64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-11.8.89-archive.tar.xz", + "sha256": "7ee8450dbcc16e9fe5d2a7b567d6dec220c5894a94ac6640459e06231e3b39a5", + "dest": "cuda_nvcc" + }, + { + "type": "archive", + "only-arches": [ + "x86_64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-11.8.89-archive.tar.xz", + "sha256": "56129e0c42df03ecb50a7bb23fc3285fa39af1a818f8826b183cf793529098bb", + "dest": "cuda_cudart" + }, + { + "type": "archive", + "only-arches": [ + "x86_64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/libcurand/linux-x86_64/libcurand-linux-x86_64-10.3.0.86-archive.tar.xz", + "sha256": "9d30be251c1a0463b52203f6514dac5062844c606d13e234d1386e80c83db279", + "dest": "libcurand" + }, + { + "type": "archive", + "only-arches": [ + "aarch64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-11.8.89-archive.tar.xz", + "sha256": "17d30d924a1d6ff5748a0b6a4e7c25fd39644250cef9184fba520362f70ff798", + "dest": "cuda_nvcc" + }, + { + "type": "archive", + "only-arches": [ + "aarch64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-11.8.89-archive.tar.xz", + "sha256": "88f496a2f96f5bb2a9cb351e6704dfe6a45e713e571c958a3924b2a02e7adea0", + "dest": "cuda_cudart" + }, + { + "type": "archive", + "only-arches": [ + "aarch64" + ], + "url": "https://developer.download.nvidia.com/compute/cuda/redist/libcurand/linux-sbsa/libcurand-linux-sbsa-10.3.0.86-archive.tar.xz", + "sha256": "3df3571103b056ab354e616f1c0737b1b2a25a7875b98b1b9bf32dee94449699", + "dest": "libcurand" + } + ] +} diff --git a/packaging/linux/flatpak/modules/libevdev.json b/packaging/linux/flatpak/modules/libevdev.json new file mode 100644 index 00000000000..e3cbb27eb1f --- /dev/null +++ b/packaging/linux/flatpak/modules/libevdev.json @@ -0,0 +1,26 @@ +{ + "name": "libevdev", + "buildsystem": "meson", + "config-opts": [ + "-Ddocumentation=disabled", + "-Dtests=disabled" + ], + "cleanup": [ + "/bin" + ], + "sources": [ + { + "type": "git", + "url": "https://salsa.debian.org/debian/libevdev.git", + "commit": "1aa7baa233d6df4cee6a66fbc61bb5ffc8b6e88d", + "tag": "debian/1.13.0+dfsg-1", + "x-checker-data": { + "type": "git", + "tag-pattern": "^debian\\/(\\d.\\d+\\.\\d+)", + "versions": { + "<": "1.13.1" + } + } + } + ] +} diff --git a/packaging/linux/flatpak/modules/libnotify.json b/packaging/linux/flatpak/modules/libnotify.json new file mode 100644 index 00000000000..8bede092529 --- /dev/null +++ b/packaging/linux/flatpak/modules/libnotify.json @@ -0,0 +1,26 @@ +{ + "name": "libnotify", + "buildsystem": "meson", + "config-opts": [ + "-Dtests=false", + "-Dintrospection=disabled", + "-Dman=false", + "-Dgtk_doc=false", + "-Ddocbook_docs=disabled" + ], + "sources": [ + { + "type": "git", + "url": "https://salsa.debian.org/gnome-team/libnotify.git", + "commit": "ccf2f62ef0a4b264dd4eff32cab70a3e213ceb1a", + "tag": "debian/0.8.1-1", + "x-checker-data": { + "type": "git", + "tag-pattern": "^debian\\/(\\d.+)$", + "versions": { + "<": "0.8.2" + } + } + } + ] +} diff --git a/packaging/linux/flatpak/modules/miniupnpc.json b/packaging/linux/flatpak/modules/miniupnpc.json new file mode 100644 index 00000000000..1a3ce99b484 --- /dev/null +++ b/packaging/linux/flatpak/modules/miniupnpc.json @@ -0,0 +1,25 @@ +{ + "name": "miniupnpc", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release", + "-DUPNPC_BUILD_SAMPLE=OFF", + "-DUPNPC_BUILD_SHARED=ON", + "-DUPNPC_BUILD_TESTS=OFF" + ], + "sources": [ + { + "type": "git", + "url": "https://salsa.debian.org/miniupnp-team/miniupnpc.git", + "commit": "c5fe3aa794e92a503cecec6a4071eb6d310b4e42", + "tag": "debian/2.2.4-1", + "x-checker-data": { + "type": "git", + "tag-pattern": "^debian\\/(\\d.+)$", + "versions": { + "<": "2.2.5" + } + } + } + ] +} diff --git a/packaging/linux/flatpak/modules/numactl.json b/packaging/linux/flatpak/modules/numactl.json new file mode 100644 index 00000000000..b03403be3a3 --- /dev/null +++ b/packaging/linux/flatpak/modules/numactl.json @@ -0,0 +1,22 @@ +{ + "name": "numactl", + "buildsystem": "autotools", + "cleanup": [ + "/bin" + ], + "sources": [ + { + "type": "git", + "url": "https://salsa.debian.org/debian/numactl.git", + "commit": "640bb34497702f9aaeb8af1b491f32b91d03ec80", + "tag": "debian/2.0.16-1", + "x-checker-data": { + "type": "git", + "tag-pattern": "^debian\\/(\\d.+)$", + "versions": { + "<": "2.0.17" + } + } + } + ] +}