commit:     b46380cc06550dd891ea12f958f01c20bb4f9ba3
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 20 18:40:54 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Oct 20 18:55:45 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b46380cc

dev-db/mysql-connector-c++: bump to v8.0.22

Package-Manager: Portage-3.0.8, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/mysql-connector-c++/Manifest                |   1 +
 .../mysql-connector-c++-8.0.22-fix-build.patch     | 322 +++++++++++++++++++++
 .../mysql-connector-c++-8.0.22.ebuild              |  44 +++
 3 files changed, 367 insertions(+)

diff --git a/dev-db/mysql-connector-c++/Manifest 
b/dev-db/mysql-connector-c++/Manifest
index e28f1d2e478..abb402a6169 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.12.tar.gz 518615 BLAKE2B 
386a4753ca3f03999a49a89507
 DIST mysql-connector-c++-8.0.19-src.tar.gz 3137484 BLAKE2B 
82a2900b0daa00bcfd72d562818ada25fe15901991a896a46ecdd9304e03066c4e7a3804287540559df1c74dbd1b3983b450ab783ee8cb7f0d7ec152f3cdc6b0
 SHA512 
5987ae31cda3a5db18ceded201ccbe66263b8ab7665ceacf70af6bb6b99130377b40514b96644b0768fd809b36ee02580520923c11c1edecccc75da15d7bb0bd
 DIST mysql-connector-c++-8.0.20-src.tar.gz 3774428 BLAKE2B 
a06114432ab21c36fd0b3b91df2382198b2a48871e8e0bfd8c7a94729ed0e29f33599c078c97670fe9d744b13042db52fb89de2294c75eae670a77112d11d251
 SHA512 
3edb7c3d4ccf218a3f76afcf83a6d233b7accd236c05105ab3f7a6610cfd8809a78c78142c82fb60fb0931d2ae0f0f8fdc3ce9caf5f0cde7ef54067a7e20270b
 DIST mysql-connector-c++-8.0.21-src.tar.gz 3788740 BLAKE2B 
1862b4f2c6e2a2bbe8e3044eea2c1d3c8fdb0a319e3758ca44686b79e917a65617e2cfd0e4b698d858ed9ef12c892b4f658eb287f2a8505a5daeeb79d9544c25
 SHA512 
8a64dff2efd16d2891f613fd416ec42ecba2490b428b1778e99822a3051d9c5af3b94006577e9f38a6ebd146d2f3be522cb876f1e42fbf0ac82001b0a62ffa62
+DIST mysql-connector-c++-8.0.22-src.tar.gz 3795112 BLAKE2B 
c5d6f0ebeb4649857f3217a35f3ae885d62be63af4da09815e7eb156538ece4f805578db24bfff3dd44a0e320c025a9936d7edacba69a2786d84dd932c5abb8a
 SHA512 
1975b43fa3f3806cccc685a695f84783164c5b17da10ac14a6013d27c837cc9c63fff01b1ed4b31f22dae60afa68d34ec56ca9c45ca3dac23635e8f0fa845aa4

