Prerequisites

The following prerequisites are described in broad terms and Debian package names. The dependencies should be available as packages on most common Unix derivatives, and it should be quite uncommon that you would have to build one of them. Finding the right package name for other systems is left to the sagacity of the reader.

Up to version 1.37, the Recoll build process used the GNU autotools. Versions 1.38 and later use meson/ninja instead. In the following, most configuration options are still defined in terms of autotools --enable-xxx, --disable-xxx. These can be translated to -Dxxx=true -Dxxx=false options for meson setup

If you do not need the GUI, you can avoid all GUI dependencies by disabling its build. (See the configure section further down: --disable-qtgui).

The shopping list follows:

  • If you start from git code, you will need the git command (git), and the autoconf, automake and libtool triad (autoconf, automake, libtool). These are not needed for building from tar distributions.

  • The pkg-config command and gettext package are needed for configuring the build (pkg-config, gettext).

  • The make command (make which will actually install GNU make on Linux). If you get strange error messages about dependency tracking from configure, you probably forgot to install make.

  • A C++ compiler with at least C++17 compatibility (g++ or clang). Versions 1.33.4 and older only require c++11.

  • The bison command is not generally needed, but might be if some file modification times are not right.

  • If you want to process CHM files, you will need libchm (libchm-dev), else you can set the --disable-python-chm option to the configure command.

  • For building the documentation: the xsltproc command, and the Docbook XML and style sheet files. You can avoid this dependency by disabling documentation building with the --disable-userdoc configure option.

  • Development files for Xapian core (libxapian-dev).

    Important

    If you are building Xapian for an older CPU (before Pentium 4 or Athlon 64), you need to add the --disable-sse flag to the configure command. Else all Xapian applications will crash with an illegal instruction error.

  • Development files for libxslt (libxslt1-dev).

  • Development files for zlib (zlib1g-dev).

  • Development files for libaspell (libaspell-dev). Can be avoided with the --disable-aspell option to configure.

  • If you want to build the GUI: development files for Qt 5. Else give the --disable-qtgui option to the configure command. You will probably need qtbase5-dev and qttools5-dev-tools I can never remember what other packages to install, but installing the Qt5 Webkit, (or Qt5 Webengine if you set --enable-webengine) will usually bring them as dependencies (libqt5webkit5-dev or qtwebengine5dev). The Recoll GUI can use either Webkit or Webengine for displaying the results.

  • Development files for Python3 (python3-all-dev, python3-setuptools). You can use the --disable-python-module option for disabling the build of the Python extension. On older systems still supporting Python2, you can also install python2-dev and python-setuptools. The build will test for the presence of the python2 and/or python3 commands and behave accordingly.

  • You may also need libiconv. On Linux systems, the iconv interface is part of libc and you should not need to do anything special.

Check the Recoll download page for up to date version information.