Skip to content

Commit fe45257

Browse files
fix(packaging): bundle the Wayland client buffer integrations in the AppImage; 0.1.1
linuxdeploy's qt plugin deploys wayland-shell-integration and the decoration plugin but not wayland-graphics-integration-client, 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 script now copies the directory the plugin forgets and fails the build when any Wayland or xcb platform piece is missing from the bundle.
1 parent 22d920e commit fe45257

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,19 @@ the repos share a version number.
1818

1919
## [Unreleased]
2020

21+
## [0.1.1] - 2026-08-23
22+
23+
### Fixed
24+
25+
- The AppImage bundles Qt's Wayland client buffer integrations
26+
(`wayland-graphics-integration-client`). linuxdeploy's qt plugin deploys the
27+
shell-integration and decoration plugins but not this directory, and a
28+
Wayland session with zero buffer integrations aborts on the first expose;
29+
0.1.0's AppImage only started under `QT_QPA_PLATFORM=xcb`. The build now
30+
fails if any Wayland or xcb platform piece is missing from the bundle.
31+
32+
## [0.1.0] - 2026-08-23
33+
2134
### Added
2235

2336
- Configurable keep-awake, under *Power* in Settings. **Never**, **While

‎packaging/com.tinkernorth.Dish.metainfo.xml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@
102102
<!-- Kept in step with project(Dish VERSION ...); version-consistency.yml
103103
fails the PR that moves one without the other. -->
104104
<releases>
105+
<release version="0.1.1" date="2026-08-23" type="stable">
106+
<url type="details">https://github.com/TinkerNorth/dish-linux/releases/tag/0.1.1</url>
107+
<description>
108+
<p>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.</p>
109+
</description>
110+
</release>
105111
<release version="0.1.0" date="2026-08-20" type="stable">
106112
<url type="details">https://github.com/TinkerNorth/dish-linux/releases/tag/0.1.0</url>
107113
<description>

‎scripts/build-appimage.sh‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,27 @@ export QMAKE="${QMAKE:-$(command -v qmake6 || command -v qmake)}"
8787
--icon-file "${appdir}/usr/share/icons/hicolor/512x512/apps/com.tinkernorth.Dish.png" \
8888
--plugin qt
8989

90+
# The qt plugin deploys wayland-shell-integration and the decoration plugin
91+
# but not the client buffer integrations, and a Wayland session with zero
92+
# buffer integrations aborts at the first expose ("Available client buffer
93+
# integrations: QList()", then QRhi fails and Qt Quick qFatals). Copy the
94+
# directory it forgets; the packaging pass below pulls its libraries.
95+
qt_plugin_dir="$("${QMAKE}" -query QT_INSTALL_PLUGINS)"
96+
if [ -d "${qt_plugin_dir}/wayland-graphics-integration-client" ]; then
97+
cp -r "${qt_plugin_dir}/wayland-graphics-integration-client" \
98+
"${appdir}/usr/plugins/"
99+
fi
100+
for must in \
101+
"platforms/libqwayland-egl.so" \
102+
"platforms/libqxcb.so" \
103+
"wayland-graphics-integration-client" \
104+
"wayland-shell-integration"; do
105+
if [ ! -e "${appdir}/usr/plugins/${must}" ]; then
106+
echo "::error::AppImage is missing usr/plugins/${must}; a Wayland desktop crashes at startup without it" >&2
107+
exit 1
108+
fi
109+
done
110+
90111
install -Dm644 packaging/com.tinkernorth.Dish.metainfo.xml \
91112
"${appdir}/usr/share/metainfo/com.tinkernorth.Dish.metainfo.xml"
92113

0 commit comments

Comments
 (0)