diff --git a/CHANGELOG.md b/CHANGELOG.md index 48c4267..ae8b6eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,19 @@ the repos share a version number. ## [Unreleased] +## [0.1.1] - 2026-08-23 + +### Fixed + +- The AppImage bundles Qt's Wayland client buffer integrations + (`wayland-graphics-integration-client`). linuxdeploy's qt plugin deploys the + shell-integration and decoration plugins but not this directory, and a + Wayland session with zero buffer integrations aborts on the first expose; + 0.1.0's AppImage only started under `QT_QPA_PLATFORM=xcb`. The build now + fails if any Wayland or xcb platform piece is missing from the bundle. + +## [0.1.0] - 2026-08-23 + ### Added - Configurable keep-awake, under *Power* in Settings. **Never**, **While diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ade10f..94ac22d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.21) project(Dish - VERSION 0.1.0 + VERSION 0.1.1 DESCRIPTION "Dish Linux client for the Satellite gamepad-over-LAN protocol" LANGUAGES CXX) diff --git a/packaging/com.tinkernorth.Dish.metainfo.xml b/packaging/com.tinkernorth.Dish.metainfo.xml index 6a74e2f..9dbb3dc 100644 --- a/packaging/com.tinkernorth.Dish.metainfo.xml +++ b/packaging/com.tinkernorth.Dish.metainfo.xml @@ -102,6 +102,12 @@ + + https://github.com/TinkerNorth/dish-linux/releases/tag/0.1.1 + +

Fixes the AppImage on Wayland desktops: the bundle now carries Qt's client buffer integrations, without which 0.1.1's predecessor aborted at startup outside X11.

+
+
https://github.com/TinkerNorth/dish-linux/releases/tag/0.1.0 diff --git a/scripts/build-appimage.sh b/scripts/build-appimage.sh index 3c758b1..cf3a3e9 100755 --- a/scripts/build-appimage.sh +++ b/scripts/build-appimage.sh @@ -87,6 +87,27 @@ export QMAKE="${QMAKE:-$(command -v qmake6 || command -v qmake)}" --icon-file "${appdir}/usr/share/icons/hicolor/512x512/apps/com.tinkernorth.Dish.png" \ --plugin qt +# The qt plugin deploys wayland-shell-integration and the decoration plugin +# but not the client buffer integrations, and a Wayland session with zero +# buffer integrations aborts at the first expose ("Available client buffer +# integrations: QList()", then QRhi fails and Qt Quick qFatals). Copy the +# directory it forgets; the packaging pass below pulls its libraries. +qt_plugin_dir="$("${QMAKE}" -query QT_INSTALL_PLUGINS)" +if [ -d "${qt_plugin_dir}/wayland-graphics-integration-client" ]; then + cp -r "${qt_plugin_dir}/wayland-graphics-integration-client" \ + "${appdir}/usr/plugins/" +fi +for must in \ + "platforms/libqwayland-egl.so" \ + "platforms/libqxcb.so" \ + "wayland-graphics-integration-client" \ + "wayland-shell-integration"; do + if [ ! -e "${appdir}/usr/plugins/${must}" ]; then + echo "::error::AppImage is missing usr/plugins/${must}; a Wayland desktop crashes at startup without it" >&2 + exit 1 + fi +done + install -Dm644 packaging/com.tinkernorth.Dish.metainfo.xml \ "${appdir}/usr/share/metainfo/com.tinkernorth.Dish.metainfo.xml"