From 04c9c97629fa78a3e8bb3785f71836bb8b8ddc28 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Mon, 13 Jan 2025 20:47:48 -0500 Subject: [PATCH 01/31] Add qemu for arm builds on flatpak --- .github/workflows/build_all.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 6aa50095c02..ae55191bd90 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -63,6 +63,7 @@ jobs: flatpak: name: "Flatpak" runs-on: ubuntu-latest + timeout-minutes: 360 env: date: ver: @@ -75,6 +76,10 @@ jobs: - /usr/share/dotnet:/usr/share/dotnet - /opt/ghc:/opt/ghc1 - /usr/local/share/boost:/usr/local/share/boost1 + strategy: + matrix: + arch: [x86_64, aarch64] + fail-fast: false steps: - name: "Remove unneeded stuff to free disk space" run: @@ -92,11 +97,22 @@ jobs: echo "ver_pure=$ver_pure" >> $GITHUB_ENV echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV shell: bash + - name: Install deps + if: ${{ matrix.arch != 'x86_64' }} + run: | + dnf -y install docker + - name: Set up QEMU + if: ${{ matrix.arch != 'x86_64' }} + id: qemu + uses: docker/setup-qemu-action@v2 + with: + platforms: arm64 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true + arch: ${{ matrix.arch }} - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} uses: WebFreak001/deploy-nightly@v3.1.0 From 24f31d46ab65d11be7681726a5f65f6b4af8bb07 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 14:19:11 -0500 Subject: [PATCH 02/31] Increase timeout-minutes Mainly meant to retrigger GitHub actions (free GitHub actions runners have a max runtime of 6 hours) --- .github/workflows/build_all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index a25bc591be2..10520b45313 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -63,7 +63,7 @@ jobs: flatpak: name: "Flatpak" runs-on: ubuntu-latest - timeout-minutes: 360 + timeout-minutes: 600 env: date: ver: From 4c22e301291c12754bb0e3ebaa4818ecf0ba67e5 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 21:27:48 -0500 Subject: [PATCH 03/31] 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/ --- .github/workflows/build_all.yml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 10520b45313..cbf65a9bf11 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -62,8 +62,15 @@ jobs: secrets: inherit flatpak: name: "Flatpak" - runs-on: ubuntu-latest - timeout-minutes: 600 + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + arch: x86_64 + - os: ubuntu-latest + arch: arm64 + fail-fast: false env: date: ver: @@ -76,10 +83,6 @@ jobs: - /usr/share/dotnet:/usr/share/dotnet - /opt/ghc:/opt/ghc1 - /usr/local/share/boost:/usr/local/share/boost1 - strategy: - matrix: - arch: [x86_64, aarch64] - fail-fast: false steps: - name: "Remove unneeded stuff to free disk space" run: @@ -97,16 +100,6 @@ jobs: echo "ver_pure=$ver_pure" >> $GITHUB_ENV echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV shell: bash - - name: Install deps - if: ${{ matrix.arch != 'x86_64' }} - run: | - dnf -y install docker - - name: Set up QEMU - if: ${{ matrix.arch != 'x86_64' }} - id: qemu - uses: docker/setup-qemu-action@v2 - with: - platforms: arm64 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak From 479ed0ba01388b44159459f99618e1d5dd0dc67c Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 21:32:39 -0500 Subject: [PATCH 04/31] Rename from arm64 to aarch64 --- .github/workflows/build_all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index cbf65a9bf11..3d748eb79a1 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -69,7 +69,7 @@ jobs: - os: ubuntu-latest arch: x86_64 - os: ubuntu-latest - arch: arm64 + arch: aarch64 fail-fast: false env: date: From 83c03c9fbb7cec93dcbed97953ca58edafcbe134 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 22:33:38 -0500 Subject: [PATCH 05/31] Potental fix for gst-plugins-good compilation --- flatpak/io.github.softfever.OrcaSlicer.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 0eb8b86c144..b535ccddc3f 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -45,11 +45,11 @@ modules: - -Dgallium-drivers=[] - -Dvulkan-drivers=[] - -Dplatforms=[] - build-options: - arch: - aarch64: - config-opts: - - -Dlibunwind=disabled + # build-options: + # arch: + # aarch64: + # config-opts: + # - -Dlibunwind=disabled cleanup: - /share/drirc.d - /include From bcad3557b6b01f02526ee4d08a95fae0bb49a51f Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 23:10:07 -0500 Subject: [PATCH 06/31] Initial appimage arm64 builds --- .github/workflows/build_all.yml | 6 ++++++ .github/workflows/build_check_cache.yml | 2 +- .github/workflows/build_deps.yml | 10 +++++----- .github/workflows/build_orca.yml | 12 ++++++------ 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3d748eb79a1..9167553a6e3 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -48,7 +48,13 @@ jobs: matrix: include: - os: ubuntu-20.04 + arch: x86_64 + - os: ubuntu-20.04 + arch: aarch64 - os: ubuntu-24.04 + arch: x86_64 + - os: ubuntu-24.04 + arch: aarch64 - os: windows-latest - os: macos-14 arch: x86_64 diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml index f71cc9b2817..3de4f669cb3 100644 --- a/.github/workflows/build_check_cache.yml +++ b/.github/workflows/build_check_cache.yml @@ -31,7 +31,7 @@ jobs: id: set_outputs env: underscore-arch: ${{ inputs.os == 'macos-14' && '_' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "_{arch}", else output nothing - dash-arch: ${{ inputs.os == 'macos-14' && '-' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing + dash-arch: ${{ (inputs.os == 'macos-14' || inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') && '-' || '' }}${{ (inputs.os == 'macos-14' || inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') && inputs.arch || '' }} # if is ubuntu/macos, make a string that does "-{arch}", else output nothing dep-folder-name: ${{ (inputs.os == 'windows-latest' || inputs.os == 'macos-14') && 'OrcaSlicer_dep' || 'destdir' }} output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} run: | diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index 6c0dc9479c5..30434a32e7c 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -84,7 +84,7 @@ jobs: ./build_release_macos.sh -dpx -a ${{ inputs.arch }} -t 10.15 -1 brew install zstd - + # Note for later: may need libtool and libpng++-dev dependencies for arm builds - name: Install Ubuntu Build Dependencies if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' working-directory: ${{ github.workspace }} @@ -103,13 +103,13 @@ jobs: if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' working-directory: ${{ github.workspace }} run: | - mkdir -p ${{ github.workspace }}/deps/build - mkdir -p ${{ github.workspace }}/deps/build/destdir + mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} + mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/destdir sudo ./BuildLinux.sh -ur sudo chown $USER -R ./ ./BuildLinux.sh -dr - cd deps/build - tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir + cd deps/build_${{ inputs.arch }} + tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d")_${{ inputs.arch }}.tar.gz destdir # Upload Artifacts diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index b31fdbcd701..fa58ba2dd3e 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -264,12 +264,12 @@ jobs: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} run: | ./BuildLinux.sh -isr - mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage - chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage + mv -n ./build_${{ inputs.arch }}/OrcaSlicer_Linux_V${{ env.ver_pure }}_${{ inputs.arch }}.AppImage ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage + chmod +x ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage - name: Build orca_custom_preset_tests if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' - working-directory: ${{ github.workspace }}/build/src + working-directory: ${{ github.workspace }}/build_${{ inputs.arch }}/src shell: bash run: | ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -g 1 @@ -284,7 +284,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }} - path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage' + path: './build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage' - name: Deploy Ubuntu release if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} @@ -294,8 +294,8 @@ jobs: with: upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 - asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage - asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage + asset_path: ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage + asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage 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 From 7709235137e486e18496c178e63a009d3d47a7e7 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 23:14:58 -0500 Subject: [PATCH 07/31] Add inputs.arch variable --- .github/workflows/build_deps.yml | 4 ++-- .github/workflows/build_orca.yml | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index 30434a32e7c..b92045d6533 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -86,7 +86,7 @@ jobs: # Note for later: may need libtool and libpng++-dev dependencies for arm builds - name: Install Ubuntu Build Dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' working-directory: ${{ github.workspace }} env: apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} @@ -100,7 +100,7 @@ jobs: gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo - name: Build on Ubuntu - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' working-directory: ${{ github.workspace }} run: | mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index fa58ba2dd3e..c68ee12dcfd 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -234,7 +234,7 @@ jobs: # Ubuntu - name: Install dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' env: apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }} @@ -248,17 +248,17 @@ jobs: libwebkit2gtk-${{ env.webkit-ver }}-dev libxkbcommon-dev locales locales-all m4 pkgconf sudo wayland-protocols wget ${{ env.libfuse2-pkg }} - name: Install dependencies from BuildLinux.sh - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' shell: bash run: sudo ./BuildLinux.sh -ur - name: Fix permissions - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' shell: bash run: sudo chown $USER -R ./ - name: Build slicer - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' shell: bash env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} @@ -268,7 +268,7 @@ jobs: chmod +x ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage - name: Build orca_custom_preset_tests - if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' + if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' working-directory: ${{ github.workspace }}/build_${{ inputs.arch }}/src shell: bash run: | @@ -277,7 +277,7 @@ jobs: zip -r orca_custom_preset_tests.zip user/ - name: Upload artifacts Ubuntu - if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }} + if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' }} env: ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }} ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} @@ -287,7 +287,7 @@ jobs: path: './build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage' - name: Deploy Ubuntu release - if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} + if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64') }} env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} uses: WebFreak001/deploy-nightly@v3.1.0 From 758c2393137ea53b1dc18946c1f1fd2e420d7f1c Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 16 Jan 2025 23:27:30 -0500 Subject: [PATCH 08/31] Temporarily completely isolate arm64 and x86 dependencies --- .github/workflows/build_deps.yml | 35 ++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index b92045d6533..f2abb44061a 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -85,8 +85,8 @@ jobs: brew install zstd # Note for later: may need libtool and libpng++-dev dependencies for arm builds - - name: Install Ubuntu Build Dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + - name: Install Ubuntu ${{ inputs.arch }} Build Dependencies + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'x86_64' working-directory: ${{ github.workspace }} env: apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} @@ -99,8 +99,35 @@ jobs: libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev \ gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo - - name: Build on Ubuntu - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + - name: Install Ubuntu ${{ inputs.arch }} Build Dependencies + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'aarch64' + working-directory: ${{ github.workspace }} + env: + apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} + webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }} + run: | + ${{ env.apt-cmd }} update + ${{ env.apt-cmd }} install -y cmake git g++ build-essential libgl1-mesa-dev m4 \ + libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules pkgconf \ + libglu1-mesa-dev libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-${{ env.webkit-ver }}-dev \ + libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev \ + gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo + + + - name: Build on Ubuntu ${{ inputs.arch }} + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'x86_64' + working-directory: ${{ github.workspace }} + run: | + mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} + mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/destdir + sudo ./BuildLinux.sh -ur + sudo chown $USER -R ./ + ./BuildLinux.sh -dr + cd deps/build_${{ inputs.arch }} + tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d")_${{ inputs.arch }}.tar.gz destdir + + - name: Build on Ubuntu ${{ inputs.arch }} + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'aarch64' working-directory: ${{ github.workspace }} run: | mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} From aae7503e0c66e9f9747e1177cfa6b4622e989d7f Mon Sep 17 00:00:00 2001 From: cochcoder Date: Fri, 17 Jan 2025 08:02:42 -0500 Subject: [PATCH 09/31] Fix mesa download link and remove temp comments --- flatpak/io.github.softfever.OrcaSlicer.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index b535ccddc3f..5f991bd28a4 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -45,18 +45,18 @@ modules: - -Dgallium-drivers=[] - -Dvulkan-drivers=[] - -Dplatforms=[] - # build-options: - # arch: - # aarch64: - # config-opts: - # - -Dlibunwind=disabled + build-options: + arch: + aarch64: + config-opts: + - -Dlibunwind=disabled cleanup: - /share/drirc.d - /include - "*.a" sources: - type: archive - url: https://archive.mesa3d.org/mesa-20.2.6.tar.xz + url: https://archive.mesa3d.org/older-versions/20.x/mesa-20.2.6.tar.xz sha256: f12ca3c6c622f11cd79ad66b4220f04514fa96f795062fe92a37339ab19885db - name: glu From ee23ca0bc418f5257fce89a09b61bbd91a798950 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Fri, 17 Jan 2025 08:43:38 -0500 Subject: [PATCH 10/31] Disable libunwind in gst-plugins-good --- flatpak/io.github.softfever.OrcaSlicer.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 5f991bd28a4..268d3e9045a 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -31,6 +31,11 @@ modules: - -Ddoc=disabled - -Dexamples=disabled - -Dtests=disabled + build-options: + arch: + aarch64: + config-opts: + - -Dlibunwind=disabled sources: - type: archive url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz From 8c57d0cdbb6f67be943c5eb6cfd107dcc892035b Mon Sep 17 00:00:00 2001 From: cochcoder Date: Fri, 17 Jan 2025 08:48:55 -0500 Subject: [PATCH 11/31] Revert changes in build_check_cache.yml --- .github/workflows/build_check_cache.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml index 3de4f669cb3..34b67f7afec 100644 --- a/.github/workflows/build_check_cache.yml +++ b/.github/workflows/build_check_cache.yml @@ -31,7 +31,7 @@ jobs: id: set_outputs env: underscore-arch: ${{ inputs.os == 'macos-14' && '_' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "_{arch}", else output nothing - dash-arch: ${{ (inputs.os == 'macos-14' || inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') && '-' || '' }}${{ (inputs.os == 'macos-14' || inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') && inputs.arch || '' }} # if is ubuntu/macos, make a string that does "-{arch}", else output nothing + dash-arch: ${{ inputs.os == 'macos-14' && '-' || '' }}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing dep-folder-name: ${{ (inputs.os == 'windows-latest' || inputs.os == 'macos-14') && 'OrcaSlicer_dep' || 'destdir' }} output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} run: | From f4fa9b1be91f7e6b1bc4d401d4731f71aa3aefaa Mon Sep 17 00:00:00 2001 From: cochcoder Date: Fri, 17 Jan 2025 09:03:47 -0500 Subject: [PATCH 12/31] Disable nls & static options in gst-plugins-good --- flatpak/io.github.softfever.OrcaSlicer.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 268d3e9045a..b7bdf221fa0 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -35,7 +35,8 @@ modules: arch: aarch64: config-opts: - - -Dlibunwind=disabled + - -Dnls=disabled + - -Dstatic=disabled sources: - type: archive url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz From c742459b14028458647ca8bd453695cfc842afb7 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Tue, 18 Feb 2025 13:40:13 -0500 Subject: [PATCH 13/31] Rebase on main --- .github/workflows/build_all.yml | 22 ++--------- .github/workflows/build_check_cache.yml | 2 +- .github/workflows/build_deps.yml | 45 ++++------------------ .github/workflows/build_orca.yml | 38 +++++++++--------- flatpak/io.github.softfever.OrcaSlicer.yml | 19 ++++----- 5 files changed, 42 insertions(+), 84 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 9167553a6e3..5da2b6979f9 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -48,13 +48,7 @@ jobs: matrix: include: - os: ubuntu-20.04 - arch: x86_64 - - os: ubuntu-20.04 - arch: aarch64 - - os: ubuntu-24.04 - arch: x86_64 - os: ubuntu-24.04 - arch: aarch64 - os: windows-latest - os: macos-14 arch: x86_64 @@ -68,15 +62,7 @@ jobs: secrets: inherit flatpak: name: "Flatpak" - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - os: ubuntu-latest - arch: x86_64 - - os: ubuntu-latest - arch: aarch64 - fail-fast: false + runs-on: ubuntu-latest env: date: ver: @@ -106,15 +92,15 @@ 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@v6 + - uses: flatpak/flatpak-github-actions/flatpak-builder@master with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true - arch: ${{ matrix.arch }} + upload-artifact: false - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} - uses: WebFreak001/deploy-nightly@v3.1.0 + 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 diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml index 34b67f7afec..f71cc9b2817 100644 --- a/.github/workflows/build_check_cache.yml +++ b/.github/workflows/build_check_cache.yml @@ -31,7 +31,7 @@ jobs: id: set_outputs env: underscore-arch: ${{ inputs.os == 'macos-14' && '_' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "_{arch}", else output nothing - dash-arch: ${{ inputs.os == 'macos-14' && '-' || '' }}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing + dash-arch: ${{ inputs.os == 'macos-14' && '-' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing dep-folder-name: ${{ (inputs.os == 'windows-latest' || inputs.os == 'macos-14') && 'OrcaSlicer_dep' || 'destdir' }} output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} run: | diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index f2abb44061a..163cbca23c0 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -66,8 +66,6 @@ jobs: working-directory: ${{ github.workspace }} run: | choco install strawberryperl - mkdir ${{ github.workspace }}/deps/build - mkdir ${{ github.workspace }}/deps/build/OrcaSlicer_dep .\build_release_vs2022.bat deps .\build_release_vs2022.bat pack cd ${{ github.workspace }}/deps/build @@ -84,23 +82,9 @@ jobs: ./build_release_macos.sh -dpx -a ${{ inputs.arch }} -t 10.15 -1 brew install zstd - # Note for later: may need libtool and libpng++-dev dependencies for arm builds - - name: Install Ubuntu ${{ inputs.arch }} Build Dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'x86_64' - working-directory: ${{ github.workspace }} - env: - apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} - webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }} - run: | - ${{ env.apt-cmd }} update - ${{ env.apt-cmd }} install -y cmake git g++ build-essential libgl1-mesa-dev m4 \ - libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules pkgconf \ - libglu1-mesa-dev libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-${{ env.webkit-ver }}-dev \ - libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev \ - gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo - - name: Install Ubuntu ${{ inputs.arch }} Build Dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'aarch64' + - name: Install Ubuntu Build Dependencies + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' working-directory: ${{ github.workspace }} env: apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} @@ -113,30 +97,17 @@ jobs: libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev \ gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo - - - name: Build on Ubuntu ${{ inputs.arch }} - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'x86_64' - working-directory: ${{ github.workspace }} - run: | - mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} - mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/destdir - sudo ./BuildLinux.sh -ur - sudo chown $USER -R ./ - ./BuildLinux.sh -dr - cd deps/build_${{ inputs.arch }} - tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d")_${{ inputs.arch }}.tar.gz destdir - - - name: Build on Ubuntu ${{ inputs.arch }} - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' && inputs.arch == 'aarch64' + - name: Build on Ubuntu + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' working-directory: ${{ github.workspace }} run: | - mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} - mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/destdir + mkdir -p ${{ github.workspace }}/deps/build + mkdir -p ${{ github.workspace }}/deps/build/destdir sudo ./BuildLinux.sh -ur sudo chown $USER -R ./ ./BuildLinux.sh -dr - cd deps/build_${{ inputs.arch }} - tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d")_${{ inputs.arch }}.tar.gz destdir + cd deps/build + tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir # Upload Artifacts diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index c68ee12dcfd..e417b3ef36c 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -143,7 +143,7 @@ jobs: - name: Deploy Mac release if: github.ref == 'refs/heads/main' && inputs.os == 'macos-14' - uses: WebFreak001/deploy-nightly@v3.1.0 + 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 @@ -194,7 +194,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: OrcaSlicer_Windows_${{ env.ver }}_portable - path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip + path: ${{ github.workspace }}/build/OrcaSlicer - name: Upload artifacts Win installer if: inputs.os == 'windows-latest' @@ -212,7 +212,7 @@ jobs: - name: Deploy Windows release portable if: github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' - uses: WebFreak001/deploy-nightly@v3.1.0 + 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 @@ -223,7 +223,7 @@ jobs: - name: Deploy Windows release installer if: github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' - uses: WebFreak001/deploy-nightly@v3.1.0 + 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 @@ -234,7 +234,7 @@ jobs: # Ubuntu - name: Install dependencies - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' env: apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }} webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }} @@ -248,28 +248,28 @@ jobs: libwebkit2gtk-${{ env.webkit-ver }}-dev libxkbcommon-dev locales locales-all m4 pkgconf sudo wayland-protocols wget ${{ env.libfuse2-pkg }} - name: Install dependencies from BuildLinux.sh - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' shell: bash run: sudo ./BuildLinux.sh -ur - name: Fix permissions - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' shell: bash run: sudo chown $USER -R ./ - name: Build slicer - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' + if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' shell: bash env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} run: | ./BuildLinux.sh -isr - mv -n ./build_${{ inputs.arch }}/OrcaSlicer_Linux_V${{ env.ver_pure }}_${{ inputs.arch }}.AppImage ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage - chmod +x ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage + mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage + chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage - name: Build orca_custom_preset_tests - if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' - working-directory: ${{ github.workspace }}/build_${{ inputs.arch }}/src + if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' + working-directory: ${{ github.workspace }}/build/src shell: bash run: | ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -g 1 @@ -277,31 +277,31 @@ jobs: zip -r orca_custom_preset_tests.zip user/ - name: Upload artifacts Ubuntu - if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64' }} + if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }} env: ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }} ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} uses: actions/upload-artifact@v4 with: name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }} - path: './build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage' + path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage' - name: Deploy Ubuntu release - if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' || inputs.arch == 'x86_64' || inputs.arch == 'aarch64') }} + if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} - uses: WebFreak001/deploy-nightly@v3.1.0 + 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: ./build_${{ inputs.arch }}/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage - asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}_${{ inputs.arch }}.AppImage + asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage + asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage 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 - name: Deploy orca_custom_preset_tests if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' }} - uses: WebFreak001/deploy-nightly@v3.1.0 + 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 diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index b7bdf221fa0..73ab58b17d2 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -31,12 +31,6 @@ modules: - -Ddoc=disabled - -Dexamples=disabled - -Dtests=disabled - build-options: - arch: - aarch64: - config-opts: - - -Dnls=disabled - - -Dstatic=disabled sources: - type: archive url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz @@ -266,13 +260,18 @@ modules: url: https://github.com/glfw/glfw/archive/refs/tags/3.3.7.zip dest: external-packages/GLFW sha256: e02d956935e5b9fb4abf90e2c2e07c9a0526d7eacae8ee5353484c69a2a76cd0 + # libnoise + - type: file + url: https://github.com/SoftFever/Orca-deps-libnoise/archive/refs/tags/1.0.zip + dest: external-packages/libnoise + sha256: 96ffd6cc47898dd8147aab53d7d1b1911b507d9dbaecd5613ca2649468afd8b6 - name: OrcaSlicer buildsystem: simple build-commands: - | - mkdir -p build && cd build - CXXFLAGS=-std=gnu++20 cmake ../ \ + mkdir -p build + CXXFLAGS=-std=gnu++20 cmake . -B build \ -DSLIC3R_PCH=OFF \ -DSLIC3R_FHS=ON \ -DSLIC3R_GTK=3 \ @@ -284,7 +283,9 @@ modules: -DBBL_RELEASE_TO_PUBLIC=1 \ -DCMAKE_PREFIX_PATH=/app \ -DCMAKE_INSTALL_PREFIX=/app - CXXFLAGS=-std=gnu++20 cmake --build . --target install -j$FLATPAK_BUILDER_N_JOBS + CXXFLAGS=-std=gnu++20 cmake --build build --target OrcaSlicer -j$FLATPAK_BUILDER_N_JOBS + ./run_gettext.sh + CXXFLAGS=-std=gnu++20 cmake --build build --target install -j$FLATPAK_BUILDER_N_JOBS cleanup: - /include From be096232250ed14a639a1cd528842feefc1d7b02 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Tue, 18 Feb 2025 13:48:18 -0500 Subject: [PATCH 14/31] Re-add flatpak arm build --- .github/workflows/build_all.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 5da2b6979f9..2241159e707 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -63,6 +63,10 @@ jobs: flatpak: name: "Flatpak" runs-on: ubuntu-latest + strategy: + matrix: + arch: [x86_64, aarch64] + fail-fast: false env: date: ver: @@ -97,6 +101,7 @@ jobs: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true + arch: ${{ matrix.arch }} upload-artifact: false - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} From b416dcd0ae8a908811925ae65f7d49c290e3a194 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Tue, 18 Feb 2025 13:58:53 -0500 Subject: [PATCH 15/31] Update gst-plugins-good to 1.24.10 This should be the version that received complete arm64 support --- flatpak/io.github.softfever.OrcaSlicer.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 73ab58b17d2..9318f863934 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -33,8 +33,8 @@ modules: - -Dtests=disabled sources: - type: archive - url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz - sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39 + url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.24.10.tar.xz + sha256: fce748fa66d7a8ee1fb261489e59d01e3fa787623d6d5c35068416fe7cd0acb3 # For libOSMesa - name: mesa From 2bd759c8c4c3db376dc6cde086c8ed98ea822a3a Mon Sep 17 00:00:00 2001 From: cochcoder Date: Tue, 18 Feb 2025 14:09:54 -0500 Subject: [PATCH 16/31] Trying a solution --- flatpak/io.github.softfever.OrcaSlicer.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 9318f863934..0ab37b2559d 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -20,6 +20,10 @@ finish-args: - --system-talk-name=org.freedesktop.UDisks2 - --env=SPNAV_SOCKET=/run/spnav.sock +# Prevent OpenH264 codec installation error +build-options: + no-codec-install: true + modules: # JPEG codec for the liveview From 15998bc2cc12c1922b4e4277a67eac1b6fceaee6 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Tue, 18 Feb 2025 14:10:24 -0500 Subject: [PATCH 17/31] Revert "Update gst-plugins-good to 1.24.10" This reverts commit b416dcd0ae8a908811925ae65f7d49c290e3a194. --- flatpak/io.github.softfever.OrcaSlicer.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 0ab37b2559d..0699ab56a56 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -37,8 +37,8 @@ modules: - -Dtests=disabled sources: - type: archive - url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.24.10.tar.xz - sha256: fce748fa66d7a8ee1fb261489e59d01e3fa787623d6d5c35068416fe7cd0acb3 + url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz + sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39 # For libOSMesa - name: mesa From eecb1d8f3313b497ec5e6b0c792b793429b165d1 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 13:27:27 -0500 Subject: [PATCH 18/31] Remove previous build-options --- flatpak/io.github.softfever.OrcaSlicer.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 0699ab56a56..73ab58b17d2 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -20,10 +20,6 @@ finish-args: - --system-talk-name=org.freedesktop.UDisks2 - --env=SPNAV_SOCKET=/run/spnav.sock -# Prevent OpenH264 codec installation error -build-options: - no-codec-install: true - modules: # JPEG codec for the liveview From 42eb009d2dedb463f37b8773452018e0ded666ff Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 14:32:09 -0500 Subject: [PATCH 19/31] Try installing the proper arch version of Meson When building on a local arm64 device it runs properly. --- .github/workflows/build_all.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 2241159e707..df1f77ed908 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -84,6 +84,11 @@ jobs: run: rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" - uses: actions/checkout@v4 + - name: Install Meson + run: | + sudo apt-get update + sudo apt-get install -y python3-pip + pip3 install meson - name: Get the version and date run: | ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2) From 7e195708b31ac60bd1927bac92cfbf0343d5d7cd Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 14:34:32 -0500 Subject: [PATCH 20/31] Remove sudo commands --- .github/workflows/build_all.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index df1f77ed908..d242b30b40b 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -86,8 +86,8 @@ jobs: - uses: actions/checkout@v4 - name: Install Meson run: | - sudo apt-get update - sudo apt-get install -y python3-pip + apt-get update + apt-get install -y python3-pip pip3 install meson - name: Get the version and date run: | From cfe0072315e88931171532647c043333912a1c2e Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 14:43:58 -0500 Subject: [PATCH 21/31] Use dnf rather than apt-get --- .github/workflows/build_all.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index d242b30b40b..9373e05ab1b 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -83,12 +83,11 @@ jobs: - name: "Remove unneeded stuff to free disk space" run: rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" - - uses: actions/checkout@v4 - - name: Install Meson + - name: Install dependencies run: | - apt-get update - apt-get install -y python3-pip + dnf -y install python3-pip pip3 install meson + - uses: actions/checkout@v4 - name: Get the version and date run: | ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2) From 5c825b6cac3f73e3f38a5d6412f472251a27bc8d Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 14:52:44 -0500 Subject: [PATCH 22/31] Try installing meson before the flatpak builder --- .github/workflows/build_all.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 9373e05ab1b..ff6becefa1d 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -67,6 +67,12 @@ jobs: matrix: arch: [x86_64, aarch64] fail-fast: false + steps: + - name: Install dependencies + run: | + apt-get update + apt-get install -y python3-pip + pip3 install meson env: date: ver: @@ -83,10 +89,6 @@ jobs: - name: "Remove unneeded stuff to free disk space" run: rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" - - name: Install dependencies - run: | - dnf -y install python3-pip - pip3 install meson - uses: actions/checkout@v4 - name: Get the version and date run: | From 95282dca15fed39f9f6b04076ebb12afdbb1b11f Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 15:00:49 -0500 Subject: [PATCH 23/31] Change flatpak runner This uses a more experimental version of the flatpak runner provided by Flathub --- .github/workflows/build_all.yml | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index ff6becefa1d..63639493a49 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -62,29 +62,26 @@ jobs: secrets: inherit flatpak: name: "Flatpak" - runs-on: ubuntu-latest - strategy: - matrix: - arch: [x86_64, aarch64] - fail-fast: false - steps: - - name: Install dependencies - run: | - apt-get update - apt-get install -y python3-pip - pip3 install meson - env: - date: - ver: - ver_pure: container: - image: bilelmoussaoui/flatpak-github-actions:gnome-46 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-47 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: @@ -102,12 +99,12 @@ 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 manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true - arch: ${{ matrix.arch }} + arch: ${{ matrix.variant.arch }} upload-artifact: false - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} From eb427a5853954f322f073fa3d116296ed98d56e4 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Thu, 27 Feb 2025 22:14:58 -0500 Subject: [PATCH 24/31] Temporarily enable artifact upload --- .github/workflows/build_all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 63639493a49..e52afe1bb1b 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -105,7 +105,7 @@ jobs: manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true arch: ${{ matrix.variant.arch }} - upload-artifact: false + upload-artifact: true - name: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} uses: WebFreak001/deploy-nightly@v3.2.0 From 1149c50ed977b69c5db7d37f8fdc0959106faf5e Mon Sep 17 00:00:00 2001 From: cochcoder Date: Sun, 2 Mar 2025 09:53:05 -0500 Subject: [PATCH 25/31] Resolve merge conflicts --- .github/workflows/build_all.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index e52afe1bb1b..93fb4a665d5 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -105,7 +105,12 @@ jobs: manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml cache: true arch: ${{ matrix.variant.arch }} - upload-artifact: true + 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: Deploy Flatpak to nightly release if: ${{github.ref == 'refs/heads/main'}} uses: WebFreak001/deploy-nightly@v3.2.0 From 60c8d52e8b59effbe7e7d8b4398c19a73397fab4 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Mon, 3 Mar 2025 09:43:54 -0500 Subject: [PATCH 26/31] Add arch variable into flatpak name --- .github/workflows/build_all.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 93fb4a665d5..34d0d7d2a72 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -101,7 +101,7 @@ jobs: shell: bash - 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 }} @@ -109,15 +109,15 @@ jobs: - 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 From 4319a923799c6b57468dc257ed11dc6c98aa08bd Mon Sep 17 00:00:00 2001 From: cochcoder Date: Wed, 5 Mar 2025 08:56:43 -0500 Subject: [PATCH 27/31] Revert to using Gnome 46, rather than Gnome 47 --- .github/workflows/build_all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 34d0d7d2a72..c0a35f66bf8 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -63,7 +63,7 @@ jobs: flatpak: name: "Flatpak" container: - image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-47 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-46 options: --privileged volumes: - /usr/local/lib/android:/usr/local/lib/android From 888a0c4a758af58c410a0b45ecca7eb56e359d37 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Fri, 7 Mar 2025 09:05:44 -0500 Subject: [PATCH 28/31] Add curl dependency --- flatpak/io.github.softfever.OrcaSlicer.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 73ab58b17d2..4aa117df3a1 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -72,6 +72,21 @@ modules: - /lib/*.la - /lib/pkgconfig + - name: curl + config-opts: + - --disable-static + - --enable-versioned-symbols + - --with-openssl + sources: + - type: archive + url: https://curl.se/download/curl-8.6.0.tar.xz + sha256: 3ccd55d91af9516539df80625f818c734dc6f2ecf9bada33c76765e99121db15 + cleanup: + - /include + - /lib/*.la + - /lib/pkgconfig + - /share/man + - name: kde-extra-cmake-modules buildsystem: cmake-ninja sources: From 83f221c5e2a5b962c1e29086a31ee246c18f201a Mon Sep 17 00:00:00 2001 From: cochcoder Date: Sun, 9 Mar 2025 15:22:48 -0400 Subject: [PATCH 29/31] Revert "Add curl dependency" This reverts commit 888a0c4a758af58c410a0b45ecca7eb56e359d37. --- flatpak/io.github.softfever.OrcaSlicer.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml index 4aa117df3a1..73ab58b17d2 100755 --- a/flatpak/io.github.softfever.OrcaSlicer.yml +++ b/flatpak/io.github.softfever.OrcaSlicer.yml @@ -72,21 +72,6 @@ modules: - /lib/*.la - /lib/pkgconfig - - name: curl - config-opts: - - --disable-static - - --enable-versioned-symbols - - --with-openssl - sources: - - type: archive - url: https://curl.se/download/curl-8.6.0.tar.xz - sha256: 3ccd55d91af9516539df80625f818c734dc6f2ecf9bada33c76765e99121db15 - cleanup: - - /include - - /lib/*.la - - /lib/pkgconfig - - /share/man - - name: kde-extra-cmake-modules buildsystem: cmake-ninja sources: From f6009be1044b33d30102334484e7f79437a009c6 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Sun, 9 Mar 2025 15:29:20 -0400 Subject: [PATCH 30/31] Clean up --- .github/workflows/build_all.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index c0a35f66bf8..83904b075ad 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -74,9 +74,9 @@ jobs: matrix: variant: - arch: x86_64 - runner: ubuntu-24.04 + runner: ubuntu-latest - arch: aarch64 - runner: ubuntu-24.04-arm + runner: ubuntu-latest runs-on: ${{ matrix.variant.runner }} env: date: From cfba86c3db82e2f4bf44cfcc3197f70f17079653 Mon Sep 17 00:00:00 2001 From: cochcoder Date: Sun, 9 Mar 2025 15:42:09 -0400 Subject: [PATCH 31/31] Define ubuntu version Seems to be needed due to the arm version still being in public beta --- .github/workflows/build_all.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 83904b075ad..c0a35f66bf8 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -74,9 +74,9 @@ jobs: matrix: variant: - arch: x86_64 - runner: ubuntu-latest + runner: ubuntu-24.04 - arch: aarch64 - runner: ubuntu-latest + runner: ubuntu-24.04-arm runs-on: ${{ matrix.variant.runner }} env: date: