From owner-svn-ports-all@freebsd.org Sun Jul 23 16:52:46 2017 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BA8ADA555F; Sun, 23 Jul 2017 16:52:46 +0000 (UTC) (envelope-from mmokhi@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2AC967644; Sun, 23 Jul 2017 16:52:45 +0000 (UTC) (envelope-from mmokhi@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6NGqjR0004886; Sun, 23 Jul 2017 16:52:45 GMT (envelope-from mmokhi@FreeBSD.org) Received: (from mmokhi@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6NGqieE004879; Sun, 23 Jul 2017 16:52:44 GMT (envelope-from mmokhi@FreeBSD.org) Message-Id: <201707231652.v6NGqieE004879@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmokhi set sender to mmokhi@FreeBSD.org using -f From: Mahdi Mokhtari Date: Sun, 23 Jul 2017 16:52:44 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r446497 - in branches/2017Q3/databases: mysql57-client mysql57-client/files mysql57-server mysql57-server/files X-SVN-Group: ports-branches X-SVN-Commit-Author: mmokhi X-SVN-Commit-Paths: in branches/2017Q3/databases: mysql57-client mysql57-client/files mysql57-server mysql57-server/files X-SVN-Commit-Revision: 446497 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Jul 2017 16:52:46 -0000 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 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 @@ -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()