[Dovecot] problem with ldap
Xueron Nee
xueron at xueron.com
Thu Mar 26 11:20:32 EET 2009
It's OK when not build ldap as a plugin.
I checked passed.c and userdb.c and compared with 1.1.x, and modified
them:
change:
passdb_register_module(&passdb_ldap);
to:
#if defined(PASSDB_LDAP) && defined(BUILTIN_LDAP)
passdb_register_module(&passdb_ldap);
#endif
and OK.
There are two macros for ldap, PASSDB_LDAP and BUILTIN_LDAP, and for
other dbs only one PASSDB_xxxx, I think that is the problem here.
1.2's cleaned up such codes in passdb.c and userdb.c :)
On Mon, 23 Mar 2009 15:31:16 +0100 Michal Hlavinka <mhlavink at redhat.com> wrote:
> And the same problem here, I can't get it compiled. (This is first time, I'm
> packaging 1.2 branch).
>
> It fails for ldap plugin (./configure --with-ldap=plugin is enough to reproduce
> this)
>
> linking src/auth/dovecot-auth
>
> >/bin/sh ../../libtool --tag=CC --mode=link gcc -std=gnu99 -g -O2 -Wall -W
> > -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
> > -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2
> > -I/usr/kerberos/include -export-dynamic -o dovecot-auth auth.o
> > auth-cache.o auth-client-connection.o auth-master-connection.o
> > auth-master-listener.o auth-request.o auth-request-handler.o auth-stream.o
> > auth-worker-client.o auth-worker-server.o db-checkpassword.o db-sql.o
> > db-passwd-file.o main.o mech.o mech-anonymous.o mech-plain.o mech-login.o
> > mech-cram-md5.o mech-digest-md5.o mech-ntlm.o mech-otp.o mech-skey.o
> > mech-rpa.o mech-apop.o mech-winbind.o otp-skey-common.o plain-common.o
> > passdb.o passdb-blocking.o passdb-bsdauth.o passdb-cache.o
> > passdb-checkpassword.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o
> > passdb-shadow.o passdb-sia.o passdb-vpopmail.o passdb-sql.o userdb.o
> > userdb-blocking.o userdb-checkpassword.o userdb-nss.o userdb-passwd.o
> > userdb-passwd-file.o userdb-prefetch.o userdb-static.o userdb-vpopmail.o
> > userdb-sql.o mech-gssapi.o libpassword.a ../lib-settings/libsettings.a
> > ../lib-ntlm/libntlm.a ../lib-otp/libotp.a ../lib-sql/libsql.a
> > ../lib/liblib.a -lcrypt -lpam -export-dynamic -ldl
>
> fails with:
>
> > In function `passdbs_init':
> >/home/mhlavink/cvsf/dovecot/devel/dovecot-1.2.beta3/src/auth/passdb.c:230:
> > undefined reference to `passdb_ldap' userdb.o: In function `userdbs_init':
> >/home/mhlavink/cvsf/dovecot/devel/dovecot-1.2.beta3/src/auth/userdb.c:177:
> > undefined reference to `userdb_ldap'
>
> It seems that ldap sources are not compiled (and not linked).
>
> If I modify Makefile and add them (db-ldap.c passdb-ldap.c userdb-ldap.c ) to
> am__dovecot_auth_SOURCES_DIST list, it works fine.
>
> I have LDAP headers and libraries installed.
>
> >checking for ldap_init in -lldap... yes
> >checking ldap.h usability... yes
> >checking ldap.h presence... yes
> >checking for ldap.h... yes
> >checking for ldap_initialize in -lldap... yes
> >checking for ldap_start_tls_s in -lldap... yes
> ...
> >Install prefix ...................... : /usr/local
> >File offsets ........................ : 64bit
> >I/O loop method ..................... : epoll
> >File change notification method ..... : inotify
> >Building with SSL support ........... : yes (OpenSSL)
> >Building with IPv6 support .......... : yes
> >Building with pop3 server ........... : yes
> >Building with mail delivery agent .. : yes
> >Building with GSSAPI support ........ : no
> >Building with user database modules . : static prefetch passwd passwd-file
> > checkpassword ldap (plugin) nss Building with password lookup modules :
> > passwd passwd-file shadow pam checkpassword ldap (plugin)
>
> It seems to me that configure/Makefile is not working or am I doing something
> wrong?
>
> Regards,
>
> Michal Hlavinka
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature database 3954 (20090323) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
--
Xueron Nee
http://www.xueron.com
More information about the dovecot
mailing list