[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