When emerged with USE=ldap, dovecot fails to load LDAP plugin, it works it this plugin isn't used, and dies if it is. Sep 25 10:30:16 mail dovecot: Dovecot v1.2.4 starting up (core dumps disabled) Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(master): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(master): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Sep 25 10:30:16 mail dovecot: auth-worker(default): dlopen(/usr/lib64/dovecot/auth/libauthdb_ldap.so) failed: /usr/lib64/dovecot/auth/libauthdb_ldap.so: undefined symbol: null_settings_section_callback Reproducible: Always
In the ebuild Dovecot is configured using --with-ldap=plugin changing it to just --with-ldap should solve the problem. I experimented with building Dovecot from sources before the ebuild was published and had the same problem. I saw an article somewhere on the dovecot site saying that =plugin is for distributing binary packages with the ldap libraries in a separate package, so perhaps the ldap libraries made by =plugin are just stubs. Unless there is a clever way of configuring the ldap support that I couldn't find;). However using the --with-ldap option seems the simplest way as then it just works! BTW A similar problem may exist with sql support as that is configured the same way.
Fix added into cvs. Worked for me.