From 26d97038888aa552e96183fefa68e632709febfb Mon Sep 17 00:00:00 2001 From: Brian Evans Date: Fri, 20 Apr 2018 15:50:07 -0400 Subject: dev-db/mysql-connector-c++: Version bump to 8.0.11 The DevX API needs MySQL or Percona Server 5.7+. legacy USE is required for older programming and connecting to MariaDB and previous versions of MySQL and Percona Package-Manager: Portage-2.3.31, Repoman-2.3.9 --- dev-db/mysql-connector-c++/Manifest | 1 + .../files/8.0.11-fix-build.patch | 276 +++++++++++++++++++++ dev-db/mysql-connector-c++/metadata.xml | 1 + .../mysql-connector-c++-8.0.11.ebuild | 38 +++ 4 files changed, 316 insertions(+) create mode 100644 dev-db/mysql-connector-c++/files/8.0.11-fix-build.patch create mode 100644 dev-db/mysql-connector-c++/mysql-connector-c++-8.0.11.ebuild (limited to 'dev-db') diff --git a/dev-db/mysql-connector-c++/Manifest b/dev-db/mysql-connector-c++/Manifest index fd28dfaf73de..ebac6c628928 100644 --- a/dev-db/mysql-connector-c++/Manifest +++ b/dev-db/mysql-connector-c++/Manifest @@ -2,3 +2,4 @@ DIST mysql-connector-c++-1.1.3.tar.gz 496226 BLAKE2B 51537d8728d4afdd98474107a02 DIST mysql-connector-c++-1.1.6.tar.gz 522236 BLAKE2B 5f728b418fa7d395a83679fbda5c8757e1d06078e27865c7e02a6666ccb1a32c5c8cd77d481b0bc4d4354cea518bd2db2e06076db88ee285365583e27a5f0c23 SHA512 e940b6ee090f792bad8acbbfa3dacd46310ac40c7993c4097eeebb6be4b792d3f1856574e603a71e2795773db97169f47c9ed76a127654472370c726bcb291c7 DIST mysql-connector-c++-1.1.8.tar.gz 528954 BLAKE2B fc2a606364426834335142375b99546e2ff1251e97add8ee4ecc370feccd7b9dd09f0abc3e1e9084b824141bde2a44d55ff9baddc093f8ec17b2b91060057148 SHA512 c3ab5c1e805598d557a449c44f77ce44cc110e5b529075e38b4f775d3726ebd16a2155f61e47a378a375a9d9362d1520334ea25376636151ddd087291aafd85d DIST mysql-connector-c++-1.1.9.tar.gz 508255 BLAKE2B e2cd300946a873a94beab13d9d1cb64ecb5bd9a9a56ef2217b1f7aff1643adc9afc0aa22c2ff1e0f6b8318cd34d12a7fe95f0584c96c212307fa9bd0cb54a2a1 SHA512 ec4d6cb7f21d52e786de3bff951e65ea5ad7391ba097b599d0094d3e8356cf17f700dee618e38e79d7a9e562684a6c51cca95fb8e2e225942766d33f8d0a5646 +DIST mysql-connector-c++-8.0.11-src.tar.gz 2322951 BLAKE2B a1ea47c0440beae1892144186ad6b99a4519369845e1f37f5ce42088df6c29a458bd41840a1f9401dbd29827bc3a7c96ba34563a3a4cf3176e29e377cc254b9f SHA512 5113efb473b7cc63f680c04dacf5bee78d0a58ee20b41c8203edb92f8720c31c52c24de838996f25476eaa3d734c845531440317e82cb5e5f635bc03b057a148 diff --git a/dev-db/mysql-connector-c++/files/8.0.11-fix-build.patch b/dev-db/mysql-connector-c++/files/8.0.11-fix-build.patch new file mode 100644 index 000000000000..7449b910a9b0 --- /dev/null +++ b/dev-db/mysql-connector-c++/files/8.0.11-fix-build.patch @@ -0,0 +1,276 @@ +diff -aurN a/buildinfo.cmake b/buildinfo.cmake +--- a/buildinfo.cmake 2018-04-08 15:10:57.000000000 -0400 ++++ b/buildinfo.cmake 2018-04-20 13:37:20.993266176 -0400 +@@ -112,4 +112,4 @@ + endif() + + +-install(FILES "${PROJECT_BINARY_DIR}/BUILDINFO.txt" DESTINATION .) ++#install(FILES "${PROJECT_BINARY_DIR}/BUILDINFO.txt" DESTINATION .) +diff -aurN a/cdk/cmake/install_macros.cmake b/cdk/cmake/install_macros.cmake +--- a/cdk/cmake/install_macros.cmake 2018-04-08 15:10:57.000000000 -0400 ++++ b/cdk/cmake/install_macros.cmake 2018-04-20 14:12:17.255877167 -0400 +@@ -327,7 +327,7 @@ + DESTINATION ${ARG_DESTINATION} + ${RENAME_PARAM} + ${PERMISSIONS_${target_type}} +- CONFIGURATIONS Release RelWithDebInfo ++ CONFIGURATIONS Release RelWithDebInfo Gentoo + COMPONENT ${ARG_COMPONENT} + OPTIONAL) + +@@ -346,7 +346,7 @@ + INSTALL(FILES ${debug_pdb_target_location} + DESTINATION ${ARG_PDB_DESTINATION} + ${PDB_RENAME_PARAM} +- CONFIGURATIONS Release RelWithDebInfo ++ CONFIGURATIONS Release RelWithDebInfo Gentoo + COMPONENT ${ARG_COMPONENT} + OPTIONAL) + ENDIF() +diff -aurN a/cdk/cmake/libutils.cmake b/cdk/cmake/libutils.cmake +--- a/cdk/cmake/libutils.cmake 2018-04-08 15:10:57.000000000 -0400 ++++ b/cdk/cmake/libutils.cmake 2018-04-20 14:27:49.021432318 -0400 +@@ -275,14 +275,7 @@ + endforeach() + + if(libs) +- +- if(${type} STREQUAL "STATIC") +- merge_static_libraries(${TARGET} ${libs}) +- add_dependencies(${TARGET} ${libs}) +- else() + target_link_libraries(${TARGET} PRIVATE ${libs}) +- endif() +- + endif() + + # +diff -aurN a/cdk/cmake/protobuf.cmake b/cdk/cmake/protobuf.cmake +--- a/cdk/cmake/protobuf.cmake 2018-04-08 15:10:57.000000000 -0400 ++++ b/cdk/cmake/protobuf.cmake 2018-04-20 13:43:04.950466261 -0400 +@@ -36,142 +36,8 @@ + # ADD_LIBRARY(target ... ${SRCS}) + # + +-# +-# Configure Protobuf project in protobuf subfolder of build location. +-# +- +-message("Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR}") +-file(REMOVE ${PROJECT_BINARY_DIR}/protobuf/CMakeCache.txt) +-file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf) +- +-# If specified, use the same build type for Protobuf +- +-if(CMAKE_BUILD_TYPE) +- set(set_build_type -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) +-endif() +- +-execute_process( +- COMMAND ${CMAKE_COMMAND} +- -G "${CMAKE_GENERATOR}" +- ${set_build_type} +- -DSTATIC_MSVCRT=${STATIC_MSVCRT} +- -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} +- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} +- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} +- ${PROJECT_SOURCE_DIR}/protobuf +- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf +- RESULT_VARIABLE protobuf_config +-) +- +-if(protobuf_config) +- message(FATAL_ERROR "Could not configure Protobuf build: ${protobuf_config}") +-endif() +- +-include(${PROJECT_BINARY_DIR}/protobuf/exports.cmake) +- +-# +-# Protobuf library targets imported above (pb_protobuf +-# and pb_protobuf-lite) are local to the directory from which +-# they were imported. This is not good if cdk is used as +-# a sub-project of a parent project, because the parent project +-# must have access to these targets. +-# +-# For that reason blow we create global protobuf/protobuf-lite targets +-# and copy their loactions from the imported targets. +-# +- +-add_library(protobuf STATIC IMPORTED GLOBAL) +-add_library(protobuf-lite STATIC IMPORTED GLOBAL) +- +-foreach(lib protobuf protobuf-lite) +- #message("processing: ${lib}") +- +- foreach(CONF NOCONFIG DEBUG RELEASE MINSIZEREL RELWITHDEBINFO) +- #message("- CONF: ${CONF}") +- +- get_target_property(LOC pb_${lib} IMPORTED_LOCATION_${CONF}) +- if(LOC) +- #message("- settig imported location to: ${LOC}") +- set(location "${LOC}") +- set_target_properties(${lib} PROPERTIES +- IMPORTED_LOCATION_${CONF} "${LOC}" +- ) +- set_property(TARGET ${lib} APPEND PROPERTY +- IMPORTED_CONFIGURATIONS ${CONF}) +- endif() +- +- endforeach(CONF) +- +- # For multi-configuration builders like MSVC, set a generic +- # location of the form /$(Configuration)/ which will +- # work with any configuration choosen at build time. +- # It is constructed from one of per-configurartion locations +- # determined above and saved in ${location}. The logic assumes +- # that the per-configration location is of the form +- # // +- +- if(CMAKE_CONFIGURATION_TYPES) +- +- get_filename_component(name "${location}" NAME) +- get_filename_component(LOC "${location}" PATH) +- get_filename_component(LOC "${LOC}" PATH) +- set(LOC "${LOC}/$(Configuration)/${name}") +- +- message("- setting generic location to: ${LOC}") +- set_target_properties(${lib} PROPERTIES +- IMPORTED_LOCATION "${LOC}" +- ) +- +- endif() +- +-endforeach(lib) +- +- +-# protobuf depends on protobuf-lite +- +-set_target_properties(protobuf PROPERTIES +- INTERFACE_LINK_LIBRARIES "protobuf-lite" +-) +- +- +-message("Protobuf include path: ${PROTOBUF_INCLUDE_DIR}") +- +-set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIR} +- CACHE INTERNAL "Protobuf include path" FORCE) +-set(PROTOBUF_PROTOC_EXECUTABLE pb_protoc +- CACHE INTERNAL "Protobuf compiler" FORCE) +- +-# +-# Custom target build_protobuf ensures that Protobuf project is built. +-# +-# Note: this depends on Protobuf project generating the stamp file +-# +- +-if(NOT DEFINED PROTOBUF_BUILD_STAMP) +- message(FATAL_ERROR "Protobuf build stamp file not defined") +-endif() +- +-if(CMAKE_VERSION VERSION_LESS 3.0) +- add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} +- COMMAND ${CMAKE_COMMAND} --build . --config $ +- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf +- COMMENT "Building protobuf using configuration: $" +- ) +-else() +- add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} +- COMMAND ${CMAKE_COMMAND} --build . --config $ +- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf +- COMMENT "Building protobuf using configuration: $" +- ) +-endif() +- +-add_custom_target(build_protobuf +- DEPENDS ${PROTOBUF_BUILD_STAMP} +-) +- +-add_dependencies(protobuf build_protobuf) +-add_dependencies(protobuf-lite build_protobuf) +-add_dependencies(pb_protoc build_protobuf) ++#SET(Protobuf_USE_STATIC_LIBS ON) ++find_package(Protobuf REQUIRED) + + # + # Choice between full and lite version of the library. +diff -aurN a/cdk/protocol/mysqlx/crud.cc b/cdk/protocol/mysqlx/crud.cc +--- a/cdk/protocol/mysqlx/crud.cc 2018-04-08 15:10:57.000000000 -0400 ++++ b/cdk/protocol/mysqlx/crud.cc 2018-04-20 11:22:22.398040489 -0400 +@@ -295,7 +295,7 @@ + class Placeholder_conv_imp + : public Args_conv + { +- map m_map; ++ std::map m_map; + + public: + +@@ -303,7 +303,7 @@ + + unsigned conv_placeholder(const string &name) + { +- map::const_iterator it = m_map.find(name); ++ std::map::const_iterator it = m_map.find(name); + if (it == m_map.end()) + throw_error("Placeholder converter: Placeholder was not defined on args"); + //throw Generic_error((boost::format("Placeholder %s was not defined on args.") +@@ -314,7 +314,7 @@ + + void add_placeholder(const string &name) + { +- map::const_iterator it = m_map.find(name); ++ std::map::const_iterator it = m_map.find(name); + if (it != m_map.end()) + throw_error("Placeholder converter: Redefined placeholder"); + //throw Generic_error((boost::format("Redifined placeholder %s.") +diff -aurN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2018-04-20 14:15:00.546645410 -0400 ++++ b/CMakeLists.txt 2018-04-20 13:26:16.888470928 -0400 +@@ -529,7 +529,7 @@ + + + install(TARGETS connector +- CONFIGURATIONS Release RelWithDebInfo ++ CONFIGURATIONS Release RelWithDebInfo Gentoo + ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" + RUNTIME DESTINATION "${INSTALL_LIB_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" +@@ -576,6 +576,12 @@ + SET_INTERFACE_OPTIONS(try devapi) + # ADD_GCOV(try) + ++IF(WITH_SSL STREQUAL "system") ++ find_package(OpenSSL REQUIRED) ++ TARGET_LINK_LIBRARIES(try ${OPENSSL_LIBRARIES}) ++ENDIF() ++ ++ + if(WITH_JDBC) + + add_executable(try_jdbc try_jdbc.cc) +--- a/jdbc.cmake 2018-04-08 15:10:57.000000000 -0400 ++++ b/jdbc.cmake 2018-04-20 15:03:38.683674143 -0400 +@@ -20,7 +20,7 @@ + # Configure legacy connector build environment in ${JDBC_DIR} + # + +-list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON) ++list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=OFF) + + if(CMAKE_BUILD_TYPE) + list(APPEND jdbc_cmake_opts -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) +--- /var/tmp/portage/dev-db/mysql-connector-c++-8.0.11/work/mysql-connector-c++-8.0.11-src/jdbc/FindMySQL.cmake 2018-02-23 05:47:56.000000000 -0500 ++++ mysql-connector-c++-8.0.11-src/jdbc/FindMySQL.cmake 2018-04-20 15:13:42.204665429 -0400 +@@ -832,9 +832,11 @@ + IF(NOT WIN32) + _mysql_conf(MYSQL_COMPILER_VERSION "") + STRING(REGEX MATCH "Compiler:[a-zA-Z0-9\\. ]+" MYSQL_COMPILER_VERSION ${MYSQL_COMPILER_VERSION}) ++IF(MYSQL_COMPILER_VERSION) + STRING(REGEX REPLACE "Compiler: " "" MYSQL_COMPILER_VERSION ${MYSQL_COMPILER_VERSION}) + STRING(REGEX MATCH "[a-zA-Z0-9]+" MYSQL_COMPILER_ID ${MYSQL_COMPILER_VERSION}) + STRING(REGEX REPLACE "[a-zA-Z0-9]+ " "" MYSQL_COMPILER_VERSION ${MYSQL_COMPILER_VERSION}) ++ENDIF(MYSQL_COMPILER_VERSION) + ENDIF(NOT WIN32) + + ########################################################################## diff --git a/dev-db/mysql-connector-c++/metadata.xml b/dev-db/mysql-connector-c++/metadata.xml index 4a8503781eb7..7b402c140aa3 100644 --- a/dev-db/mysql-connector-c++/metadata.xml +++ b/dev-db/mysql-connector-c++/metadata.xml @@ -3,6 +3,7 @@ Build coverage support + Build the legacy 1.x API as well as the DevX API mysql-bugs@gentoo.org diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.11.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.11.ebuild new file mode 100644 index 000000000000..d4dc993c7760 --- /dev/null +++ b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.11.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +CMAKE_MAKEFILE_GENERATOR=emake +inherit cmake-utils + +DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)" +HOMEPAGE="http://dev.mysql.com/downloads/connector/cpp/" +URI_DIR="Connector-C++" +SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="+legacy" + +RDEPEND=" + dev-libs/openssl:0= + dev-libs/protobuf:= + legacy? ( dev-libs/boost:= + >=dev-db/mysql-connector-c-6.1.8:= )" +DEPEND="${RDEPEND}" +S="${WORKDIR}/${P}-src" + +PATCHES=( + "${FILESDIR}/8.0.11-fix-build.patch" +) + +src_configure() { + local mycmakeargs=( + -DWITH_SSL=system + -DWITH_JDBC=$(usex legacy ON OFF) + ) + + cmake-utils_src_configure +} -- cgit v1.2.3-65-gdbad