1
0
Fork
You've already forked wormhole
0
forked from errror/wormhole
Replication support for Dovecot >= 2.4 as plugin
  • C 74.2%
  • Shell 16.3%
  • M4 5%
  • Makefile 4.5%
Patrick Cernko 98870f31ac fix for broken dovecot installation: use doveconf with own minimal config file
if dovecot.conf is missing or corrupt, doveconf cannot be used to determine if auth_socket_path has flag hidden
thanks to Martin Kjær Jørgensen (@shaohme) for pointing this out
closed #9 
2026年05月22日 20:26:44 +02:00
.gitlab CI/CD: moved scripts to .gitlab/buildjob.sh and .gitlab/upload-assets.sh 2026年03月30日 08:34:00 +02:00
build-aux new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
doc documentation should not specify a specific dovecot-2.4 version on upgrade 2026年04月10日 12:39:00 +02:00
packages updated/fixed copyright headers 2026年02月16日 15:07:36 +01:00
patches updated patch to also modify Makefile.in (not in git) 2025年10月13日 08:35:00 +02:00
src use IOSTREAM_RAWLOG_CREATE_PATH_WITH_EVENT from configure to handle changed iostream_rawlog_create_path API 2026年05月19日 16:32:07 +02:00
tests fix: disable lua for dovecot-2.4.4 and higher for patched dovecot as well 2026年05月19日 16:32:44 +02:00
.editorconfig readded replicator, removed in 4c04e4c30fd4817a8b0e11d04d9681173f696f41 2025年07月14日 11:51:40 +02:00
.gitignore ignore generated docs 2025年12月12日 20:49:49 +01:00
.gitlab-ci.yml CI/CD: moved scripts to .gitlab/buildjob.sh and .gitlab/upload-assets.sh 2026年03月30日 08:34:00 +02:00
autogen.sh new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
configure.ac fix for broken dovecot installation: use doveconf with own minimal config file 2026年05月22日 20:26:44 +02:00
COPYING dropped unneeded COPYING, COPYING.MIT, renamed COPYING.LGPL to simply COPYING 2025年09月29日 13:07:15 +02:00
Makefile.am updated/fixed copyright headers 2026年02月16日 15:07:36 +01:00
README.md dovecot-2.4.3 needs lua even if not detected 2026年03月29日 13:07:41 +02:00
stamp.h.in new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
wormhole-config.h.in dovecot 2.4.4 changed iostream_rawlog_create_path API 2026年05月19日 16:32:02 +02:00

Introduction

This is wormhole, a project to bring back Dovecot's replication feature for Dovecot 2.4 and later. It is mainly a fork of the Dovecot 2.3 replication code ported to Dovecot 2.4. The forked code was removed by the Dovecot maintainers from Dovecot starting with Version 2.4. This project aims to provide the feature as a plugin for Dovecot 2.4 and higher.

Installation

To install wormhole you first have to install Dovecot or at least the Dovecot development package from your distribution or the Dovecot community repositories. After that you compile and install the project with (assuming you have Dovecot installed in /usr):

./configure --prefix=/usr
make
make check # optional
make install

Patch for Dovecot

For best backward compatibility, you can find a patch for Dovecot in the patches directory. This patch will add a hook system do doveadm's sync and dsync-server commands. These hooks will be used by wormhole to extend sync and dsync-server with replication specific features. The availability of this hooks is autodetected by configure.

If you do not need backward compatibility with existing Dovecot-2.3 replication servers, you don't need this patch. It is even possible to run mixed 2.3/2.4 setups without this patch but you will have limited support for noreplicate setting.

Packages

Wormhole is available as openSUSE package in the server:main repository. Thanks to Marcus Rueckert (@darix)!

On Debian Bookworm and Trixie you can use make debian-package to build a package. The package will be build against the Dovecot package installed, thus either the CE package on bookworm or the package from the Debian repository on Trixie.

Offical packages can be found on https://wormhole.mpi-klsb.mpg.de/repository.html. Those packages are built against the latest CE packages of Dovecot. Currently only Debian and Ubuntu packages are available. If you need packages for other platforms, please help me find the relevant information to build such packages, e.g. which docker image to use, how to install Dovecot CE in it, how to build packages on that platform, ...

Build dependencies

Debian

For compiling the software, you need:

apt install dovecot-dev

If you want to run the included test suite or build from git, you also need:

apt install bash curl build-essential automake libtool bison flex pkg-config procps libssl-dev zlib1g-dev lsb-release liblua5.3-dev

Alpine Linux

For compiling the software, you need:

apk add make dovecot dovecot-dev autoconf automake libtool gcc libc-dev
# minimal dovecot config in case you just installed it:
cat <<EOF > /etc/dovecot/dovecot.conf
dovecot_config_version = 2.4.1
dovecot_storage_version = 2.4.1
EOF

If you want to run the included test suite or build from git, you also need:

apk add tar bash curl bison flex patch findutils procps openssl-dev zlib-dev lsb-release lua5.3-dev

Other platforms

Create a pull request or sent me a mail in case you found out, what's needed!

Upgrading from Dovecot 2.3

See upgrading documentation.

Configuration

See Replication with dsync for details. All configuration parameters are described in Replication Settings.

Authors and acknowledgements

First I want to thank Timo Sirainen and his team from Dovecot for providing the replication feature in Dovecot since 2012. Most of the code in this project is based on their work!

Maintainer of this project and author of the new code to bring replication back into Dovecot 2.4:

Contributions

License

Wormhole is released under LGPLv2.1 (see COPYING) similar to the forked code of Dovecot's replication feature.

Wormhole documentation (in doc/) is released under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License (see doc/LICENSE) similar to the forked documentation of Dovecot's replication documentation.

Questions and Contributing

If you have questions or want to report issues or contribute, you can do so on Codeberg:

The official website of this project is: https://people.mpi-klsb.mpg.de/~pcernko/wormhole.shtml