[Dovecot] lib02_imap_quota_plugin.so: undefined symbol: quota
Hi folks.
We're trying to set up Dovecot with Maildir++ quotas. Operating system is CentOS 4.3 (final) X86 using Dovecot 1.0b5.
After logging in, I get the following logged through syslog and the connection closes:
Apr 6 10:39:36 dev3 dovecot: imap(jtest): Loading modules from directory: /usr/local/lib/dovecot/imap Apr 6 10:39:36 dev3 dovecot: imap(jtest): dlopen(/usr/local/lib/dovecot/imap/lib02_imap_quota_plugin.so) failed: /usr/local/lib/dovecot/imap/lib02_imap_quota_plugin.so: undefined symbol: quota Apr 6 10:39:36 dev3 dovecot: imap-login: Login: user=<jtest>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured Apr 6 10:39:36 dev3 dovecot: child 23750 (imap) returned error 89
My dovecot.conf:
protocol imap { mail_plugins = quota_plugin imap_quota mail_plugin_dir = /usr/local/lib/dovecot/imap imap_client_workarounds = outlook-idle delay-newmail }
Can someone point us in the right direction?
Thanks.
Steve
On Thu, April 6, 2006 11:11, Apps Lists said:
protocol imap { mail_plugins = quota_plugin imap_quota mail_plugin_dir = /usr/local/lib/dovecot/imap imap_client_workarounds = outlook-idle delay-newmail }
Try: mail_plugins = imap_quota quota
And then to make the IMAP GETQUOTAROOT command work, try this patch: http://www.dovecot.org/list/dovecot/2006-April/012381.html
This worked for us on Red Hat ES4 and Red Hat ES3
Bill
Hi Bill.
GETQUOTAROOT does return something ... but it still looks like something is wrong.
I'm returning a quota of "10240S":
Apr 6 14:16:01 dev3 dovecot: auth(default): client out: OK 2
user=jtest quota=10240S
.... and after doing some mailbox operations (moved messages in, stuffed them into different folders, deleted) my maildirsize file looks like this:
(empty line) 594572 30 66150 6 398547 10
The empty line, according to what I've read... should be the user's storage quota. This is used by other maildir++ compliant software (like an lda). I've got a link at the bottom of this.
It doesn't appear as if Dovecot is enforcing quotas either. I had well over a megabyte of mail in my test account and was able to move more stuff in without incident.
Is this broken, or am I missing something?
Thanks!
Steve
http://www.inter7.com/courierimap/README.maildirquota.html
Contents of maildirsize
maildirsize contains two or more lines terminated by newline characters.
The first line contains a copy of the quota definition as used by the system's mail server. Each application that uses the maildir must know what it's quota is. Instead of configuring each application with the quota logic, and making sure that every application's quota definition for the same maildir is exactly the same, the quota specification used by the system mail server is saved as the first line of the maildirsize file. All other application that enforce the maildir quota simply read the first line of maildirsize.
The quota definition is a list, separate by commas. Each member of the list consists of an integer followed by a letter, specifying the nature of the quota. Currently defined quota types are 'S' - total size of all messages, and 'C' - the maximum count of messages in the maildir. For example, 10000000S,1000C specifies a quota of 10,000,000 bytes or 1,000 messages, whichever comes first.
All remaining lines all contain two integers separated by a single space. The first integer is interpreted as a byte count. The second integer is interpreted as a file count. A Maildir++ writer can add up all byte counts and file counts from maildirsize and enforce a quota based either on number of messages or the total size of all the messages.
On Thu, April 6, 2006 11:11, Apps Lists said:
protocol imap { mail_plugins = quota_plugin imap_quota mail_plugin_dir = /usr/local/lib/dovecot/imap imap_client_workarounds = outlook-idle delay-newmail }
Try: mail_plugins = imap_quota quota
And then to make the IMAP GETQUOTAROOT command work, try this patch: http://www.dovecot.org/list/dovecot/2006-April/012381.html
This worked for us on Red Hat ES4 and Red Hat ES3
Bill
On Thu, April 6, 2006 14:27, Apps Lists said:
The empty line, according to what I've read... should be the user's storage quota. This is used by other maildir++ compliant software (like an lda). I've got a link at the bottom of this.
We are actually still using Courier's "maildrop" for message delivery, and it is maildrop that populates the maildirsize first line on our system. All we needed at the moment was Dovecot to report the correct storage by reading it from the maildirsize file.
So I am not sure if Dovecot or the LDA are enforcing or populating that first line themselves yet. We haven't tested Dovecot's quota enforcement yet either, since on our system it is enforced still by maildrop during message delivery.
Maybe Timo can answer?
Bill
On Thu, 2006-04-06 at 14:27 -0400, Apps Lists wrote:
Hi Bill.
GETQUOTAROOT does return something ... but it still looks like something is wrong.
I'm returning a quota of "10240S":
Apr 6 14:16:01 dev3 dovecot: auth(default): client out: OK 2
user=jtest quota=10240S
Apply this patch (or upgrade to latest CVS version): http://dovecot.org/tmp/maildir-quota-beta5.diff
Then return: quota=maildir:storage=10240
After that I think Maildir++ quota works properly. If the maildirsize file has different limits than what is given to quota in "storage" and "messages" parameters, Dovecot will overwrite the values in maildirsize. If you don't want this, then don't give storage/messages parameters at all to Dovecot and instead set them to maildirsize file some other way.
participants (3)
-
Apps Lists
-
Bill Boebel
-
Timo Sirainen