You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by "Whitney, David M. (GSFC-583.0)[EMERGENT SPACE TECH., INC]" <da...@nasa.gov.INVALID> on 2021/09/13 10:29:26 UTC

Issue building Qpid Proton 0.35 using source code package

Hello,

I am attempting to build Qpid Proton 0.35 using the source code package, using OpenSSL 1.1.1l and CyrusSASL 2.1.27. My goal is to repeat this exercise on RHEL 7, RHEL 8, Ubuntu 18.04 and finally Ubuntu 20.04. All I really care about is yielding (i.e. installing) the header files and the C++ Qpid Proton libraries (and the C libraries if necessary).

I have attempted this so far (on RHEL 8):

$ [built OpenSSL and CyrusSASL]

$ tar xzf qpid-proton-0.35.0.tar.gz

$ cd qpid-proton-0.35.0 && make build && cd build

$ cmake .. -DCMAKE_INSTALL_PREFIX=$AMQP_PREFIX -DBUILD_PYTHON=OFF -DBUILD_RUBY=OFF -DOPENSSL_ROOT_DIR=$AMQP_PREFIX/ssl -DOPENSSL_CRYPTO_LIBRARY=$AMQP_PREFIX/ssl/lib/libcrypto.so -DOPENSSL_SSL_LIBRARY=$AMQP_PREFIX/ssl/lib/libssl.so -DOPENSSL_INCLUDE_DIR=$AMQP_PREFIX/ssl/include -DCyrusSASL_INCLUDE_DIR=$AMQP_PREFIX/sasl/include -DCyrusSASL_LIBRARY=$AMQP_PREFIX/sasl/lib/libsasl2.so -DBUILD_TESTING=OFF -DENABLE_FUZZ_TESTING=OFF -DBUILD_EXAMPLES=OFF
-- The C compiler identification is GNU 8.4.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found OpenSSL: /home/myname/qpid-proton/amqp-1.0/ssl/lib/libcrypto.so (found version "1.1.1l")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found SWIG: /usr/bin/swig (found version "3.0.12")
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
-- Found CyrusSASL: /home/myname/qpid-proton/amqp-1.0/sasl/lib/libsasl2.so (found version "2.1.27")
-- Found Python: /usr/bin/python3.8 (found suitable version "3.8.6", minimum required is "3.6") found components: Interpreter Development Development.Module Development.Embed
-- Runtime memory checker: valgrind memcheck
-- Looking for a CXX compiler
-- Looking for a CXX compiler - /usr/bin/c++
-- The CXX compiler identification is GNU 8.4.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type is "RelWithDebInfo" (has debug symbols)
-- PN_VERSION: 0.35.0 ()
-- Looking for clock_gettime
-- Looking for clock_gettime - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for epoll_wait
-- Looking for epoll_wait - found
-- Building the epoll proactor
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.14") found components: doxygen dot
-- Found Ruby: /usr/bin/ruby (found suitable version "2.5.9", minimum required is "1.8.0")
-- Could NOT find JsonCpp (missing: JsonCpp_LIBRARY JsonCpp_INCLUDE_DIR)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/myname/qpid-proton/build/qpid-proton-0.35.0/build

$ make qpid-proton-cpp     # For purpose of this email, I repeated this twice to yield the compressed output shown below
[  6%] Built target qpid-proton-proactor-objects
[  8%] Built target generated_c_files
[ 41%] Built target qpid-proton-core-objects
[ 41%] Built target qpid-proton-core
[ 42%] Built target qpid-proton-proactor
[100%] Built target qpid-proton-cpp

$ make install    # For purpose of this email, I repeated this twice to yield the compressed output shown below
[  5%] Built target qpid-proton-proactor-objects
[  6%] Built target generated_c_files
[ 31%] Built target qpid-proton-core-objects
[ 33%] Built target qpid-proton-platform-io-objects
[ 46%] Built target qpid-proton
[ 46%] Built target qpid-proton-core
[ 47%] Built target qpid-proton-proactor
[ 48%] Linking C executable msgr-send
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[2]: *** [c/tools/CMakeFiles/msgr-send.dir/build.make:119: c/tools/msgr-send] Error 1
make[1]: *** [CMakeFiles/Makefile2:488: c/tools/CMakeFiles/msgr-send.dir/all] Error 2
make: *** [Makefile:149: all] Error 2


So, did I not configure Qpid Proton correctly using CMake? Why is the 'install' target insisting on building additional products I do not want?

David M. Whitney
Principal Software Systems Engineer
Emergent Space Technologies
NASA GSFC, Bldg. 23, Room N305-B
Greenbelt, MD 20771
Tel: 301-286-3176


RE: Issue building Qpid Proton 0.35 using source code package

Posted by "Whitney, David M. (GSFC-583.0)[EMERGENT SPACE TECH., INC]" <da...@nasa.gov.INVALID>.
Hello, sorry for the earlier query. The issue has been resolved. When I had built Cyrus-SASL, I neglected to configure it using --with-openssl.

Once I fixed that issue, I was able to build Qpid Proton.

David M. Whitney
Principal Software Systems Engineer
Emergent Space Technologies
NASA GSFC, Bldg. 23, Room N305-B
Greenbelt, MD 20771
Tel: 301-286-3176

