On Debian 10 (codename Buster) and later, installing interimap(1) is a single command away:

$ sudo apt install interimap

This document is for those who are running other systems, and/or who wish to install from source.

Dependencies

interimap(1) depends on Perl ≥5.20 and the following Perl modules:

On Debian GNU/Linux systems, the dependencies can be installed with the following command:

$ sudo apt install libconfig-tiny-perl libdbd-sqlite3-perl libnet-ssleay-perl

Additional packages are required in order to run the test suite:

$ sudo apt install dovecot-imapd dovecot-lmtpd openssl procps sqlite3 xxd
$ make check

(Note also that the test suite needs to bind to TCP ports 10024, 10143 and 10993 on the loopback interface.)

Generate documentation

Yet another set of packages is needed to generate the documentation:

$ sudo apt install jq pandoc

Run `make manual` (or just `make`) in order to generate the manuals. You’ll find them at build/doc/*.[1-9]. Then use for instance `man -l build/doc/interimap.1` to read your local copy of the interimap(1) manual.

The HTML documentation can be built with `make html`. By default HTML files are generated at build/doc/*.html, and a local CSS file is used — namely /usr/share/javascript/bootstrap4/css/bootstrap.css, shipped the by libjs-bootstrap package. But this is configurable: use for instance

$ make html builddir="$XDG_RUNTIME_DIR/interimap" \
	CSS="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"

to generate the HTML documentation under $XDG_RUNTIME_DIR/interimap/doc using a remote CSS file.

The doc target generates all documentation, manuals as well as HTML pages.

Installation without root privileges

By default `make install` installs interimap(1) under /usr/local, hence requires root privileges. However another prefix can be used in order to perform the (un)installation as an unprivileged user. For instance

$ install -m0700 -vd ${XDG_DATA_HOME:-~/.local/share}/interimap
$ make install-nodoc \
	prefix=$HOME/.local \
	sitelib=${XDG_DATA_HOME:-~/.local/share}/interimap/lib \
	systemd_userunitdir=${XDG_DATA_HOME:-~/.local/share}/systemd/user

skips documentation and installs

Note that for uninstallation one must call `make uninstall prefix=…` with the very same assignment(s) used for installation.

Build custom Debian packages

Debian GNU/Linux users can also use gbp(1) from git-buildpackage in order to build their own packages:

$ git checkout debian/latest
$ gbp buildpackage

Alternatively, for the development version:

$ git checkout debian/latest
$ git merge master
$ gbp buildpackage --git-force-create --git-upstream-tree=BRANCH