8.12. Readline-8.2.13

The Readline package is a set of libraries that offer command-line editing and history capabilities.

Approximate build time: less than 0.1 SBU
Required disk space: 16 MB

8.12.1. Installation of Readline

Reinstalling Readline will cause the old libraries to be moved to <libraryname>.old. While this is normally not a problem, in some cases it can trigger a linking bug in ldconfig. This can be avoided by issuing the following two seds:

sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install

Prevent hard coding library search paths (rpath) into the shared libraries. This package does not need rpath for an installation into the standard location, and rpath may sometimes cause unwanted effects or even security issues:

sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf

Prepare Readline for compilation:

./configure --prefix=/usr    \
            --disable-static \
            --with-curses    \
            --docdir=/usr/share/doc/readline-8.2.13

The meaning of the new configure option:

--with-curses

This option tells Readline that it can find the termcap library functions in the curses library, not a separate termcap library. This will generate the correct readline.pc file.

Compile the package:

make SHLIB_LIBS="-lncursesw"

The meaning of the make option:

SHLIB_LIBS="-lncursesw"

This option forces Readline to link against the libncursesw library. For details see the Shared Libraries section in the package's README file.

This package does not come with a test suite.

Install the package:

make install

If desired, install the documentation:

install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2.13

8.12.2. Installation of Readline - 32bit

Clean previous build:

make distclean

Prepare Readline for compilation:

CC="gcc -m32" ./configure \
    --host=i686-pc-linux-gnu      \
    --prefix=/usr                 \
    --libdir=/usr/lib32           \
    --disable-static              \
    --with-curses

Compile the package:

make SHLIB_LIBS="-lncursesw"

Install the package:

make SHLIB_LIBS="-lncursesw" DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR

8.12.3. Contents of Readline

Installed libraries: libhistory.so and libreadline.so
Installed directories: /usr/include/readline and /usr/share/doc/readline-8.2.13

Short Descriptions

libhistory

Provides a consistent user interface for recalling lines of history

libreadline

Provides a set of commands for manipulating text entered in an interactive session of a program