diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml new file mode 100644 index 000000000..8f78a42d1 --- /dev/null +++ b/.github/workflows/flatpak.yml @@ -0,0 +1,66 @@ +--- +name: Flatpak + +on: + workflow_dispatch: + inputs: + build_version: + description: 'Version tag for the build (e.g. v0.1.0). Defaults to the commit SHA.' + required: false + default: '' + +jobs: + flatpak: + name: Build Flatpak + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: false + fetch-depth: 0 + + - name: Initialize Flatpak submodules + run: | + git submodule update --init packaging/linux/flatpak/deps/flatpak-builder-tools + git submodule update --init packaging/linux/flatpak/deps/shared-modules + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install flatpak-node-generator dependencies + run: pip install aiohttp toml + + - name: Generate npm sources for Flatpak + run: | + python3 packaging/linux/flatpak/deps/flatpak-builder-tools/node/flatpak-node-generator.py \ + npm package-lock.json \ + --output generated-sources.json + + - name: Configure Flatpak manifest + env: + BRANCH: ${{ github.ref_name }} + BUILD_VERSION: ${{ inputs.build_version || github.sha }} + CLONE_URL: ${{ github.server_url }}/${{ github.repository }} + COMMIT: ${{ github.sha }} + run: | + cmake -B cmake-build \ + -DSUNSHINE_CONFIGURE_FLATPAK_MAN=ON \ + -DSUNSHINE_CONFIGURE_ONLY=ON + + - name: Build Flatpak + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 + with: + bundle: Apollo.flatpak + manifest-path: cmake-build/io.github.filobus97.Apollo.yml + cache-key: flatpak-builder-${{ hashFiles('cmake-build/io.github.filobus97.Apollo.yml') }} + + - name: Upload Flatpak bundle + uses: actions/upload-artifact@v4 + with: + name: Apollo-flatpak + path: Apollo.flatpak + retention-days: 30 diff --git a/CMakeLists.txt b/CMakeLists.txt index fe6cde13a..625059e0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ project(Apollo VERSION 0.0.0 set(PROJECT_LICENSE "GPL-3.0-only") -set(PROJECT_FQDN "dev.lizardbyte.app.Sunshine") +set(PROJECT_FQDN "io.github.filobus97.Apollo") set(PROJECT_BRIEF_DESCRIPTION "GameStream host for Artemis") # must be <= 35 characters diff --git a/packaging/linux/flatpak/exceptions.json b/packaging/linux/flatpak/exceptions.json index 30ea0d21c..d7c0ac301 100644 --- a/packaging/linux/flatpak/exceptions.json +++ b/packaging/linux/flatpak/exceptions.json @@ -1,5 +1,5 @@ { - "dev.lizardbyte.app.Sunshine": [ + "io.github.filobus97.Apollo": [ "appstream-external-screenshot-url", "appstream-screenshots-not-mirrored-in-ostree", "external-gitmodule-url-found", diff --git a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.desktop b/packaging/linux/flatpak/io.github.filobus97.Apollo.desktop similarity index 100% rename from packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.desktop rename to packaging/linux/flatpak/io.github.filobus97.Apollo.desktop diff --git a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml b/packaging/linux/flatpak/io.github.filobus97.Apollo.yml similarity index 93% rename from packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml rename to packaging/linux/flatpak/io.github.filobus97.Apollo.yml index 303f2e7ee..a39c79e77 100644 --- a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml +++ b/packaging/linux/flatpak/io.github.filobus97.Apollo.yml @@ -74,9 +74,9 @@ modules: - -DSUNSHINE_ENABLE_X11=ON - -DSUNSHINE_ENABLE_DRM=ON - -DSUNSHINE_ENABLE_CUDA=ON - - -DSUNSHINE_PUBLISHER_NAME='LizardByte' - - -DSUNSHINE_PUBLISHER_WEBSITE='https://app.lizardbyte.dev' - - -DSUNSHINE_PUBLISHER_ISSUE_URL='https://app.lizardbyte.dev/support' + - -DSUNSHINE_PUBLISHER_NAME='filobus97' + - -DSUNSHINE_PUBLISHER_WEBSITE='https://github.com/filobus97/Apollo' + - -DSUNSHINE_PUBLISHER_ISSUE_URL='https://github.com/filobus97/Apollo/issues' no-make-install: false post-install: - install -D $FLATPAK_BUILDER_BUILDDIR/packaging/linux/flatpak/scripts/* /app/bin diff --git a/packaging/linux/dev.lizardbyte.app.Sunshine.desktop b/packaging/linux/io.github.filobus97.Apollo.desktop similarity index 100% rename from packaging/linux/dev.lizardbyte.app.Sunshine.desktop rename to packaging/linux/io.github.filobus97.Apollo.desktop diff --git a/packaging/linux/dev.lizardbyte.app.Sunshine.metainfo.xml b/packaging/linux/io.github.filobus97.Apollo.metainfo.xml similarity index 64% rename from packaging/linux/dev.lizardbyte.app.Sunshine.metainfo.xml rename to packaging/linux/io.github.filobus97.Apollo.metainfo.xml index 6be351690..dc2045f55 100644 --- a/packaging/linux/dev.lizardbyte.app.Sunshine.metainfo.xml +++ b/packaging/linux/io.github.filobus97.Apollo.metainfo.xml @@ -16,23 +16,20 @@ @PROJECT_HOMEPAGE_URL@ - https://github.com/LizardByte/Sunshine/issues - https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2troubleshooting.html - https://docs.lizardbyte.dev/projects/sunshine - https://app.lizardbyte.dev/#Donate - https://translate.lizardbyte.dev - https://app.lizardbyte.dev/support + https://github.com/filobus97/Apollo/issues + https://github.com/filobus97/Apollo/wiki + https://github.com/filobus97/Apollo/issues

@PROJECT_LONG_DESCRIPTION@

-

NOTE: Sunshine requires additional installation steps (Flatpak).

+

NOTE: Apollo requires additional installation steps (Flatpak).

flatpak run --command=additional-install.sh @PROJECT_FQDN@

-

NOTE: Sunshine uses a self-signed certificate. The web browser will report it as not secure, but it is safe.

+

NOTE: Apollo uses a self-signed certificate. The web browser will report it as not secure, but it is safe.

NOTE: KMS Grab (Flatpak)

sudo -i PULSE_SERVER=unix:/run/user/$(id -u $whoami)/pulse/native flatpak run @PROJECT_FQDN@ @@ -51,13 +48,13 @@ - - LizardByte + + filobus97 - https://app.lizardbyte.dev/Sunshine/assets/img/screenshots/01-sunshine-welcome-page.png - Sunshine welcome page + https://raw.githubusercontent.com/filobus97/Apollo/refs/heads/master/apollo.png + Apollo game streaming host diff --git a/packaging/linux/dev.lizardbyte.app.Sunshine.terminal.desktop b/packaging/linux/io.github.filobus97.Apollo.terminal.desktop similarity index 100% rename from packaging/linux/dev.lizardbyte.app.Sunshine.terminal.desktop rename to packaging/linux/io.github.filobus97.Apollo.terminal.desktop