Re: [Dovecot] dovecot-2.0-pigeonhole-0.2.1 installation in wrong lib dir?
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
On 6.10.2010, at 20.49, Wolfgang.Friebel@desy.de wrote:
Could it be that the missing -R is related to --disable-static and --disable-rpath options to configure
Yeah, --disable-rpath does exactly that. I didn't know such option even existed.
On Wed, 6 Oct 2010, Timo Sirainen wrote:
On 6.10.2010, at 20.49, Wolfgang.Friebel@desy.de wrote:
Could it be that the missing -R is related to --disable-static and --disable-rpath options to configure
Yeah, --disable-rpath does exactly that. I didn't know such option even existed.
Thanks a lot, Timo, I'll then go adjusting the configure options in my spec files.
-- Wolfgang Friebel
On Wed, 2010-10-06 at 21:49 +0200, Wolfgang.Friebel@desy.de wrote:
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.
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.
Sorry for picking this up three weeks later, I didn't notice the issue from the subject.
--disable-rpath is supposed to remove rpath calls. But in dovecot's build --disable-rpath seems to not have any effect, there are still -rpath /usr/lib64/dovecot args in the build log (which are needed).
Looking at it a bit deeper --disable-rpath seems to only apply if you use the macros from lib-link.m4 (as shipped with gettext for example), so it looks like it's a no-ops for dovecot.
Still managesieve-login manages to be built w/o rpath. But this is in another specfile altogether, which doesn't even use --disable-rpath. So the issue is somewhere else. I'll do some more testing and report back.
Best regards to all people in Zeuthen that can still remember me. :)
On Wed, 27 Oct 2010, Axel Thimm wrote:
Still managesieve-login manages to be built w/o rpath. But this is in another specfile altogether, which doesn't even use --disable-rpath. So the issue is somewhere else. I'll do some more testing and report back.
Best regards to all people in Zeuthen that can still remember me. :)
Hi Axel,
sorry, erst lesen dann posten, meine Mail ist doch nicht verloren gegangen... Ich werde die Grüße ausrichten
Viele Grüße aus Zeuthen
Wolfgang Friebel Deutsches Elektronen-Synchrotron DESY Phone/Fax: +49 33762 77372/216 Platanenallee 6 Mail: Wolfgang.Friebel AT desy.de D-15738 Zeuthen Germany
Hi,
On Thu, 2010-10-28 at 09:28 +0200, Wolfgang.Friebel@desy.de wrote:
On Wed, 27 Oct 2010, Axel Thimm wrote:
Still managesieve-login manages to be built w/o rpath. But this is in another specfile altogether, which doesn't even use --disable-rpath. So the issue is somewhere else. I'll do some more testing and report back.
Best regards to all people in Zeuthen that can still remember me. :)
Hi Axel,
sorry, erst lesen dann posten, meine Mail ist doch nicht verloren gegangen... Ich werde die Grüße ausrichten
Viele Grüße aus Zeuthen
thanks :)
I found the bug, it is removing the *.la files from dovecot which messes up with dovecot-pigeonhole. There are now new rpms at ATrpms that don't remove the *.la files, so dovecot-pigeonhole's libtool knows where dovecto libs live and can intelligently apply proper -rpath arguments.
If you ask why the libtool libs have been removed in the first place, then the short answer is "conformity to upstream packaging".
The long answer is that some ages ago there was heated discussion at Fedora about using or not *.la libs for library dependency or using pkgconfig, *-config files and the like. Unfortunately autotools took a blow and the package guidelines forbid the use of libtool libs. This was inherited by RHEL and package lint tools etc., so we all started to conform.
E.g. in a Fedora/RHEL world one would probably start patching -rpath arguments into dovecot-config, which would be non-portable, thus a patch that cannot be applied upstream, and which has to be carried into the package. Anyway lifing the strict *.la removal is easier and technically the sane thing to do.
(FWIW I've been a pro-libtool proponent)
Anyway, please check out the latest packages, you can test the binaries directly (which would give me also a great feedback, not many people are using managesieve and thus there were no bug reports other than yours :), or you can review the source rpm and rpmbuild --rebuild them.
participants (3)
-
Axel Thimm
-
Timo Sirainen
-
Wolfgang.Friebel@desy.de