Thread: LDAP on AIX build farm animals

LDAP on AIX build farm animals

From
Thomas Munro
Date:
Hello,

On several AIX BF animals such as tern, I see evidence that it might
be using IBM LDAP:

checking for ldap_initialize... no

And yet the configure options apparently intended to use OpenLDAP:

configure: using CPPFLAGS=
-I/home/nm/sw/nopath/libxml2-32/include/libxml2
-I/home/nm/sw/nopath/uuid-32/include
-I/home/nm/sw/nopath/openldap-32/include
-I/home/nm/sw/nopath/icu58.2-32/include
-I/home/nm/sw/nopath/libxml2-32/include
configure: using LDFLAGS= -L/home/nm/sw/nopath/libxml2-32/lib
-L/home/nm/sw/nopath/uuid-32/lib -L/home/nm/sw/nopath/openldap-32/lib
-L/home/nm/sw/nopath/icu58.2-32/lib
-L/home/nm/sw/nopath/libxml2-32/lib

Another explanation is that it is actually using OpenLDAP, but it's a
version so ancient that it doesn't have OpenLDAP's non-standard
ldap_initialize() function (that'd put it in the 20th century,
pre-2.0).

Personally I think it's valuable to have the IBM LDAP client library
tested in the build farm, since we already have the OpenLDAP,
Microsoft and Apple libraries covered.  I wonder if that is the
complete set of surviving libldap implementations.

Would it be useful for the buildfarm to dump ldd (or equivalent)
output for the binaries it's running so that we can see which
libraries it finished up linking?

-- 
Thomas Munro
https://enterprisedb.com


Re: LDAP on AIX build farm animals

From
Tom Lane
Date:
Thomas Munro <thomas.munro@gmail.com> writes:
> On several AIX BF animals such as tern, I see evidence that it might
> be using IBM LDAP:
> checking for ldap_initialize... no

Interesting.

> Would it be useful for the buildfarm to dump ldd (or equivalent)
> output for the binaries it's running so that we can see which
> libraries it finished up linking?

+1 for displaying the LDAP library type/version in some form, but

(a) ldd is pretty platform-specific;
(b) you will likely get something like "/usr/lib64/libldap.so"
which isn't too definite about what we're using.

Is there some other way to fingerprint the LDAP implementation?

            regards, tom lane


Re: LDAP on AIX build farm animals

From
Noah Misch
Date:
On Thu, Mar 21, 2019 at 12:21:58PM +1300, Thomas Munro wrote:
> On several AIX BF animals such as tern, I see evidence that it might
> be using IBM LDAP:
> 
> checking for ldap_initialize... no

> Another explanation is that it is actually using OpenLDAP, but it's a
> version so ancient that it doesn't have OpenLDAP's non-standard
> ldap_initialize() function (that'd put it in the 20th century,
> pre-2.0).

It's openldap-2.4.45.  The conclusion that ldap_initialize() is absent stems
from a bug in "configure".  This system has LDAP_LIBS_BE='-lldap -llber' due
to EXTRA_LDAP_LIBS=-llber, but the ldap_initialize() test is done without
-llber.  Relevant config.log:

https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=mandrill&dt=2019-03-20%2021%3A47%3A35&stg=config

On Wed, Mar 20, 2019 at 11:35:39PM -0400, Tom Lane wrote:
> Thomas Munro <thomas.munro@gmail.com> writes:
> > Would it be useful for the buildfarm to dump ldd (or equivalent)
> > output for the binaries it's running so that we can see which
> > libraries it finished up linking?
> 
> +1 for displaying the LDAP library type/version in some form, but
> 
> (a) ldd is pretty platform-specific;
> (b) you will likely get something like "/usr/lib64/libldap.so"
> which isn't too definite about what we're using.
> 
> Is there some other way to fingerprint the LDAP implementation?

I would use ldap_get_option(LDAP_OPT_API_INFO), which gives you a vendor name
string and a version number, among other information.