aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-14 03:58:57 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-14 03:58:57 -0500
commit6e793adbc1bff4586ae57d23c825c556a5d270b5 (patch)
tree033e3361cfa8d84625d832af523cdd269146d7cc /docker
parent4ea3730c5ccf618763dbd5b9020bd1a0f25f2c80 (diff)
Bundle libxcb-cursor to fix Qt xcb platform plugin crash
Qt >= 6.5.0 requires libxcb-cursor0 to load the xcb platform plugin, but it's frequently absent on user systems. All other libxcb libs are skipped (must match host X server ABI), but libxcb-cursor is a pure utility library safe to bundle. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'docker')
-rwxr-xr-xdocker/build-inner.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/docker/build-inner.sh b/docker/build-inner.sh
index 66dadf6..fc98c39 100755
--- a/docker/build-inner.sh
+++ b/docker/build-inner.sh
@@ -181,6 +181,17 @@ done
rm -f "${ALL_DEPS}"
echo "Dependencies bundled."
+# libxcb-cursor is required by Qt's xcb platform plugin (Qt >= 6.5.0) but is
+# frequently absent on user systems (package: xcb-cursor0 / libxcb-cursor0).
+# All other libxcb libs are skipped above because they must match the host X
+# server ABI; libxcb-cursor is a pure utility library with no ABI dependency
+# on the X server version, so it's safe to bundle.
+for _xcb_cursor in /lib/x86_64-linux-gnu/libxcb-cursor.so* \
+ /usr/lib/x86_64-linux-gnu/libxcb-cursor.so*; do
+ [ -f "${_xcb_cursor}" ] && cp -Lf "${_xcb_cursor}" "${OUT_DIR}/lib/" && \
+ echo "Bundled ${_xcb_cursor}"
+done
+
# ── Qt6 platform plugins ──
# Prefer aqtinstall location (Docker), then system, then qtpaths6 fallback.
QT6_PLUGIN_DIR=""