summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Evans <grknight@gentoo.org>2018-04-20 15:50:07 -0400
committerBrian Evans <grknight@gentoo.org>2018-04-20 15:53:30 -0400
commit26d97038888aa552e96183fefa68e632709febfb (patch)
tree47c33c63508c692e692e9c99de5497e84b2bd5e9 /dev-db/mysql-connector-c++
parentx11-misc/zim: fdo-mime->xdg-utils (diff)
downloadgentoo-26d97038888aa552e96183fefa68e632709febfb.tar.gz
gentoo-26d97038888aa552e96183fefa68e632709febfb.tar.bz2
gentoo-26d97038888aa552e96183fefa68e632709febfb.zip
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
Diffstat (limited to 'dev-db/mysql-connector-c++')
-rw-r--r--dev-db/mysql-connector-c++/Manifest1
-rw-r--r--dev-db/mysql-connector-c++/files/8.0.11-fix-build.patch276
-rw-r--r--dev-db/mysql-connector-c++/metadata.xml1
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.11.ebuild38
4 files changed, 316 insertions, 0 deletions
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 <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 4a8503781eb7..7b402c140aa3 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-bugs@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 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
+}