Skip to content

deps: SDL forks carry tests, and Wayland loads on older libxkbcommon - #294

Merged
foxnne merged 1 commit into
mainfrom
deps/sdl-fork-tests
Oct 9, 2026
Merged

foxnne merged 1 commit into
mainfrom
deps/sdl-fork-tests

Conversation

@foxnne

@foxnne foxnne commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #289. Part of #280 (steps A1, A2 and A4b landed on the forks).

Moves fizzy's .sdl pin to sdl_zig fizzy-1.0.3+3.4.16-8 (SDL fizzy-3.4.16-8). That brings two things:

1. The forks carry tests now. fizzyedit/SDL has fizzy's own suites on SDL's test harness, one per patch, each failing without its patch. fizzyedit/sdl_zig runs them with zig build test-fizzy in CI: Linux on lavapipe under Xvfb and headless weston, and the hosted macOS runners, which have a Metal device.

2. SDL patch 8: Wayland loads where libxkbcommon is older than 1.10 (#289).

  • The bug: built against 1.10+ headers (sdl_zig uses 1.13), SDL required xkb_keymap_mod_get_mask(). On Ubuntu 24.04 (1.6) or Debian 12 (1.5) the whole Wayland driver reported itself unavailable, and fizzy fell back to X11. Upstream main has the same problem.
  • The fix: the symbol is now optional at runtime, and the masks fall back to xkb_keymap_mod_get_index(), the path SDL already takes when built against older headers. For standard keymaps both paths give the same masks.
  • The proof:
    • red on ubuntu:24.04 without the patch ("wayland not available");
    • green on 24.04 and 26.04 with it, where a German keymap's Shift, Caps Lock and AltGr levels come out right.
  • The PRs: wayland: xkb_keymap_mod_get_mask() optional at runtime, with a suite SDL#3 → fizzy-3.4.16-7 (36dda37); test: run the Wayland keyboard suite on Ubuntu 24.04 and 26.04 sdl_zig#3 → fizzy-1.0.3+3.4.16-7 (264af2a).

docs/DEPENDENCIES.md records patch 8, the three suites, sdl_zig's step and CI jobs, all six tags, and each patch's check at a rebase.

Verified

On macOS (arm64), in a fresh workspace on main:

Gate Result
zig build 43/43 steps
zig build test 75/75 steps
zig build test-integration 33/33 steps, 347/347 tests
zig build check-web 16/16 steps
zig build test-sdk-version 12/12 steps
zig build -Dtarget=x86_64-linux-gnu 54/54 steps (builds the patched Wayland file)

Not verified: a fizzy binary running on a real Ubuntu 24.04 Wayland desktop. The evidence is the fork suite in CI containers, built from the same sdl_zig. The SDK fingerprint doesn't move, since plugins never link SDL.

🤖 Generated with Claude Code

@foxnne
foxnne force-pushed the deps/sdl-fork-tests branch from 3f29576 to 24dcfce Compare October 9, 2026 18:52
@foxnne foxnne changed the title deps: the SDL forks carry tests; pin sdl_zig fizzy-1.0.3+3.4.16-6 deps: SDL forks carry tests, and Wayland loads on older libxkbcommon Oct 9, 2026
Pins sdl_zig fizzy-1.0.3+3.4.16-8 (SDL fizzy-3.4.16-8).

fizzyedit/SDL now carries fizzy's own test suites beside its patches, and fizzyedit/sdl_zig a
`zig build test-fizzy` step that runs them in CI. The new pin also takes SDL patch 8: built
against libxkbcommon 1.10+ headers, SDL required `xkb_keymap_mod_get_mask()`, so on Ubuntu 24.04
(1.6) or Debian 12 (1.5) the Wayland driver reported itself unavailable and fizzy fell back to X11.
The symbol is now optional at runtime, with SDL's existing fallback for the masks. A suite proves
it: red on ubuntu:24.04 without the patch, green on 24.04 and 26.04 with it. DEPENDENCIES.md
records patch 8, the three suites (patches 1, 8 and 6), sdl_zig's step and jobs, and the tags.

Fixes #289. Part of #280.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne
foxnne force-pushed the deps/sdl-fork-tests branch from 24dcfce to 968f022 Compare October 9, 2026 19:20
@foxnne
foxnne marked this pull request as ready for review October 9, 2026 19:38
@foxnne
foxnne merged commit cfccb3f into main Oct 9, 2026
10 of 11 checks passed
@foxnne
foxnne deleted the deps/sdl-fork-tests branch October 9, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

linux: Wayland unavailable where libxkbcommon is older than 1.10

1 participant