Introduction à GLib
Le paquet GLib contient des
bibliothèques de bas niveau utiles pour avoir la gestion de
structures de données pour le C, des enveloppes de portabilité et
des interfaces pour des fonctionnalités d'exécution telles qu'une
boucle d'événements, les fils d'exécution, le chargement dynamique
et un système d'objets.
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-9.1.
Informations sur le paquet
Téléchargements supplémentaires
Dépendances de GLib
Recommandées
libxslt-1.1.34 et PCRE-8.44 (construit avec les
propriétés Unicode)
Facultatives
dbus-1.12.16 et bindfs (tous deux utilisés dans quelques
tests), GDB-9.1
(pour les liaisons), docbook-xml-4.5, docbook-xsl-1.79.2 et GTK-Doc-1.32 (pour
construire la documentation de l'api)
Dépendances de Additional Runtime
gobject-introspection-1.62.0
(doit être installé avant gtk+, atk, etc.)
Cité directement depuis le fichier INSTALL
: « Certaines fonctionnalités de GIO
liées aux types mime exigent update-mime-database et les
outils update-desktop-database »,
qui font partie respectivement de shared-mime-info-1.15 et de desktop-file-utils-0.24. Ces deux
utilitaires sont aussi requis pour certains tests.
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/glib2
Installation de GLib
Si vous le souhaitez, appliquez le correctif facultatif. Dans
beaucoup de cas, les applications qui utilisent cette bibliothèque,
directement ou indirectement via d'autres bibliothèques comme
GTK+-3.24.13, affichent de nombreux
avertissements lorsqu'ils sont lancés depuis la ligne de commande.
Ce correctif permet d'utiliser une variable d'environnement,
GLIB_LOG_LEVEL, qui supprime les messages non souhaités. La valeur
de la variable est un nombre qui correspond à :
1 Alerte
|
2 Critique
|
3 Erreur
|
4 Avertissement
|
5 Remarque
|
Par exemple GLIB_LOG_LEVEL=4 ignorera les sorties de messages
d'avertissement et de remarque (et les messages Info/Debug s'ils
sont activés). Si GLIB_LOG_LEVEL n'est pas défini, la sortie des
messages normaux ne sera pas affectée.
patch -Np1 -i ../glib-2.62.4-skip_warnings-1.patch
Avertissement
Si vous mettez à jour depuis une version précédente de GLib qui a
été construite avec les autotools, et que les archives
libtool (les fichiers .la) ont
été installées, vous devrez ajuster toutes les archives libtool,
/usr/lib/libg{io,lib,module,object,thread}-2.0.la
,
en remplaçant les références aux archives libtool de ce paquet
par le drapeau de l'éditeur de lien (-l) approprié, -lg{io,lib,module,object,thread}.
Plus de 600 fichiers doivent être modifiés sur un bureau gnome
complet.
Autrement, vous pouvez simplement supprimer les fichiers .la
inutiles avec le script de Libtool archive
(.la) files.
Appliquez un correctif de sécurité pour corriger une vulnérabilité
permettant de contourner le serveur mandataire :
patch -Np1 -i ../glib-2.62.4-cve_2020_6750_fix-1.patch
Installez GLib en lançant les
commandes suivantes :
mkdir build &&
cd build &&
meson --prefix=/usr \
-Dman=true \
-Dselinux=disabled \
.. &&
ninja
La suite de tests de GLib exige
desktop-file-utils pour quelques
tests. Cependant, desktop-file-utils exige GLib pour se compiler ; vous devrez donc
installer d'abord GLib puis lancer
la suite de test.
Maintenant, en tant qu'utilisateur root
:
Note
Si libxslt-1.1.34 est installé, la commande
suivante peut indiquer plusieurs erreurs (environ 33) qui
commencent par « Error: no ID for constraint linkend: »
lors de l'installation des pages de manuel. Elles sont
inoffensives.
ninja install &&
mkdir -p /usr/share/doc/glib-2.62.4 &&
cp -r ../docs/reference/{NEWS,gio,glib,gobject} /usr/share/doc/glib-2.62.4
Vous devriez maintenant installer desktop-file-utils-0.24 et shared-mime-info-1.15 et lancer la
suite de tests.
Pour tester les résultats, après avoir installé le paquet,
lancez : ninja
test.
Explication des commandes
-Dman=true
: Ce
paramètre cause la construction et l'installation des pages de
manuel du paquet.
-Dselinux=disabled
:
Ce paramètre désactive le support de selinux qui n'est pas supporté
par BLFS.
-Ddocs=true
: Ce paramètre cause
la construction et l'installation de la documentation de l'API.