1
0
Fork
You've already forked wormhole
0
forked from errror/wormhole
Replication support for Dovecot >= 2.4 as plugin
  • C 77.9%
  • Shell 13.6%
  • M4 4.4%
  • Makefile 4.1%
2025年12月22日 12:35:00 +01:00
build-aux new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
doc imported and adapted doveadm-replicator manpage from dovecot 2.3 documentation repo (commit de9c4d431e92e04ea69b99391c83c12b79e4e95c) 2025年11月05日 19:07:41 +01:00
packages packaging: store debian package in "debianRV" dir 2025年12月22日 12:07:37 +01:00
patches updated patch to also modify Makefile.in (not in git) 2025年10月13日 08:35:00 +02:00
src replicator: use persistent connection to auth service in storage_service 2025年12月16日 05:48:02 +01:00
tests built-tests: use WITH_CHECK_ASSETS from configure 2025年12月20日 13:28:58 +01: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: use CHECK_ASSETS_URL variable for --with-check-assets 2025年12月22日 12:35:00 +01:00
autogen.sh new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
configure.ac configure: add given --with-check-assets to DISTCHECK_CONFIGURE_FLAGS 2025年12月20日 13:30:50 +01:00
COPYING dropped unneeded COPYING, COPYING.MIT, renamed COPYING.LGPL to simply COPYING 2025年09月29日 13:07:15 +02:00
Makefile.am imported and adapted doveadm-replicator manpage from dovecot 2.3 documentation repo (commit de9c4d431e92e04ea69b99391c83c12b79e4e95c) 2025年11月05日 19:07:41 +01:00
README.md build-tests: save installed dovecot trees as assets and reuse them if they exist 2025年12月20日 13:01:00 +01:00
stamp.h.in new plugin build system inspired by pigeonhole 2025年07月15日 20:52:50 +02:00
TODO.md updated done TODOs 2025年12月15日 14:09:49 +01:00
wormhole-config.h.in check where version_string_verify is defined: 2025年10月30日 12:29:25 +01: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.

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

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

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