[Maria-developers] building MariaDB 10/trunk with external SSL generates errors/warnings. Docs are inconsistent. What's the right procedure?
hi, building cd /usr/local/src/mariadb bzr log | head -n 5 ------------------------------------------------------------ revno: 3766 [merge] committer: Alexander Barkov <bar@mariadb.org> branch nick: maria-10.0.ms timestamp: Wed 2013-07-10 18:46:33 +0400 reading ./BUILD/SETUP.sh ... 120 # SSL library to use.--with-ssl will select our bundled yaSSL # implementation of SSL. To use OpenSSL you will need to specify # the location of OpenSSL headers and libs on your system. # Ex --with-ssl=/usr <================================= OK, do this SSL_LIBRARY=--with-ssl ... configuring @ `cmake` cd /usr/local/src/mariadb rm -rf bld mkdir bld cd bld cmake .. \ -DWITH_SSL=/usr/local/ssl \ -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include \ -DOPENSSL_SSL_LIBRARY=/usr/local/ssl/lib64/libssl.so \ -DOPENSSL_CRYPTO_LIBRARY=/usr/local/ssl/lib64/libcrypto.so fails, returning, ... CMake Error at cmake/ssl.cmake:90 (MESSAGE): Wrong option for WITH_SSL. Valid values are : yes, no, bundled Call Stack (most recent call first): CMakeLists.txt:260 (MYSQL_CHECK_SSL) ... -- Configuring incomplete, errors occurred! vi ../CmakeLists.txt ... # Add bundled or system zlib. MYSQL_CHECK_ZLIB_WITH_COMPRESS() # Optionally add bundled yassl/taocrypt or system openssl. 260 MYSQL_CHECK_SSL() # Add readline or libedit. MYSQL_CHECK_READLINE() checking vi cmake/ssl.cmake ... # MYSQL_CHECK_SSL # # Provides the following configure options: # WITH_SSL=[yes|no|bundled] MACRO (MYSQL_CHECK_SSL) IF(NOT WITH_SSL) IF(WIN32) CHANGE_SSL_SETTINGS("bundled") ELSE() CHANGE_SSL_SETTINGS("no") ENDIF() ENDIF() IF(WITH_SSL STREQUAL "bundled") MYSQL_USE_BUNDLED_SSL() ELSEIF(WITH_SSL STREQUAL "system" OR WITH_SSL STREQUAL "yes") # Check for system library SET(OPENSSL_FIND_QUIETLY TRUE) INCLUDE(FindOpenSSL) FIND_LIBRARY(CRYPTO_LIBRARY crypto) MARK_AS_ADVANCED(CRYPTO_LIBRARY) INCLUDE(CheckSymbolExists) SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" HAVE_SHA512_DIGEST_LENGTH) SET(CMAKE_REQUIRED_INCLUDES) IF(OPENSSL_FOUND AND CRYPTO_LIBRARY AND HAVE_SHA512_DIGEST_LENGTH) SET(SSL_SOURCES "") SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARY}) SET(SSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) SET(SSL_INTERNAL_INCLUDE_DIRS "") SET(SSL_DEFINES "-DHAVE_OPENSSL") CHANGE_SSL_SETTINGS("system") ELSE() IF(WITH_SSL STREQUAL "system") MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL su ENDIF() MYSQL_USE_BUNDLED_SSL() ENDIF() ELSEIF(NOT WITH_SSL STREQUAL "no") MESSAGE(SEND_ERROR "Wrong option for WITH_SSL. Valid values are : yes, no, bundled") ENDIF() ENDMACRO() there's no accommodation for "--with-ssl=/path/to/ssl/install". If I instead cmake .. \ -DWITH_SSL=yes \ -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include \ -DOPENSSL_SSL_LIBRARY=/usr/local/ssl/lib64/libssl.so \ -DOPENSSL_CRYPTO_LIBRARY=/usr/local/ssl/lib64/libcrypto.so it returns, ... -- Running cmake version 2.8.11.1 -- MariaDB 10.0.3 -- Packaging as: mariadb-10.0.3-Linux-x86_64 -- Found OpenSSL: /usr/local/ssl/lib64/libssl.so;/usr/local/ssl/lib64/libcrypto.so (found version "1.0.1e") ... -- Configuring done then a bunch of these messages: ... CMake Warning at cmake/plugin.cmake:184 (ADD_LIBRARY): Cannot generate a safe runtime search path for target feedback because files in some directories may conflict with libraries in implicit directories: runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64 Some of these libraries may not be found correctly. Call Stack (most recent call first): plugin/feedback/CMakeLists.txt:20 (MYSQL_ADD_PLUGIN) CMake Warning at cmake/libutils.cmake:259 (ADD_LIBRARY): Cannot generate a safe runtime search path for target libmysql because files in some directories may conflict with libraries in implicit directories: runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64 Some of these libraries may not be found correctly. Call Stack (most recent call first): libmysql/CMakeLists.txt:374 (MERGE_LIBRARIES) CMake Warning at client/CMakeLists.txt:78 (ADD_EXECUTABLE): Cannot generate a safe runtime search path for target async_example because files in some directories may conflict with libraries in implicit directories: runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64 Some of these libraries may not be found correctly. ... What's the right method to find/use external SSL libs/headers in a MariaDB build without errors or warnings? --darx
-----Original Message----- From: Maria-developers [mailto:maria-developers- bounces+wlad=montyprogram.com@lists.launchpad.net] On Behalf Of darx@sent.com Sent: Freitag, 12. Juli 2013 23:56 To: maria-developers@lists.launchpad.net Subject: [Maria-developers] building MariaDB 10/trunk with external SSL generates errors/warnings. Docs are inconsistent. What's the right
Hi, - ./BUILD/SETUP.sh can hardly be considered documentation, nor in any way supported tool. It was not really touched since autotools have gone. Kindly ignore everything it says. - WITH_SSL, in version you're currently working on (10.0 trunk), has exactly 4 valid values: yes(means system or bundled), no,system, bundled. There is no accommodation for --with-ssl=path, , for current 10.0 alpha . But I believe it is being ported, so feel free to file a bug once a new version with this support appears, and if it does not work as you expect it to work. procedure?
hi,
building
cd /usr/local/src/mariadb bzr log | head -n 5 ------------------------------------------------------------ revno: 3766 [merge] committer: Alexander Barkov <bar@mariadb.org> branch nick: maria-10.0.ms timestamp: Wed 2013-07-10 18:46:33 +0400
reading ./BUILD/SETUP.sh
... 120 # SSL library to use.--with-ssl will select our bundled yaSSL # implementation of SSL. To use OpenSSL you will need to specify # the location of OpenSSL headers and libs on your system. # Ex --with-ssl=/usr <================================= OK, do this SSL_LIBRARY=--with-ssl ...
configuring @ `cmake`
cd /usr/local/src/mariadb rm -rf bld mkdir bld cd bld cmake .. \ -DWITH_SSL=/usr/local/ssl \ -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include \ -DOPENSSL_SSL_LIBRARY=/usr/local/ssl/lib64/libssl.so \ -DOPENSSL_CRYPTO_LIBRARY=/usr/local/ssl/lib64/libcrypto.so
fails, returning,
... CMake Error at cmake/ssl.cmake:90 (MESSAGE): Wrong option for WITH_SSL. Valid values are : yes, no, bundled Call Stack (most recent call first): CMakeLists.txt:260 (MYSQL_CHECK_SSL) ... -- Configuring incomplete, errors occurred!
vi ../CmakeLists.txt ... # Add bundled or system zlib. MYSQL_CHECK_ZLIB_WITH_COMPRESS() # Optionally add bundled yassl/taocrypt or system openssl. 260 MYSQL_CHECK_SSL() # Add readline or libedit. MYSQL_CHECK_READLINE()
checking
vi cmake/ssl.cmake ... # MYSQL_CHECK_SSL # # Provides the following configure options: # WITH_SSL=[yes|no|bundled] MACRO (MYSQL_CHECK_SSL) IF(NOT WITH_SSL) IF(WIN32) CHANGE_SSL_SETTINGS("bundled") ELSE() CHANGE_SSL_SETTINGS("no") ENDIF() ENDIF()
IF(WITH_SSL STREQUAL "bundled") MYSQL_USE_BUNDLED_SSL() ELSEIF(WITH_SSL STREQUAL "system" OR WITH_SSL STREQUAL "yes") # Check for system library SET(OPENSSL_FIND_QUIETLY TRUE) INCLUDE(FindOpenSSL) FIND_LIBRARY(CRYPTO_LIBRARY crypto) MARK_AS_ADVANCED(CRYPTO_LIBRARY) INCLUDE(CheckSymbolExists) SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" HAVE_SHA512_DIGEST_LENGTH) SET(CMAKE_REQUIRED_INCLUDES) IF(OPENSSL_FOUND AND CRYPTO_LIBRARY AND HAVE_SHA512_DIGEST_LENGTH) SET(SSL_SOURCES "") SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARY}) SET(SSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) SET(SSL_INTERNAL_INCLUDE_DIRS "") SET(SSL_DEFINES "-DHAVE_OPENSSL") CHANGE_SSL_SETTINGS("system") ELSE() IF(WITH_SSL STREQUAL "system") MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL su ENDIF() MYSQL_USE_BUNDLED_SSL() ENDIF() ELSEIF(NOT WITH_SSL STREQUAL "no") MESSAGE(SEND_ERROR "Wrong option for WITH_SSL. Valid values are : yes, no, bundled") ENDIF() ENDMACRO()
there's no accommodation for "--with-ssl=/path/to/ssl/install".
If I instead
cmake .. \ -DWITH_SSL=yes \ -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include \ -DOPENSSL_SSL_LIBRARY=/usr/local/ssl/lib64/libssl.so \ -DOPENSSL_CRYPTO_LIBRARY=/usr/local/ssl/lib64/libcrypto.so
it returns,
... -- Running cmake version 2.8.11.1 -- MariaDB 10.0.3 -- Packaging as: mariadb-10.0.3-Linux-x86_64 -- Found OpenSSL: /usr/local/ssl/lib64/libssl.so;/usr/local/ssl/lib64/libcrypto.so (found version "1.0.1e") ... -- Configuring done
then a bunch of these messages:
... CMake Warning at cmake/plugin.cmake:184 (ADD_LIBRARY): Cannot generate a safe runtime search path for target feedback because files in some directories may conflict with libraries in implicit directories:
runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64
Some of these libraries may not be found correctly. Call Stack (most recent call first): plugin/feedback/CMakeLists.txt:20 (MYSQL_ADD_PLUGIN)
CMake Warning at cmake/libutils.cmake:259 (ADD_LIBRARY): Cannot generate a safe runtime search path for target libmysql because files in some directories may conflict with libraries in implicit directories:
runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64
Some of these libraries may not be found correctly. Call Stack (most recent call first): libmysql/CMakeLists.txt:374 (MERGE_LIBRARIES)
CMake Warning at client/CMakeLists.txt:78 (ADD_EXECUTABLE): Cannot generate a safe runtime search path for target async_example because files in some directories may conflict with libraries in implicit directories:
runtime library [libcrypto.so.1.0.0] in /usr/lib64 may be hidden by files in: /usr/local/ssl/lib64
Some of these libraries may not be found correctly. ...
What's the right method to find/use external SSL libs/headers in a MariaDB build without errors or warnings?
--darx
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
participants (2)
-
darx@sent.com
-
Vladislav Vaintroub