Commitb3258d71Recorded2 Sep 2026Repositorysigil-harfbuzz

CI: supply a font, not just the library

Message

The first CI run failed with "No test font found — set SIGIL_TEST_FONT or install fontconfig". The suite falls back to fc-match when SIGIL_TEST_FONT is unset, and a CI worker has no font cache; my laptop does, which is why this only appeared once it ran somewhere else.

Adds font-dejavu to the guix shell and points SIGIL_TEST_FONT at a known path inside the profile. Deterministic, where relying on fc-match to find something is not.

Changed
 .kiln/ci.sgv | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
Diff
.kiln/ci.sgvmodified
@@ -5,8 +5,12 @@
5
steps: #[
6
(shell name: deps "sigil deps install")
7
(shell name: build "sigil build")
−8
;; FFI wrapper: the runtime dlopens the system library by soname, so it
−9
;; must be on the linker path. `guix shell` populates the profile but
−10
;; does NOT set LD_LIBRARY_PATH, so both halves are needed.
−11
(shell name: test "guix shell harfbuzz freetype -- sh -c 'LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib sigil test'")
+8
;; FFI wrapper. Three things the worker does not have by default:
+9
;; - the system library, via guix shell
+10
;; - it on the linker path: guix populates the profile but NOT
+11
;; LD_LIBRARY_PATH, and the runtime dlopens by soname
+12
;; - a font. The suite falls back to fc-match when SIGIL_TEST_FONT is
+13
;; unset, and a CI worker has no font cache. Pointing at a known
+14
;; path in the profile is deterministic; relying on fc-match is not.
+15
(shell name: test "guix shell harfbuzz freetype font-dejavu -- sh -c 'LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib SIGIL_TEST_FONT=$GUIX_ENVIRONMENT/share/fonts/truetype/DejaVuSans.ttf sigil test'")
16
]))