First of all, thanks for a great product. I've been able to get dovecot up and running with minimum pain. Very nice. Running Fedora Core 2 with postfix using mysql for virtual mailbox config. Got release version of dovecot working with a passwd-file, then I wanted to try it out with using the same mysql db as postfix, so I downloaded test51. I run ./configure --sysconfdir=/etc --with-mysql And it seems happy. Completes with: Install prefix ...................... : /usr/local File offsets ........................ : 64bit I/O loop method ..................... : poll Building with SSL support ........... : no Building with IPv6 support .......... : yes Building with pop3 server ........... : yes Building with user database modules . : static passwd passwd-file checkpassword mysql (modules) Building with password lookup modules : passwd passwd-file shadow checkpassword mysql (modules) Then I run make, and it errors out with: gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o dovecot-auth auth-cache.o auth-client-connection.o auth-master-connection.o auth-module.o db-ldap.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-rpa.o mech-apop.o passdb.o passdb-bsdauth.o passdb-cache.o passdb-ldap.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o passdb-checkpassword.o passdb-shadow.o passdb-vpopmail.o passdb-sql.o userdb.o userdb-ldap.o userdb-passwd.o userdb-passwd-file.o userdb-static.o userdb-vpopmail.o userdb-sql.o -Wl,--export-dynamic libpassword.a ../lib-settings/libsettings.a ../lib-ntlm/libntlm.a ../lib-sql/libsql.a ../lib/liblib.a -lcrypt -L/usr/local/mysql/lib -lmysqlclient -lz -ldl /usr/local/mysql/lib/libmysqlclient.a(sha1.o)(.text+0x5c): In function `sha1_result': : multiple definition of `sha1_result' ../lib/liblib.a(sha1.o)(.text+0x7f4):/root/dovecot-1.0-test51/src/lib/sh a1.c:242: first defined here /usr/bin/ld: Warning: size of symbol `sha1_result' changed from 158 in ../lib/liblib.a(sha1.o) to 126 in ../lib/liblib.a(sha1.o) collect2: ld returned 1 exit status make[3]: *** [dovecot-auth] Error 1 make[3]: Leaving directory `/root/dovecot-1.0-test51/src/auth' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/root/dovecot-1.0-test51/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/dovecot-1.0-test51' make: *** [all] Error 2 Any help would be appreciated. Thanks!
On 29.10.2004, at 03:01, Greg Deputy wrote:> /usr/local/mysql/lib/libmysqlclient.a(sha1.o)(.text+0x5c): In function > `sha1_result': > : multiple definition of `sha1_result' > ../lib/liblib.a(sha1.o)(.text+0x7f4):/root/dovecot-1.0-test51/src/lib/ > sh > a1.c:242: first defined here > /usr/bin/ld: Warning: size of symbol `sha1_result' changed from 158 in > ../lib/liblib.a(sha1.o) to 126 in ../lib/liblib.a(sha1.o)IMHO this is mysql library problem. It shouldn't reserve such a commonly used function name for itself, and I'm sure Dovecot isn't the only software using it. Someone should report it to Mysql people to get it fixed.. A kludgy workaround would be to change all occurrences of sha1_result to something else, like xx_sha1_result: auth/password-scheme.c: sha1_result(&ctx, ssha_digest); auth/password-scheme.c: sha1_result(&ctx, sha1_digest); lib/sha1.c:sha1_result(struct sha1_ctxt *ctxt, void *digest0) lib/sha1.c: sha1_result(&ctx, result); lib/sha1.h:extern void sha1_result(struct sha1_ctxt *, void *); lib/sha1.h:#define SHA1Final(x, y) sha1_result((y), (x)) -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 186 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20041101/6a007fc0/attachment-0001.bin>
> IMHO this is mysql library problem. It shouldn't reserve such a > commonly used function name for itself, and I'm sure Dovecot > isn't the > only software using it. Someone should report it to Mysql > people to get > it fixed.. > > A kludgy workaround would be to change all occurrences of > sha1_result > to something else, like xx_sha1_result: > > auth/password-scheme.c: sha1_result(&ctx, ssha_digest); > auth/password-scheme.c: sha1_result(&ctx, sha1_digest); > lib/sha1.c:sha1_result(struct sha1_ctxt *ctxt, void *digest0) > lib/sha1.c: sha1_result(&ctx, result); > lib/sha1.h:extern void sha1_result(struct sha1_ctxt *, void *); > lib/sha1.h:#define SHA1Final(x, y) sha1_result((y), (x))So are others having the same problem and just kludging the function name, or is there a different version of mysql that plays nicer? Thanks for any help.