6.20. Ncurses-5.9

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

Temps de construction approximatif: 0.5 SBU
Espace disque requis: 54 Mo

6.20.1. Installation de Ncurses

Préparez la compilation de Ncurses :

./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --enable-pc-files       \
            --enable-widec

Voici la signification des nouvelles options de configure :

--enable-widec

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

--enable-pc-files

Ce paramètre génère et installe les fichiers .pc pour pkg-config.

Compilez le paquet :

make

Ce paquet a une suite de tests, mais elle ne peut être exécutée qu'après que le paquet ait été installé. Les tests se situent dans le répertoire test/. Voir le fichier README dans ce répertoire pour de plus amples détails.

Installez le paquet :

make install

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

mv -v /usr/lib/libncursesw.so.5* /lib

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

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

Beaucoup d'applications s'attendent encore à ce que l'éditeur de liens puisse trouver les bibliothèques Ncurses non wide-character. Faites croire à de telles applications au lien vers les bibliothèques « with wide-character » par des faux liens symboliques et des scripts d'éditeur de liens :

for lib in ncurses form panel menu ; do 
    rm -vf                    /usr/lib/lib${lib}.so
    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
    ln -sfv lib${lib}w.a      /usr/lib/lib${lib}.a
    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
done
ln -sfv libncurses++w.a /usr/lib/libncurses++.a

Finalement, assurez-vous que les vieilles applications qui cherchent -lcurses lors de la compilation sont encore compilables :

rm -vf                     /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so      /usr/lib/libcurses.so
ln -sfv libncursesw.a      /usr/lib/libcursesw.a
ln -sfv libncurses.a       /usr/lib/libcurses.a

Si désiré, installez la documentation de Ncurses :

mkdir -v       /usr/share/doc/ncurses-5.9
cp -v -R doc/* /usr/share/doc/ncurses-5.9
[Note]

Note

Les instructions ci-dessus ne créent pas de bibliothèques Ncurses non wide-character puisqu'aucun paquet installé par la compilation à partir des sources ne se lie à elles lors de l'exécution. Si vous devez avoir de telles bibliothèques à cause d'une application disponible qu'en binaire ou pour vous conformer à la LSB, compilez à nouveau le paquet avec les commandes suivantes :

make distclean
./configure --prefix=/usr    \
            --with-shared    \
            --without-normal \
            --without-debug  \
            --without-cxx-binding
make sources libs
cp -av lib/lib*.so.5* /usr/lib

6.20.2. Contenu de Ncurses

Programmes installés: captoinfo (lien vers tic), clear, infocmp, infotocap (lien vers tic), ncursesw5-config, reset (lien vers tset), tabs, tic, toe, tput et tset
Bibliothèques installées: libcursesw.{a,so} (lien symbolique et script de l'éditeur de liens vers libncursesw.{a,so}), libformw.{a,so}, libmenuw.{a,so}, libncurses++w.a, libncursesw.{a,so}, libpanelw.{a,so} ainsi que leurs équivalents non « wide-character » avec un nom identique, mais sans le w.
Répertoires installés: /usr/share/tabset, /usr/share/terminfo et /usr/share/doc/ncurses-5.9

Descriptions courtes

captoinfo

Convertit une description termcap en description terminfo

clear

Efface l'écran si possible

infocmp

Compare ou affiche les descriptions terminfo

infotocap

Convertit une description terminfo en description termcap

ncursesw5-config

Fournit des informations de configuration de ncurses

reset

Réinitialise un terminal avec ses valeurs par défaut

tabs

Efface et initialise des taquets de tab sur un terminal

tic

Le compilateur d'entrée de description terminfo, traduisant un fichier terminfo au format source dans un format binaire nécessaire pour les routines des bibliothèques ncurses. Un fichier terminfo contient des informations sur les capacités d'un terminal particulier

toe

Liste tous les types de terminaux disponibles, donnant pour chacun d'entre eux son nom principal et sa description

tput

Rend les valeurs de capacités dépendant du terminal disponibles au shell ; il peut aussi être utilisé pour réinitialiser un terminal ou pour afficher son nom long

tset

Peut être utilisé pour initialiser des terminaux

libcursesw

Un lien vers libncursesw

libncursesw

Contient des fonctions pour afficher du texte de plusieurs façons compliquées sur un écran de terminal ; un bon exemple d'utilisation de ces fonctions est le menu affiché par le make menuconfig du noyau

libformw

Contient des fonctions pour implémenter des formes

libmenuw

Contient des fonctions pour implémenter des menus

libpanelw

Contient des fonctions pour implémenter des panneaux