From: Whitney, David M. (GSFC-583.0)[EMERGENT SPACE TECH., INC]
Sent: Monday, September 13, 2021 6:29 AM
To: users@qpid.apache.org
Subject: Issue building Qpid Proton 0.35 using source code package

Hello,

I am attempting to build Qpid Proton 0.35 using the source code package, using OpenSSL 1.1.1l and CyrusSASL 2.1.27. My goal is to repeat this exercise on RHEL 7, RHEL 8, Ubuntu 18.04 and finally Ubuntu 20.04. All I really care about is yielding (i.e. installing) the header files and the C++ Qpid Proton libraries (and the C libraries if necessary).

I have attempted this so far (on RHEL 8):

$ [built OpenSSL and CyrusSASL]

$ tar xzf qpid-proton-0.35.0.tar.gz

$ cd qpid-proton-0.35.0 && make build && cd build

$ cmake .. -DCMAKE_INSTALL_PREFIX=$AMQP_PREFIX -DBUILD_PYTHON=OFF -DBUILD_RUBY=OFF -DOPENSSL_ROOT_DIR=$AMQP_PREFIX/ssl -DOPENSSL_CRYPTO_LIBRARY=$AMQP_PREFIX/ssl/lib/libcrypto.so -DOPENSSL_SSL_LIBRARY=$AMQP_PREFIX/ssl/lib/libssl.so -DOPENSSL_INCLUDE_DIR=$AMQP_PREFIX/ssl/include -DCyrusSASL_INCLUDE_DIR=$AMQP_PREFIX/sasl/include -DCyrusSASL_LIBRARY=$AMQP_PREFIX/sasl/lib/libsasl2.so -DBUILD_TESTING=OFF -DENABLE_FUZZ_TESTING=OFF -DBUILD_EXAMPLES=OFF
-- The C compiler identification is GNU 8.4.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found OpenSSL: /home/myname/qpid-proton/amqp-1.0/ssl/lib/libcrypto.so (found version "1.1.1l")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found SWIG: /usr/bin/swig (found version "3.0.12")
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
-- Found CyrusSASL: /home/myname/qpid-proton/amqp-1.0/sasl/lib/libsasl2.so (found version "2.1.27")
-- Found Python: /usr/bin/python3.8 (found suitable version "3.8.6", minimum required is "3.6") found components: Interpreter Development Development.Module Development.Embed
-- Runtime memory checker: valgrind memcheck
-- Looking for a CXX compiler
-- Looking for a CXX compiler - /usr/bin/c++
-- The CXX compiler identification is GNU 8.4.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type is "RelWithDebInfo" (has debug symbols)
-- PN_VERSION: 0.35.0 ()
-- Looking for clock_gettime
-- Looking for clock_gettime - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for epoll_wait
-- Looking for epoll_wait - found
-- Building the epoll proactor
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.14") found components: doxygen dot
-- Found Ruby: /usr/bin/ruby (found suitable version "2.5.9", minimum required is "1.8.0")
-- Could NOT find JsonCpp (missing: JsonCpp_LIBRARY JsonCpp_INCLUDE_DIR)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/myname/qpid-proton/build/qpid-proton-0.35.0/build

$ make qpid-proton-cpp     # For purpose of this email, I repeated this twice to yield the compressed output shown below
[  6%] Built target qpid-proton-proactor-objects
[  8%] Built target generated_c_files
[ 41%] Built target qpid-proton-core-objects
[ 41%] Built target qpid-proton-core
[ 42%] Built target qpid-proton-proactor
[100%] Built target qpid-proton-cpp

$ make install    # For purpose of this email, I repeated this twice to yield the compressed output shown below
[  5%] Built target qpid-proton-proactor-objects
[  6%] Built target generated_c_files
[ 31%] Built target qpid-proton-core-objects
[ 33%] Built target qpid-proton-platform-io-objects
[ 46%] Built target qpid-proton
[ 46%] Built target qpid-proton-core
[ 47%] Built target qpid-proton-proactor
[ 48%] Linking C executable msgr-send
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
//usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[2]: *** [c/tools/CMakeFiles/msgr-send.dir/build.make:119: c/tools/msgr-send] Error 1
make[1]: *** [CMakeFiles/Makefile2:488: c/tools/CMakeFiles/msgr-send.dir/all] Error 2
make: *** [Makefile:149: all] Error 2


So, did I not configure Qpid Proton correctly using CMake? Why is the 'install' target insisting on building additional products I do not want?

David M. Whitney
Principal Software Systems Engineer
Emergent Space Technologies
NASA GSFC, Bldg. 23, Room N305-B
Greenbelt, MD 20771
Tel: 301-286-3176


Re: Issue building Qpid Proton 0.35 using source code package

Posted by Jiri Daněk <jd...@redhat.com>.
I had a similar-looking problem, and in my case it was caused by the fact
that my Cyrus SASL was compiled with a different version of OpenSSL than
was the version I tried to use when later compiling Qpid Proton.

You can try running `ldd` against the Cyrus SASL .so files to see what
OpenSsl they want. If this mismatch is the problem, then recompiling and
reinstalling Cyrus SASL should help.