drac for dovecot2 on Ubunt 18 LTS
Ubuntu 18.04.1 LTS にアップグレードしたら、メールの読み書きに利用しているdovecotでdracプラグインが動かなくなった。
以前にUbuntu 16 LTSにアップグレードした時は、dovecot2-drac を再コンパイルするだけで済んだが、今回は、プログラムを一部修正したので、メモしておく。
1. dovecot 2用のdracをダウンロード
dovecotのバージョンが2.2.33.2になっていたのて、https://ja.osdn.net/projects/dovecot2-drac/releases/p12445 から dovecot2-drac-0.1.tar.gz をダウンロードした。
2. dovecotのソースもダウンロヘド
dobecotのソースも必要とされているが、実際に必要なのはincludeファイルのため、aptコマンドでdovecot-devを取得した。
apt -y install dovecot-dev
3. dovecot2-drac の修正
tar zxf dovecot2-drac-0.1.tar.gz
として、dovecot2-dracを展開し、makeしてみた。
make DOVDIR=/usr/include/dovecot
とコマンドを打つと、”drac-plugin.c:13:10: fatal error:network.h: そのようなファイルやディレクトリはありません”というエラーになった。
インクルードファイルを確認するため、/usr/include/dovecot の中を見ると以前のバージョンで network.hとなっていたファイル名が net.h に変わっているようだ。また、プラグインを呼び出す際にロードするモジュールのバージョンを判定しているが、これもABIバージョンを判定するように変わっている。
ということで、drac-plugin.c を次のように修正した。
13行目 "network.h" を "net.h" に変更。
変更前: #include "network.h"
変更後: #include "net.h"
28行目 DOVECOT_VERSION を DOVECOT_ABI_VERSION に変更。
変更前: const char *drac_plugin_version = DOVECOT_VERSION;
変更後: const char *drac_plugin_version = DOVECOT_ABI_VERSION;
ソースをGitHubにアップしておきました。
https://github.com/m-hagane/drac-plugin-for-dovecot-2.2.33.2
参考にした Web site: