GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git
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