6.18. Ncurses-5.5

Il pacchetto Ncurses contiene librerie per la gestione indipendente dal terminale di schermi caratteri.

Tempo di costruzione approssimativo: 0.7 SBU
Spazio necessario su disco: 31 MB

6.18.1. Installazione di Ncurses

Dalla release di Ncurses-5.5, sono stati trovati e corretti una falla di memoria e qualche bug di display. Applicare questi fix:

patch -Np1 -i ../ncurses-5.5-fixes-1.patch

Preparare Ncurses per la compilazione:

./configure --prefix=/usr --with-shared --without-debug --enable-widec

Significato delle opzioni di configurazione:

--enable-widec

Questa scelta fa sì che siano costruite le librerie wide-character (es. libncursesw.so.5.5) al posto di quelle normali (es. libncurses.so.5.5). Queste librerie wide-character si possono usare sia in localizzazioni multibyte sia traditionali a 8-bit, mentre le librerie normali lavorano in modo corretto solo in localizzazioni a 8-bit. Le librerie wide-character e quelle normali sono compatibili a livello di sorgente, ma non come binari.

Compilare il pacchetto:

make

Questo pacchetto non è provvisto di una suite di test.

Installare il pacchetto:

make install

Dare alle librerie Ncurses i permessi di esecuzione:

chmod -v 755 /usr/lib/*.5.5

Correggere una libreria che non dovrebbe essere eseguibile:

chmod -v 644 /usr/lib/libncurses++.a

Spostare le librerie nella directory /lib, dove ci si aspetta che si trovino:

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

Poiché le librerie sono state spostate, un link simbolico punta su un file non esistente. Ricrearlo:

ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so

Molte applicazioni aspettano ancora il linker per riuscire a trovare le librerie Ncurses non-wide-character. Costringere tali applicazioni a fare il link alle librerie wide-character per mezzo di link simbolici e script linker:

for lib in curses 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 ; \
done &&
ln -sfv libncurses++w.a /usr/lib/libncurses++.a

Infine assicurarsi che sia ancora possibile costruire le vecchie applicazioni che cercano -lcurses durante la costruzione:

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
[Nota]

Nota

Le istruzioni precedenti non creano le librerie Ncurses non-wide-character fintanto che nessun pacchetto installato con la compilazione da sorgenti non avrà un link ad esse in runtime. Se si devono avere tali librerie a causa di qualche applicazione solo binaria, costruirle con i seguenti comandi:

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.18.2. Contenuti di Ncurses

Programmi installati: captoinfo (link a tic), clear, infocmp, infotocap (link a tic), reset (link a tset), tack, tic, toe, tput e tset
Librerie installate: libcursesw.{a,so} (symlink e linker script a libncursesw.{a,so}), libformw.{a,so}, libmenuw.{a,so}, libncurses++w.a, libncursesw.{a,so}, libpanelw.{a,so} e i loro corrispettivi non-wide-character senza "w" nei nomi delle librerie.

Brevi descrizioni

captoinfo

Converte una descrizione termcap in una descrizione terminfo

clear

Pulisce lo schermo, se possibile

infocmp

Confronta o stampa descrizioni terminfo

infotocap

Converte una descrizione terminfo in una descrizione termcap

reset

Reinizializza un terminale con i suoi valori di default

tack

Il terminfo action checker; è usato principalmente per testare l'accuratezza di un inserimento nel database terminfo

tic

Il compilatore delle descrizioni degli inserimenti in terminfo, che traduce un file terminfo dal formato sorgente al formato binario necessario per le routine delle librerie ncurses. Un file terminfo contiene informazioni sulle capacità di un certo terminale

toe

Elenca tutti i tipi di terminale disponibili, dando per ciascuno il suo nome primario e la sua descrizione.

tput

Rende disponibili alla shell i valori delle risorse dipendenti da terminale; può anche essere usato per resettare o inizializzare un terminale o riportare il suo nome lungo

tset

Può essere usato per inizializzare terminali

libcurses

Un link verso libncurses

libncurses

Contiene funzioni per visualizzare il testo in molti modi complessi su uno schermo terminale; un buon esempio dell'uso di queste funzioni è il menu visualizzato durante il make menuconfig del kernel

libform

Contiene funzioni per implementare i form

libmenu

Contiene funzioni per implementare i menu

libpanel

Contiene funzioni per implementare i panel