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.
This package is known to build and work properly using an LFS 11.3
platform.
Informations sur le paquet
Téléchargements supplémentaires
Dépendances de GLib
Recommandées
libxslt-1.1.37 et pcre2-10.42
Facultatives
dbus-1.14.6 (pour certains tests), Fuse-3.13.1 et bindfs (tous deux utilisés dans un test),
GDB-13.1 (pour
les liaisons), docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (pour construire la
documentation de l'API), glib-networking-2.74.0 (pour certains
tests, mais c'est une dépendance circulaire) et sysprof-3.46.0
Dépendances de Additional Runtime
gobject-introspection-1.74.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-2.2 et de desktop-file-utils-0.26. Ces deux
utilitaires sont aussi requis pour certains tests.
Notes utilisateur : https://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.36, 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 export
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.74.5-skip_warnings-1.patch
Avertissement
Si vous avez installé une version précédente de glib, déplacez
les en-têtes là où ils ne gêneront pas pour que les paquets
suivants n'aient pas de conflits :
if [ -e /usr/include/glib-2.0 ]; then
rm -rf /usr/include/glib-2.0.old &&
mv -vf /usr/include/glib-2.0{,.old}
fi
Installez GLib en exécutant les
commandes suivantes :
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dman=true \
.. &&
ninja
Note
Si libxslt-1.1.37 est installé, la commande
suivante peut indiquer plusieurs erreurs (environ 33) qui
commencent par « Error: no ID for constraint linkend: »
lors de la génération des pages de manuel. Elles sont
inoffensives.
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
:
ninja install &&
mkdir -p /usr/share/doc/glib-2.74.5 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.74.5
Vous devriez maintenant installer desktop-file-utils-0.26 et shared-mime-info-2.2 et lancer la suite
de tests.
Avertissement
Ne lancez pas la suite de tests en tant que root
ou certains tests échoueront de manière
inattendue et laisseront des répertoires qui ne se conforment pas
à la FHS dans la hiérarchie /usr
.
Pour tester les résultats, après avoir installé le paquet,
lancez : LC_ALL=C ninja
test en tant qu'utilisateur non root
. Un test nommé glib:glib / error
est connu pour échouer.
Explication des commandes
--buildtype=release
:
spécifie le type de construction convenant aux versions stables de
ce paquet, comme la valeur par défaut produit des binaires non
optimisés.
-Dman=true
: Ce
paramètre cause la construction et l'installation des pages de
manuel du paquet.
-Dgtk_doc=true
: Ce paramètre
cause la construction et l'installation de la documentation de
l'API.