Prerequisites

The following prerequisites are described in broad terms and Debian package names. The dependencies should be available as packages on most common Unix-like systems, and it should be quite uncommon that you would have to build one of them. Finding the right package name for non-Debian 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.

If you do not need the GUI, you can avoid all GUI dependencies by disabling its build: see the configure section further down: -Dqtgui=false.

Check the Recoll download page for up to date Recoll version information and links to source release files in tar format.

The shopping list follows:

  • If you start from git repository source code, you will need the git, obviously (package: git).

  • On Unix-like systems systems, you will need the meson and ninja commands. (package: meson, this will bring ninja as a dependency). Not needed on MacOS systems at the moment.

  • The pkg-config command is needed for configuring the build (package: pkg-config).

  • The make command is needed for building the GUI, unneeded if you disable this. (package: make).

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

  • The bison command is not generally needed, but might be if you modify the query language yacc source or if some file modification times are not right (package: bison).

  • 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 -Duserdoc=false setup option.

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

  • Development files for libxml2 and libxslt (packages: libxslt1-dev, which will pull libxml2-dev).

  • Development files for zlib (zlib1g-dev).

  • Development files for libmagic (libmagic-dev).

  • Development files for libaspell (package: libaspell-dev). Can be avoided with the -Daspell=false setup option.

  • If you want to process CHM files, you will need libchm (libchm-dev), else you can set the -Dpython-chm=false option to the setup command.

  • If you want the daemon indexer process to monitor the session for quitting, you need the X11 development library (package: libx11-dev). Else use the -Dx11mon=false setup option.

  • If you want to build the GUI: qmake and development files for Qt 5. Else give the -Dqtgui=false setup option. Packages: qtbase5-dev, qttools5-dev-tools, libqt5webkit5-dev. Replace libqt5webkit5-dev with libqt5webengine5 if you use -Dwebengine=true.

  • Development files for Python3 (packages: python3-all-dev, python3-setuptools). You can use the -Dpython-module=false setup option for disabling the build of the Python extension.

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