commit:     26d97038888aa552e96183fefa68e632709febfb
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 20 19:50:07 2018 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Fri Apr 20 19:53:30 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26d97038

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(+)

diff --git a/dev-db/mysql-connector-c++/Manifest 
b/dev-db/mysql-connector-c++/Manifest
index fd28dfaf73d..ebac6c62892 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 00000000000..7449b910a9b
--- /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 <prefix>/$(Configuration)/<name> 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
+-  # <prefix>/<config>/<name>
+-
+-  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 $<CONFIGURATION>
+-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf
+-    COMMENT "Building protobuf using configuration: $<CONFIGURATION>"
+-  )
+-else()
+-  add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP}
+-    COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
+-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf
+-    COMMENT "Building protobuf using configuration: $<CONFIG>"
+-  )
+-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<string, unsigned> m_map;
++  std::map<string, unsigned> m_map;
+ 
+ public:
+ 
+@@ -303,7 +303,7 @@
+ 
+   unsigned conv_placeholder(const string &name)
+   {
+-    map<string, unsigned>::const_iterator it = m_map.find(name);
++    std::map<string, unsigned>::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<string, unsigned>::const_iterator it = m_map.find(name);
++    std::map<string, unsigned>::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 4a8503781eb..7b402c140aa 100644
--- a/dev-db/mysql-connector-c++/metadata.xml
+++ b/dev-db/mysql-connector-c++/metadata.xml
@@ -3,6 +3,7 @@
 <pkgmetadata>
 <use>
        <flag name="gcov">Build coverage support</flag>
+       <flag name="legacy">Build the legacy 1.x API as well as the DevX 
API</flag>
 </use>
 <maintainer type="project">
        <email>mysql-b...@gentoo.org</email>

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 00000000000..d4dc993c776
--- /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
+}

Reply via email to