Les détails sur ce paquet sont disponibles dans Section 8.29.2, « Contenu de Ncurses. »
Le paquet Ncurses contient les bibliothèques pour gérer les écrans type caractère indépendamment des terminaux.
Tout d'abord, assurez-vous que gawk est trouvé pendant la configuration :
sed -i s/mawk// configure
Ensuite, lancez les commandes suivantes pour construire le programme « tic » sur l'hôte :
mkdir build pushd build ../configure make -C include make -C progs tic popd
Préparez la compilation de Ncurses :
./configure --prefix=/usr \ --host=$LFS_TGT \ --build=$(./config.guess) \ --mandir=/usr/share/man \ --with-manpage-format=normal \ --with-shared \ --without-normal \ --with-cxx-shared \ --without-debug \ --without-ada \ --disable-stripping \ --enable-widec
Voici la signification des nouvelles options de configure :
--with-manpage-format=normal
Cela évite que Ncurses n'installe les pages de manuel compressées, ce qui peut arriver si la distribution hôte elle-même a des pages de manuel compressées.
--with-shared
Cette option fait construire et installer les bibliothèques C partagées de Ncurses.
--without-normal
Cette option empêche Ncurses de construire et d'installer les bibliothèques C statiques.
--without-debug
Cette option empêche Ncurses de construire et d'installer les bibliothèques de débogage.
--with-cxx-shared
Cela fait construire et installer les liaisons C++ partagées de Ncurses. Cela l'empêche également de construire et d'installer les liaisons C++ statiques.
--without-ada
Cela s'assure que Ncurses ne construise pas la prise en charge du compilateur Ada qui peut être présent sur l'hôte mais qui ne sera pas disponible une fois dans l'environnement chroot.
--disable-stripping
Ce paramètre évite que le système de construction n'utilise le programme strip de l'hôte. L'utilisation des outils hôtes sur les programmes compilés de manière croisée peut causer des échecs.
--enable-widec
Cette option amène les bibliothèques « wide-character » (comme
libncursesw.so.6.4-20230520
) à
être compilées au lieu des bibliothèques normales (comme
libncurses.so.6.4-20230520
).
Ces bibliothèques « wide-character » sont utilisables
à la fois en locales multibyte et 8-bit traditionnelles,
alors que les bibliothèques normales ne fonctionnent
correctement que dans les locales 8-bit. Les bibliothèques
« Wide-character » et normales sont
compatibles entre leurs sources mais pas entre leurs
binaires.
Compilez le paquet :
make
Installez le paquet :
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install ln -sv libncursesw.so $LFS/usr/lib/libncurses.so sed -e 's/^#if.*XOPEN.*$/#if 1/' \ -i $LFS/usr/include/curses.h
Voici la signification des options d'installation :
TIC_PATH=$(pwd)/build/progs/tic
Nous devons passer le chemin du tic tout juste construit qui peut être lancé sur la machine de construction, pour pouvoir créer la base de données de terminaux sans erreur.
La bibliothèque libncurses.so
est requise par quelques paquets que nous allons bientôt
construire. Nous créons ce lien symbolique pour utiliser
libncursesw.so
à la place.
Le fichier d'en-tête curses.h
contient les définitions de plusieurs structures de données
de Ncurses. À cause des différentes définitions de macro du
préprocesseur, deux ensembles de définitions de structures de
données peuvent être utilisées : la définition 8-bits
est compatible avec libncurses.so
et la définition
wide-character est compatible avec libncursesw.so
. Comme nous utilisons
libncursesw.so
en remplacement
de libncurses.so
, modifiez le
fichier d'en-tête pour qu'il utilise toujours le définition
de la structure de données wide-character compatible avec
libncursesw.so
.
Les détails sur ce paquet sont disponibles dans Section 8.29.2, « Contenu de Ncurses. »