Index: databases/mysql57-client/Makefile =================================================================== --- databases/mysql57-client/Makefile +++ databases/mysql57-client/Makefile @@ -2,6 +2,7 @@ # $FreeBSD$ PORTNAME= mysql +PORTREVISION= 1 PKGNAMESUFFIX= 57-client COMMENT= Multithreaded SQL database (client) @@ -33,6 +34,20 @@ CLIENT_ONLY= yes +OPTIONS_SUB= YES +OPTIONS_GROUP+= PLUGINS +PLUGINS_DESC= Default Client Plugins +OPTIONS_GROUP_PLUGINS= SASLCLIENT +SASLCLIENT_DESC= SASL client plugin module +SASLCLIENT_CMAKE_BOOL= WITH_AUTHENTICATION_LDAP +SASLCLIENT_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 +SASLCLIENT_BUILD_DEPENDS= ${LOCALBASE}/include/sasl/sasl.h:net/openldap24-sasl-client + +# issue 220865: MySQL developers forgot that FreeBSD != Linux +post-patch-SASLCLIENT-on: + @${REINPLACE_CMD} -e 's|%%FREEBSD_LOCAL_LIB%%|${LOCALBASE}/lib|g' \ + ${WRKSRC}/cmake/plugin.cmake + # issue 166367: adding symlinks for back-compatibility with ${lib}_r post-install: @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a Index: databases/mysql57-client/files/patch-cmake_plugin.cmake =================================================================== --- /dev/null +++ databases/mysql57-client/files/patch-cmake_plugin.cmake @@ -0,0 +1,20 @@ +--- cmake/plugin.cmake.orig 2017-07-20 10:40:31 UTC ++++ cmake/plugin.cmake +@@ -219,9 +219,16 @@ MACRO(MYSQL_ADD_PLUGIN) + # Thus we skip TARGET_LINK_LIBRARIES on Linux, as it would only generate + # an additional dependency. + # Use MYSQL_PLUGIN_IMPORT for static data symbols to be exported. +- IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ # ++ # P.S. "FreeBSD" is obviously not "Linux" but it behaves near similar in this case. ++ IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + TARGET_LINK_LIBRARIES (${target} mysqld ${ARG_LINK_LIBRARIES}) + ENDIF() ++ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ SET_TARGET_PROPERTIES(${target} PROPERTIES ++ LINK_FLAGS "-L%%FREEBSD_LOCAL_LIB%% ${LINK_FLAGS} " ++ ) ++ ENDIF() + ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDENCIES}) + + IF(NOT ARG_MODULE_ONLY) Index: databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt =================================================================== --- /dev/null +++ databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt @@ -0,0 +1,18 @@ +--- libmysql/authentication_ldap/CMakeLists.txt.orig 2017-07-20 22:54:16 UTC ++++ libmysql/authentication_ldap/CMakeLists.txt +@@ -52,8 +52,10 @@ ELSE () + SET(SASL_LIBRARY "sasl2") + ENDIF () + +-MYSQL_ADD_PLUGIN(authentication_ldap_sasl_client +- auth_ldap_sasl_client.cc log_client.cc +- LINK_LIBRARIES ${SASL_LIBRARY} +- MODULE_ONLY +- MODULE_OUTPUT_NAME "authentication_ldap_sasl_client") ++IF (WITH_AUTHENTICATION_LDAP) ++ MYSQL_ADD_PLUGIN(authentication_ldap_sasl_client ++ auth_ldap_sasl_client.cc log_client.cc ++ LINK_LIBRARIES ${SASL_LIBRARY} ++ MODULE_ONLY ++ MODULE_OUTPUT_NAME "authentication_ldap_sasl_client") ++ENDIF() Index: databases/mysql57-client/pkg-plist =================================================================== --- databases/mysql57-client/pkg-plist +++ databases/mysql57-client/pkg-plist @@ -125,6 +125,8 @@ lib/mysql/libmysqlclient_r.a lib/mysql/libmysqlclient_r.so lib/mysql/libmysqlclient_r.so.20 +%%SASLCLIENT%%lib/mysql/plugin/authentication_ldap_sasl_client.so +%%SASLCLIENT%%@dir lib/mysql/plugin/debug libdata/pkgconfig/mysqlclient.pc man/man1/comp_err.1.gz man/man1/mysql.1.gz