6.3. Ncurses-6.2

Le paquet Ncurses contient les bibliothèques de gestion des écrans type caractère, indépendant des terminaux.

Temps de construction approximatif: 0.7 SBU
Espace disque requis: 48 Mo

6.3.1. Installation de Ncurses

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-debug              \
            --without-ada                \
            --without-normal             \
            --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.

--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.

--enable-widec

Cette option amène les bibliothèques « wide-character » (comme libncursesw.so.6.2) à être compilée au lieu de celles normales (comme libncurses.so.6.2). 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.

--without-normal

Ce drapeau désactive la construction et l’installation de la plupart des bibliothèques statiques.

Compilez le paquet :

make

Installez le paquet :

make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so

Voici la signification des options d'installation :

TIC_PATH=$(pwd)/build/progs/tic

Nous devons passer le chemin de 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.

echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so

La bibliothèque libncurses.so est requise par quelques paquets que nous allons bientôt construire. Nous créons ce petit script de liaison, comme cela est fait dans Chapitre 8.

Déplacez les bibliothèques partagées dans le répertoire /lib, où elles sont supposées être :

mv -v $LFS/usr/lib/libncursesw.so.6* $LFS/lib

Comme les bibliothèques ont été déplacées, un lien symbolique pointe vers un fichier inexistant. Recréez-le :

ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so

Les détails de ce paquet se trouvent sur Section 8.28.2, « Contenu de Ncurses. »