<application>bzip2</application>.
</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>flex</primary>
</indexterm>
<indexterm>
<primary>lex</primary>
</indexterm>
<indexterm>
<primary>bison</primary>
</indexterm>
<indexterm>
<primary>yacc</primary>
</indexterm>
<application>Flex</application> and <application>Bison</application> are
required. Other <application>lex</application> and
<application>yacc</application> programs cannot be used.
<application>Bison</application> needs to be at least version 2.3.
</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>perl</primary>
</indexterm>
<application>Perl</application> 5.14 or later is needed during the build
process and to run some test suites. (This requirement is separate from
the requirements for building <application>PL/Perl</application>; see
below.)
</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>readline</primary>
</indexterm>
<indexterm>
<primary>libedit</primary>
</indexterm>
The <acronym>GNU</acronym> <productname>Readline</productname> library is used by
default. It allows <application>psql</application> (the
PostgreSQL command line SQL interpreter) to remember each
command you type, and allows you to use arrow keys to recall and
edit previous commands. This is very helpful and is strongly
recommended. If you don't want to use it then you must specify
the <option>--without-readline</option> option to
<filename>configure</filename>. As an alternative, you can often use the
BSD-licensed <filename>libedit</filename> library, originally
developed on <productname>NetBSD</productname>. The
<filename>libedit</filename> library is
GNU <productname>Readline</productname>-compatible and is used if
<filename>libreadline</filename> is not found, or if
<option>--with-libedit-preferred</option> is used as an
option to <filename>configure</filename>. If you are using a package-based
Linux distribution, be aware that you need both the
<literal>readline</literal> and <literal>readline-devel</literal> packages, if
those are separate in your distribution.
</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>zlib</primary>
</indexterm>
The <productname>zlib</productname> compression library is
used by default. If you don't want to use it then you must
specify the <option>--without-zlib</option> option to
<filename>configure</filename>. Using this option disables
support for compressed archives in <application>pg_dump</application> and
<application>pg_restore</application>.
</para>
</listitem>
<listitem>
<para>
The ICU library is used by default. If you don't want to use it then you must specify the <option>--without-icu</option> option to <filename>configure</filename>. Using this option disables support for ICU collation features (see <xref linkend="collation"/>).
</para>
<para>
ICU support requires the <productname>ICU4C</productname> package to be
installed. The minimum required version of
<productname>ICU4C</productname> is currently 4.2.
</para>
<para>
By default,
<productname>pkg-config</productname><indexterm><primary>pkg-config</primary></indexterm>
will be used to find the required compilation options. This is
supported for <productname>ICU4C</productname> version 4.6 and later.
For older versions, or if <productname>pkg-config</productname> is not
available, the variables <envar>ICU_CFLAGS</envar> and
<envar>ICU_LIBS</envar> can be specified to
<filename>configure</filename>, like in this example:
<programlisting>
./configure