hi,

building

        cd /usr/local/src/mariadb
        bzr log | head -n 5
                ------------------------------------------------------------
                revno: 3766 [merge]
                committer: Alexander Barkov <[email protected]>
                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     : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to