[Dovecot] Pigeonhole: error while loading shared libraries
Hi,
I built pigeonhole from the hg repo for Dovecot 2.0. Local sieve scripts work fine. But as soon as I try to connect via managesieve I get this errror:
managesieve-login: Error: dovecot/managesieve-login: error while loading shared libraries: libdovecot-login.so.0: cannot open shared object file: No such file or directory
My dovecot install is in /usr/lib/dovecot and I had to symlink the libs in the dovecot folder to /usr/lib to make managesieve work.
My configure options were: "--prefix=/usr --with-dovecot=/usr/lib/dovecot"
Sebastian
-- The best thing about a boolean is even if you are wrong, you are only off by a bit.
On Wed, 2010-08-18 at 12:09 +0200, Sebastian Köhler wrote:
managesieve-login: Error: dovecot/managesieve-login: error while loading shared libraries: libdovecot-login.so.0: cannot open shared object file: No such file or directory
Does "ldd /usr/libexec/dovecot/managesieve-login" show that it finds libdovecot-login.so.0?
What OS is this?
On Wed, Aug 18, 2010 at 02:02:13PM +0100, Timo Sirainen wrote:
Does "ldd /usr/libexec/dovecot/managesieve-login" show that it finds libdovecot-login.so.0?
Without symlinks in /usr/lib/ ldd looks like this:
ldd /usr/lib/dovecot/managesieve-login linux-gate.so.1 => (0xb77b8000) libdovecot-login.so.0 => not found libdovecot.so.0 => not found libc.so.6 => /lib/libc.so.6 (0xb7662000) /lib/ld-linux.so.2 (0xb77b9000)
For some reason managesieve-login ignores the libs it was compiled against and only looks into /usr/lib for the libs.
What OS is this?
Arch Linux
-- The best thing about a boolean is even if you are wrong, you are only off by a bit.
On Wed, 2010-08-18 at 16:29 +0200, Sebastian Köhler wrote:
For some reason managesieve-login ignores the libs it was compiled against and only looks into /usr/lib for the libs.
What is the linking command for managesieve-login? It should be something like:
libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -o managesieve-login client.o client-authenticate.o managesieve-login-settings.o managesieve-proxy.o ../../src/lib-managesieve/libmanagesieve.a /usr/local/lib/dovecot/libdovecot-login.so -L/usr/local/lib/dovecot /usr/local/lib/dovecot/libdovecot.so -lrt -Wl,-rpath -Wl,/usr/local/lib/dovecot -Wl,-rpath -Wl,/usr/local/lib/dovecot
Where the -Wl,-rpath -Wl,/usr/local/lib/dovecot is the important part. Without that it doesn't remember where it was linked.
What OS is this?
Arch Linux
Dunno, maybe it does something differently or doesn't support -rpath for some reason..
On Wed, Aug 18, 2010 at 04:09:21PM +0100, Timo Sirainen wrote:
On Wed, 2010-08-18 at 16:29 +0200, Sebastian Köhler wrote:
For some reason managesieve-login ignores the libs it was compiled against and only looks into /usr/lib for the libs.
What is the linking command for managesieve-login? It should be something like:
libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -o managesieve-login client.o client-authenticate.o managesieve-login-settings.o managesieve-proxy.o ../../src/lib-managesieve/libmanagesieve.a /usr/local/lib/dovecot/libdovecot-login.so -L/usr/local/lib/dovecot /usr/local/lib/dovecot/libdovecot.so -lrt -Wl,-rpath -Wl,/usr/local/lib/dovecot -Wl,-rpath -Wl,/usr/local/lib/dovecot
libtool: link: gcc -std=gnu99 -march=i686 -mtune=generic -O2 -pipe -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -o managesieve-login client.o client-authenticate.o managesieve-login-settings.o managesieve-proxy.o ../../src/lib-managesieve/libmanagesieve.a -ldovecot-login -L/usr/lib/dovecot -ldovecot -lrt
Where the -Wl,-rpath -Wl,/usr/local/lib/dovecot is the important part.
obviously not there :) But other lines have it e.g.
libtool: link: gcc -std=gnu99 -march=i686 -mtune=generic -O2 -pipe -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -o .libs/sieved sieved.o -Wl,--export-dynamic ../../src/lib-sieve/.libs/libdovecot-sieve.so ../../src/lib-sieve-tool/.libs/libsieve-tool.a ../../src/sieve-tools/debug/.libs/libsieve_ext_debug.a -ldovecot-storage -ldovecot-lda -L/usr/lib/dovecot -ldovecot -lrt -Wl,-rpath -Wl,/usr/lib/dovecot
Sebastian
-- The best thing about a boolean is even if you are wrong, you are only off by a bit.
participants (2)
-
Sebastian Köhler
-
Timo Sirainen