[Dovecot] problem with ldap

Michal Hlavinka
Mon, 23 Mar 2009 14:31:16 -0000

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