Package: gargoyle-free Version: 2023.1+dfsg-4 I am the maintainer of Gargoyle. For reference, see https://github.com/garglk/garglk/issues/822.
Gargoyle used to embed fonts in the binary, so that it always had fonts to fall back on, no matter what. However, the SIL Open Font License is incompatible with the GPL. Gargoyle needed new fonts with wide Unicode support, and inevitably fonts with the OFL had to be chosen, meaning Gargoyle can no longer embed these fonts. Instead, Gargoyle has its own fonts that are installed and it hard-codes paths to these fonts, which are used as fallback fonts. In addition, Gargoyle hard-codes the path to GNU Unifont, which it also installs. The Debian package does not install these fonts, instead apparently relying on system packages. But Gargoyle does not look at system fonts for fallbacks, because it can't rely on them being installed. That's why it includes its own copies of the fonts. Note that fontconfig IS used in normal operation to find fonts; it's just the fallback fonts that it needs to find directly. The following is what I wrote up in the issue referenced above as a recommendation: 8< -------------------- • Gargoyle needs to know the paths of fallback fonts. If you don't want its fonts in /usr/share/fonts, then you can place them in /usr/share/io.github.garglk/Gargoyle and modify font_path_fallback_system in garglk/draw.cpp to unconditionally look for them there. If you really want system fonts to be the fallback instead, modify the gli_initialize_fonts function to include whatever fonts you want, ensuring that font_path_fallback_system is looking in the right place for them. ◦ Gargoyle used to embed fonts in the binary so that fallback fonts always worked. But the fonts it was using lacked decent Unicode coverage, and almost all modern fonts use the SIL Open Font License which does not allow embedding in a GPL program. So Gargoyle now has to find fonts externally. If a user specifies an invalid font, Gargoyle will look for its fallback fonts, and if it can't find them, it aborts. • Either install Gargoyle's Unifont fonts (which by default go into /usr/share/io.github.garglk/Gargoyle, so shouldn't interfere with anything), or make the system's unifont package a dependency, and modify make_substitution_fonts to point to the system unifont. 8< -------------------- In short, to work properly, Gargoyle needs to know where its fonts are, and won't rely on fontconfig to find them. These fallback fonts will only ever be used if the user's specified fonts can't be found, or in the case of Unifont, it will be used if the selected font is missing a glyph.