Wolfgang.Friebel at desy.de
2010-Oct-06 15:47 UTC
[Dovecot] dovecot-2.0-pigeonhole-0.2.1 installation in wrong lib dir?
I am building dovecot-2.0-pigeonhole-0.2.1 (dovecot-2.0.5, but that does not matter) with dovecot-config in place (in /usr/lib64/dovecot) on a 64bit Linux (RHEL5): ./configure --with-dovecot=/usr/lib64/dovecot The libs needed for several executables in libexec such as /usr/libexec/dovecot/managesieve-login are not installed in /usr/lib64 but in /usr/lib64/dovecot. Therefore the executable will fail to run: ldd /usr/libexec/dovecot/managesieve-login libdovecot-login.so.0 => not found libdovecot.so.0 => not found librt.so.1 => /lib64/librt.so.1 (0x00000032e9600000) libc.so.6 => /lib64/libc.so.6 (0x00000032e8200000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000032e8e00000) /lib64/ld-linux-x86-64.so.2 (0x00000032e7e00000) To me this looks like a bug in the generated Makefile. I could easily fix that by providing the library path for the loader or by symlinks in /usr/lib64, but this is a workaround only. When doing the fix then managesieve works as expected (tested against my patched websieve using GSSAPI) -- Wolfgang Friebel Deutsches Elektronen-Synchrotron DESY Phone/Fax: +49 33762 77372/216 Platanenallee 6 Mail: Wolfgang.Friebel AT desy.de D-15738 Zeuthen Germany
Timo Sirainen
2010-Oct-06 17:12 UTC
[Dovecot] dovecot-2.0-pigeonhole-0.2.1 installation in wrong lib dir?
On Wed, 2010-10-06 at 17:47 +0200, Wolfgang.Friebel at desy.de wrote:> The libs needed for several executables in libexec such as > /usr/libexec/dovecot/managesieve-login are not installed in /usr/lib64 but > in /usr/lib64/dovecot. 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?
Wolfgang.Friebel at desy.de
2010-Oct-06 19:49 UTC
[Dovecot] dovecot-2.0-pigeonhole-0.2.1 installation in wrong lib dir?
> On Wed, 2010-10-06 at 17:47 +0200, Wolfgang.Friebel at 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