[Eisfair] Fontconfig warning: using without calling FcInit
Marcus Röckrath
marcus.roeckrath at gmx.de
Sa Okt 24 13:39:30 CEST 2026
Hallo,
Helmut Pohl wrote:
>> Sehe gerade, libpango wurde gerade von Holger aktualisiert; vielleicht
>> hat sich damit das Problem erledigt. Die alte Version war noch aus 2025
>> und Holger muss natürlich erst die Abhängigkeiten bauen, bevor er dann
>> die ganze Kette schliessen kann.
>
> Du hast Recht, der Fehler tritt nicht mehr auf.
Vielleicht ein paar Worte der Erklärung, wie sich das im Ganzen darstellt -
auch wenn jetzt am Beispiel der libfontconfig dargestellt, gilt das
grundsätzlich für jede Library.
libfonconfig ist eine Lib, die libpangocairo einbindet, also dessen
Funktionalität nutzt.
libfontconfig liegt in API-Version 1 (Versionsnummer der Lib-Schnittstelle)
vor, das bedeutete nichts anderes als, das libfontconfig eine
festdefinierten Satz an Funktionen samt festdefinierten Eingabeoptionen und
Rückgabewerten, Variablen, ... bereitstellt.
Solange sich an der nach außen sichtbaren Erscheinung der libfontconfig
nichts ändert, bleibt es bei der Api-Version, Korrekturen, Optimierungen
etc. innerhalb der Api sind jederzeit möglich und haben keinen Einfluss,
insbesondere keine Codeänderung, auf Programme und Libs, die libfontconfig
nutzen wollen.
Man findet dann eine /usr/lib/libfontconfig1.so auf dem System vor, genauer
# ls -l /usr/lib/libfontconfig*
lrwxrwxrwx 1 root root 23 Oct 20 20:59 /usr/lib/libfontconfig.so.1 ->
libfontconfig.so.1.16.1
-rw-r--r-- 1 root root 468840 Oct 20 21:00 /usr/lib/libfontconfig.so.1.16.1
Die exakte Version der aktuellen libfontconfig1 ist also nun 1.16.1.
Anwendung und Libs binden diese über libfontconfig.so.1 ein, referenzieren
also nicht über die aktuelle Version libfontconfig.so.1.16.1, denn dann
würde jede kleine Versionsänderung der libfontconfig zum Nichtfunktionieren
von Programmen/Libs führen.
Wird die Außenschnittstelle geändert, wird die API auf z. B. 2 geändert, da
mit Sicherheit eine Anwendung den Code zur Nutzung der libfontconfig
anpassen muss, weil sich z. B. die Funktionsaufrufe ändern.
Dabei können nun aber beide linfontconfig1 und libfontconfig2 parallel auf
dem System vorliegen, damit ältere Programme/Libs noch die für sie
notwendige libfontconfig1, neue aber dann eben libfontconfig2 vorfinden.
Was ist nun passiert: libfontconfig hat nicht direkt eine API-Änderung
gemacht, aber eine über die Schnittstelle wirksame "Warnung" (es ist keine
Error/Fehler) eingeführt, auf die dann Programme/Libs nicht vorbereitet
sind.
Ist die Frage, ob die libfontconfig-Macher dies nicht besser mit Änderung
der API-Version hätten machen sollen, weil diese Änderung ja eine
Codeänderung in Programmen/Libs erfordert.
Ich hoffe, ich habe mich verständlich ausgedrückt.
--
Gruß Marcus
[eisfair-Team]
Mehr Informationen über die Mailingliste Eisfair