Repository navigation
fix(emulator): migrate to SDL3 and Linux graphics deps - #863
Conversation
Fedora/non-NixOS devenv could not create an SDL renderer because pkgs.SDL2 was sdl2-compat without GL/Wayland/X11 libs (#855). - Replace sdl2 crate with sdl3 (default renderer, software fallback) - Ship pkgs.sdl3 plus Linux graphics packages in devenv - Update CI apt/brew and contributor docs Closes: CAD-137 Change-Id: 9a9bbb96856f95728af6630851a39718 Change-Id-Short: qpqoooqtrutk
446ab0f to
48741ac
Compare
|
@cursoragent can you have a look at the failing ci 🙏🏾 |
|
I traced the Cargo failure and pushed a fix on What failedThe The cache budget warnings are noise; they did not cause this failure. Root causeThe PR switched apt from The apt cache action requested Fix pushed
All 16 matrix unit tests pass locally. CI statusA new Cargo run is in progress: https://github.com/OGKevin/cadmus/actions/runs/31897736888
|
libsdl3-dev is unavailable on Ubuntu 24.04 (ubuntu-latest), so the apt cache action silently skipped it and llvm-cov warmup failed to link -lSDL3. Run cache-warmup, Kobo builds, and the test/clippy Linux matrix on ubuntu-26.04 to match the Cursor Cloud Dockerfile, install apt packages in clippy jobs, and bump the apt cache version. Co-authored-by: Kevin <OGKevin@users.noreply.github.com>
| permissions: | ||
| contents: read | ||
| runs-on: ubuntu-latest | ||
| runs-on: ubuntu-26.04 |
There was a problem hiding this comment.
🚫 [actionlint] reported by reviewdog 🐶
label "ubuntu-26.04" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-intel", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file [runner-label]
There was a problem hiding this comment.
@cursoragent can you explain this linter failure while the CI itself succeded. Is actionlint outdated?
There was a problem hiding this comment.
Yes — this is essentially actionlint being behind GitHub, not your workflow being wrong.
What’s happening
These are two different checks:
| Check | What it validates |
|---|---|
| Cargo CI | GitHub actually runs the job on a real runner |
| actionlint | Statically checks workflow YAML against a built-in list of known runs-on labels |
You changed jobs to runs-on: ubuntu-26.04. GitHub added that runner in June 2026 (public preview), and your Cargo run proves it works: cache-warmup completed on ubuntu-26.04, and test/clippy matrix jobs are running on it too.
actionlint 1.7.12 (pinned in .github/workflows/actions-lint.yml) still has a hardcoded allowlist that includes things like ubuntu-24.04 and macos-26, but not ubuntu-26.04. So it reports:
label "ubuntu-26.04" is unknown
That’s a false positive relative to real GitHub behavior.
Is actionlint outdated?
Relative to GitHub: yes.
Relative to its own releases: it’s current — 1.7.12 is the latest released version, and upstream support for ubuntu-26.04 is still pending (rhysd/actionlint#682, PR #683).
So this isn’t “you’re using a deprecated runner”; it’s “the linter’s catalog hasn’t caught up with a new GitHub runner image yet.”
Why Cargo can pass while Actions lint fails
They’re separate required checks:
- Cargo → compiles/links/tests on real infrastructure
- Actions lint → runs
actionlinton.github/workflows/**before anything executes
actionlint fails fast on the unknown label, which is why required-actions-lint fails even while Cargo is green/in progress.
How to silence it (when you want to)
Common options:
-
Add
.github/actionlint.yamland whitelist the label:self-hosted-runner: labels: - ubuntu-26.04
(Despite the name, this is the standard way to teach actionlint about labels GitHub supports but actionlint doesn’t know yet.)
-
Ignore the specific error in
.github/lint/actionlint-ignore.txt. -
Upgrade actionlint once a release includes
ubuntu-26.04(PR chore(deps): use matchDepNames for mupdf Renovate group #683 merged/released).
Bottom line: CI succeeding on ubuntu-26.04 is the ground truth. actionlint is flagging a label GitHub already accepts but its static list hasn’t been updated for yet.


Fedora/non-NixOS devenv could not create an SDL renderer because pkgs.SDL2 was sdl2-compat without GL/Wayland/X11 libs (#855).
Closes: CAD-137
Change-Id: 9a9bbb96856f95728af6630851a39718
Change-Id-Short: qpqoooqtrutk