I'm trying to install the fts-xapian module for dovecot on an OVH VPS Cloud instance. I currently have Ubuntu 16.04. After compiling fts-xapian I see it is installed in /usr/lib/dovecot/modules
, however when enabling the plugin in my dovecot.conf I am seeing an error in my maillog:
Error: Couldn't load required plugin /usr/lib/dovecot/modules/lib21_fts_xapian_plugin.so: Module is for different ABI version 2.2.ABIv22(2.2.22) (we have 2.3.ABIv9(2.3.9.2))
I had to update the system ICU in order to compile fts-xapian. I compiled ICU from here:
https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz
Here are the steps I followed:
$ add-apt-repository ppa:xapian/backports
$ apt update
$ apt upgrade
$ apt install python3-xapian
$ apt install libxapian-dev
EDIT /etc/apt/sources.list and ADD:
deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse #Added by software-properties
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates restricted main universe multiverse #Added by software-properties
deb-src http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb-src http://security.ubuntu.com/ubuntu/ xenial-security restricted main universe multiverse #Added by software-properties
deb-src http://archive.ubuntu.com/ubuntu/ xenial-proposed restricted main universe multiverse #Added by software-properties
then
$ apt update
$ apt build-dep dovecot-core
$ apt install dovecot-dev
$ apt install libicu-dev
(System ICU needs to be updated for the next builds to work)
$ cd /tmp
$ wget https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz
$ tar -xvf icu4c-65_1-src.tgz
$ cd icu/source
$ ./configure --prefix=/usr
$ make install
$ icu-config --version
We should now see a system icu version of 65.1
$ cd /usr/share
$ git clone https://github.com/grosjo/fts-xapian
$ cd fts-xapian
$ autoreconf -vi
$ ./configure --with-dovecot=/usr/lib/dovecot
$ make
$ make install
I believe the problem is that dovecot-dev is at v2.2.22, while dovecot is now at v2.3.92. My system is telling me that dovecot-dev is already at the most recent version. How can I update dovecot-dev so that it matches my dovecot? Do I need to compile from source?