Greeting everyone-

I'm running into an issue that quite frankly, I'm surprised I haven't
hit before.

I'll try and explain what is happening.  I'm installing openldap
2.3.27-r3.  In openldap there are two libraries libldap and libldap_r
that dynamically link with another library liblber (also included in
openldap).

On a redhat and suse system that I'm building on the system also has a
liblber.  And both libldap and libldap_r are linking to it even though
the rpath linking states to look in ${prefix}/usr/lib.

Interestingly when I go into the portage work directory, running ldd
on the libldap there shows that it is linking to the correct version
of liblber.  But when it gets installed into ${D} the libldap no
longer links correctly (now linking against the system liblber).

I belive this is happening because the following command is issued
during the install sequence::
    PATH="$PATH:/sbin" ldconfig -n
/opt/prefix/var/tmp/portage/openldap-2.3.27-r3/image//opt/prefix/usr/lib

At this point the rpath suggestion points to /opt/prefix/usr/lib and
not ${D}/opt/prefix/usr/lib (which is where the correct liblber is at
this point), hence it falls back to the system library.

So anyone have any ideas on how to fix this?  One option is emerging
openldap twice, since the second time you install liblber will be
installed where the rpath linking points.  A hack (that works for
redhat but not suse) is to use sed to update the references to liblber
in libldap and libldap_r.

Ideas, suggestions????

-matt
--
[EMAIL PROTECTED] mailing list

Reply via email to