vpopmail-5.4.28 で、
・DBにPostgreSQLを利用
・valias をDBで利用
するように configure オプションをつけるとコンパイルに失敗する。
configure の例)
./configure \
--disable-roaming-users \
--enable-clear-passwd \
--disable-many-domains \
--enable-auth-module=pgsql \
--enable-auth-logging \
--enable-sql-logging \
--enable-qmail-ext=y \
--enable-valias
vpgsql.c のバグ。
http://www.opensubscriber.com/message/vchkpw@inter7.com/8020918.html
下記が該当するパッチかも。
ftp://ftp.ncnu.edu.tw/FreeBSD/branches/-current/ports/mail/vpopmail/files/patch-vpgsql.c
別件。
vlog テーブルが作成されるはずだが、vpgsql.h に指定されているCREATE TABLE構文が間違っている。
#ifdef ENABLE_SQL_LOGGING
#define VLOG_TABLE_LAYOUT "id serial, \
userid char(32), passwd CHAR(32), \
domain CHAR(96), logon VARCHAR(200), \
remoteip char(18), message VARCHAR(255), \
timestamp bigint default 0 NOT NULL, error INT, \
INDEX user_idx (user), \
INDEX domain_idx (domain), INDEX remoteip_idx (remoteip), \
INDEX error_idx (error), INDEX message_idx (message)"
#endif
INDEX 以降は使えないので下記に変更。
#ifdef ENABLE_SQL_LOGGING
#define VLOG_TABLE_LAYOUT "id serial, \
userid char(32), passwd CHAR(32), \
domain CHAR(96), logon VARCHAR(200), \
remoteip char(18), message VARCHAR(255), \
timestamp bigint default 0 NOT NULL, error INT"
#endif
ただし、これでもvlogテーブルが作成されないようなので、結局下記のSQLを手動で実行するのがいいかも。
create table vlog(
id serial,
userid char(32), passwd CHAR(32),
domain CHAR(96), logon VARCHAR(200),
remoteip char(18), message VARCHAR(255),
timestamp bigint default 0 NOT NULL, error INT
)