Skip to content

πŸ”’οΈ Drop the unmaintained ttf-parser (RUSTSEC-2026-0192) - #38

Merged
manupawickramasinghe merged 1 commit into
masterfrom
fix/ttf-parser-rustsec-2026-0192
Oct 16, 2026
Merged

manupawickramasinghe merged 1 commit into
masterfrom
fix/ttf-parser-rustsec-2026-0192

Conversation

@manupawickramasinghe

Copy link
Copy Markdown
Member

Summary

Removes the unmaintained ttf-parser (RUSTSEC-2026-0192) from the dependency tree. The advisory has no patched release; it recommends skrifa.

It came in through one path only: Linux Wayland title bars.
eframe's default winit/default β†’ winit wayland-csd-adwaita β†’ sctk-adwaita ab_glyph β†’ owned_ttf_parser β†’ ttf-parser. egui's own text rendering doesn't use it.

The change:

  • eframe now takes its default features minus winit/default.
  • winit is listed directly with its remaining default (wayland-dlopen) and wayland-csd-adwaita-notitle. That gives the same Adwaita client-side decorations, minus the title text.
  • ab_glyph, ab_glyph_rasterizer, owned_ttf_parser and ttf-parser leave Cargo.lock.

⚠️ Trade-off β€” please decide

On GNOME under Wayland, the window title bar shows no title text. GNOME is the common compositor that makes clients draw their own decorations.

  • KDE and wlroots compositors use server-side decorations and are unaffected.
  • macOS and Windows are unaffected; these winit features are Linux-only.

TODO.md records when titles can come back: once egui's winit can use sctk-adwaita β‰₯ 0.11, which renders them with skrifa.

If a missing title on GNOME is worse than an "unmaintained" warning, close this PR instead. The alternative is to accept the advisory with a written reason in the audit config until egui upgrades winit.

Test plan

  • cargo audit: RUSTSEC-2026-0192 no longer reported
  • cargo tree -i ttf-parser --target all finds nothing
  • cargo test: 200 passed
  • clippy -D warnings: default, none, gui, gui,web, web,push,tui
  • cargo check for Linux and Windows with the GUI enabled
  • macOS GUI launches
  • Not seen on a real GNOME/Wayland session (no Linux desktop available)

πŸ€– Generated with Claude Code

RUSTSEC-2026-0192: ttf-parser is unmaintained and will get no fixes; the
weekly Security workflow (cargo audit) has warned about it since
2026-09-21. There is no patched release β€” the advisory points to skrifa.

It reached SensorView through one path only:
eframe's default `winit/default` -> winit `wayland-csd-adwaita` ->
sctk-adwaita `ab_glyph` -> owned_ttf_parser -> ttf-parser, i.e. the text
of the client-side title bar on Wayland. egui's own text rendering does
not use it.

eframe now takes its default features minus `winit/default`, and winit
is listed directly with its remaining defaults (`wayland-dlopen`) and
`wayland-csd-adwaita-notitle` β€” the same Adwaita decorations without the
title text. ab_glyph, ab_glyph_rasterizer, owned_ttf_parser and
ttf-parser leave Cargo.lock.

Trade-off: on GNOME under Wayland (the only common compositor that makes
clients draw their own decorations) the title bar has no title text.
KDE/wlroots use server-side decorations; macOS and Windows are
unaffected β€” these winit features are Linux-only. Recorded in TODO.md
with the condition for restoring titles (sctk-adwaita >= 0.11, which can
render them with skrifa).

Verified: cargo audit no longer reports RUSTSEC-2026-0192; cargo test
passes; clippy -D warnings on default, '', gui, gui+web and
web+push+tui; cargo check for Linux and Windows with the GUI; the macOS
GUI launches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@manupawickramasinghe
manupawickramasinghe merged commit 189529d into master Oct 16, 2026
6 of 7 checks passed
@manupawickramasinghe
manupawickramasinghe deleted the fix/ttf-parser-rustsec-2026-0192 branch October 16, 2026 18:07
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.

1 participant