On Wed, 2010-10-06 at 17:47 +0200, Wolfgang.Friebel@desy.de wrote:
Therefore the executable will fail to run:
ldd /usr/libexec/dovecot/managesieve-login libdovecot-login.so.0 => not found libdovecot.so.0 => not found To me this looks like a bug in the generated Makefile.
There should be -R/usr/lib64/dovecot parameter in the linking command. Do you have a different -R path or no path at all? What is the full linking command for managesieve-login?
There is no -R option in the linking command, it is also not among the variables defined in src/managesieve-login/Makefile. The link step is
/bin/sh ../../libtool --tag=CC --mode=link gcc -std=gnu99 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -I/usr/kerberos/include -o managesieve-login client.o client-authenticate.o managesieve-login-settings.o managesieve-proxy.o ../../src/lib-managesieve/libmanagesieve.a -ldovecot-login -L/usr/lib64/dovecot -ldovecot -lrt libtool: link: gcc -std=gnu99 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -I/usr/kerberos/include -o managesieve-login client.o client-authenticate.o managesieve-login-settings.o managesieve-proxy.o ../../src/lib-managesieve/libmanagesieve.a -ldovecot-login -L/usr/lib64/dovecot -ldovecot -lrt
And you probably want to know the contents of dovecot-config: DOVECOT_CFLAGS="-std=gnu99 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -I/usr/kerberos/include " DOVECOT_LIBS=" -lrt" DOVECOT_SSL_LIBS="-L/usr/kerberos/lib64 -lssl -lcrypto -ldl -lz " LIBDOVECOT='-L/usr/lib64/dovecot -ldovecot' LIBDOVECOT_LOGIN=-ldovecot-login LIBDOVECOT_SQL=-ldovecot-sql LIBDOVECOT_LDA=-ldovecot-lda LIBDOVECOT_STORAGE=-ldovecot-storage
LIBDOVECOT_INCLUDE=-I/usr/include/dovecot dovecot_pkgincludedir=/usr/include/dovecot dovecot_pkglibdir=/usr/lib64/dovecot dovecot_pkglibexecdir=/usr/libexec/dovecot
The binaries in dovecot seem to have been produced using libtool, where the correct library paths are included using -Wl,--rpath...
Could it be that the missing -R is related to --disable-static and --disable-rpath options to configure which I took over from the ATrpms dovecot spec file? Then it would rather be my ignorance of the dependencies between these options, libtool, dovecot and pigeonhole.
-- Wolfgang Friebel Deutsches Elektronen-Synchrotron DESY Phone/Fax: +49 33762 77372/216 Platanenallee 6 Mail: Wolfgang.Friebel AT desy.de D-15738 Zeuthen Germany