[Dovecot] Help with mysql-dspam-plugin
Hello folks --
I'm using Debian etch and I've got Mysql 5.0, Dovecot 1.0rc15 and
DSpam 3.6.8...
I've downloaded the mysql-dspam-plugin code, and it builds without
errors. But when trying to start Dovecot I get:
Starting mail server: dovecotIEffective uid=65534, gid=65534
ILoading modules from directory: /usr/lib/dovecot/modules/imap
Emodule /usr/lib/dovecot/modules/imap/lib_dspam.so: dlsym(dspam_init)
failed: /usr/lib/dovecot/modules/imap/lib_dspam.so: undefined symbol:
dspam_init
Error: imap dump-capability process returned 89
Any help with how to fix this would be great! I'm not really a
programmer so I'm not quite sure where to look...
thanks!!
Rob Klingsten
Starting mail server: dovecotIEffective uid=65534, gid=65534 ILoading modules from directory: /usr/lib/dovecot/modules/imap Emodule /usr/lib/dovecot/modules/imap/lib_dspam.so: dlsym(dspam_init)
failed: /usr/lib/dovecot/modules/imap/lib_dspam.so: undefined symbol:
dspam_init Error: imap dump-capability process returned 89Any help with how to fix this would be great! I'm not really a
programmer so I'm not quite sure where to look...
Interesting. That's pretty odd, how did you compile the plugin? And are the mysql libraries the plugin is probably linked against available?
johannes
Starting mail server: dovecotIEffective uid=65534, gid=65534 ILoading modules from directory: /usr/lib/dovecot/modules/imap Emodule /usr/lib/dovecot/modules/imap/lib_dspam.so: dlsym(dspam_init) failed: /usr/lib/dovecot/modules/imap/lib_dspam.so: undefined symbol: dspam_init Error: imap dump-capability process returned 89
Any help with how to fix this would be great! I'm not really a programmer so I'm not quite sure where to look...
Interesting. That's pretty odd, how did you compile the plugin? And
are the mysql libraries the plugin is probably linked against available?johannes
Thanks for the reply! Just to be clear, I'm talking about Tim
White's version of the code, that uses MySQL. I tinkered with it,
and fixed the problem by simply changing the two routine names:
void dspam_plugin_init(void) TO void dspam_init(void)
and
void dspam_plugin_deinit(void) TO void dspam_deinit(void)
And now it is working beautifully. Doesn't make sense to me why
though. But I'm happy.
As far as the processing of the signatures, I assume I want to run
the 'clientrunner.php' out of cron once or twice a day? This is on a
system with about 40 users.
thanks again!
Rob Klingsten
On 22.2.2007, at 23.53, Rob Klingsten wrote:
Emodule /usr/lib/dovecot/modules/imap/lib_dspam.so: dlsym (dspam_init) failed: /usr/lib/dovecot/modules/imap/lib_dspam.so: undefined
symbol: dspam_init .. void dspam_plugin_init(void) TO void dspam_init(void)and
void dspam_plugin_deinit(void) TO void dspam_deinit(void)
Alternatively you could have renamed lib_dspam.so to libdspam_plugin.so.
On 22.2.2007, at 23.53, Rob Klingsten wrote:
Emodule /usr/lib/dovecot/modules/imap/lib_dspam.so: dlsym (dspam_init) failed: /usr/lib/dovecot/modules/imap/lib_dspam.so: undefined
symbol: dspam_init .. void dspam_plugin_init(void) TO void dspam_init(void)and
void dspam_plugin_deinit(void) TO void dspam_deinit(void)
Alternatively you could have renamed lib_dspam.so to
libdspam_plugin.so.
Aha, now I understand! Thanks for tolerating my lack of coding
knowledge ...
Thanks very much!
Rob
On Thu, 2007-02-22 at 16:53 -0500, Rob Klingsten wrote:
Thanks for the reply! Just to be clear, I'm talking about Tim
White's version of the code, that uses MySQL. I tinkered with it,
and fixed the problem by simply changing the two routine names:void dspam_plugin_init(void) TO void dspam_init(void)
and
void dspam_plugin_deinit(void) TO void dspam_deinit(void)
And now it is working beautifully. Doesn't make sense to me why
though. But I'm happy.
Ah, I can tell you why ;) The name of the plugin as you gave it was "dspam" which means you need dspam_init and dspam_deinit. Tim probably called the plugin "dspam_plugin" instead.
As far as the processing of the signatures, I assume I want to run
the 'clientrunner.php' out of cron once or twice a day? This is on a
system with about 40 users.
I'm not entirely sure about that. I think so, but CC'ing Tim anyway (hope I got the right address.)
johannes
On 2/23/07, Johannes Berg johannes@sipsolutions.net wrote:
On Thu, 2007-02-22 at 16:53 -0500, Rob Klingsten wrote:
Thanks for the reply! Just to be clear, I'm talking about Tim White's version of the code, that uses MySQL. I tinkered with it, and fixed the problem by simply changing the two routine names:
void dspam_plugin_init(void) TO void dspam_init(void)
and
void dspam_plugin_deinit(void) TO void dspam_deinit(void)
And now it is working beautifully. Doesn't make sense to me why though. But I'm happy.
Ah, I can tell you why ;) The name of the plugin as you gave it was "dspam" which means you need dspam_init and dspam_deinit. Tim probably called the plugin "dspam_plugin" instead.
This sounds about right.
As far as the processing of the signatures, I assume I want to run the 'clientrunner.php' out of cron once or twice a day? This is on a system with about 40 users.
I'm not entirely sure about that. I think so, but CC'ing Tim anyway (hope I got the right address.)
Yep, right address. You want to run clientrunner at least once a day. For 40 users, doing a lot of retraining, I'd be tempted to run it upto 4 times a day, depending on when the server is most loaded, and how much training is needed. The script itself takes almost no time, all the time is dspam actually retraining, but it doesn't usually take long. I personally run it at about 3am in the morning.
Tim p.s. I'm not on the Dovecot list atm, until I get permanent internet back.
-- Linux Counter user #273956 Don't email joeblogs@scouts.org.au
participants (4)
-
Johannes Berg
-
Rob Klingsten
-
Timo Sirainen
-
Timothy White