From 79a5a9b5f85895ae24fad8b5070c64b495e1f522 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Mon, 10 Mar 2025 10:36:50 -0400 Subject: [PATCH] Flatpak arm64 support (#8033) * Add qemu for arm builds on flatpak * Increase timeout-minutes Mainly meant to retrigger GitHub actions (free GitHub actions runners have a max runtime of 6 hours) * Change arm64 flatpak to build barebones, rather than through emulation This new addition is highlighted in GitHub's new blog post: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ * Rename from arm64 to aarch64 * Potental fix for gst-plugins-good compilation * Initial appimage arm64 builds * Add inputs.arch variable * Temporarily completely isolate arm64 and x86 dependencies * Fix mesa download link and remove temp comments * Disable libunwind in gst-plugins-good * Revert changes in build_check_cache.yml * Disable nls & static options in gst-plugins-good * Rebase on main * Re-add flatpak arm build * Update gst-plugins-good to 1.24.10 This should be the version that received complete arm64 support * Trying a solution * Revert "Update gst-plugins-good to 1.24.10" This reverts commit b416dcd0ae8a908811925ae65f7d49c290e3a194. * Remove previous build-options * Try installing the proper arch version of Meson When building on a local arm64 device it runs properly. * Remove sudo commands * Use dnf rather than apt-get * Try installing meson before the flatpak builder * Change flatpak runner This uses a more experimental version of the flatpak runner provided by Flathub * Temporarily enable artifact upload * Resolve merge conflicts * Add arch variable into flatpak name * Revert to using Gnome 46, rather than Gnome 47 * Add curl dependency * Revert "Add curl dependency" This reverts commit 888a0c4a758af58c410a0b45ecca7eb56e359d37. * Clean up * Define ubuntu version Seems to be needed due to the arm version still being in public beta --- .github/workflows/build_all.yml | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 43fc16e93f..c0a35f66bf 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -62,19 +62,26 @@ jobs: secrets: inherit flatpak: name: "Flatpak" - runs-on: ubuntu-latest - env: - date: - ver: - ver_pure: container: - image: bilelmoussaoui/flatpak-github-actions:gnome-46 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-46 options: --privileged volumes: - /usr/local/lib/android:/usr/local/lib/android - /usr/share/dotnet:/usr/share/dotnet - /opt/ghc:/opt/ghc1 - /usr/local/share/boost:/usr/local/share/boost1 + strategy: + matrix: + variant: + - arch: x86_64 + runner: ubuntu-24.04 + - arch: aarch64 + runner: ubuntu-24.04-arm + runs-on: ${{ matrix.variant.runner }} + env: + date: + ver: + ver_pure: steps: - name: "Remove unneeded stuff to free disk space" run: @@ -92,24 +99,25 @@ jobs: echo "ver_pure=$ver_pure" >> $GITHUB_ENV echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV shell: bash - - uses: flatpak/flatpak-github-actions/flatpak-builder@master + - uses: flathub-infra/flatpak-github-actions/flatpak-builder@master with: - bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak + bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true + arch: ${{ matrix.variant.arch }} upload-artifact: false - name: Upload artifacts Flatpak uses: actions/upload-artifact@v4 with: - name: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak - path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak' + name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak + path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak' - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} uses: WebFreak001/deploy-nightly@v3.2.0 with: upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 - asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak - asset_name: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak + asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak + asset_name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak asset_content_type: application/octet-stream max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted