git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commit3f133ce924c145a1c387bc2fe860ae874d048aa5
parentfb2dc53d60
authorClaude <noreply@anthropic.com>
date2026-10-05 06:37
ci: install libxkbcommon-dev; checkout v5

The first run failed in smithay-client-toolkit's build script:
pkg-config could not find xkbcommon. It was installed in the container
the workflow was verified in, which hid it. The build links exactly two
native libraries (wayland-client, xkbcommon — every build script's
rustc-link-lib, checked); both packages are installed now. Reproduced
by removing libxkbcommon-dev locally, fixed by reinstalling it.

actions/checkout v4 runs on Node 20, which the run warned is deprecated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NwZ8nBQYEej9ic3tVC5v7Z

 .github/workflows/ci.yml | 7 ++++---
 CLAUDE.md                | 6 +++---
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 72774aa..43a92ef 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -20,16 +20,17 @@ jobs:
     runs-on: ubuntu-24.04
     timeout-minutes: 30
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v5
 
-      # libwayland-dev: wayland-sys links libwayland-client through pkg-config.
+      # libwayland-dev, libxkbcommon-dev: the two native libraries the build
+      # links, found through pkg-config (wayland-sys, smithay-client-toolkit).
       # mesa-vulkan-drivers: lavapipe, a software Vulkan device, so the GPU
       # tests (vk::compute, vk::plate_probe) run instead of skipping.
       - name: Install system packages
         run: |
           sudo apt-get update
           sudo apt-get install -y --no-install-recommends \
-            pkg-config libwayland-dev libvulkan1 mesa-vulkan-drivers
+            pkg-config libwayland-dev libxkbcommon-dev libvulkan1 mesa-vulkan-drivers
 
       - uses: dtolnay/rust-toolchain@stable
 
diff --git a/CLAUDE.md b/CLAUDE.md
index ab8f961..a8c675a 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -57,11 +57,11 @@ engine, that module's tests are the fast feedback loop; run `cargo test -p cce-u
 anything else.
 
 CI (`.github/workflows/ci.yml`, every push and PR) builds and tests on Ubuntu 24.04 with
-default and with all features, warnings as errors. It installs `libwayland-dev` (the build
-links libwayland-client through pkg-config) and Mesa's lavapipe, a software Vulkan device,
+default and with all features, warnings as errors. It installs `libwayland-dev` and
+`libxkbcommon-dev` (the two native libraries the build links, through pkg-config) and Mesa's lavapipe, a software Vulkan device,
 so the GPU tests (`vk::compute`, `vk::plate_probe`) RUN there rather than skip — and a
 last step fails the job if they printed a skip note, since a skipped test passes. To match
-it locally: `apt install libwayland-dev mesa-vulkan-drivers`, then
+it locally: `apt install libwayland-dev libxkbcommon-dev mesa-vulkan-drivers`, then
 `RUSTFLAGS="-D warnings" cargo test --all-features`.
 
 Wayland protocol bindings are generated **inline at compile time** by `wayland-scanner` macros in