[Evolution] ximian-connector 2.0.4 x86_64 cannot --with-static-ldap ?!?

Sackinger, Philip A pasacki@sandia.gov
Wed, 2 Mar 2005 07:59:07 -0700


This is a multi-part message in MIME format.

------_=_NextPart_001_01C51F38.620C53F6
Content-Type: text/plain;
 charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

First, here's what happens when I try to configure with static ldap like =
this
/configure --prefix=3D/usr/local/evolution-2.0.4 =
--with-krb5=3D/usr/local/krb5-1.4 =
--with-openldap=3D/usr/local/openldap-2.2.23+ntlm =
--with-static-ldap=3Dyes --with-e2k-debug=20
 .
 .
 .
checking for OpenLDAP... /usr/local/openldap-2.2.23+ntlm
checking if OpenLDAP is version 2.x... yes
checking for res_query in -lresolv... no
checking for bind in -lsocket... no
checking for gethostbyaddr in -lnsl... yes
checking for ber_get_tag in -llber... yes
checking for ldap_open in -lldap... no
checking for ldap_ntlm_bind... no
checking for Kerberos 5... -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5
checking gtk-doc version >=3D 1.0... yes
configure: creating ./config.status

So configure doesn't seem to find the static library for the =
NTLM-patched=20
OpenLDAP, which AFAICT, seems to be a fine library, viz.

$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap.a |grep ntlm
ntlm.o:
0000000000000000 T ldap_ntlm_bind
00000000000001f0 T ldap_parse_ntlm_bind_result

and the configure failure seems to be related to the following snippet, =
taken deep from within config.log:

