svn commit: r446497 - in branches/2017Q3/databases: mysql57-client mysql57-client/files mysql57-server mysql57-server/files
Mahdi Mokhtari
mmokhi at FreeBSD.org
Sun Jul 23 16:52:46 UTC 2017
Author: mmokhi
Date: Sun Jul 23 16:52:44 2017
New Revision: 446497
URL: https://svnweb.freebsd.org/changeset/ports/446497
Log:
MFH: r446496
databases/mysql57-{server client}: Fix broken SASL/LDAP integration on newest 5.7.19 upgrade
-Add a SASL/LDAP option for mysql57-client
-Fix plugin.cmake for "FreeBSD != Linux" case
For new plugin, MySQL build assumes everything is MacOS or Windows or Linux.
This breaks upgrades when you have SASL/LDAP client-library installed.
Because it "Decides" that you "Want" SASL/LDAP support and tries to build it.
PR: 220865
Submitted by: mmokhi
Reported by: Vladimir Omelchuk <admin at vladiom.com.ua>
Reviewed by: mat, feld (mentors)
Approved by: feld (mentor)
Differential Revision: https://reviews.freebsd.org/D11667
Approved by: ports-secteam (feld)
Added:
branches/2017Q3/databases/mysql57-client/files/patch-cmake_plugin.cmake
- copied unchanged from r446496, head/databases/mysql57-client/files/patch-cmake_plugin.cmake
branches/2017Q3/databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt
- copied unchanged from r446496, head/databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt
branches/2017Q3/databases/mysql57-server/files/patch-libmysql_authentication__ldap_CMakeLists.txt
- copied unchanged from r446496, head/databases/mysql57-server/files/patch-libmysql_authentication__ldap_CMakeLists.txt
Modified:
branches/2017Q3/databases/mysql57-client/Makefile
branches/2017Q3/databases/mysql57-client/pkg-plist
branches/2017Q3/databases/mysql57-server/Makefile
branches/2017Q3/databases/mysql57-server/files/patch-cmake_plugin.cmake
Directory Properties:
branches/2017Q3/ (props changed)
Modified: branches/2017Q3/databases/mysql57-client/Makefile
==============================================================================
--- branches/2017Q3/databases/mysql57-client/Makefile Sun Jul 23 16:45:07 2017 (r446496)
+++ branches/2017Q3/databases/mysql57-client/Makefile Sun Jul 23 16:52:44 2017 (r446497)
@@ -2,6 +2,7 @@
# $FreeBSD$
PORTNAME= mysql
+PORTREVISION= 1
PKGNAMESUFFIX= 57-client
COMMENT= Multithreaded SQL database (client)
@@ -31,6 +32,15 @@ MMAN1= comp_err.1 msql2mysql.1 mysql.1 mysql_config.1
mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1 mysqlslap.1
CLIENT_ONLY= 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
+OPTIONS_DEFAULT+= SASLCLIENT
# issue 166367: adding symlinks for back-compatibility with ${lib}_r
post-install:
Copied: branches/2017Q3/databases/mysql57-client/files/patch-cmake_plugin.cmake (from r446496, head/databases/mysql57-client/files/patch-cmake_plugin.cmake)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2017Q3/databases/mysql57-client/files/patch-cmake_plugin.cmake Sun Jul 23 16:52:44 2017 (r446497, copy of r446496, head/databases/mysql57-client/files/patch-cmake_plugin.cmake)
@@ -0,0 +1,43 @@
+--- cmake/plugin.cmake.orig 2017-06-22 14:13:19 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)
+@@ -239,13 +246,17 @@ MACRO(MYSQL_ADD_PLUGIN)
+ MYSQL_INSTALL_TARGETS(${target}
+ DESTINATION ${INSTALL_PLUGINDIR}
+ COMPONENT ${INSTALL_COMPONENT})
+- INSTALL_DEBUG_TARGET(${target}
+- DESTINATION ${INSTALL_PLUGINDIR}/debug
+- COMPONENT ${INSTALL_COMPONENT})
++ IF(CMAKE_BUILD_TYPE MATCHES "Debug")
++ INSTALL_DEBUG_TARGET(${target}
++ DESTINATION ${INSTALL_PLUGINDIR}/debug
++ COMPONENT ${INSTALL_COMPONENT})
++ # Add installed files to list for RPMs
++ FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files
++ "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/debug/${ARG_MODULE_OUTPUT_NAME}.so\n")
++ ENDIF()
+ # Add installed files to list for RPMs
+ FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files
+- "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n"
+- "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/debug/${ARG_MODULE_OUTPUT_NAME}.so\n")
++ "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n")
+ # For internal testing in PB2, append collections files
+ IF(DEFINED ENV{PB2WORKDIR})
+ PLUGIN_APPEND_COLLECTIONS(${plugin})
Copied: branches/2017Q3/databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt (from r446496, head/databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2017Q3/databases/mysql57-client/files/patch-libmysql_authentication__ldap_CMakeLists.txt Sun Jul 23 16:52:44 2017 (r446497, copy of r446496, head/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()
Modified: branches/2017Q3/databases/mysql57-client/pkg-plist
==============================================================================
--- branches/2017Q3/databases/mysql57-client/pkg-plist Sun Jul 23 16:45:07 2017 (r446496)
+++ branches/2017Q3/databases/mysql57-client/pkg-plist Sun Jul 23 16:52:44 2017 (r446497)
@@ -125,6 +125,7 @@ lib/mysql/libmysqlservices.a
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
libdata/pkgconfig/mysqlclient.pc
man/man1/comp_err.1.gz
man/man1/mysql.1.gz
Modified: branches/2017Q3/databases/mysql57-server/Makefile
==============================================================================
--- branches/2017Q3/databases/mysql57-server/Makefile Sun Jul 23 16:45:07 2017 (r446496)
+++ branches/2017Q3/databases/mysql57-server/Makefile Sun Jul 23 16:52:44 2017 (r446497)
@@ -3,6 +3,7 @@
PORTNAME?= mysql
PORTVERSION= 5.7.18
+PORTREVISION= 1
CATEGORIES= databases ipv6
MASTER_SITES= MYSQL/MySQL-5.7
PKGNAMESUFFIX?= 57-server
@@ -55,7 +56,8 @@ CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \
-DWITH_LIBEVENT=system \
-DWITH_LZ4=system \
-DWITH_ZLIB=system \
- -DINSTALL_MYSQLTESTDIR=0
+ -DINSTALL_MYSQLTESTDIR=0 \
+ -DWITH_DEBUG=0
SHEBANG_FILES= scripts/*.pl* scripts/*.sh
@@ -71,6 +73,8 @@ PLIST_SUB= MY_DBDIR=${MY_DBDIR} \
MY_SECDIR=${MY_SECDIR} \
MY_TMPDIR=${MY_TMPDIR}
+OPTIONS_SUB= YES
+
# MySQL-Server part
.if !defined(CLIENT_ONLY)
USES+= mysql:57
@@ -98,9 +102,8 @@ MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
-OPTIONS_GROUP= STORAGE
+OPTIONS_GROUP+= STORAGE
OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA
-OPTIONS_SUB= YES
STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server)
ARCHIVE_DESC= Compile "Archive Storage" statically in server
BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server
@@ -119,8 +122,8 @@ PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1
PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
OPTIONS_GROUP+= FEATURES
-OPTIONS_GROUP_FEATURES= PERFSCHM
FEATURES_DESC= Default features knobs
+OPTIONS_GROUP_FEATURES= PERFSCHM
PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage)
OPTIONS_DEFAULT+= PERFSCHM
@@ -128,6 +131,10 @@ PERFSCHM_SUB_LIST+= PERFSCHEMRC=""
PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema"
FEDERATED_SUB_LIST+= FEDER="--federated"
FEDERATED_SUB_LIST_OFF+= FEDER=""
+
+# issue 220865: Currently there's no source to be built with server-side support.
+# But this keeps the pkg-plist not overlaping
+CMAKE_ARGS+= -DWITH_AUTHENTICATION_LDAP=0
.endif
.include <bsd.port.pre.mk>
@@ -143,6 +150,9 @@ post-extract:
post-patch:
@${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt
+ # issue 220865: MySQL developers forgot that FreeBSD != Linux
+ @${REINPLACE_CMD} -e 's|%%FREEBSD_LOCAL_LIB%%|${LOCALBASE}/lib|g' \
+ ${WRKSRC}/cmake/plugin.cmake
.if !defined(CLIENT_ONLY)
post-install:
Modified: branches/2017Q3/databases/mysql57-server/files/patch-cmake_plugin.cmake
==============================================================================
--- branches/2017Q3/databases/mysql57-server/files/patch-cmake_plugin.cmake Sun Jul 23 16:45:07 2017 (r446496)
+++ branches/2017Q3/databases/mysql57-server/files/patch-cmake_plugin.cmake Sun Jul 23 16:52:44 2017 (r446497)
@@ -1,12 +1,43 @@
---- cmake/plugin.cmake.orig 2016-03-28 18:06:12 UTC
+--- cmake/plugin.cmake.orig 2017-06-22 14:13:19 UTC
+++ cmake/plugin.cmake
-@@ -237,9 +237,6 @@ MACRO(MYSQL_ADD_PLUGIN)
+@@ -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)
+@@ -239,13 +246,17 @@ MACRO(MYSQL_ADD_PLUGIN)
MYSQL_INSTALL_TARGETS(${target}
DESTINATION ${INSTALL_PLUGINDIR}
COMPONENT ${INSTALL_COMPONENT})
- INSTALL_DEBUG_TARGET(${target}
- DESTINATION ${INSTALL_PLUGINDIR}/debug
- COMPONENT ${INSTALL_COMPONENT})
++ IF(CMAKE_BUILD_TYPE MATCHES "Debug")
++ INSTALL_DEBUG_TARGET(${target}
++ DESTINATION ${INSTALL_PLUGINDIR}/debug
++ COMPONENT ${INSTALL_COMPONENT})
++ # Add installed files to list for RPMs
++ FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files
++ "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/debug/${ARG_MODULE_OUTPUT_NAME}.so\n")
++ ENDIF()
# Add installed files to list for RPMs
FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files
- "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n"
+- "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n"
+- "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/debug/${ARG_MODULE_OUTPUT_NAME}.so\n")
++ "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n")
+ # For internal testing in PB2, append collections files
+ IF(DEFINED ENV{PB2WORKDIR})
+ PLUGIN_APPEND_COLLECTIONS(${plugin})
Copied: branches/2017Q3/databases/mysql57-server/files/patch-libmysql_authentication__ldap_CMakeLists.txt (from r446496, head/databases/mysql57-server/files/patch-libmysql_authentication__ldap_CMakeLists.txt)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2017Q3/databases/mysql57-server/files/patch-libmysql_authentication__ldap_CMakeLists.txt Sun Jul 23 16:52:44 2017 (r446497, copy of r446496, head/databases/mysql57-server/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()
More information about the svn-ports-all
mailing list