10.26. Ncurses-5.9 32 Bit Libraries

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

10.26.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 ${BUILD32}" CXX="g++ ${BUILD32}" \
   ./configure --prefix=/usr --libdir=/lib \
   --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, and can be ran 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:

mv -v /usr/bin/ncursesw5-config{,-32}

Move the Ncurses static libraries to the proper location:

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

Create symlinks in /usr/lib:

rm -v /lib/lib{ncursesw,menuw,panelw,formw}.so
ln -svf ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
ln -svf ../../lib/libmenuw.so.5 /usr/lib/libmenuw.so
ln -svf ../../lib/libpanelw.so.5 /usr/lib/libpanelw.so
ln -svf ../../lib/libformw.so.5 /usr/lib/libformw.so

Now we will make our Ncurses compatible for older and non-widec compatible programs can build properly:

for lib in curses ncurses form panel menu ; do
        echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
        ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a
done
ln -sfv libcurses.so /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
ln -sfv libncurses++w.a /usr/lib/libncurses++.a
ln -sfv ncursesw5-config-32 /usr/bin/ncurses5-config-32

Now we will create a symlink for /usr/share/terminfo in /usr/lib for compatibility:

ln -sfv ../share/terminfo /usr/lib/terminfo

Details on this package are located in Section 10.27.2, “Contents of Ncurses.”