From d5a8872113f1fd03695cf39ce3368c9bb4736d93 Mon Sep 17 00:00:00 2001 From: Zinadin Zidan Date: Wed, 28 Oct 2026 03:37:59 +0600 Subject: [PATCH] fix(arch-package): depend on libxkbcommon-x11, without which the window can't open The apps build winit's X11 backend, and the Craft apps' winit (storytold/winit a517b38) loads libxkbcommon-x11 when it sets up the keyboard on X11 or XWayland: without it the app panics at start ("Library libxkbcommon-x11.so could not be loaded"). Arch ships it as its own package, apart from libxkbcommon, and the package only depended on libxkbcommon, so on a system without it (a fresh install, a minimal or Wayland-first desktop) every Craft app's Arch package started and couldn't open its window. PhotoCraft hit the same panic on its deb (photocraft#201) and fixed its own nfpm.yaml; the shared Arch package never got it. libxkbcommon-x11 is now in depends. A test checks the generated PKGBUILD. Checked on a clean archlinux container with a Craft app's release tarball, under Xvfb: the package built by main installs without libxkbcommon-x11 and the window fails with that error; the one built with this change pulls in libxkbcommon-x11 1.13.2 and the window runs. The unit tests pass on Ubuntu 24.04 as in test-freebsd.yml (155, 28 skipped), and test_arch passes on Arch with makepkg, end-to-end build included; shellcheck is clean. Co-Authored-By: Claude Opus 5.5 --- actions/arch-package/arch-package.sh | 5 ++++- tests/test_arch.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/actions/arch-package/arch-package.sh b/actions/arch-package/arch-package.sh index fb1d89c..93fcfcc 100755 --- a/actions/arch-package/arch-package.sh +++ b/actions/arch-package/arch-package.sh @@ -181,6 +181,9 @@ COMPRESSZST=(zstd -c -T0 --ultra -20 -) EOF # Write PKGBUILD +# libxkbcommon-x11 is a hard dependency next to libxkbcommon: the apps build winit's X11 backend, +# which loads it at startup on X11 and XWayland, and panics without it ("Library +# libxkbcommon-x11.so could not be loaded"; photocraft#201). Arch packages it separately. cat > "$work/PKGBUILD" <