configure:23767: checking for ldap_ntlm_bind
configure:23824: gcc -o conftest -g -O2 -Wall -Wmissing-prototypes =
-Wnested-externs -Wpointer-arith -Wno-sign-compare  -Wno-sign-compare =
-I/usr/local/openldap-2.2.23+ntlm/include   conftest.c  =
-L/usr/local/openldap-2.2.23+ntlm/lib  >&5
/tmp/ccMs2dsV.o(.text+0x9): In function `main':
/usr/netpub/evolution-2.0.4-x86_64/ximian-connector-2.0.4/conftest.c:85: =
undefined reference to `ldap_ntlm_bind'
/tmp/ccMs2dsV.o(.data+0x0): undefined reference to `ldap_ntlm_bind'
collect2: ld returned 1 exit status
 .
 .

So that's how the static build isn't working.


The second problem, where the dynamic build succeeds, but the binary =
doesn't grab the right=20
dynamic openldap library, is probably something that you've seen a lot. =
Typically, when I compose a message to be sent via Exchange, it triggers =
 ximian-exchange-storage to die with

GC: Connecting to ldap://dc11snlnt:3268/
./evolution-exchange-storage: symbol lookup error: =
./evolution-exchange-storage
: undefined symbol: ldap_ntlm_bind

and not surprisingly, either, because
$ ldd evolution-exchange-storage | grep ldap
        libldap-2.2.so.7 =3D> /usr/lib64/libldap-2.2.so.7 =
(0x0000003ef1200000)

is pointing to one of my system libraries instead of, say,
/usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16

which apparently has the right ingredient,
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16 | grep =
ldap
0000000000013b30 T ldap_ntlm_bind
0000000000013d50 T ldap_parse_ntlm_bind_result

I've tried to do the configure with more drastic tactics, such as
LDFLAGS=3D"-L/usrlocal/openldap-2.2.23+ntlm/lib" ./configure ...
but to no avail.

I've tried setting LD_LIBRARY_PATH before running =
evolution-exchange-storage, too,
but, again, with no change in behavior.

Perhaps SELinux that comes with FC 3 has iron-fisted policies on loading =
of shared dynamic libraries
particularly involving authentication of which I'm not aware?=20

Thanks for any help or suggestions!

-Phil S.


-----Original Message-----
From: evolution-admin@lists.ximian.com on behalf of Sushma Rai
Sent: Tue 3/1/2005 11:22 PM
To: evolution@lists.ximian.com; Sackinger, Philip A
Subject: Re: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?
=20
What is the exact error you are getting with static
linking?

-Sushma.

>>> "Sackinger, Philip A" <pasacki@sandia.gov> 03/01/05 22:13 PM >>>

I've been trying to build and run ximian connector 2.0.4 under Fedora =
Core 3 on x86_64.

In order to get the evolution-exchange-storage to work with my local =
Exchanger server, I've built=20
OpenLDAP 2.2.23 with the ntlm patch applied.

However, if I try to configure --with-static-ldap, the configure fails =
to compile/link with my
special library. It also seems to fail to find res_query in -lresolv, =
too, FWIW.

Conversely, the configure against the dynamic shared library for patched =
OpenLDAP succeeds. I can then do a make and a make install.

But then, when I actually run E2K_DEBUG=3D4 evolution-exchange-storage =
before firing up evolution 2.0.4, it will
die with a symbol lookup failure that indicates that it is getting the =
dynamic library from a system location in
/usr/lib64 or /lib64 that doesn't have our extra friend =
ldap_ntlm_bind().

So, it's a rock or a hard place.

I saw this old patch for x86_64, but for connector 1.4.7 -- should I try =
to adapt it to 2.0.4?
http://lists.ximian.com/archives/public/evolution-patches/2004-September/=
007474.html

Or, is there a way to coerce my backend storage to use the right dynamic =
shared library?=20

I'm almost ready to forcefully rename the ldap libraries in the system =
directories, but would rather not do something so drastic if it could be =
avoided.

Thanks for any help.


_______________________________________________
evolution maillist  -  evolution@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/evolution



------_=_NextPart_001_01C51F38.620C53F6
Content-Type: text/html;
 charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7226.0">
<TITLE>RE: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>First, here's what happens when I try to configure =
with static ldap like this<BR>
/configure --prefix=3D/usr/local/evolution-2.0.4 =
--with-krb5=3D/usr/local/krb5-1.4 =
--with-openldap=3D/usr/local/openldap-2.2.23+ntlm =
--with-static-ldap=3Dyes --with-e2k-debug<BR>
&nbsp;.<BR>
&nbsp;.<BR>
&nbsp;.<BR>
checking for OpenLDAP... /usr/local/openldap-2.2.23+ntlm<BR>
checking if OpenLDAP is version 2.x... yes<BR>
checking for res_query in -lresolv... no<BR>
checking for bind in -lsocket... no<BR>
checking for gethostbyaddr in -lnsl... yes<BR>
checking for ber_get_tag in -llber... yes<BR>
checking for ldap_open in -lldap... no<BR>
checking for ldap_ntlm_bind... no<BR>
checking for Kerberos 5... -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5<BR>
checking gtk-doc version &gt;=3D 1.0... yes<BR>
configure: creating ./config.status<BR>
<BR>
So configure doesn't seem to find the static library for the =
NTLM-patched<BR>
OpenLDAP, which AFAICT, seems to be a fine library, viz.<BR>
<BR>
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap.a |grep ntlm<BR>
ntlm.o:<BR>
0000000000000000 T ldap_ntlm_bind<BR>
00000000000001f0 T ldap_parse_ntlm_bind_result<BR>
<BR>
and the configure failure seems to be related to the following snippet, =
taken deep from within config.log:<BR>
<BR>
configure:23767: checking for ldap_ntlm_bind<BR>
configure:23824: gcc -o conftest -g -O2 -Wall -Wmissing-prototypes =
-Wnested-externs -Wpointer-arith -Wno-sign-compare&nbsp; =
-Wno-sign-compare -I/usr/local/openldap-2.2.23+ntlm/include&nbsp;&nbsp; =
conftest.c&nbsp; -L/usr/local/openldap-2.2.23+ntlm/lib&nbsp; =
&gt;&amp;5<BR>
/tmp/ccMs2dsV.o(.text+0x9): In function `main':<BR>
/usr/netpub/evolution-2.0.4-x86_64/ximian-connector-2.0.4/conftest.c:85: =
undefined reference to `ldap_ntlm_bind'<BR>
/tmp/ccMs2dsV.o(.data+0x0): undefined reference to `ldap_ntlm_bind'<BR>
collect2: ld returned 1 exit status<BR>
&nbsp;.<BR>
&nbsp;.<BR>
<BR>
So that's how the static build isn't working.<BR>
<BR>
<BR>
The second problem, where the dynamic build succeeds, but the binary =
doesn't grab the right<BR>
dynamic openldap library, is probably something that you've seen a lot. =
Typically, when I compose a message to be sent via Exchange, it =
triggers&nbsp; ximian-exchange-storage to die with<BR>
<BR>
GC: Connecting to ldap://dc11snlnt:3268/<BR>
./evolution-exchange-storage: symbol lookup error: =
./evolution-exchange-storage<BR>
: undefined symbol: ldap_ntlm_bind<BR>
<BR>
and not surprisingly, either, because<BR>
$ ldd evolution-exchange-storage | grep ldap<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; libldap-2.2.so.7 =3D&gt; =
/usr/lib64/libldap-2.2.so.7 (0x0000003ef1200000)<BR>
<BR>
is pointing to one of my system libraries instead of, say,<BR>
/usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16<BR>
<BR>
which apparently has the right ingredient,<BR>
$ nm /usr/local/openldap-2.2.23+ntlm/lib/libldap-2.2.so.7.0.16 | grep =
ldap<BR>
0000000000013b30 T ldap_ntlm_bind<BR>
0000000000013d50 T ldap_parse_ntlm_bind_result<BR>
<BR>
I've tried to do the configure with more drastic tactics, such as<BR>
LDFLAGS=3D&quot;-L/usrlocal/openldap-2.2.23+ntlm/lib&quot; ./configure =
...<BR>
but to no avail.<BR>
<BR>
I've tried setting LD_LIBRARY_PATH before running =
evolution-exchange-storage, too,<BR>
but, again, with no change in behavior.<BR>
<BR>
Perhaps SELinux that comes with FC 3 has iron-fisted policies on loading =
of shared dynamic libraries<BR>
particularly involving authentication of which I'm not aware?<BR>
<BR>
Thanks for any help or suggestions!<BR>
<BR>
-Phil S.<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: evolution-admin@lists.ximian.com on behalf of Sushma Rai<BR>
Sent: Tue 3/1/2005 11:22 PM<BR>
To: evolution@lists.ximian.com; Sackinger, Philip A<BR>
Subject: Re: [Evolution] ximian-connector 2.0.4 x86_64 cannot =
--with-static-ldap ?!?<BR>
<BR>
What is the exact error you are getting with static<BR>
linking?<BR>
<BR>
-Sushma.<BR>
<BR>
&gt;&gt;&gt; &quot;Sackinger, Philip A&quot; &lt;pasacki@sandia.gov&gt; =
03/01/05 22:13 PM &gt;&gt;&gt;<BR>
<BR>
I've been trying to build and run ximian connector 2.0.4 under Fedora =
Core 3 on x86_64.<BR>
<BR>
In order to get the evolution-exchange-storage to work with my local =
Exchanger server, I've built<BR>
OpenLDAP 2.2.23 with the ntlm patch applied.<BR>
<BR>
However, if I try to configure --with-static-ldap, the configure fails =
to compile/link with my<BR>
special library. It also seems to fail to find res_query in -lresolv, =
too, FWIW.<BR>
<BR>
Conversely, the configure against the dynamic shared library for patched =
OpenLDAP succeeds. I can then do a make and a make install.<BR>
<BR>
But then, when I actually run E2K_DEBUG=3D4 evolution-exchange-storage =
before firing up evolution 2.0.4, it will<BR>
die with a symbol lookup failure that indicates that it is getting the =
dynamic library from a system location in<BR>
/usr/lib64 or /lib64 that doesn't have our extra friend =
ldap_ntlm_bind().<BR>
<BR>
So, it's a rock or a hard place.<BR>
<BR>
I saw this old patch for x86_64, but for connector 1.4.7 -- should I try =
to adapt it to 2.0.4?<BR>
<A =
HREF=3D"http://lists.ximian.com/archives/public/evolution-patches/2004-Se=
ptember/007474.html">http://lists.ximian.com/archives/public/evolution-pa=
tches/2004-September/007474.html</A><BR>
<BR>
Or, is there a way to coerce my backend storage to use the right dynamic =
shared library?<BR>
<BR>
I'm almost ready to forcefully rename the ldap libraries in the system =
directories, but would rather not do something so drastic if it could be =
avoided.<BR>
<BR>
Thanks for any help.<BR>
<BR>
<BR>
_______________________________________________<BR>
evolution maillist&nbsp; -&nbsp; evolution@lists.ximian.com<BR>
<A =
HREF=3D"http://lists.ximian.com/mailman/listinfo/evolution">http://lists.=
ximian.com/mailman/listinfo/evolution</A><BR>
<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01C51F38.620C53F6--