-
Notifications
You must be signed in to change notification settings - Fork 741
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
databases/mysql-connector-odbc-80: New port
MySQL Connector ODBC is an ODBC driver for interfacing to MySQL databases. This is specific to mysql version 8.0.X branch.
- Loading branch information
Showing
7 changed files
with
313 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
PORTNAME= mysql-connector-odbc | ||
PORTVERSION= 8.0.32 | ||
CATEGORIES= databases | ||
MASTER_SITES= MYSQL/Connector-ODBC/8.0 | ||
PKGNAMESUFFIX= -${DRIVER_MANAGER}-mysql${MYSQL_VER} | ||
DISTNAME= ${PORTNAME}-${PORTVERSION}-src | ||
|
||
MAINTAINER= bofh@FreeBSD.org | ||
COMMENT= ODBC driver for MySQL${MYSQL_VER} / ${DRIVER_MANAGER} | ||
WWW= https://www.mysql.com/ | ||
|
||
LICENSE= GPLv2 | ||
LICENSE_FILE= ${WRKSRC}/LICENSE.txt | ||
|
||
LIB_DEPENDS= libodbc.so:databases/unixODBC \ | ||
libunwind.so:devel/libunwind \ | ||
libzstd.so:archivers/zstd | ||
|
||
USES= cmake compiler:c++11-lang localbase:ldflags mysql:80 ssl | ||
IGNORE_WITH_MYSQL= 56 57 101m 102m 103m 57p 57w | ||
USE_LDCONFIG= yes | ||
|
||
CMAKE_ARGS= -DWITH_UNIXODBC=1 -DDISABLE_GUI=1 | ||
|
||
DRIVER_MANAGER= unixodbc | ||
|
||
PLIST_FILES= bin/myodbc-installer \ | ||
lib/libmyodbc8a.so \ | ||
lib/libmyodbc8w.so \ | ||
test/dltest | ||
PORTDOCS= * | ||
|
||
OPTIONS_DEFINE= DOCS | ||
|
||
post-install: | ||
@${RM} ${STAGEDIR}${PREFIX}/INFO_BIN | ||
@${RM} ${STAGEDIR}${PREFIX}/INFO_SRC | ||
|
||
.include <bsd.port.mk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TIMESTAMP = 1675358550 | ||
SHA256 (mysql-connector-odbc-8.0.32-src.tar.gz) = 068f275afccc69e2ea5ea0d59ea0ecf0380710f9a9f6158e4751f07d5eec84a2 | ||
SIZE (mysql-connector-odbc-8.0.32-src.tar.gz) = 3845574 |
234 changes: 234 additions & 0 deletions
234
databases/mysql-connector-odbc-80/files/patch-CMakeLists.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
--- CMakeLists.txt.orig 2022-12-10 21:58:26 UTC | ||
+++ CMakeLists.txt | ||
@@ -458,7 +458,7 @@ IF(WIN32) | ||
|
||
if (FIX_WARNINGS) | ||
|
||
- # TODO: Increase warning level and once all warnings are cleared, enable | ||
+ # TODO: Increase warning level and once all warnings are cleared, enable | ||
# higher warning level in MAINTAINER_MODE. We start with no warnings on | ||
# level /W1 | ||
|
||
@@ -478,7 +478,7 @@ ELSE(WIN32) | ||
if(FIX_WARNINGS) | ||
|
||
# TODO: Fix the compile warnings generated without `-w`. Once done, | ||
- # remove this option in MAINTAINER_MODE so that we see when new | ||
+ # remove this option in MAINTAINER_MODE so that we see when new | ||
# warnings appear. Then proceed to `-w extra`. | ||
|
||
add_compile_options(-Werror) | ||
@@ -486,7 +486,7 @@ ELSE(WIN32) | ||
else() | ||
|
||
add_compile_options( -w ) | ||
- | ||
+ | ||
endif() | ||
|
||
ENDIF(WIN32) | ||
@@ -517,7 +517,6 @@ ADD_SUBDIRECTORY(installer) | ||
|
||
ADD_SUBDIRECTORY(dltest) | ||
ADD_SUBDIRECTORY(installer) | ||
-ADD_SUBDIRECTORY(test) | ||
|
||
# For dynamic linking use the built-in sys and strings | ||
IF(NOT MYSQLCLIENT_STATIC_LINKING) | ||
@@ -591,10 +590,10 @@ INCLUDE(cmake/info_bin.cmake) | ||
#------------ Installation --------------------------- | ||
INCLUDE(cmake/info_bin.cmake) | ||
|
||
-INSTALL(FILES LICENSE.txt DESTINATION .) | ||
+INSTALL(FILES LICENSE.txt DESTINATION ./share/doc/mysql-connector-odbc/) | ||
|
||
if(EXISTS "${CMAKE_SOURCE_DIR}/README.txt") | ||
- INSTALL(FILES README.txt DESTINATION .) | ||
+ INSTALL(FILES README.txt DESTINATION ./share/doc/mysql-connector-odbc/) | ||
else() | ||
INSTALL(FILES README.md DESTINATION .) | ||
INSTALL(FILES CONTRIBUTING.md DESTINATION .) | ||
@@ -658,7 +657,7 @@ ELSE(WIN32) | ||
|
||
ELSE(WIN32) | ||
|
||
- INSTALL(FILES ChangeLog DESTINATION .) | ||
+ INSTALL(FILES ChangeLog DESTINATION ./share/doc/mysql-connector-odbc/) | ||
|
||
ENDIF(WIN32) | ||
|
||
@@ -666,16 +665,16 @@ ENDIF(WIN32) | ||
# Bundle 3rd party dependencies if needed | ||
# ======================================= | ||
|
||
-# If build is configured with BUNDEL_DEPENDENCIES enabled then client-side | ||
-# plugins, their dependencies and other dependencies of the client library that | ||
-# are found at the client library installation location are copied to the | ||
+# If build is configured with BUNDEL_DEPENDENCIES enabled then client-side | ||
+# plugins, their dependencies and other dependencies of the client library that | ||
+# are found at the client library installation location are copied to the | ||
# location where ODBC driver is installed. | ||
# | ||
-# The lists of known plugins and 3rd party libraries are specified below. Only | ||
-# the specified plugins and libraries will be bundled. Also plugins and | ||
-# libraries that can be found with the server but which should be ignored are | ||
-# specified below. When building in MAINTAINER_MODE cmake will report error if | ||
-# it finds a plugin or 3rd party librariy which is not listed here. When that | ||
+# The lists of known plugins and 3rd party libraries are specified below. Only | ||
+# the specified plugins and libraries will be bundled. Also plugins and | ||
+# libraries that can be found with the server but which should be ignored are | ||
+# specified below. When building in MAINTAINER_MODE cmake will report error if | ||
+# it finds a plugin or 3rd party librariy which is not listed here. When that | ||
# happens the lists should be updated. | ||
# | ||
# TODO: Move these checks to cmake/FindMySQL.cmake ? | ||
@@ -697,20 +696,20 @@ endif() | ||
# Plugin dependencies. | ||
# | ||
# Warning: If one library name is a prefix of the other, the longer name | ||
-# should be listed first, otherwise the logic detecting missing dependencies | ||
+# should be listed first, otherwise the logic detecting missing dependencies | ||
# will break... For example: `krb5support` must go before `krb5` | ||
|
||
set(AUTH_DEPS_fido fido2) | ||
|
||
if(WIN32) | ||
- set(AUTH_DEPS_kerberos | ||
+ set(AUTH_DEPS_kerberos | ||
comerr gssapi k5sprt krbcc xpprof krb5 | ||
) | ||
else() | ||
set(AUTH_DEPS_kerberos gssapi_krb5 k5crypto krb5support krb5 com_err) | ||
endif() | ||
|
||
-# Note: On Solaris and macOS all dependencies of ldap_sasl plugin are assumed | ||
+# Note: On Solaris and macOS all dependencies of ldap_sasl plugin are assumed | ||
# to be part of the OS. | ||
|
||
if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES "SunOS") | ||
@@ -730,7 +729,7 @@ set(BUNDLED_LIBS | ||
libssl libcrypto ssleay libeay | ||
) | ||
|
||
-# List plugins and other libraries that can be found bundled with the server | ||
+# List plugins and other libraries that can be found bundled with the server | ||
# but which are not relevant on client-side and can be safely ignored. | ||
|
||
set(IGNORED_PLUGINS qa_auth_client) | ||
@@ -797,11 +796,11 @@ endfunction(bundle_lib) | ||
|
||
|
||
# Bundle libraries listed in a list variable ${to_bundle}. | ||
-# Libraries that were found and bundled are removed from ${to_bundle} list. | ||
-# Other libraries found but not listed in ${to_bundle} are returned | ||
+# Libraries that were found and bundled are removed from ${to_bundle} list. | ||
+# Other libraries found but not listed in ${to_bundle} are returned | ||
# in ${ignored} variable. | ||
-# If additional arguments are given, they are used as glob expressions to find | ||
-# the libraries to be bundled, otherwise 3rd parties bundled in with the server | ||
+# If additional arguments are given, they are used as glob expressions to find | ||
+# the libraries to be bundled, otherwise 3rd parties bundled in with the server | ||
# are searched in ${MYSQL_LIB_DIR} locations. | ||
|
||
macro(bundle_libs to_bundle ignored) | ||
@@ -811,12 +810,12 @@ macro(bundle_libs to_bundle ignored) | ||
if(ARGN) | ||
|
||
file(GLOB _bundled ${ARGN}) | ||
- | ||
+ | ||
else() | ||
|
||
file(GLOB _bundled | ||
"${MYSQL_LIB_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}*" | ||
- "${MYSQL_LIB_DIR}/private/*${CMAKE_SHARED_LIBRARY_SUFFIX}*" | ||
+ "${MYSQL_LIB_DIR}/private/*${CMAKE_SHARED_LIBRARY_SUFFIX}*" | ||
) | ||
|
||
# On windows, libs are in bin directory | ||
@@ -865,9 +864,9 @@ endmacro(bundle_libs) | ||
endmacro(bundle_libs) | ||
|
||
|
||
-# Bundle plugins listed in PLUGINS list. Each bundled plugin P is removed from | ||
-# the list and its dependedencies listed in DEPS_${P} are also bundled. Client | ||
-# side plugins found with the server and not listed in PLUGINS are returned | ||
+# Bundle plugins listed in PLUGINS list. Each bundled plugin P is removed from | ||
+# the list and its dependedencies listed in DEPS_${P} are also bundled. Client | ||
+# side plugins found with the server and not listed in PLUGINS are returned | ||
# in ${ignored} list. | ||
|
||
macro(bundle_plugins ignored) | ||
@@ -888,7 +887,7 @@ macro(bundle_plugins ignored) | ||
|
||
#message("== looking at client-side plugin: ${lib_name}") | ||
|
||
- # Match plugin name against names in PLUGINS list and in case of match | ||
+ # Match plugin name against names in PLUGINS list and in case of match | ||
# remove that name from the list | ||
|
||
unset(plugin) | ||
@@ -926,7 +925,7 @@ macro(bundle_plugins ignored) | ||
set(sasl_bundled 1) | ||
endif() | ||
|
||
- # On Windows the MIT Kerberos library uses ccapiserver.exe application | ||
+ # On Windows the MIT Kerberos library uses ccapiserver.exe application | ||
# in some scenarios - we need to bundle it as well. | ||
|
||
if(WIN32 AND "${DEPS_${plugin}}" MATCHES "krb5") | ||
@@ -1000,7 +999,7 @@ if(BUNDLE_DEPENDENCIES) | ||
endforeach() | ||
|
||
# Bundle the plugins and their dependencies. | ||
- | ||
+ | ||
unset(ingored) | ||
bundle_plugins(ignored) | ||
|
||
@@ -1012,7 +1011,7 @@ if(BUNDLE_DEPENDENCIES) | ||
|
||
foreach(plugin ${IGNORED_PLUGINS}) | ||
|
||
- # Note: Old cmake (seen with 3.13.4) generates this error on | ||
+ # Note: Old cmake (seen with 3.13.4) generates this error on | ||
# list(FILTER...) if the list is empty: | ||
# "list sub-command FILTER requires list to be present" | ||
|
||
@@ -1037,8 +1036,8 @@ if(BUNDLE_DEPENDENCIES) | ||
|
||
message(STATUS "Looking for bundled client lib dependencies") | ||
|
||
- # Bundle additional libraries listed in BUNDLED_LIBS | ||
- # For OpenSSL libs, first look in the location of the library that | ||
+ # Bundle additional libraries listed in BUNDLED_LIBS | ||
+ # For OpenSSL libs, first look in the location of the library that | ||
# is actually being used in the build. | ||
|
||
#message("== BUNDLED_LIBS: ${BUNDLED_LIBS}") | ||
@@ -1052,12 +1051,12 @@ if(BUNDLE_DEPENDENCIES) | ||
unset(extra_libs) | ||
bundle_libs(BUNDLED_LIBS extra_libs) | ||
|
||
- # In MAINTAINER_MODE check whether all 3rd party libs found but not bundled | ||
+ # In MAINTAINER_MODE check whether all 3rd party libs found but not bundled | ||
# are listed in IGNORED_LIBS | ||
|
||
if(MAINTAINER_MODE) | ||
|
||
- # Extend ignore list with libraries that are dependencies of known plugins | ||
+ # Extend ignore list with libraries that are dependencies of known plugins | ||
# and are not listed in BUNDLED_LIBS. Otherwise we would get false errors | ||
# below. | ||
|
||
@@ -1065,8 +1064,8 @@ if(BUNDLE_DEPENDENCIES) | ||
list(APPEND IGNORED_LIBS ${DEPS_${plugin}}) | ||
endforeach() | ||
|
||
- # Remove from ${extra_libs} the libraries that we know we should ignore. | ||
- # Also the openssl libs that might end up in ${extra_libs} bacause of two | ||
+ # Remove from ${extra_libs} the libraries that we know we should ignore. | ||
+ # Also the openssl libs that might end up in ${extra_libs} bacause of two | ||
# stage search logic above. | ||
|
||
#message("== extra_libs: ${extra_libs}") |
11 changes: 11 additions & 0 deletions
11
databases/mysql-connector-odbc-80/files/patch-driver_dll.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- driver/dll.cc.orig 2022-12-10 21:58:26 UTC | ||
+++ driver/dll.cc | ||
@@ -145,7 +145,7 @@ void myodbc_end() | ||
This eliminates the delay when mysys_end() is called and other threads | ||
have been initialized but not ended. | ||
*/ | ||
- my_thread_end_wait_time= 0; | ||
+ static uint my_thread_end_wait_time= 0; | ||
#endif | ||
|
||
mysql_library_end(); |
24 changes: 24 additions & 0 deletions
24
databases/mysql-connector-odbc-80/files/patch-include_mysql-8.0_my__sys.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- include/mysql-8.0/my_sys.h.orig 2022-12-10 21:58:26 UTC | ||
+++ include/mysql-8.0/my_sys.h | ||
@@ -34,8 +34,12 @@ | ||
#include "my_config.h" | ||
|
||
#ifdef HAVE_ALLOCA_H | ||
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) | ||
+#include <stdlib.h> | ||
+#else | ||
#include <alloca.h> | ||
#endif | ||
+#endif | ||
#include <limits.h> | ||
#ifdef _WIN32 | ||
#include <malloc.h> | ||
@@ -322,6 +326,8 @@ typedef int (*IO_CACHE_CALLBACK)(IO_CACHE *); | ||
|
||
struct IO_CACHE; | ||
typedef int (*IO_CACHE_CALLBACK)(IO_CACHE *); | ||
+ | ||
+typedef unsigned long ulong; | ||
|
||
struct IO_CACHE_SHARE { | ||
mysql_mutex_t mutex; /* To sync on reads into buffer. */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
MySQL Connector ODBC is an ODBC driver for interfacing to MySQL databases. |