On 07/26/15 02:47, Joerg Jung wrote:
Am 25.07.2015 um 22:18 schrieb James Lott <[email protected]
<mailto:[email protected]>>:
Interestingly, it looks to me like opensmtpd does actually check the
/usr/local/libexec/opensmtpd directory for modules. When I remove the
module from that directory, smtpd does not even start anymore (as
opposed to starting and instantly giving up).
root@smtp:/usr/local/etc/mail-config # mv
/usr/local/libexec/opensmtpd/table-sqlite /usr/libexec/smtpd/
root@smtp:/usr/local/etc/mail-config # service smtpd onestart
Performing sanity check on smtpd configuration:
fatal: table_create: backend "sqlite" does not exist
/usr/local/etc/rc.d/smtpd: WARNING: failed precmd routine for smtpd
If that path is hardcoded in the upstream OpenSMTPD source, then I
would guess I'm dealing with a patched codebase... I guess I'll have
to try grabbing the upstream sources directly and see if I run into
the same issue.
Forget that, the path is not hardcoded and not your problem.
I misread an #ifdef in the portable code.
Sorry for the noise!!
On 07/25/2015 12:08 PM, Joerg Jung wrote:
On Sat, Jul 25, 2015 at 10:52:36AM -0700, James Lott wrote:
Hey folks,
I'm running OpenSMTPD 5.7.1 + table-sqlite from extras. I'm simply trying to
get the sqlite tables to work at all. I haven't even gotten as far as trying
to use them in my rules. I have the following config files:
==> smtpd.conf
table aliasesfile:/etc/mail/aliases
table mxdb sqlite:/usr/local/etc/mail-config/mxdb/smtpd.sqlite.conf
listen on localhost port 2587
accept for local alias <aliases> deliver to mbox
accept for any relay
==>smtpd.sqlite.conf
dbpath /usr/local/var/mxdb.sqlite
query_domain select name from domain where domain = ?
query_alias select destination from alias where
alias_user||'@'||alias_domain = ?
OpenSMTPD will pass the config tests and start, but will then immediately
die.
Jul 25 10:36:36 smtp smtpd[61374]: info: OpenSMTPD 5.7.1p1 starting
Jul 25 10:36:36 smtp smtpd[61375]: info: startup [debug mode]
Jul 25 10:36:36 smtp smtpd[61378]: warn: table-proc: pipe closed
Jul 25 10:36:36 smtp smtpd[61378]: fatal: table-proc: exiting
Jul 25 10:36:36 smtp smtpd[61376]: warn: queue -> lka: pipe closed
Jul 25 10:36:36 smtp smtpd[61377]: warn: control -> lka: pipe closed
Jul 25 10:36:36 smtp smtpd[61375]: warn: parent -> lka: pipe closed
Jul 25 10:36:36 smtp smtpd[61380]: warn: pony -> lka: pipe closed
Jul 25 10:36:36 smtp smtpd[61379]: warn: scheduler -> queue: pipe closed
Jul 25 10:36:36 smtp smtpd[61381]: warn: ca -> control: pipe closed
Smtpd will start and run just fine if I comment out the "table mxdb" line.
Are you starting like so:
# smtpd -d
If so add some v's:
# smtpd -dvvvv
Otherwise maybe just make sure smtpd.sqlite.conf and mxdb.sqlite exist
ie no typos.
I'm not sure, but I have a guess for you:
I think -extras configure.ac has a bug where tables, filters, etc
are installed in $prefix/libexec/opensmtpd
But smtpd explicitly looks in (hardcoded) /usr/libexec/smtpd for them.
Thus, your table-sqlite is not loaded correctly and smtpd dies.
Regards,
Joerg
Unrelated to OP problem, but this is an issue for OpenBSD version. It
installs to /usr/libexec/opensmtpd, but smtpd wants it in
/usr/libexec/smtpd. ./configure --libexecdir=/usr/libexec/smtpd makes
it install to /usr/libexec/smtpd/opensmtpd.