Date: Mon, 30 Jan 2017 10:07:21 +0100 From: Bernard Spil <brnrd@FreeBSD.org> To: marino@freebsd.org, mokhi64@gmail.com Cc: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: svn commit: r432458 - in head/databases: mysql56-client mysql56-client/files mysql56-server mysql56-server/files Message-ID: <c75116e74c3f55198224dcb3f1bcdfa2@FreeBSD.org> In-Reply-To: <796ba016-0c35-f368-5115-3a8a1ec4cfec@marino.st> References: <201701251907.v0PJ78fZ061674@repo.freebsd.org> <796ba016-0c35-f368-5115-3a8a1ec4cfec@marino.st>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-01-29 20:50, John Marino wrote: > On 1/25/2017 13:07, Bernard Spil wrote: >> Author: brnrd >> Date: Wed Jan 25 19:07:08 2017 >> New Revision: 432458 >> URL: https://svnweb.freebsd.org/changeset/ports/432458 >> >> Log: >> databases/mysql56-server: Fix OpenSSL linking >> >> - Force dynamic linking with OpenSSL >> >> MFH: 2017Q1 >> >> Added: >> head/databases/mysql56-client/files/patch-cmake_ssl.cmake >> (contents, props changed) >> head/databases/mysql56-server/files/patch-cmake_ssl.cmake >> (contents, props changed) >> Modified: >> head/databases/mysql56-client/Makefile >> head/databases/mysql56-server/Makefile >> >> Modified: head/databases/mysql56-client/Makefile >> ============================================================================== >> --- head/databases/mysql56-client/Makefile Wed Jan 25 18:59:23 >> 2017 (r432457) >> +++ head/databases/mysql56-client/Makefile Wed Jan 25 19:07:08 >> 2017 (r432458) >> @@ -2,7 +2,7 @@ >> # $FreeBSD$ >> >> PORTNAME= mysql >> -PORTREVISION?= 0 >> +PORTREVISION?= 1 >> PKGNAMESUFFIX= 56-client >> >> COMMENT= Multithreaded SQL database (client) >> >> Added: head/databases/mysql56-client/files/patch-cmake_ssl.cmake >> ============================================================================== >> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >> +++ head/databases/mysql56-client/files/patch-cmake_ssl.cmake Wed Jan >> 25 19:07:08 2017 (r432458) >> @@ -0,0 +1,11 @@ >> +--- cmake/ssl.cmake.orig 2016-11-28 13:36:22 UTC >> ++++ cmake/ssl.cmake >> +@@ -176,7 +176,7 @@ MACRO (MYSQL_CHECK_SSL) >> + IF(OPENSSL_INCLUDE_DIR AND >> + OPENSSL_LIBRARY AND >> + CRYPTO_LIBRARY AND >> +- OPENSSL_MAJOR_VERSION STREQUAL "1" >> ++ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1" >> + ) >> + SET(OPENSSL_FOUND TRUE) >> + ELSE() >> >> Modified: head/databases/mysql56-server/Makefile >> ============================================================================== >> --- head/databases/mysql56-server/Makefile Wed Jan 25 18:59:23 >> 2017 (r432457) >> +++ head/databases/mysql56-server/Makefile Wed Jan 25 19:07:08 >> 2017 (r432458) >> @@ -3,7 +3,7 @@ >> >> PORTNAME?= mysql >> PORTVERSION= 5.6.35 >> -PORTREVISION?= 2 >> +PORTREVISION?= 3 >> CATEGORIES= databases ipv6 >> MASTER_SITES= MYSQL/MySQL-5.6 >> PKGNAMESUFFIX?= 56-server >> @@ -54,6 +54,9 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ >> -DWITH_LIBEVENT=system \ >> -DWITH_LZ4=system \ >> -DWITH_ZLIB=system \ >> + -DWITH_SSL=${OPENSSLBASE} \ >> + -DCRYPTO_LIBRARY=${OPENSSLLIB}/libcrypto.so \ >> + -DOPENSSL_LIBRARY=${OPENSSLLIB}/libssl.so \ >> -DINSTALL_MYSQLTESTDIR=0 >> >> SHEBANG_FILES= scripts/*.pl* scripts/*.sh >> @@ -129,12 +132,6 @@ PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--s >> >> .include <bsd.port.pre.mk> >> >> -.if ${SSL_DEFAULT} == base >> -CMAKE_ARGS+= -DWITH_SSL=system >> -.else >> -CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE} >> -.endif >> - >> post-patch: >> @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt >> >> >> Added: head/databases/mysql56-server/files/patch-cmake_ssl.cmake >> ============================================================================== >> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >> +++ head/databases/mysql56-server/files/patch-cmake_ssl.cmake Wed Jan >> 25 19:07:08 2017 (r432458) >> @@ -0,0 +1,11 @@ >> +--- cmake/ssl.cmake.orig 2016-11-28 13:36:22 UTC >> ++++ cmake/ssl.cmake >> +@@ -176,7 +176,7 @@ MACRO (MYSQL_CHECK_SSL) >> + IF(OPENSSL_INCLUDE_DIR AND >> + OPENSSL_LIBRARY AND >> + CRYPTO_LIBRARY AND >> +- OPENSSL_MAJOR_VERSION STREQUAL "1" >> ++ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1" >> + ) >> + SET(OPENSSL_FOUND TRUE) >> + ELSE() >> > > Interestingly, this actually broke several ports for us: > benchmarks sysbench > databases apq-mysql > databases mysql-connector-c++ > mail qmail-mysql > security pam-mysql > > typical message: > /usr/libexec/binutils227/elf/ld.gold: error: cannot find -lssl > /usr/libexec/binutils227/elf/ld.gold: error: cannot find -lcrypto > > I think mysql_config is to blame: > > checking for mysql_config... /usr/local/bin/mysql_config > checking MySQL C flags... -I/usr/local/include/mysql -isystem > /usr/local/include -fno-strict-aliasing -g -fno-omit-frame-pointer > -fno-strict-aliasing > checking MySQL linker flags... -L/usr/local/lib/mysql -lmysqlclient_r > -pthread -lz -lm -lexecinfo -lssl -lcrypto > > It's not adding -L/usr/local/lib for ports' openssl ports. > > John > Hi John, That's actually an error in MySQL... We are passing it the OpenSSL root and the shared libs. MySQL (and MariaDB) builds favour static linking, so I guess they've not even thought of adding it to the pkgconfig. For MariaDB 10.1 it does add /usr/local/lib (mind you, on my system it will link ssl and crypto from base) $ mysql_config --cflags -I/usr/local/include/mysql -I/usr/local/include/mysql/.. $ mysql_config --libs -L/usr/local/lib/mysql -lmysqlclient -pthread -lz -lm -lexecinfo -lssl -lcrypto -L/usr/local/lib $ mysql_config --libs_r -L/usr/local/lib/mysql -lmysqlclient -pthread -lz -lm -lexecinfo -lssl -lcrypto -L/usr/local/lib Cheers, Bernard.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c75116e74c3f55198224dcb3f1bcdfa2>