%general-entities; ]> ncurses &ncurses-version;
&ncurses-url;
Ncurses-&ncurses-version; Ncurses <para>The Ncurses package contains libraries for terminal-independent handling of character screens.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&ncurses-ch6-sbu;</seg> <seg>&ncurses-ch6-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Installation of Ncurses Don't install a static library that is not handled by configure: sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in Prepare Ncurses for compilation: ./configure --prefix=/usr \ --mandir=/usr/share/man \ --with-shared \ --without-debug \ --without-normal \ --enable-pc-files \ --enable-widec ./configure --prefix=/usr \ --mandir=/usr/share/man \ --with-shared \ --without-debug \ --without-normal \ --enable-pc-files \ --enable-widec \ --with-pkg-config-libdir=/usr/lib/pkgconfig The meaning of the new configure options: --enable-widec This switch causes wide-character libraries (e.g., libncursesw.so.&ncurses-version;) to be built instead of normal ones (e.g., libncurses.so.&ncurses-version;). These wide-character libraries are usable in both multibyte and traditional 8-bit locales, while normal libraries work properly only in 8-bit locales. Wide-character and normal libraries are source-compatible, but not binary-compatible. --enable-pc-files This switch generates and installs .pc files for pkg-config. --without-normal This switch disables building and installing most static libraries. --with-pkg-config-libdir=/usr/lib/pkgconfig This switch forces .pc to be installed in /usr/lib/pkgconfig. If not set, .pc files gets installed in /usr/lib32 even for 64bit binaries. Compile the package: make This package has a test suite, but it can only be run after the package has been installed. The tests reside in the test/ directory. See the README file in that directory for further details. Install the package: make install Move the shared libraries to the /lib directory, where they are expected to reside: mv -v /usr/lib/libncursesw.so.6* /lib Because the libraries have been moved, one symlink points to a non-existent file. Recreate it: ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so Many applications still expect the linker to be able to find non-wide-character Ncurses libraries. Trick such applications into linking with wide-character libraries by means of symlinks and linker scripts: 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}w.pc /usr/lib/pkgconfig/${lib}.pc done Finally, make sure that old applications that look for -lcurses at build time are still buildable: rm -vf /usr/lib/libcursesw.so echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so ln -sfv libncurses.so /usr/lib/libcurses.so If desired, install the Ncurses documentation: mkdir -v /usr/share/doc/ncurses-&ncurses-version; cp -v -R doc/* /usr/share/doc/ncurses-&ncurses-version; The instructions above don't create non-wide-character Ncurses libraries since no package installed by compiling from sources would link against them at runtime. However, the only known binary-only applications that link against non-wide-character Ncurses libraries require version 5. If you must have such libraries because of some binary-only application or to be compliant with LSB, build the package again with the following commands: make distclean ./configure --prefix=/usr \ --with-shared \ --without-normal \ --without-debug \ --without-cxx-binding \ --with-abi-version=5 make sources libs cp -av lib/lib*.so.5* /usr/lib Installation of Ncurses - 32-bit Clean previous build: make distclean Prepare Ncurses for compilation: CC="gcc -m32" CXX="g++ -m32" \ ./configure --prefix=/usr \ --libdir=/usr/lib32 \ --mandir=/usr/share/man \ --with-shared \ --without-debug \ --without-normal \ --enable-pc-files \ --enable-widec \ --host=i686-pc-linux-gnu \ --with-pkg-config-libdir=/usr/lib32/pkgconfig Compile the package: make -j1 Install the package: make DESTDIR=$PWD/DESTDIR install for lib in ncurses form panel menu ; do rm -vf DESTDIR/usr/lib32/lib${lib}.so echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so ln -svf ${lib}w.pc DESTDIR/usr/lib32/pkgconfig/$lib.pc done rm -vf DESTDIR/usr/lib32/libcursesw.so echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so ln -sfv libncurses.so DESTDIR/usr/lib32/libcurses.so cp -Rv DESTDIR/usr/lib32/* /usr/lib32 rm -rf DESTDIR If desired, make the version 5 libraries in 32bit as well: make distclean CC="gcc -m32" CXX="g++ -m32" \ ./configure --prefix=/usr \ --with-shared \ --without-normal \ --without-debug \ --without-cxx-binding \ --with-abi-version=5 \ --host=i686-pc-linux-gnu make -j1 sources libs cp -av lib/lib*.so.5* /usr/lib32 Installation of Ncurses - x32-bit Clean previous build: make distclean Prepare Ncurses for compilation: CC="gcc -mx32" CXX="g++ -mx32" \ ./configure --prefix=/usr \ --libdir=/usr/libx32 \ --mandir=/usr/share/man \ --with-shared \ --without-debug \ --without-normal \ --enable-pc-files \ --enable-widec \ --host=x86_64-pc-linux-gnux32 \ --with-pkg-config-libdir=/usr/libx32/pkgconfig Compile the package: make -j1 Install the package: make DESTDIR=$PWD/DESTDIR install for lib in ncurses form panel menu ; do rm -vf DESTDIR/usr/libx32/lib${lib}.so echo "INPUT(-l${lib}w)" > DESTDIR/usr/libx32/lib${lib}.so ln -svf ${lib}w.pc DESTDIR/usr/libx32/pkgconfig/$lib.pc done rm -vf DESTDIR/usr/libx32/libcursesw.so echo "INPUT(-lncursesw)" > DESTDIR/usr/libx32/libcursesw.so ln -sfv libncurses.so DESTDIR/usr/libx32/libcurses.so cp -Rv DESTDIR/usr/libx32/* /usr/libx32 rm -rf DESTDIR Contents of Ncurses Installed programs Installed libraries Installed directories captoinfo (link to tic), clear, infocmp, infotocap (link to tic), ncursesw6-config, reset (link to tset), tabs, tic, toe, tput, and tset libcursesw.so (symlink and linker script to libncursesw.so), libformw.so, libmenuw.so, libncursesw.so, libncurses++w.a, libpanelw.so, and their non-wide-character counterparts without "w" in the library names. /usr/share/tabset, /usr/share/terminfo, and /usr/share/doc/ncurses-&ncurses-version; Short Descriptions captoinfo Converts a termcap description into a terminfo description captoinfo clear Clears the screen, if possible clear infocmp Compares or prints out terminfo descriptions infocmp infotocap Converts a terminfo description into a termcap description infotocap ncursesw6-config Provides configuration information for ncurses ncursesw6-config reset Reinitializes a terminal to its default values reset tabs Clears and sets tab stops on a terminal tabs 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.] tic toe Lists all available terminal types, giving the primary name and description for each toe 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 tput tset Can be used to initialize terminals tset libcursesw A link to libncursesw libcursesw 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 libncursesw libformw Contains functions to implement forms libformw libmenuw Contains functions to implement menus libmenuw libpanelw Contains functions to implement panels libpanelw