[Dovecot] v1.3 plugin locations
It's getting more and more annoying to have separate plugin directories for lda, pop3 and imap. Currently all the plugins are installed into $lib/dovecot/ and then symlinked to the lda, pop3, imap directories. The original reason was that v0.99 just loaded everything in those directories since there was no mail_plugins setting.
But then there are things like expire-tool and convert-tool (and the upcoming doveadm) that don't load plugins at all, even though they probably should. Adding just more directories to them seems to be pointless.
Also SQL plugins are shared by dovecot-auth and dict and those would need symlinking.. And in future you might want to load SQL plugins to e.g. imap process.
So, I was planning on just putting everything into $lib/dovecot/. expire-tool etc. would use mail_plugins setting that wasn't inside protocol {}. So for example:
mail_plugins = quota protocol lda { mail_plugins = quota sieve } protocol imap { mail_plugins = quota imap_quota } protocol pop3 { # defaults to mail_plugins=quota above, no need to set it explicitly }
That leaves auth and dict.. I was considering adding new auth_plugins and dict_plugins settings, but that might make it more difficult to start using distro-compiled Dovecot where sql, ldap, etc. are in plugins. So perhaps the auth/ and dict/ directories can stay and contain symlinks. But the $lib/dovecot/sql/ directory could go away and the sql plugins be stored just in $lib/dovecot/ among everything else.
Any thoughts?
Oh, this makes excellent sense. Still, I can't help thinking of the famous prayer of Augustine of Hippo:"Grant me chastity and continence, but not yet" (/da mihi castitatem et continentiam, sed noli modo/). That is, my current build environment just works and has worked for a couple of years....and I dread having to reverse-engineer why it does what it does and then make those things happen for a new plugin environment. Excellent, *righteous* program engineering in this...but not yet, O Timo.....and yes, I'm chicken-$%#@ to be fussing about it.
Timo Sirainen wrote:
It's getting more and more annoying to have separate plugin directories for lda, pop3 and imap. Currently all the plugins are installed into $lib/dovecot/ and then symlinked to the lda, pop3, imap directories. The original reason was that v0.99 just loaded everything in those directories since there was no mail_plugins setting.
But then there are things like expire-tool and convert-tool (and the upcoming doveadm) that don't load plugins at all, even though they probably should. Adding just more directories to them seems to be pointless.
Also SQL plugins are shared by dovecot-auth and dict and those would need symlinking.. And in future you might want to load SQL plugins to e.g. imap process.
So, I was planning on just putting everything into $lib/dovecot/. expire-tool etc. would use mail_plugins setting that wasn't inside protocol {}. So for example:
mail_plugins = quota protocol lda { mail_plugins = quota sieve } protocol imap { mail_plugins = quota imap_quota } protocol pop3 { # defaults to mail_plugins=quota above, no need to set it explicitly }
That leaves auth and dict.. I was considering adding new auth_plugins and dict_plugins settings, but that might make it more difficult to start using distro-compiled Dovecot where sql, ldap, etc. are in plugins. So perhaps the auth/ and dict/ directories can stay and contain symlinks. But the $lib/dovecot/sql/ directory could go away and the sql plugins be stored just in $lib/dovecot/ among everything else.
Any thoughts?
-- ==== Once upon a time, the Internet was a friendly, neighbors-helping-neighbors small town, and no one locked their doors. Now it's like an apartment in Bed-Stuy: you need three heavy duty pick-proof locks, one of those braces that goes from the lock to the floor, and bars on the windows.... ==== Stewart Dean, Unix System Admin, Bard College, New York 12504 sdean@bard.edu voice: 845-758-7475, fax: 845-758-7035
participants (2)
-
Stewart Dean
-
Timo Sirainen