diff --git 
a/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.22-fix-build.patch 
b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.22-fix-build.patch
new file mode 100644
index 00000000000..ca1b829c1fb
--- /dev/null
+++ 
b/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.22-fix-build.patch
@@ -0,0 +1,322 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -467,7 +467,7 @@ set_target_properties(connector PROPERTIES
+ 
+ 
+ install(TARGETS connector
+-  CONFIGURATIONS Release RelWithDebInfo
++  CONFIGURATIONS Release RelWithDebInfo Gentoo
+   ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT XDevAPIDev
+   RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll
+   LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll
+--- a/cdk/cmake/DepFindProtobuf.cmake
++++ b/cdk/cmake/DepFindProtobuf.cmake
+@@ -48,244 +48,7 @@ if(TARGET Protobuf::pb)
+   return()
+ endif()
+ 
+-message(STATUS "Setting up Protobuf.")
+-
+-set(PB_SOURCE_DIR "${PROJECT_SOURCE_DIR}/protobuf")
+-set(PB_BINARY_DIR "${PROJECT_BINARY_DIR}/protobuf")
+-set(config_stamp "${PB_BINARY_DIR}/config.stamp")
+-set(build_stamp "${PB_BINARY_DIR}/build.stamp")
+-
+-
+-#
+-# Pick build configuration for the protobuf build. Normally we build using the
+-# same build configuration that is used for building CDK (Release/Debug/etc.).
+-# But we also support building CDK under non-standard build configuration
+-# named 'Static' (this is a dirty trick we use to simplify building our MSIs).
+-# Since protobuf does not know 'Static' build configuration, we build protobuf
+-# under 'Release' configuration in that case.
+-#
+-# We need to handle two cases. For some build systems, like Makefiles,
+-# the build configuration is specified at cmake time using CMAKE_BUILD_TYPE
+-# variable. In that case we also set it during protobuf build configuration.
+-# Another case is a multi-configuration build system like MSVC. In this case
+-# we use generator expression to pick correct  configuration when the build
+-# command is invoked below.
+-#
+-
+-set(build_type)
+-if(CMAKE_BUILD_TYPE)
+-  if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]")
+-    set(set_build_type -DCMAKE_BUILD_TYPE=Release)
+-  else()
+-    set(set_build_type -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
+-  endif()
+-endif()
+-
+-set(CONFIG_EXPR
+-  $<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIG>>
+-)
+-
+-set(set_arch)
+-if(CMAKE_GENERATOR_PLATFORM)
+-  set(set_arch -A ${CMAKE_GENERATOR_PLATFORM})
+-endif()
+-
+-set(set_toolset)
+-if(CMAKE_GENERATOR_TOOLSET)
+-  set(set_toolset -T ${CMAKE_GENERATOR_TOOLSET})
+-endif()
+-
+-set(set_system_name)
+-if(CMAKE_SYSTEM_NAME)
+-  set(set_system_name -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
+-  if(CMAKE_SYSTEM_VERSION)
+-    list(APPEND set_system_name 
-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION})
+-  endif()
+-endif()
+-
+-set(set_system_processor)
+-if(CMAKE_SYSTEM_PROCESSOR)
+-  set(set_system_processor -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR})
+-endif()
+-
+-if(NOT EXISTS "${PB_BINARY_DIR}/exports.cmake")
+-
+-  message("==== Configuring Protobuf build using cmake generator: 
${CMAKE_GENERATOR} ${set_arch} ${set_toolset} ${set_system_name}")
+-
+-  file(REMOVE "${PB_BINARY_DIR}/CMakeCache.txt")
+-  file(MAKE_DIRECTORY "${PB_BINARY_DIR}")
+-
+-  # Dirty trick to speed up cmake set up time.
+-  #file(
+-  #  COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}"
+-  #  DESTINATION "${PB_BINARY_DIR}/CMakeFiles"
+-  #)
+-
+-  execute_process(
+-    COMMAND ${CMAKE_COMMAND}
+-      -G "${CMAKE_GENERATOR}"
+-      ${set_arch}
+-      ${set_toolset}
+-      ${set_build_type}
+-      ${set_system_name}
+-      ${set_system_processor}
+-      -DSTATIC_MSVCRT=${STATIC_MSVCRT}
+-      -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
+-      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+-      -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+-      -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+-      -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+-      -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+-      -DCMAKE_CXX_FLAGS_MINSIZEREL=${CMAKE_CXX_FLAGS_MINSIZEREL}
+-      -DCMAKE_STATIC_LINKER_FLAGS=${CMAKE_STATIC_LINKER_FLAGS}
+-      ${PB_SOURCE_DIR}
+-    WORKING_DIRECTORY ${PB_BINARY_DIR}
+-    RESULT_VARIABLE protobuf_config
+-  )
+-
+-  if(protobuf_config)
+-    message(FATAL_ERROR "Could not configure Protobuf build: 
${protobuf_config}")
+-  endif()
+-
+-  message("==== Protobuf build configured.")
+-
+-endif()
+-
+-
+-include(${PB_BINARY_DIR}/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 below we create global protobuf/protobuf-lite targets
+-# and copy their locations from the imported targets.
+-#
+-# Note: we can't use ALIAS library because it does not work with imported
+-# targets
+-#
+-
+-add_library(Protobuf::pb-full STATIC IMPORTED GLOBAL)
+-add_library(Protobuf::pb-lite STATIC IMPORTED GLOBAL)
+-add_executable(Protobuf::protoc IMPORTED GLOBAL)
+-
+-set(TGT_protobuf Protobuf::pb-full)
+-set(TGT_protobuf-lite Protobuf::pb-lite)
+-set(TGT_protoc Protobuf::protoc)
+-
+-foreach(tgt protobuf protobuf-lite protoc)
+-
+-  #message("processing: ${tgt}")
+-
+-  set(loc_list)
+-
+-  foreach(CONF NOCONFIG DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
+-
+-    #message("- CONF: ${CONF}")
+-
+-    get_target_property(LOC pb_${tgt} IMPORTED_LOCATION_${CONF})
+-
+-    if(LOC)
+-
+-      #message("- setting imported location to: ${LOC}")
+-      list(APPEND loc_list "${LOC}")
+-
+-      set_target_properties(${TGT_${tgt}} PROPERTIES
+-        IMPORTED_LOCATION_${CONF} "${LOC}"
+-      )
+-
+-      set_property(TARGET ${TGT_${tgt}} APPEND PROPERTY
+-        IMPORTED_CONFIGURATIONS ${CONF}
+-      )
+-
+-    endif()
+-
+-  endforeach(CONF)
+-
+-  #
+-  # To support 'Static' build configuration the targets imported from the
+-  # Protobuf project need to have IMPORTED_LOCATION_STATIC defined. We use
+-  # 'Release' locations as Protobuf is built using 'Release' configuration in
+-  # that case.
+-  #
+-
+-  get_target_property(LOC ${TGT_${tgt}} IMPORTED_LOCATION_RELEASE)
+-  set_property(TARGET ${TGT_${tgt}} PROPERTY IMPORTED_LOCATION_STATIC ${LOC})
+-
+-endforeach(tgt)
+-
+-
+-#message("Protobuf include path: ${PROTOBUF_INCLUDE_DIR}")
+-set(PROTOBUF_INCLUDE_DIR ${PROTOBUF_INCLUDE_DIR} CACHE INTERNAL "")
+-
+-set_target_properties(Protobuf::pb-lite PROPERTIES
+-  INTERFACE_INCLUDE_DIRECTORIES "${PROTOBUF_INCLUDE_DIR}"
+-)
+-
+-set_target_properties(Protobuf::pb-full PROPERTIES
+-  INTERFACE_LINK_LIBRARIES Protobuf::pb-lite
+-)
+-
+-# On UNIX Protobuf uses pthread library
+-if(UNIX)
+-  set_property(TARGET Protobuf::pb-lite APPEND PROPERTY
+-    INTERFACE_LINK_LIBRARIES pthread
+-  )
+-endif()
+-
+-#
+-# Note: This is needed to correctly compile headers generated by protobuf
+-# with sunpro compiler.
+-#
+-
+-if(SUNPRO)
+-  set_property(TARGET Protobuf::pb-lite APPEND PROPERTY
+-    INTERFACE_COMPILE_DEFINITIONS SOLARIS_64BIT_ENABLED
+-  )
+-endif()
+-
+-#
+-# Try using parallel builds for protobuf.
+-#
+-
+-include(ProcessorCount)
+-ProcessorCount(N)
+-
+-MESSAGE("Processor Count: ${N}")
+-
+-set(opt_build)
+-set(opt_tool)
+-if(NOT N EQUAL 0)
+-  if(NOT CMAKE_VERSION VERSION_LESS 3.12)
+-    set(opt_build --parallel ${N})
+-  elseif(CMAKE_MAKE_PROGRAM MATCHES "make")
+-    set(opt_tool -j${N})
+-  endif()
+-endif()
+-
+-add_custom_command(OUTPUT "${build_stamp}"
+-  COMMAND ${CMAKE_COMMAND} --build . ${opt_build} --config ${CONFIG_EXPR} -- 
${opt_tool}
+-  COMMAND ${CMAKE_COMMAND} -E touch "${build_stamp}"
+-  WORKING_DIRECTORY "${PB_BINARY_DIR}"
+-  COMMENT "Building protobuf"
+-)
+-
+-add_custom_target(build_protobuf
+-  SOURCES "${build_stamp}"
+-)
+-
+-set_target_properties(build_protobuf PROPERTIES FOLDER "Misc")
+-
+-add_dependencies(Protobuf::pb-full build_protobuf)
+-add_dependencies(Protobuf::pb-lite build_protobuf)
+-add_dependencies(Protobuf::protoc  build_protobuf)
+-
+-# TODO: Handle lite/full version
+-
+-
++find_package(Protobuf REQUIRED)
+ 
+ # Standard PROTOBUF_GENERATE_CPP modified to our usage
+ 
+@@ -314,11 +77,11 @@ function(mysqlx_protobuf_generate_cpp SRCS HDRS)
+              "${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.h"
+       COMMAND ${CMAKE_COMMAND}
+             -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
+-      COMMAND Protobuf::protoc
++      COMMAND ${Protobuf_PROTOC_EXECUTABLE}
+       ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
+            -I ${ABS_PATH} ${ABS_FIL}
+-           --proto_path=${PROJECT_SOURCE_DIR}/protobuf/protobuf-3.6.1/src
+-      DEPENDS ${ABS_FIL} #${PROTOBUF_PROTOC_EXECUTABLE}
++           --proto_path=${Protobuf_INCLUDE_DIR}
++      DEPENDS ${ABS_FIL} #${Protobuf_PROTOC_EXECUTABLE}
+       COMMENT "Running C++ protocol buffer compiler on ${FIL}"
+       VERBATIM
+     )
+--- a/cdk/core/CMakeLists.txt
++++ b/cdk/core/CMakeLists.txt
+@@ -45,7 +45,7 @@ add_library(cdk STATIC ${cdk_sources} ${HEADERS})
+ 
+ target_link_libraries(cdk
+   PUBLIC  cdk_mysqlx cdk_parser
+-  PRIVATE Protobuf::pb-lite  # required by codecc.cc
++  PRIVATE protobuf  # required by codecc.cc
+ )
+ 
+ add_coverage(cdk)
+--- a/cdk/protocol/mysqlx/CMakeLists.txt
++++ b/cdk/protocol/mysqlx/CMakeLists.txt
+@@ -127,11 +127,7 @@ target_include_directories(cdk_proto_mysqlx PRIVATE
+   ${CMAKE_CURRENT_BINARY_DIR}
+ )
+ 
+-if(use_full_protobuf)
+-  target_link_libraries(cdk_proto_mysqlx PRIVATE Protobuf::pb-full)
+-else()
+-  target_link_libraries(cdk_proto_mysqlx PRIVATE Protobuf::pb-lite)
+-endif()
++target_link_libraries(cdk_proto_mysqlx PRIVATE protobuf)
+ 
+ target_link_libraries(cdk_proto_mysqlx PRIVATE cdk_foundation zlib lz4 zstd)
+ 
+--- a/jdbc.cmake
++++ b/jdbc.cmake
+@@ -66,7 +66,7 @@ if(MYSQL_CONFIG_EXECUTABLE)
+   list(APPEND jdbc_cmake_opts 
-DMYSQL_CONFIG_EXECUTABLE=${MYSQL_CONFIG_EXECUTABLE})
+ endif()
+ 
+-list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON)
++list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=OFF)
+ 
+ if(CMAKE_BUILD_TYPE)
+   if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]")
+--- a/jdbc/CMakeLists.txt
++++ b/jdbc/CMakeLists.txt
+@@ -299,7 +299,7 @@ endif()
+ 
+ 
+ install(TARGETS connector-jdbc
+-  CONFIGURATIONS Release RelWithDebInfo
++  CONFIGURATIONS Release RelWithDebInfo Gentoo
+   ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT JDBCDev
+   RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll
+   LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll

diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.22.ebuild 
b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.22.ebuild
new file mode 100644
index 00000000000..5abc5913d53
--- /dev/null
+++ b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.22.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake
+
+DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
+HOMEPAGE="https://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="Artistic GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="+legacy libressl"
+
+RDEPEND="
+       dev-libs/protobuf:=
+       legacy? (
+               dev-libs/boost:=
+               >=dev-db/mysql-connector-c-6.1.8:=
+       )
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl:0= )"
+DEPEND="${RDEPEND}"
+S="${WORKDIR}/${P}-src"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-8.0.22-fix-build.patch
+       "${FILESDIR}"/${PN}-8.0.20-fix-libressl-support.patch
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DWITH_SSL=system
+               -DWITH_JDBC=$(usex legacy ON OFF)
+               $(usex legacy '-DMYSQLCLIENT_STATIC_BINDING=0' '')
+               $(usex legacy '-DMYSQLCLIENT_STATIC_LINKING=0' '')
+       )
+
+       cmake_src_configure
+}

Reply via email to