1

I am currently trying to create a custom 64bit LAMPP stack on CentOS 7, in which each component should reside in its own folder, with every dependency included and in its own folder.

Currently, I have the following structure with correctly compiled programs:

- /opt/lampp64 - apr - bzip2 - cyrus-sasl - gdbm - libtool - ncurses - openldap - openssl - pcre - perl - readline - zlib 

each software is fully contained in its folder, which has:

  • a single directory for each version
  • a simlink to the "current" version

I have downloaded apr-util sources at latest version and I am trying to compile them, however the command:

./configure --prefix=/opt/lampp64/apr-util/X.Y.Z --with-openssl=/opt/lampp64/openssl/current --with-openldap=/opt/lampp64/openldap/current 

Fail saying that it cannot find openldap, if I disable it all goes fine.

I know this is not a standard directory layout, it is just an experiment, however other programs with dependencies have already been correctly compiled.

Do I need to add any additional option to configure to make it "see" the LDAP libraries?

This is the whole command and output:

./configure --prefix=/opt/lampp64/apr-util/1.5.4 --with-apr=/opt/lampp64/apr/current --with-gdbm=/opt/lampp64/gdbm/current --with-openssl=/opt/lampp64/openssl/current --with-crypto --with-ldap=openldap --with-ldap-lib=/opt/lampp64/openldap/current/lib --with-ldap-include=/opt/lampp64/openldap/current/include checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking for working mkdir -p... yes APR-util Version: 1.5.4 checking for chosen layout... apr-util checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed Applying apr-util hints file rules for x86_64-unknown-linux-gnu checking for APR... yes setting CPP to "gcc -E" adding "-pthread" to CFLAGS adding "-DLINUX" to CPPFLAGS adding "-D_REENTRANT" to CPPFLAGS adding "-D_GNU_SOURCE" to CPPFLAGS checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes configure: checking for openssl in /opt/lampp64/openssl/current checking openssl/x509.h usability... yes checking openssl/x509.h presence... yes checking for openssl/x509.h... yes checking for BN_init in -lcrypto... yes checking for SSL_accept in -lssl... yes setting APRUTIL_LDFLAGS to "-L/opt/lampp64/openssl/current/lib" setting APRUTIL_INCLUDES to "-I/opt/lampp64/openssl/current/include" checking whether EVP_PKEY_CTX_new is declared... yes setting LDADD_crypto_openssl to "-L/opt/lampp64/openssl/current/lib -lssl -lcrypto" checking for const input buffers in OpenSSL... yes checking for ldap support... adding "-I/opt/lampp64/openldap/current/include" to APRUTIL_INCLUDES adding "-L/opt/lampp64/openldap/current/lib" to APRUTIL_LDFLAGS checking for ldap_init in -lopenldap... no checking for ldap_init in -lopenldap... no checking for ldap_init in -lopenldap... no checking for ldap_init in -lopenldap... no configure: error: could not find an LDAP library 
1
  • I know this is not a standard directory structure, but it's an experimenti, and I like to try nonetheless and understand what I'm doing wrong. Commented May 12, 2016 at 9:12

2 Answers 2

2

In the line:

checking for ldap_init in -lopenldap... no 

it is trying to link against a library called openldap, but when I look in my openldap lib dir I don't see a libopenldap.so:

liblber.so libldap.so libldap_r.so 

It looks like value in -lopenldap is coming from the --with-ldap=openldap option, so if I change that to --with-ldap=ldap it seems to work.

I didn't try with all your options though, so I don't know if everything else works :)

1
  • It does! Thanks... The ./configure --help lacks clarity. An apache bug has been filed 7 years ago with this confusion, trying to find workarounds. While --with-lber takes an openldap library path, --with-ldap only takes ldap. The build install doc and list of config options should mention that. Commented Aug 29, 2022 at 8:29
1

I just had a similar issue on RHEL7. I was compiling apr-util against a custom compiled openssl. It turns out also the openssl-devel package was installed, always failing the ./configure step on apr-util.

So for me the trick was to yum remove openssl-devel and recompile the entire stack (openssl, openldap, apr and apr-util)

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.