Thread: LDAP on AIX build farm animals
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
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
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.