Skip to main content

max / alloy

Ask fontconfig the way the rest of the file does The server branch added in 1b03885 wrote `fc-list family | grep -q ...`, where `family` is read as a pattern rather than as the element to print, so it matched fonts whose family is literally "family" and the assertion failed on an image that has the font. Every other fontconfig check here is pattern then element, and this one now is too. Verified against the built client image, which resolves monospace to IosevkaTerm and matches both families. The wrong assertion was caught by the build one step after it was written, which is the argument for asserting on both branches rather than skipping the one nobody runs.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-03 23:22 UTC
Signed with PGP, not checked
Commit: 722b1a95403b1b1d6e674cbdb8ad78e46c6e85f7
Parent: 1b03885
1 file changed, +2 insertions, -2 deletions
M Containerfile +2 -2
@@ -2030,9 +2030,9 @@
2030 2030 else \
2031 2031 [ "$(fc-list ':lang=ja' family | wc -l)" -eq 0 ] \
2032 2032 || { echo "profile=server carries the browser's script coverage; it ships no browser" >&2; exit 1; }; \
2033 - fc-list family | grep -q 'IosevkaTerm Nerd Font Mono' \
2033 + [ "$(fc-list ':family=IosevkaTerm Nerd Font Mono' family | wc -l)" -ge 1 ] \
2034 2034 || { echo "IosevkaTerm is missing; the font layers are unconditional and this profile has a console" >&2; exit 1; }; \
2035 - fc-list family | grep -q 'Atkinson Hyperlegible' \
2035 + [ "$(fc-list ':family=Atkinson Hyperlegible' family | wc -l)" -ge 1 ] \
2036 2036 || { echo "Atkinson is missing; the font layers are unconditional" >&2; exit 1; }; \
2037 2037 echo "fonts: Alloy's own faces present, the browser's coverage correctly absent"; \
2038 2038 fi; \