Re: Building RELENG_8_0 confused by openldap.

From: Matthew Seaman <m.seaman_at_infracaninophile.co.uk>
Date: Fri, 27 Nov 2009 00:58:50 +0000
Matthew Seaman wrote:
> Hi,
> 
> I realise that 8.0 is literally just heading out of the door, but I seem to
> have discovered a problem.
> 
> When building the RELENG_8_0 world preparatory to upgrading a RELENG_7_2
> machine with OpenLDAP 2.4.19 installed, the build falls over because Kerberos ipropd picks up the presence of /usr/local/lib/libldap.so ultimately causing linking to fail because of missing OpenSSL symbols:
> 
> ===> kerberos5/libexec/ipropd-master (all)
> cc -O2 -pipe  -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/krb5 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/asn1 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/roken  -I. -I/usr/local/include -DOPENLDAP=1 -DHAVE_CONFIG_H -I/usr/src/kerberos5/libexec/ipropd-master/../../include -std=gnu99 -fstack-protector  -c /usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/kadm5/ipropd_common.c
> cc -O2 -pipe  -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/krb5 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/asn1 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/roken  -I. -I/usr/local/include -DOPENLDAP=1 -DHAVE_CONFIG_H -I/usr/src/kerberos5/libexec/ipropd-master/../../include -std=gnu99 -fstack-protector  -c /usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/kadm5/ipropd_master.c
> cc -O2 -pipe  -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/krb5 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/asn1 -I/usr/src/kerberos5/libexec/ipropd-master/../../../crypto/heimdal/lib/roken  -I. -I/usr/local/include -DOPENLDAP=1 -DHAVE_CONFIG_H -I/usr/src/kerberos5/libexec/ipropd-master/../../include -std=gnu99 -fstack-protector  -L/usr/local/lib -Wl,-rpath,/usr/local/lib -o ipropd-master ipropd_common.o ipropd_master.o -lkadm5srv -lhdb -lkrb5 -lhx509 -lroken /usr/obj/usr/src/kerberos5/libexec/ipropd-master/../../lib/libvers/libvers.a  -lasn1 -lcrypto -lcrypt -lcom_err -lldap -llber
> /usr/obj/usr/src/tmp/usr/bin/ld: warning: libssl.so.5, needed by /usr/local/lib/libldap.so, not found (try using -rpath or -rpath-link)
> /usr/obj/usr/src/tmp/usr/bin/ld: warning: libcrypto.so.5, needed by /usr/local/lib/libldap.so, not found (try using -rpath or -rpath-link)
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_tmp_rsa_callback'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_info_callback'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_free'
> /usr/local/lib/libldap.so: undefined reference to `SSL_shutdown'
> /usr/local/lib/libldap.so: undefined reference to `SSL_load_client_CA_file'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_default_verify_paths'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_session_id_context'
> /usr/local/lib/libldap.so: undefined reference to `SSL_get_error'
> /usr/local/lib/libldap.so: undefined reference to `SSL_read'
> /usr/local/lib/libldap.so: undefined reference to `SSL_new'
> /usr/local/lib/libldap.so: undefined reference to `SSL_add_dir_cert_subjects_to_stack'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_new'
> /usr/local/lib/libldap.so: undefined reference to `SSL_library_init'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_load_verify_locations'
> /usr/local/lib/libldap.so: undefined reference to `SSL_pending'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_verify'
> /usr/local/lib/libldap.so: undefined reference to `SSL_set_bio'
> /usr/local/lib/libldap.so: undefined reference to `SSL_load_error_strings'
> /usr/local/lib/libldap.so: undefined reference to `SSL_get_certificate'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_cipher_list'
> /usr/local/lib/libldap.so: undefined reference to `SSL_accept'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_ctrl'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_get_cert_store'
> /usr/local/lib/libldap.so: undefined reference to `SSL_get_current_cipher'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CIPHER_get_bits'
> /usr/local/lib/libldap.so: undefined reference to `SSLv23_method'
> /usr/local/lib/libldap.so: undefined reference to `SSL_alert_desc_string_long'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_use_PrivateKey_file'
> /usr/local/lib/libldap.so: undefined reference to `SSL_alert_type_string_long'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_tmp_dh_callback'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_use_certificate_file'
> /usr/local/lib/libldap.so: undefined reference to `SSL_state_string_long'
> /usr/local/lib/libldap.so: undefined reference to `SSL_connect'
> /usr/local/lib/libldap.so: undefined reference to `SSL_free'
> /usr/local/lib/libldap.so: undefined reference to `SSL_get_peer_certificate'
> /usr/local/lib/libldap.so: undefined reference to `SSL_get_verify_result'
> /usr/local/lib/libldap.so: undefined reference to `SSL_CTX_set_client_CA_list'
> /usr/local/lib/libldap.so: undefined reference to `SSL_write'
> *** Error code 1
> 
> Stop in /usr/src/kerberos5/libexec/ipropd-master.
> *** Error code 1
> 
> Stop in /usr/src/kerberos5/libexec.
> *** Error code 1
> 
> Stop in /usr/src/kerberos5.
> *** Error code 1
> 
> Stop in /usr/src.
> *** Error code 1
> 
> Stop in /usr/src.
> *** Error code 1
> 
> Stop in /usr/src.
> 

This seems to only affect the compilation of RELENG_8_0 sources in RELENG_7_2.
Worked around by setting WITHOUT_KERBEROS=yes in /etc/src.conf, upgrading the
system through the usual procedure including rebuilding all of the ports, and
then removing /etc/src.conf and rebuilding world,kernel one more time.

Still, ipropd-{master,slave} end up linked against the LDAP shlibs installed
from ports which seems wrong to me, at least not without having to expressly
set make  variables to turn that behaviour on.

% ldd /usr/libexec/ipropd-master 
/usr/libexec/ipropd-master:
        libkadm5srv.so.10 => /usr/lib/libkadm5srv.so.10 (0x80064b000)
        libhdb.so.10 => /usr/lib/libhdb.so.10 (0x80075a000)
        libkrb5.so.10 => /usr/lib/libkrb5.so.10 (0x800876000)
        libhx509.so.10 => /usr/lib/libhx509.so.10 (0x8009e3000)
        libroken.so.10 => /usr/lib/libroken.so.10 (0x800b22000)
        libasn1.so.10 => /usr/lib/libasn1.so.10 (0x800c33000)
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x800db2000)
        libcrypt.so.5 => /lib/libcrypt.so.5 (0x80104b000)
        libcom_err.so.5 => /usr/lib/libcom_err.so.5 (0x801164000)
        libldap-2.4.so.7 => /usr/local/lib/libldap-2.4.so.7 (0x801266000)
        liblber-2.4.so.7 => /usr/local/lib/liblber-2.4.so.7 (0x8013a4000)
        libc.so.7 => /lib/libc.so.7 (0x8014b1000)
        libssl.so.6 => /usr/lib/libssl.so.6 (0x8016e7000)


	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
                                                  Kent, CT11 9PW


Received on Thu Nov 26 2009 - 23:59:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:58 UTC