From 18f44a7b256f0da9f60cc4d5f3732fa54a023008 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Fri, 20 Mar 2026 13:35:41 -0700 Subject: [PATCH] Add support for separate SteamOS builds, supporting 3.7 and 3.8 currently, v2.9.9 --- .github/workflows/release.yml | 35 ++++++++++++++++--- VERSION | 2 +- bin/breezy_kwin_setup | 3 +- bin/package_kwin | 2 +- kwin/bin/package_kwin_plugin | 2 +- .../{Dockerfile => Dockerfile.steamos-3.7} | 10 +++--- ...kerfile.steamos => Dockerfile.steamos-3.8} | 12 +++---- kwin/docker-build/init.sh | 5 ++- kwin/docker-build/run-build.sh | 18 ++-------- 9 files changed, 52 insertions(+), 37 deletions(-) rename kwin/docker-build/{Dockerfile => Dockerfile.steamos-3.7} (63%) rename kwin/docker-build/{Dockerfile.steamos => Dockerfile.steamos-3.8} (58%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ace96c9..f17f958 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -148,7 +148,7 @@ jobs: name: release-artifacts-gnome-aarch64 path: out/*.tar.gz - build-kwin-steamos: + build-kwin-steamos-3.7: needs: check-version-change if: needs.check-version-change.outputs.should-release == 'true' runs-on: ubuntu-latest @@ -163,16 +163,43 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build Breezy KWin (steamos) + - name: Build Breezy KWin (steamos-3.7) run: | - STEAMOS=1 bin/package_kwin + STEAMOS=3.7 bin/package_kwin env: UA_API_SECRET: ${{ secrets.UA_API_SECRET }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: release-artifacts-kwin-steamos + name: release-artifacts-kwin-steamos-3.7 + path: out/*.tar.gz + + build-kwin-steamos-3.8: + needs: check-version-change + if: needs.check-version-change.outputs.should-release == 'true' + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Breezy KWin (steamos-3.8) + run: | + STEAMOS=3.8 bin/package_kwin + env: + UA_API_SECRET: ${{ secrets.UA_API_SECRET }} + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: release-artifacts-kwin-steamos-3.8 path: out/*.tar.gz build-vulkan-x86_64: diff --git a/VERSION b/VERSION index d8589d1..4ee4a30 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.9.8 +2.9.9 diff --git a/bin/breezy_kwin_setup b/bin/breezy_kwin_setup index 3cc68d2..97e9ed3 100755 --- a/bin/breezy_kwin_setup +++ b/bin/breezy_kwin_setup @@ -49,7 +49,8 @@ LIBS_ARCH="$ARCH" if [ -f /etc/os-release ]; then . /etc/os-release if [ "$ID" == "steamos" ]; then - ARCH="steamos" + IFS=. read -r steamos_major steamos_minor _ <<< "$VERSION_ID" + ARCH="steamos-${steamos_major}.${steamos_minor}" fi fi FILE_NAME="breezyKWin-$ARCH.tar.gz" diff --git a/bin/package_kwin b/bin/package_kwin index 6fb84b1..733ea4a 100755 --- a/bin/package_kwin +++ b/bin/package_kwin @@ -7,7 +7,7 @@ ARCH=${ARCH:-$(uname -m)} BUILD_ARCH=$ARCH if [ -n "${STEAMOS+x}" ]; then ARCH="x86_64" - BUILD_ARCH="steamos" + BUILD_ARCH="steamos-$STEAMOS" fi # https://stackoverflow.com/a/246128 diff --git a/kwin/bin/package_kwin_plugin b/kwin/bin/package_kwin_plugin index a60efe5..608b06d 100755 --- a/kwin/bin/package_kwin_plugin +++ b/kwin/bin/package_kwin_plugin @@ -14,7 +14,7 @@ check_command "make" ARCH=${ARCH:-$(uname -m)} if [ -n "${STEAMOS+x}" ]; then - ARCH="steamos" + ARCH="steamos-$STEAMOS" fi echo "Building Breezy KWin plugin for $ARCH" diff --git a/kwin/docker-build/Dockerfile b/kwin/docker-build/Dockerfile.steamos-3.7 similarity index 63% rename from kwin/docker-build/Dockerfile rename to kwin/docker-build/Dockerfile.steamos-3.7 index 4b74391..d26b2e5 100644 --- a/kwin/docker-build/Dockerfile +++ b/kwin/docker-build/Dockerfile.steamos-3.7 @@ -1,12 +1,12 @@ # To run the build from the package root: -# docker buildx build --platform linux/amd64,linux/arm64 -f ./docker-build/Dockerfile -t "breezy-kwin" . -# docker run --rm -t -v ./:/source -v --platform linux/amd64 "breezy-kwin:amd64" -# docker run --rm -t -v ./:/source -v --platform linux/arm64 "breezy-kwin:arm64" +# docker buildx build --platform linux/amd64,linux/arm64 -f ./docker-build/Dockerfile.steamos-3.7 -t "breezy-kwin-steamos-3.7" . +# docker run --rm -t -v ./:/source -v --platform linux/amd64 "breezy-kwin-steamos-3.7:amd64" -FROM --platform=$TARGETPLATFORM archlinux:base-20250817.0.405639@sha256:31f0749bdb81517dc8f379feac0a3860b097f1da1f53c8315c1bae0817d6c0a1 +FROM --platform=$TARGETPLATFORM ghcr.io/wheaney/holo-base:3.7.20 ARG TARGETPLATFORM -RUN echo "Target platform: $TARGETPLATFORM" +ENV STEAMOS=3.7 +RUN echo "SteamOS 3.7 build - target platform: $TARGETPLATFORM" RUN pacman -Sy --noconfirm --needed \ ca-certificates \ diff --git a/kwin/docker-build/Dockerfile.steamos b/kwin/docker-build/Dockerfile.steamos-3.8 similarity index 58% rename from kwin/docker-build/Dockerfile.steamos rename to kwin/docker-build/Dockerfile.steamos-3.8 index 23f32e6..9d55e5c 100644 --- a/kwin/docker-build/Dockerfile.steamos +++ b/kwin/docker-build/Dockerfile.steamos-3.8 @@ -1,13 +1,12 @@ # To run the build from the package root: -# docker buildx build --platform linux/amd64,linux/arm64 -f ./docker-build/Dockerfile.steamos -t "breezy-kwin-steamos" . -# docker run --rm -t -v ./:/source -v --platform linux/amd64 "breezy-kwin-steamos:amd64" -# docker run --rm -t -v ./:/source -v --platform linux/arm64 "breezy-kwin-steamos:arm64" +# docker buildx build --platform linux/amd64,linux/arm64 -f ./docker-build/Dockerfile.steamos-3.8 -t "breezy-kwin-steamos" . +# docker run --rm -t -v ./:/source -v --platform linux/amd64 "breezy-kwin-steamos-3.8:amd64" -FROM --platform=$TARGETPLATFORM ghcr.io/steamdeckhomebrew/holo-base:3.7@sha256:8da120a3e89c750abd0090c0aab86d543a55d667c3002c8d64960f7fd82ccdd6 +FROM --platform=$TARGETPLATFORM ghcr.io/wheaney/holo-base:preview-3.8 ARG TARGETPLATFORM -ENV STEAMOS=1 -RUN echo "SteamOS build - target platform: $TARGETPLATFORM" +ENV STEAMOS=3.8 +RUN echo "SteamOS 3.8 build - target platform: $TARGETPLATFORM" RUN pacman -Sy --noconfirm --needed \ ca-certificates \ @@ -20,6 +19,7 @@ RUN pacman -Sy --noconfirm --needed \ extra-cmake-modules \ qt6-base \ qt6-declarative \ + qt6-quick3d \ qt6-tools \ kconfig \ kconfigwidgets \ diff --git a/kwin/docker-build/init.sh b/kwin/docker-build/init.sh index 21baa1c..9fafa0f 100755 --- a/kwin/docker-build/init.sh +++ b/kwin/docker-build/init.sh @@ -18,6 +18,5 @@ else fi echo "Building docker image" -# docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-kwin:amd64" --load . -# docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-kwin:arm64" --load . -docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile.steamos -t "breezy-kwin-steamos:amd64" --load . \ No newline at end of file +docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile.steamos-3.7 -t "breezy-kwin-steamos-3.7:amd64" --load . +docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile.steamos-3.8 -t "breezy-kwin-steamos-3.8:amd64" --load . \ No newline at end of file diff --git a/kwin/docker-build/run-build.sh b/kwin/docker-build/run-build.sh index ff19c84..6a8ecd0 100755 --- a/kwin/docker-build/run-build.sh +++ b/kwin/docker-build/run-build.sh @@ -5,22 +5,10 @@ set -e USER=${SUDO_USER:-$USER} GROUP=$(id -gn $USER) -# Run containers for each architecture -if [[ "$1" == "x86_64" || -z "$1" ]]; then +# only SteamOS is pre-built +if [[ "$1" == steamos-* || -z "$1" ]]; then sudo rm -rf build/ - docker run --rm -t -v ./:/source --platform linux/amd64 "breezy-kwin:amd64" - sudo chown -R $USER:$GROUP out/ -fi - -if [[ "$1" == "aarch64" || -z "$1" ]]; then - sudo rm -rf build/ - docker run --rm -t -v ./:/source --platform linux/arm64 "breezy-kwin:arm64" - sudo chown -R $USER:$GROUP out/ -fi - -if [[ "$1" == "steamos" || -z "$1" ]]; then - sudo rm -rf build/ - docker run --rm -t -v ./:/source --platform linux/amd64 "breezy-kwin-steamos:amd64" + docker run --rm -t -v ./:/source --platform linux/amd64 "breezy-kwin-$1:amd64" sudo chown -R $USER:$GROUP out/ fi