Skip to content

fix(headless): no font stack, and revert the fontconfig install - #42

Merged
pathscale merged 1 commit into
masterfrom
fix/headless-no-system-fonts
Sep 9, 2026
Merged

fix(headless): no font stack, and revert the fontconfig install#42
pathscale merged 1 commit into
masterfrom
fix/headless-no-system-fonts

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Reverts the libfontconfig1-dev step merged a moment ago. That was the wrong direction: headless means no window, no renderer stack and no fonts, and reaching for a system package is the tell that something is enabled which should not be.

The real cause is in this manifest. ps-blitz removed system-fonts from blitz-dom's defaults in 86a24f8f build: no font dependency in a headless build, and chuzz named it again in three places: blitz-dom, blitz-script and dioxus-native. Every build therefore asked for parley's font enumeration, which on Linux is fontconfig, including the binary that opens no window and paints no glyph.

system-fonts now sits in gui beside dep:tauri. blitz-script?/system-fonts takes the question mark because blitz-script is optional and rides javascript.

Verified on the Linux target: cargo tree -i yeslogic-fontconfig-sys finds no such package in the headless graph, and still resolves it via parley for the default build, so the window keeps its fonts. Both binaries build; fmt clean.

No version bump: the manifest change alters only which features a build selects, and the action is consumed at @master.

Reverts the apt step added a moment ago. Installing libfontconfig1-dev on the
runner was the wrong direction: headless means no window, no renderer stack and
no fonts, and reaching for a system package is the tell that something is
enabled which should not be.

The real cause is here. ps-blitz took `system-fonts` out of blitz-dom's own
defaults in "build: no font dependency in a headless build", and this manifest
named it again in three places: blitz-dom, blitz-script and dioxus-native. So
every chuzz build asked for parley's font enumeration, which on Linux is
fontconfig, including the binary that opens no window and paints no glyph.

`system-fonts` is now part of `gui`, next to `dep:tauri`. The window paints
real glyphs and wants real faces; the headless host does not.

`blitz-script?/system-fonts` with the question mark, because blitz-script is
optional and rides `javascript`. Without it, enabling `gui` would drag the
script engine in on its own.

Verified on the Linux target: `cargo tree -i yeslogic-fontconfig-sys` reports
no such package for the headless feature set, and still resolves it through
parley for the default build, so the window keeps its fonts.
@pathscale
pathscale merged commit e84b4bd into master Sep 9, 2026
4 checks passed
@pathscale
pathscale deleted the fix/headless-no-system-fonts branch September 9, 2026 10:17
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