Installing Ncurses-5.3

Estimated build time:           0.7 SBU
Estimated required disk space:  22 MB

Contents of Ncurses

(Last checked against version 5.2.)

The Ncurses package provides character and terminal handling libraries, including panels and menus.

Ncurses installs the following:

Program Files

captoinfo (link to tic), clear, infocmp, infotocap (link to tic), reset (link to tset), tack, tic, toe, tput and tset.

Library Files

libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] and libpanel_g.a

Ncurses Installation Dependencies

(Last checked against version 5.2.)

Bash: sh
Binutils: ar, as, ld, ranlib
Coreutils: basename, cat, chmod, cp, date, echo, expr, hostname, install,
             ln, mkdir, mv, rm, sort, tr, uname, wc
Diffutils: cmp
Gawk: gawk
GCC: c++, cc1, cc1plus, collect2, cpp0, gcc
Glibc: ldconfig
Grep: egrep, fgrep, grep
Make: make
Sed: sed

Installation of Ncurses

First fix two tiny bugs:

patch -Np1 -i ../ncurses-5.3-etip-2.patch
patch -Np1 -i ../ncurses-5.3-vsscanf.patch

The first patch corrects the etip.h header file, and the second patch prevents some compiler warnings on the use of deprecated headers.

Now prepare Ncurses for compilation:

./configure --prefix=/usr --with-shared \
    --without-debug

Compile the package:

make

Install the package:

make install

Give the Ncurses libraries execute permissions:

chmod 755 /usr/lib/*.5.3

And fix a library that shouldn't be executable:

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

Move the libraries to the /lib directory, where they're expected to reside:

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

Since the libraries have been moved to /lib, a few symlinks are currently pointing towards non-existing files. Recreate those symlinks:

ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so
ln -sf libncurses.so /usr/lib/libcurses.so