[Dovecot] compilation and installation of dspam-plugin
hello johannes,
i just discovered your wonderful plugin for dovecot. it was pretty much exactly what i was looking for, only that i didn't know that yet :)
"Instead of moving mail into special folders, the user has two actions available: moving it out of the SPAM folder and moving it into the SPAM folder. The dovecot plugin watches these actions [...] and tells dspam that it made an error and needs to re-classify the message, depending on the action the user took. The user can now move the message directly into whatever folder she choses, and it all works. [...]"
i think this is the most usable and intuitive approach to dspam-training i have seen so far and would love to integrate dspam with this plugin into my current setup (postfix + maildrop + dovecot). i have installed dovecot via package from the debian stable section [1] therefore i am currently using version 0.99.14 in my setup. despite this difference in version i gave your betacode [2] a try together with the source of the corresponding dovecot-version [3], hoping it wouldn't crash and burn when used with my earlier version of dovecot. but i didn't get to the point where i could actually testdrive it. i tried compiling the plugin with the instructions contained in the file, but the compilation didn't suceed.
stefan@myserver:~/sources/dovecot-dspam-plugin/dovecot-1.0.beta3/plugin$ gcc -fPIC -shared -Wall -I../src/ -I../src/lib -I.. -I../src/lib-storage -I../src/lib-mail -I../src/lib-imap -I../src/imap/ -DHAVE_CONFIG_H spam_plugin.c -o spam_plugin.so
In file included from ../src/imap/common.h:4,
from spam_plugin.c:32:
../src/lib/lib.h:6:22: config.h: No such file or directory
In file included from ../src/lib/lib.h:23,
from ../src/imap/common.h:4,
from spam_plugin.c:32:
../src/lib/compat.h:31:4: #error uoff_t size not set
In file included from /usr/include/sys/socket.h:35,
from ../src/lib/compat.h:80,
from ../src/lib/lib.h:23,
from ../src/imap/common.h:4,
from spam_plugin.c:32:
/usr/include/bits/socket.h:36: error: conflicting types for socklen_t' ../src/lib/compat.h:51: error: previous declaration of
socklen_t'
In file included from /usr/include/netinet/in.h:23,
from ../src/lib/compat.h:81,
from ../src/lib/lib.h:23,
from ../src/imap/common.h:4,
from spam_plugin.c:32:
/usr/include/stdint.h:111: error: conflicting types for uint_fast32_t' ../src/lib/compat.h:46: error: previous declaration of
uint_fast32_t'
/usr/include/stdint.h:141: error: conflicting types for uintmax_t' ../src/lib/compat.h:38: error: previous declaration of
uintmax_t'
In file included from ../src/lib/lib.h:23,
from ../src/imap/common.h:4,
from spam_plugin.c:32:
../src/lib/compat.h:107: error: redefinition of struct iovec' In file included from ../src/imap/commands.h:6, from ../src/imap/client.h:4, from ../src/imap/common.h:5, from spam_plugin.c:32: ../src/lib-storage/mail-storage.h:435: error: syntax error before "mail_get_virtual_size" ../src/lib-storage/mail-storage.h:435: warning: type defaults to
int'
in declaration of mail_get_virtual_size' ../src/lib-storage/mail-storage.h:435: warning: data definition has no type or storage class ../src/lib-storage/mail-storage.h:438: error: syntax error before "mail_get_physical_size" ../src/lib-storage/mail-storage.h:438: warning: type defaults to
int'
in declaration of mail_get_physical_size' ../src/lib-storage/mail-storage.h:438: warning: data definition has no type or storage class In file included from ../src/imap/commands.h:7, from ../src/imap/client.h:4, from ../src/imap/common.h:5, from spam_plugin.c:32: ../src/lib-imap/imap-parser.h:45: error: syntax error before "uoff_t" ../src/lib-imap/imap-parser.h:45: warning: no semicolon at end of struct or union ../src/lib-imap/imap-parser.h:45: warning: no semicolon at end of struct or union ../src/lib-imap/imap-parser.h:47: error: syntax error before '}' token ../src/lib-imap/imap-parser.h:47: warning: type defaults to
int' in
declaration of _data' ../src/lib-imap/imap-parser.h:47: warning: data definition has no type or storage class ../src/lib-imap/imap-parser.h:48: error: syntax error before '}' token ../src/lib-imap/imap-parser.h:72: error: field
args' has incomplete type
../src/lib-imap/imap-parser.h:125: error: syntax error before
"_imap_arg_literal_size_error"
../src/lib-imap/imap-parser.h:125: warning: type defaults to int' in declaration of
_imap_arg_literal_size_error'
../src/lib-imap/imap-parser.h:125: warning: data definition has no type
or storage class
just in case it matters: i currently have gcc 3.3.5 installed.
greetings, stefan
[1] http://packages.debian.org/stable/mail/dovecot-common [2] http://snipurl.com/nvol [3] http://www.dovecot.org/releases/dovecot-1.0.beta3.tar.gz
Stefan Schmidt wrote:
stefan@myserver:~/sources/dovecot-dspam-plugin/dovecot-1.0.beta3/plugin$ gcc -fPIC -shared -Wall -I../src/ -I../src/lib -I.. -I../src/lib-storage -I../src/lib-mail -I../src/lib-imap -I../src/imap/ -DHAVE_CONFIG_H spam_plugin.c -o spam_plugin.so
In file included from ../src/imap/common.h:4, from spam_plugin.c:32: ../src/lib/lib.h:6:22: config.h: No such file or directory In file included from ../src/lib/lib.h:23, from ../src/imap/common.h:4, from spam_plugin.c:32: ../src/lib/compat.h:31:4: #error uoff_t size not set In file included from /usr/include/sys/socket.h:35, from ../src/lib/compat.h:80, from ../src/lib/lib.h:23, from ../src/imap/common.h:4, from spam_plugin.c:32: /usr/include/bits/socket.h:36: error: conflicting types for
socklen_t' ../src/lib/compat.h:51: error: previous declaration of
socklen_t' In file included from /usr/include/netinet/in.h:23, from ../src/lib/compat.h:81, from ../src/lib/lib.h:23, from ../src/imap/common.h:4, from spam_plugin.c:32: /usr/include/stdint.h:111: error: conflicting types foruint_fast32_t' ../src/lib/compat.h:46: error: previous declaration of
uint_fast32_t' /usr/include/stdint.h:141: error: conflicting types foruintmax_t' ../src/lib/compat.h:38: error: previous declaration of
uintmax_t' In file included from ../src/lib/lib.h:23, from ../src/imap/common.h:4, from spam_plugin.c:32: ../src/lib/compat.h:107: error: redefinition ofstruct iovec' In file included from ../src/imap/commands.h:6, from ../src/imap/client.h:4, from ../src/imap/common.h:5, from spam_plugin.c:32: ../src/lib-storage/mail-storage.h:435: error: syntax error before "mail_get_virtual_size" ../src/lib-storage/mail-storage.h:435: warning: type defaults to
int' in declaration ofmail_get_virtual_size' ../src/lib-storage/mail-storage.h:435: warning: data definition has no type or storage class ../src/lib-storage/mail-storage.h:438: error: syntax error before "mail_get_physical_size" ../src/lib-storage/mail-storage.h:438: warning: type defaults to
int' in declaration ofmail_get_physical_size' ../src/lib-storage/mail-storage.h:438: warning: data definition has no type or storage class In file included from ../src/imap/commands.h:7, from ../src/imap/client.h:4, from ../src/imap/common.h:5, from spam_plugin.c:32: ../src/lib-imap/imap-parser.h:45: error: syntax error before "uoff_t" ../src/lib-imap/imap-parser.h:45: warning: no semicolon at end of struct or union ../src/lib-imap/imap-parser.h:45: warning: no semicolon at end of struct or union ../src/lib-imap/imap-parser.h:47: error: syntax error before '}' token ../src/lib-imap/imap-parser.h:47: warning: type defaults to
int' in declaration of_data' ../src/lib-imap/imap-parser.h:47: warning: data definition has no type or storage class ../src/lib-imap/imap-parser.h:48: error: syntax error before '}' token ../src/lib-imap/imap-parser.h:72: error: field
args' has incomplete type ../src/lib-imap/imap-parser.h:125: error: syntax error before "_imap_arg_literal_size_error" ../src/lib-imap/imap-parser.h:125: warning: type defaults toint' in declaration of
_imap_arg_literal_size_error' ../src/lib-imap/imap-parser.h:125: warning: data definition has no type or storage class
You need to run ./configure for dovecot at a minimum, possibly even a make, I don't know that one for certain.
Leeman
stefan@myserver:~/sources/dovecot-dspam-plugin/dovecot-1.0.beta3/plugin$ gcc -fPIC -shared -Wall -I../src/ -I../src/lib -I.. -I../src/lib-storage -I../src/lib-mail -I../src/lib-imap -I../src/imap/ -DHAVE_CONFIG_H spam_plugin.c -o spam_plugin.so
In file included from ../src/imap/common.h:4, from spam_plugin.c:32: ../src/lib/lib.h:6:22: config.h: No such file or directory [...] or storage class
You need to run ./configure for dovecot at a minimum, possibly even a make, I don't know that one for certain.
Leeman
thanks, i'd hoped it would be something trivial :)
to whom it may concern: the dspam-plugin-version "beta2" did not work with current debian stable package [dovecot 0.99.1] due to an "undefined symbol: mailbox_keywords_create", but there is an unstable package containing dovecot 1.0beta3 which seems to work fine. therefore as so very often you have to decide between better security or more features ;)
stefan
participants (2)
-
Leeman Strout
-
Stefan Schmidt