web-dev-qa-db-fra.com

avertissement de fontconfig: "/etc/fonts/fonts.conf", ligne 100: inconnu "élément vide"

Obtenir cette erreur sur mon serveur vps:

fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"

Voici le fichier:

https://Pastebin.com/VqcSgJ9x

Comment le réparer?

6
Ned St

TL; DR : Vous devriez probablement ignorer cet avertissement.

Si vous vous sentez un peu audacieux, vous pouvez essayer de supprimer le <blank>...</blank> section de votre /etc/fonts/fonts.conf fichier (peut-être faire une sauvegarde en premier si vous ne vous sentez pas si téméraire). Quand j'ai essayé cela, l'avertissement a disparu. Cependant, vous avez peut-être remarqué un message effrayant en haut du fichier disant: DO NOT EDIT THIS FILE. IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED. LOCAL CHANGES BELONG IN 'local.conf'. Ce n'était donc probablement pas la bonne solution. (Si vous vous demandez pourquoi je l'ai fait de toute façon: je n'ai pas vu un local.conf, était trop paresseux pour lire les bons manuels, et pensait que mon piratage écrasé ressemblait plus à une fonctionnalité qu'à un bogue de toute façon puisque les responsables publieraient probablement une solution officielle plus tard de toute façon - en plus je voulais apprendre.)

OK, revenons maintenant. Ceci est (sans surprise) lié à fontconfig 's <blank> élément, dont l'utilisation est décrite dans les fontconfig docs as

<blank> Les polices incluent souvent des glyphes "cassés" qui apparaissent dans l'encodage mais sont dessinés comme des blancs sur l'écran. Dans l'élément, placez chaque caractère Unicode censé être vide dans un élément. Les caractères en dehors de cet ensemble qui sont dessinés comme vierges seront éliminés de l'ensemble de caractères pris en charge par la police.

Les documents suggèrent qu'il n'y a rien à définir ces options. En outre, ils sont spécifiés dans la DTD . Cependant, vous avez peut-être remarqué une API de fontconfig associée appelée FcBlanks (emphase sur moi):

Un objet FcBlanks contient une liste de caractères Unicode qui devraient être vides lorsqu'ils sont dessinés. Lors de la numérisation de nouvelles polices, tous les glyphes qui sont vides et ne figurant pas dans cette liste seront supposés être rompus et non placés dans le FcCharSet associé à la police. Cela fournit un CharSet nettement plus précis pour les applications.

FcBlanks est obsolète et ne devrait pas être utilisé dans le code nouvellement écrit. Il est toujours accepté par certaines fonctions pour la compatibilité avec le code plus ancien mais sera supprimé à l'avenir .

Cela me suggère qu'ils sont autorisés dans le fichier de configuration pour des raisons de compatibilité mais ne sont plus destinés à être utilisés.

Sans plus d'informations, je ne sais pas dans quel contexte vous voyez cet avertissement, cependant, récemment, je l'ai beaucoup vu avec chrome/electron/Google Chrome. Un coup d'œil au chrome external/fontconfig historique des commits que j'ai remarqué:

commit dc8326d3f116bb2a1425aa68660a332e351b6cb4
Author: Behdad Esfahbod <[email protected]>
Date:   Fri Sep 15 01:20:56 2017 -0400

    [fc-query] Remove --ignore-blanks / -b

    Blanks are the new black, err, dead!

...

commit 8b46a518bda8ecb3c5e2dfb0c1e5fda99e40aa3e
Author: Behdad Esfahbod <[email protected]>
Date:   Tue Sep 12 17:08:08 2017 -0400

    Update documentation for removal of blanks

    Patch from Jerry Casiano.

Vous pouvez également le voir dans le 2.12.91 change log . Je soupçonne que l'avertissement a commencé à apparaître à peu près au moment où le chrome a été mis à jour vers cette version (ou plus récente) de fontconfig. Il on dirait que cela s'est produit vers juin 2018/chrome 69 . Jetant un œil au fichier DEPS et third_party/fontconfig/BUILD.gn suggère que ba206df9b9a7ca300265f650842c1459ff7c634a (un couple commet plus récent que 2.13.1) est utilisé pour les builds intégrés tandis que ChromeOS et Linux utiliseront "la version du système". Si je comprends bien, cela signifie que lors de la création de chrome sur/pour Linux, build/install-build-deps.sh aurait installé la dernière libfontconfig1 package fourni par la distribution (dans mon cas 2.11.0-6.7 + b1 ). À ce stade, j'ai cherché un peu plus d'informations sur la façon dont ma génération de chrome a été compilée, en particulier, mais j'ai ensuite perdu tout intérêt. Je suppose que les responsables essaient de le maintenir en phase avec le reste de la distribution.

En fin de compte, si je ne me trompe pas, tout ce message signifie vraiment que le fichier de configuration contient des informations (autres que des commentaires) qui ne seront pas utilisées par le programme qui l'a généré.

Voir également:

5
iX3