10.36. Ncurses-5.9 64 Bit

The Ncurses package contains libraries for terminal-independent handling of character screens.

10.36.1. Installation of Ncurses

The following patch contains updates from the 5.9 branch by the Ncurses developers:

patch -Np1 -i ../ncurses-5.9-branch_update-4.patch

Prepare Ncurses for compilation:

CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" \
   ./configure --prefix=/usr --libdir=/lib64 \
   --with-shared --without-debug --enable-widec \
   --with-manpage-format=normal \
   --with-default-terminfo-dir=/usr/share/terminfo

Compile the package:

make

This package has a test suite, but it can only be run after the package is installed. The tests are in the test/ directory. See the README file in that directory for details.

Install the package:

make install

Prepare ncursesw5-config to be wrapped by the multiarch wrapper and then wrap it:

mv -v /usr/bin/ncursesw5-config{,-64}
ln -svf multiarch_wrapper /usr/bin/ncursesw5-config

Move the Ncurses static libraries to the proper location:

mv -v /lib64/lib{panelw,menuw,formw,ncursesw,ncurses++w}.a /usr/lib64

Create symlinks in /usr/lib64:

ln -svf ../../lib64/$(readlink /lib64/libncursesw.so) /usr/lib64/libncursesw.so
ln -svf ../../lib64/$(readlink /lib64/libmenuw.so) /usr/lib64/libmenuw.so
ln -svf ../../lib64/$(readlink /lib64/libpanelw.so) /usr/lib64/libpanelw.so
ln -svf ../../lib64/$(readlink /lib64/libformw.so) /usr/lib64/libformw.so
rm -v /lib64/lib{ncursesw,menuw,panelw,formw}.so

Many packages that use Ncurses will compile just fine against the widechar libraries, but won't know to look for them. Create linker scripts and symbolic links to allow older and non-widec compatible programs to build properly:

for lib in curses ncurses form panel menu ; do
        echo "INPUT(-l${lib}w)" > /usr/lib64/lib${lib}.so
        ln -sfv lib${lib}w.a /usr/lib64/lib${lib}.a
done
ln -sfv libcurses.so /usr/lib64/libcursesw.so
ln -sfv libncurses.so /usr/lib64/libcurses.so
ln -sfv libncursesw.a /usr/lib64/libcursesw.a
ln -sfv libncurses.a /usr/lib64/libcurses.a
ln -sfv libncurses++w.a /usr/lib64/libncurses++.a
ln -sfv ncursesw5-config-64 /usr/bin/ncurses5-config-64
ln -sfv ncursesw5-config /usr/bin/ncurses5-config

10.36.2. Contents of Ncurses

Installed programs: captoinfo (link to tic), clear, infocmp, infotocap (link to tic), ncursesw5-config, reset (link to tset), tabs, tic, toe, tput, tset
Installed libraries: libcursesw.so (link to libncursesw.so), libformw.[a,so], libmenuw.[a,so], libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so]
Installed directories: /usr/share/tabset, /usr/share/terminfo

Short Descriptions

captoinfo

Converts a termcap description into a terminfo description

clear

Clears the screen, if possible

infocmp

Compares or prints out terminfo descriptions

infotocap

Converts a terminfo description into a termcap description

ncursesw5-config

Provides configuration information for ncurses

reset

Reinitializes a terminal to its default values

tabs

Sets and clears tab stops on a terminal

tic

The terminfo entry-description compiler that translates a terminfo file from source format into the binary format needed for the ncurses library routines. A terminfo file contains information on the capabilities of a certain terminal

toe

Lists all available terminal types, giving the primary name and description for each

tput

Makes the values of terminal-dependent capabilities available to the shell; it can also be used to reset or initialize a terminal or report its long name

tset

Can be used to initialize terminals

libcursesw

A link to libncursesw

libncursesw

Contains functions to display text in many complex ways on a terminal screen; a good example of the use of these functions is the menu displayed during the kernel's make menuconfig

libformw

Contains functions to implement forms

libmenuw

Contains functions to implement menus

libpanelw

Contains functions to implement panels