name: Build wlroots (patched) # The desktop's wlroots (Arch Linux ARM's wlroots0.20, what the desktop package's labwc links) # rebuilt with tools/wlroots/patches: a Vulkan DMA-BUF allocator for the Adreno node, which is not # a DRM device, so labwc's vulkan and gles2 renderers can start. Built in an Arch Linux ARM # container on an arm64 runner and published as a release asset the apk build fetches # (tools/wlroots/release.env names the tag and sha). The hosted desktop package is never changed. on: push: paths: - 'tools/wlroots/**' - '.github/workflows/build-wlroots.yml' workflow_dispatch: inputs: tag: description: 'Release tag to publish as (e.g. wlroots-0.20.2-p1); empty = artifact only' required: false default: '' permissions: contents: write jobs: build: runs-on: ubuntu-24.04-arm timeout-minutes: 90 steps: - uses: actions/checkout@v4 - name: Build in Arch Linux ARM run: | set -euo pipefail docker run --rm -v "$PWD:/work" -w /work menci/archlinuxarm:base-devel bash tools/wlroots/build-in-arch.sh sudo chown -R "$(id -u):$(id -g)" . - uses: actions/upload-artifact@v4 with: name: wlroots-patched path: | wlroots.tzst wlroots.tzst.sha256 - name: Publish if: github.event_name == 'workflow_dispatch' && inputs.tag != '' env: GH_TOKEN: ${{ github.token }} run: | set -euo pipefail gh release create "${{ inputs.tag }}" --title "${{ inputs.tag }}" --notes "wlroots 0.20.2 with tools/wlroots/patches (Vulkan DMA-BUF allocator for non-DRM GPU nodes); staged by the apk at /usr/local/lib/droiddeck-wlroots for the desktop's GPU renderers. sha256 $(cut -d' ' -f1 wlroots.tzst.sha256)" wlroots.tzst wlroots.tzst.sha256 || gh release upload "${{ inputs.tag }}" wlroots.tzst wlroots.tzst.sha256 --clobber