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?