diff options
author | Nikolai Lifanov <lifanov@FreeBSD.org> | 2017-01-08 04:34:46 +0800 |
---|---|---|
committer | Nikolai Lifanov <lifanov@FreeBSD.org> | 2017-01-08 04:34:46 +0800 |
commit | c93ab7fefa27cc2640ad10481f106ecc089d83d5 (patch) | |
tree | 317be9105acc04fa055523ebb9f20f1cc249c71f | |
parent | 762deaa84770083e4961228f69acee8cc8b54293 (diff) | |
download | freebsd-ports-gnome-c93ab7fefa27cc2640ad10481f106ecc089d83d5.tar.gz freebsd-ports-gnome-c93ab7fefa27cc2640ad10481f106ecc089d83d5.tar.zst freebsd-ports-gnome-c93ab7fefa27cc2640ad10481f106ecc089d83d5.zip |
add databases/mysql80-server and databases/mysql80-client
This is a development snapshot of upcoming MySQL 8.0.
PR: 215738
Submitted by: Mahdi Mokhtari <mokhi64@gmail.com>
Reviewed by: matthew, feld
Approved by: matthew (mentor), feld
Differential Revision: https://reviews.freebsd.org/D9031
65 files changed, 1844 insertions, 1 deletions
diff --git a/Mk/Uses/mysql.mk b/Mk/Uses/mysql.mk index b8a40eb34ab7..0432e8a6ae9a 100644 --- a/Mk/Uses/mysql.mk +++ b/Mk/Uses/mysql.mk @@ -65,6 +65,7 @@ MYSQL55p_LIBVER= 18 MYSQL56_LIBVER= 18 MYSQL56p_LIBVER= 18 MYSQL57_LIBVER= 20 +MYSQL80_LIBVER= 21 MYSQL100m_LIBVER= 18 MYSQL101m_LIBVER= 18 diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 699dad3faf98..89cc15e9c6ed 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -49,7 +49,7 @@ WARNING+= "OVERRIDE_LINUX_BASE_PORT is deprecated, please use DEFAULT_VERSIONS+ .endif # Possible values: 5.1, 5.2, 5.3 LUA_DEFAULT?= 5.2 -# Possible values: 5.1, 5.5, 5.6, 5.7, 5.5m, 10.0m, 10.1m, 5.5p, 5.6p +# Possible values: 5.1, 5.5, 5.6, 5.7, 8.0, 5.5m, 10.0m, 10.1m, 5.5p, 5.6p MYSQL_DEFAULT?= 5.6 # Possible values: 5.20, 5.22, devel .if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \ diff --git a/databases/Makefile b/databases/Makefile index e5098119dca3..156e488d8881 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -223,6 +223,8 @@ SUBDIR += mysql56-server SUBDIR += mysql57-client SUBDIR += mysql57-server + SUBDIR += mysql80-client + SUBDIR += mysql80-server SUBDIR += mysqlbackup SUBDIR += mysqlbigram SUBDIR += mysqldump-secure diff --git a/databases/mysql80-client/Makefile b/databases/mysql80-client/Makefile new file mode 100644 index 000000000000..072b480c56a5 --- /dev/null +++ b/databases/mysql80-client/Makefile @@ -0,0 +1,42 @@ +# Created by: "Mahdi Mokhtari <mokhi64@gmail.com>" +# $FreeBSD$ + +PORTNAME= mysql +PORTREVISION?= 0 +PKGNAMESUFFIX= 80-client + +COMMENT= Multithreaded SQL database (client) + +LICENSE+= LGPL21 + +BROKEN_powerpc64= Does not build +BROKEN_sparc64= Does not build: reports unsupported compiler + +MASTERDIR= ${.CURDIR}/../mysql80-server + +PKGMESSAGE= ${.CURDIR}/pkg-message +PATCHDIR= ${.CURDIR}/files +PLIST= ${.CURDIR}/pkg-plist + +CONFLICTS_INSTALL= mysql8[1-9]-client-* \ + mysql[0-79][0-9]-client-* \ + mariadb[0-9][0-9]-client-* \ + percona[0-9][0-9]-client-* + +CMAKE_ARGS+= -DWITHOUT_SERVER=1 + +USE_LDCONFIG+= ${PREFIX}/lib/mysql + +MMAN1= comp_err.1 msql2mysql.1 mysql.1 mysql_config.1 mysql_config_editor.1 mysql_find_rows.1 \ + mysql_waitpid.1 mysqlaccess.1 mysqladmin.1 mysqlbinlog.1 \ + mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlshow.1 mysqlslap.1 + +CLIENT_ONLY= yes + +# issue 166367: adding symlinks for back-compatibility with ${lib}_r +post-install: + @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a + @${LN} -s libmysqlclient.so ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so + @${LN} -s libmysqlclient.so.21 ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so.21 + +.include "${MASTERDIR}/Makefile" diff --git a/databases/mysql80-client/files/patch-CMakeLists.txt b/databases/mysql80-client/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..4d202eb72f10 --- /dev/null +++ b/databases/mysql80-client/files/patch-CMakeLists.txt @@ -0,0 +1,36 @@ +--- CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ CMakeLists.txt +@@ -606,8 +606,8 @@ ENDIF() + + ADD_SUBDIRECTORY(extra) + ADD_SUBDIRECTORY(client) +-ADD_SUBDIRECTORY(sql/share) + ADD_SUBDIRECTORY(libservices) ++ADD_SUBDIRECTORY(support-files) + + IF(UNIX) + ADD_SUBDIRECTORY(man) +@@ -676,14 +676,13 @@ ELSE() + SET(CPACK_GENERATOR "TGZ") + ENDIF() + ADD_SUBDIRECTORY(packaging/WiX) +-ADD_SUBDIRECTORY(packaging/solaris) + + IF(UNIX) +- INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) + ENDIF() + # + # RPM installs documentation directly from the source tree + # ++IF(FALSE) + IF(NOT INSTALL_LAYOUT MATCHES "RPM") + INSTALL(FILES COPYING LICENSE.mysql + DESTINATION ${INSTALL_DOCREADMEDIR} +@@ -706,6 +705,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") + PATTERN "sp-imp-spec.txt" EXCLUDE + ) + ENDIF() ++ENDIF() + + INCLUDE(CPack) + diff --git a/databases/mysql80-client/files/patch-client_CMakeLists.txt b/databases/mysql80-client/files/patch-client_CMakeLists.txt new file mode 100644 index 000000000000..35bf110e5346 --- /dev/null +++ b/databases/mysql80-client/files/patch-client_CMakeLists.txt @@ -0,0 +1,36 @@ +--- client/CMakeLists.txt.orig 2016-08-25 12:32:09 UTC ++++ client/CMakeLists.txt +@@ -47,6 +47,7 @@ IF(UNIX) + TARGET_LINK_LIBRARIES(mysql ${EDITLINE_LIBRARY}) + ENDIF(UNIX) + ++IF(FALSE) + IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysql_upgrade + upgrade/program.cc +@@ -57,11 +58,14 @@ ADD_COMPILE_FLAGS( + TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient client_base mysqlcheck_core) + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs GenSysSchema) + ENDIF() ++ENDIF() + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc COMPONENT Test) + SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS") + TARGET_LINK_LIBRARIES(mysqltest mysqlclient regex) + ADD_DEPENDENCIES(mysqltest GenError GenClientError) ++ENDIF() + + ADD_CONVENIENCE_LIBRARY(mysqlcheck_core check/mysqlcheck_core.cc) + TARGET_LINK_LIBRARIES(mysqlcheck_core mysqlclient) +@@ -113,8 +117,10 @@ TARGET_LINK_LIBRARIES(mysqlslap mysqlcli + MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc) + TARGET_LINK_LIBRARIES(mysql_config_editor mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc) + TARGET_LINK_LIBRARIES(mysql_secure_installation mysqlclient) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup mysql_ssl_rsa_setup.cc path.cc logger.cc) + TARGET_LINK_LIBRARIES(mysql_ssl_rsa_setup mysys mysys_ssl) diff --git a/databases/mysql80-client/files/patch-cmake_os_DragonFly.cmake b/databases/mysql80-client/files/patch-cmake_os_DragonFly.cmake new file mode 100644 index 000000000000..83c154ee3bcf --- /dev/null +++ b/databases/mysql80-client/files/patch-cmake_os_DragonFly.cmake @@ -0,0 +1,27 @@ +--- cmake/os/DragonFly.cmake.orig 2016-04-14 10:16:17 UTC ++++ cmake/os/DragonFly.cmake +@@ -0,0 +1,24 @@ ++INCLUDE(CheckCSourceRuns) ++ ++# We require at least GCC 4.4 or Clang 3.3. ++IF(NOT FORCE_UNSUPPORTED_COMPILER) ++ IF(CMAKE_COMPILER_IS_GNUCC) ++ EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion ++ OUTPUT_VARIABLE GCC_VERSION) ++ IF(GCC_VERSION VERSION_LESS 4.4) ++ MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!") ++ ENDIF() ++ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ CHECK_C_SOURCE_RUNS(" ++ int main() ++ { ++ return (__clang_major__ < 3) || ++ (__clang_major__ == 3 && __clang_minor__ < 3); ++ }" HAVE_SUPPORTED_CLANG_VERSION) ++ IF(NOT HAVE_SUPPORTED_CLANG_VERSION) ++ MESSAGE(FATAL_ERROR "Clang 3.3 or newer is required!") ++ ENDIF() ++ ELSE() ++ MESSAGE(FATAL_ERROR "Unsupported compiler!") ++ ENDIF() ++ENDIF() diff --git a/databases/mysql80-client/files/patch-cmake_ssl.cmake b/databases/mysql80-client/files/patch-cmake_ssl.cmake new file mode 100644 index 000000000000..c9a66c421b23 --- /dev/null +++ b/databases/mysql80-client/files/patch-cmake_ssl.cmake @@ -0,0 +1,15 @@ +--- cmake/ssl.cmake.orig 2016-08-12 10:55:07 UTC ++++ cmake/ssl.cmake +@@ -179,6 +179,12 @@ MACRO (MYSQL_CHECK_SSL) + OPENSSL_MAJOR_VERSION STREQUAL "1" + ) + SET(OPENSSL_FOUND TRUE) ++ ELSEIF(OPENSSL_INCLUDE_DIR AND ++ OPENSSL_LIBRARY AND ++ CRYPTO_LIBRARY AND ++ OPENSSL_MAJOR_VERSION STREQUAL "2" ++ ) ++ SET(OPENSSL_FOUND TRUE) + ELSE() + SET(OPENSSL_FOUND FALSE) + ENDIF() diff --git a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_chartype.h b/databases/mysql80-client/files/patch-cmd-line-utils_libedit_chartype.h new file mode 100644 index 000000000000..34fbf5a45509 --- /dev/null +++ b/databases/mysql80-client/files/patch-cmd-line-utils_libedit_chartype.h @@ -0,0 +1,11 @@ +--- cmd-line-utils/libedit/chartype.h.orig 2016-03-28 18:06:12 UTC ++++ cmd-line-utils/libedit/chartype.h +@@ -49,7 +49,7 @@ + TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */ + #if !defined(__NetBSD__) && !defined(__sun) \ + && !(defined(__APPLE__) && defined(__MACH__)) \ +- && !defined(__FreeBSD__) && !defined(_AIX) ++ && !defined(__FreeBSD__) && !defined(_AIX) && !defined(__DragonFly__) + #ifndef __STDC_ISO_10646__ + /* In many places it is assumed that the first 127 code points are ASCII + * compatible, so ensure wchar_t indeed does ISO 10646 and not some other diff --git a/databases/mysql80-client/files/patch-cmd-line-utils_libedit_vi.c b/databases/mysql80-client/files/patch-cmd-line-utils_libedit_vi.c new file mode 100644 index 000000000000..cb3e255991ab --- /dev/null +++ b/databases/mysql80-client/files/patch-cmd-line-utils_libedit_vi.c @@ -0,0 +1,20 @@ +--- cmd-line-utils/libedit/vi.c.orig 2016-03-28 18:06:12 UTC ++++ cmd-line-utils/libedit/vi.c +@@ -919,7 +919,7 @@ vi_comment_out(EditLine *el, Int c __att + * NB: posix implies that we should enter insert mode, however + * this is against historical precedent... + */ +-#if defined(__weak_reference) && !defined(__FreeBSD__) ++#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) + __weakref_visible char *my_get_alias_text(const char *) + __weak_reference(get_alias_text); + #endif +@@ -928,7 +928,7 @@ protected el_action_t + vi_alias(EditLine *el __attribute__((__unused__)), + Int c __attribute__((__unused__))) + { +-#if defined(__weak_reference) && !defined(__FreeBSD__) ++#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) + char alias_name[3]; + char *alias_text; + diff --git a/databases/mysql80-client/files/patch-extra_CMakeLists.txt b/databases/mysql80-client/files/patch-extra_CMakeLists.txt new file mode 100644 index 000000000000..045b98549e41 --- /dev/null +++ b/databases/mysql80-client/files/patch-extra_CMakeLists.txt @@ -0,0 +1,33 @@ +--- extra/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ extra/CMakeLists.txt +@@ -45,6 +45,7 @@ ENDIF() + + ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/include/mysqld_error.h + ${PROJECT_BINARY_DIR}/sql/share/english/errmsg.sys ++ COMMAND mkdir -p ${PROJECT_BINARY_DIR}/sql/share/ + COMMAND comp_err + --charset=${PROJECT_SOURCE_DIR}/sql/share/charsets + --out-dir=${PROJECT_BINARY_DIR}/sql/share/ +@@ -73,6 +74,7 @@ IF (WIN32 AND WITH_SSL_PATH AND HAVE_CRY + ENDIF() + + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) + TARGET_LINK_LIBRARIES(my_print_defaults mysys mysys_ssl) + SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX) +@@ -142,11 +144,14 @@ IF(WITH_INNOBASE_STORAGE_ENGINE) + TARGET_LINK_LIBRARIES(innochecksum mysys mysys_ssl ${LZ4_LIBRARY}) + ADD_DEPENDENCIES(innochecksum GenError) + ENDIF() ++ENDIF() + ++IF(FALSE) + IF(UNIX) + MYSQL_ADD_EXECUTABLE(resolve_stack_dump resolve_stack_dump.cc) + TARGET_LINK_LIBRARIES(resolve_stack_dump mysys mysys_ssl) + ENDIF() ++ENDIF() + + # In published release builds on Solaris, we need to bundle gcc source. + # PB2 will take care of putting it in extra/ when needed diff --git a/databases/mysql80-client/files/patch-include_CMakeLists.txt b/databases/mysql80-client/files/patch-include_CMakeLists.txt new file mode 100644 index 000000000000..1fc41ad15601 --- /dev/null +++ b/databases/mysql80-client/files/patch-include_CMakeLists.txt @@ -0,0 +1,10 @@ +--- include/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ include/CMakeLists.txt +@@ -38,6 +38,7 @@ SET(HEADERS_ABI + + SET(HEADERS + ${HEADERS_ABI} ++ hash.h + my_dbug.h + m_string.h + my_sys.h diff --git a/databases/mysql80-client/files/patch-include_my__compare.h b/databases/mysql80-client/files/patch-include_my__compare.h new file mode 100644 index 000000000000..1a64142bb658 --- /dev/null +++ b/databases/mysql80-client/files/patch-include_my__compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2016-03-28 18:06:12 UTC ++++ include/my_compare.h +@@ -40,7 +40,7 @@ extern "C" { + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) diff --git a/databases/mysql80-client/files/patch-include_myisam.h b/databases/mysql80-client/files/patch-include_myisam.h new file mode 100644 index 000000000000..0a4b795e9426 --- /dev/null +++ b/databases/mysql80-client/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2016-03-28 18:06:12 UTC ++++ include/myisam.h +@@ -45,7 +45,7 @@ extern "C" { + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) diff --git a/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt b/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt new file mode 100644 index 000000000000..b90821a7f767 --- /dev/null +++ b/databases/mysql80-client/files/patch-libmysql_CMakeLists.txt @@ -0,0 +1,11 @@ +--- libmysql/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ libmysql/CMakeLists.txt +@@ -260,7 +260,7 @@ IF(NOT DISABLE_SHARED) + COMPONENT SharedLibraries) + IF(UNIX) + # libtool compatability +- IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) ++ IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly" OR APPLE) + SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") + ELSE() + SET(OS_SHARED_LIB_VERSION diff --git a/databases/mysql80-client/files/patch-man_CMakeLists.txt b/databases/mysql80-client/files/patch-man_CMakeLists.txt new file mode 100644 index 000000000000..e02a804949d8 --- /dev/null +++ b/databases/mysql80-client/files/patch-man_CMakeLists.txt @@ -0,0 +1,13 @@ +--- man/CMakeLists.txt.orig 2015-11-29 19:16:24 UTC ++++ man/CMakeLists.txt +@@ -15,10 +15,6 @@ + + # Copy man pages + FILE(GLOB MAN1_FILES *.1) +-FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) +-FILE(GLOB MAN1_NDB ndb*.1) +-FILE(GLOB MAN8_FILES *.8) +-FILE(GLOB MAN8_NDB ndb*.8) + IF(MAN1_FILES) + IF(MAN1_EXCLUDE) + LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) diff --git a/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc b/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc new file mode 100644 index 000000000000..ea05679341fa --- /dev/null +++ b/databases/mysql80-client/files/patch-mysys__ssl_my__default.cc @@ -0,0 +1,61 @@ +--- mysys_ssl/my_default.cc.orig 2016-08-25 11:52:06 UTC ++++ mysys_ssl/my_default.cc +@@ -114,7 +114,7 @@ static my_bool defaults_already_read= FA + + /* Which directories are searched for options (and in which order) */ + +-#define MAX_DEFAULT_DIRS 6 ++#define MAX_DEFAULT_DIRS 7 + #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ + static const char **default_directories = NULL; + +@@ -914,6 +914,14 @@ static int search_default_file_with_ext( + return 1; /* Ignore wrong files */ + } + ++ if (strstr(name, "/etc") == name) ++ { ++ fprintf(stderr, ++ "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n", ++ name,name); ++ goto err; ++ } ++ + while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) + { + line++; +@@ -1252,7 +1260,8 @@ void my_print_default_files(const char * + end[(strlen(end)-1)] = ' '; + else + strxmov(end, conf_file, *ext , " ", NullS); +- fputs(name, stdout); ++ if (strstr(name, "/etc") != name) ++ fputs(name, stdout); + } + } + } +@@ -1411,13 +1420,8 @@ static const char **init_default_directo + + #else + +- errors += add_directory(alloc, "/etc/", dirs); +- errors += add_directory(alloc, "/etc/mysql/", dirs); +- +-#if defined(DEFAULT_SYSCONFDIR) +- if (DEFAULT_SYSCONFDIR[0]) +- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); +-#endif /* DEFAULT_SYSCONFDIR */ ++ errors += add_directory(alloc, "/usr/local/etc/", dirs); ++ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); + + #endif + +@@ -1488,7 +1492,7 @@ int check_file_permissions(const char *f + MY_STAT stat_info; + + if (!my_stat(file_name,&stat_info,MYF(0))) +- return 1; ++ return 0; + /* + Ignore .mylogin.cnf file if not exclusively readable/writable + by current user. diff --git a/databases/mysql80-client/files/patch-scripts_CMakeLists.txt b/databases/mysql80-client/files/patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..3e59f3170ddd --- /dev/null +++ b/databases/mysql80-client/files/patch-scripts_CMakeLists.txt @@ -0,0 +1,64 @@ +--- scripts/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ scripts/CMakeLists.txt +@@ -43,6 +43,7 @@ ELSE() + MESSAGE(FATAL_ERROR "Cannot concatenate files") + ENDIF() + ++IF(FALSE) + # Build mysql_fix_privilege_tables.c + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.c +@@ -63,6 +64,7 @@ ADD_CUSTOM_TARGET(GenFixPrivs + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.c + ${CMAKE_CURRENT_BINARY_DIR}/sql_commands_sys_schema.h + ) ++ENDIF() + + # If we do not have performance schema compiled in then sys will not work, + # so only create an empty sys database with an auto-generated file, +@@ -143,6 +145,7 @@ IF(NOT WITHOUT_SERVER) + ) + ENDIF() + ++IF(FALSE) + IF(UNIX) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution + "cd ${CMAKE_BINARY_DIR} && '${CMAKE_CPACK_COMMAND}' -G TGZ --config CPackConfig.cmake\n" ) +@@ -150,6 +153,7 @@ IF(UNIX) + COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/make_binary_distribution + ) + ENDIF() ++ENDIF() + + IF(NOT WITHOUT_SERVER) + INSTALL(FILES +@@ -347,6 +351,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) + GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) + STRING(REGEX REPLACE "^lib" "" lib "${lib}") + SET(${var} "${${var}}-l${lib} " ) ++ ELSEIF(lib STREQUAL "-pthread") ++ SET(${var} "${${var}}-pthread " ) + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -430,19 +436,7 @@ ELSE() + # On Unix, most of the files end up in the bin directory + SET(mysql_config_COMPONENT COMPONENT Development) + +- IF(WITH_SYSTEMD) +- SET(BIN_SCRIPTS +- mysql_config +- mysqldumpslow +- ) +- ELSE() +- SET(BIN_SCRIPTS +- mysql_config +- mysqldumpslow +- mysqld_multi +- mysqld_safe +- ) +- ENDIF() ++ SET(BIN_SCRIPTS mysql_config) + + SET(PKGCONFIG_FILE ${LIBMYSQL_OS_OUTPUT_NAME}.pc) + STRING(REGEX REPLACE "/mysql$" "" PKGCONFIG_DIR "${INSTALL_LIBDIR}") diff --git a/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.c b/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.c new file mode 100644 index 000000000000..282cffdbcbc5 --- /dev/null +++ b/databases/mysql80-client/files/patch-storage_myisam_mi__dynrec.c @@ -0,0 +1,23 @@ +--- storage/myisam/mi_dynrec.c.orig 2016-03-28 18:06:12 UTC ++++ storage/myisam/mi_dynrec.c +@@ -65,18 +65,13 @@ my_bool mi_dynmap_file(MI_INFO *info, my + DBUG_RETURN(1); + } + /* +- I wonder if it is good to use MAP_NORESERVE. From the Linux man page: +- MAP_NORESERVE +- Do not reserve swap space for this mapping. When swap space is +- reserved, one has the guarantee that it is possible to modify the +- mapping. When swap space is not reserved one might get SIGSEGV +- upon a write if no physical memory is available. ++ MAP_NORESERVE is unimplemented in FreeBSD + */ + info->s->file_map= (uchar*) + my_mmap(0, (size_t) size, + info->s->mode==O_RDONLY ? PROT_READ : + PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_NORESERVE, ++ MAP_SHARED, + info->dfile, 0L); + if (info->s->file_map == (uchar*) MAP_FAILED) + { diff --git a/databases/mysql80-client/files/patch-support-files_CMakeLists.txt b/databases/mysql80-client/files/patch-support-files_CMakeLists.txt new file mode 100644 index 000000000000..218a1e701b67 --- /dev/null +++ b/databases/mysql80-client/files/patch-support-files_CMakeLists.txt @@ -0,0 +1,37 @@ +--- support-files/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ support-files/CMakeLists.txt +@@ -44,14 +44,17 @@ ELSE() + SET(inst_location ${INSTALL_SUPPORTFILESDIR}) + ENDIF() + ++IF(FALSE) + SET(inifile my-default) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${inifile}.cnf.sh + ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} @ONLY) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} + DESTINATION ${inst_location} COMPONENT IniFiles) ++ENDIF() + + IF(UNIX) + SET(prefix ${CMAKE_INSTALL_PREFIX}) ++IF(FALSE) + FOREACH(script mysqld_multi.server mysql-log-rotate) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh + ${CMAKE_CURRENT_BINARY_DIR}/${script} @ONLY ) +@@ -68,9 +71,11 @@ IF(UNIX) + IF(INSTALL_SUPPORTFILESDIR) + INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) + ENDIF() ++ENDIF() + + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) + ++IF(FALSE) + SET(bindir ${prefix}/${INSTALL_BINDIR}) + SET(sbindir ${prefix}/${INSTALL_SBINDIR}) + SET(scriptdir ${prefix}/${INSTALL_SCRIPTDIR}) +@@ -83,3 +88,4 @@ IF(UNIX) + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ + GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + ENDIF() ++ENDIF() diff --git a/databases/mysql80-client/pkg-message b/databases/mysql80-client/pkg-message new file mode 100644 index 000000000000..f94e2e7223fd --- /dev/null +++ b/databases/mysql80-client/pkg-message @@ -0,0 +1,12 @@ +* * * * * * * * * * * * * * * * * * * * * * * * + +This is the mysql CLIENT without the server. +for complete server and client, please install databases/mysql80-server + +* * * * * * * * * * * * * * * * * * * * * * * * + +* * * * * * * * * * * * * * * * * * * * * * * * + +WARNING: THIS IS STILL-IN-DEV PROJECT! USE WITH CAUTION ON PRODUCTION ENVS! + +* * * * * * * * * * * * * * * * * * * * * * * * diff --git a/databases/mysql80-client/pkg-plist b/databases/mysql80-client/pkg-plist new file mode 100644 index 000000000000..5ddbca8c8fe9 --- /dev/null +++ b/databases/mysql80-client/pkg-plist @@ -0,0 +1,163 @@ +bin/mysql +bin/mysql_config +bin/mysql_config_editor +bin/mysql_ssl_rsa_setup +bin/mysqladmin +bin/mysqlbinlog +bin/mysqlcheck +bin/mysqldump +bin/mysqlimport +bin/mysqlpump +bin/mysqlshow +bin/mysqlslap +include/mysql/binary_log_types.h +include/mysql/big_endian.h +include/mysql/byte_order_generic.h +include/mysql/byte_order_generic_x86.h +include/mysql/decimal.h +include/mysql/errmsg.h +include/mysql/hash.h +include/mysql/keycache.h +include/mysql/little_endian.h +include/mysql/m_ctype.h +include/mysql/m_string.h +include/mysql/my_alloc.h +include/mysql/my_byteorder.h +include/mysql/my_command.h +include/mysql/my_compiler.h +include/mysql/my_config.h +include/mysql/my_dbug.h +include/mysql/my_dir.h +include/mysql/my_getopt.h +include/mysql/my_global.h +include/mysql/my_list.h +include/mysql/my_sys.h +include/mysql/my_thread.h +include/mysql/my_thread_local.h +include/mysql/my_xml.h +include/mysql/mysql.h +include/mysql/mysql/client_authentication.h +include/mysql/mysql/client_plugin.h +include/mysql/mysql/client_plugin.h.pp +include/mysql/mysql/com_data.h +include/mysql/mysql/get_password.h +include/mysql/mysql/group_replication_priv.h +include/mysql/mysql/innodb_priv.h +include/mysql/mysql/mysql_lex_string.h +include/mysql/mysql/plugin.h +include/mysql/mysql/plugin_audit.h +include/mysql/mysql/plugin_audit.h.pp +include/mysql/mysql/plugin_auth.h +include/mysql/mysql/plugin_auth.h.pp +include/mysql/mysql/plugin_auth_common.h +include/mysql/mysql/plugin_ftparser.h +include/mysql/mysql/plugin_ftparser.h.pp +include/mysql/mysql/plugin_group_replication.h +include/mysql/mysql/plugin_keyring.h +include/mysql/mysql/plugin_keyring.h.pp +include/mysql/mysql/plugin_query_rewrite.h +include/mysql/mysql/plugin_trace.h +include/mysql/mysql/plugin_validate_password.h +include/mysql/mysql/components/component_implementation.h +include/mysql/mysql/components/my_service.h +include/mysql/mysql/components/service.h +include/mysql/mysql/components/service_implementation.h +include/mysql/mysql/components/services/dynamic_loader.h +include/mysql/mysql/components/services/dynamic_loader_scheme_file.h +include/mysql/mysql/components/services/persistent_dynamic_loader.h +include/mysql/mysql/components/services/registry.h +include/mysql/mysql/psi/mysql_cond.h +include/mysql/mysql/psi/mysql_error.h +include/mysql/mysql/psi/mysql_mutex.h +include/mysql/mysql/psi/mysql_rwlock.h +include/mysql/mysql/psi/psi_cond.h +include/mysql/mysql/psi/psi_error.h +include/mysql/mysql/psi/psi_file.h +include/mysql/mysql/psi/psi_idle.h +include/mysql/mysql/psi/psi_mdl.h +include/mysql/mysql/psi/psi_mutex.h +include/mysql/mysql/psi/psi_rwlock.h +include/mysql/mysql/psi/psi_socket.h +include/mysql/mysql/psi/psi_stage.h +include/mysql/mysql/psi/psi_statement.h +include/mysql/mysql/psi/psi_table.h +include/mysql/mysql/psi/psi_thread.h +include/mysql/mysql/psi/psi_transaction.h +include/mysql/mysql/psi/mysql_file.h +include/mysql/mysql/psi/mysql_idle.h +include/mysql/mysql/psi/mysql_mdl.h +include/mysql/mysql/psi/mysql_memory.h +include/mysql/mysql/psi/mysql_ps.h +include/mysql/mysql/psi/mysql_socket.h +include/mysql/mysql/psi/mysql_sp.h +include/mysql/mysql/psi/mysql_stage.h +include/mysql/mysql/psi/mysql_statement.h +include/mysql/mysql/psi/mysql_table.h +include/mysql/mysql/psi/mysql_thread.h +include/mysql/mysql/psi/mysql_transaction.h +include/mysql/mysql/psi/psi_base.h +include/mysql/mysql/psi/psi_memory.h +include/mysql/mysql/service_command.h +include/mysql/mysql/service_locking.h +include/mysql/mysql/service_my_plugin_log.h +include/mysql/mysql/service_my_snprintf.h +include/mysql/mysql/service_mysql_alloc.h +include/mysql/mysql/service_mysql_keyring.h +include/mysql/mysql/service_mysql_password_policy.h +include/mysql/mysql/service_mysql_string.h +include/mysql/mysql/service_parser.h +include/mysql/mysql/service_rpl_transaction_ctx.h +include/mysql/mysql/service_rpl_transaction_write_set.h +include/mysql/mysql/service_rules_table.h +include/mysql/mysql/service_security_context.h +include/mysql/mysql/service_srv_session.h +include/mysql/mysql/service_srv_session_info.h +include/mysql/mysql/service_ssl_wrapper.h +include/mysql/mysql/service_thd_alloc.h +include/mysql/mysql/service_thd_engine_lock.h +include/mysql/mysql/service_thd_wait.h +include/mysql/mysql/service_thread_scheduler.h +include/mysql/mysql/services.h +include/mysql/mysql/services.h.pp +include/mysql/mysql/thread_pool_priv.h +include/mysql/mysql/thread_type.h +include/mysql/mysql_com.h +include/mysql/mysql_com_server.h +include/mysql/mysql_time.h +include/mysql/mysql_version.h +include/mysql/mysqld_ername.h +include/mysql/mysqld_error.h +include/mysql/plugin.h +include/mysql/plugin_audit.h +include/mysql/plugin_ftparser.h +include/mysql/plugin_group_replication.h +include/mysql/plugin_keyring.h +include/mysql/plugin_validate_password.h +include/mysql/sql_common.h +include/mysql/sslopt-case.h +include/mysql/sslopt-longopts.h +include/mysql/sslopt-vars.h +include/mysql/thr_cond.h +include/mysql/thr_mutex.h +include/mysql/thr_rwlock.h +include/mysql/typelib.h +lib/mysql/libmysqlclient.a +lib/mysql/libmysqlclient.so +lib/mysql/libmysqlclient.so.21 +lib/mysql/libmysqlservices.a +lib/mysql/libmysqlclient_r.a +lib/mysql/libmysqlclient_r.so +lib/mysql/libmysqlclient_r.so.21 +libdata/pkgconfig/mysqlclient.pc +man/man1/comp_err.1.gz +man/man1/mysql.1.gz +man/man1/mysql_config.1.gz +man/man1/mysql_config_editor.1.gz +man/man1/mysqladmin.1.gz +man/man1/mysqlbinlog.1.gz +man/man1/mysqlcheck.1.gz +man/man1/mysqldump.1.gz +man/man1/mysqlimport.1.gz +man/man1/mysqlshow.1.gz +man/man1/mysqlslap.1.gz +share/aclocal/mysql.m4 diff --git a/databases/mysql80-server/Makefile b/databases/mysql80-server/Makefile new file mode 100644 index 000000000000..43006ffd2c86 --- /dev/null +++ b/databases/mysql80-server/Makefile @@ -0,0 +1,167 @@ +# Created by: Mahdi Mokhtari <mokhi64@gmail.com> +# $FreeBSD$ + +PORTNAME?= mysql +PORTVERSION= 8.0.0 +DISTVERSIONSUFFIX?= -dmr +PORTREVISION?= 0 +CATEGORIES= databases ipv6 +MASTER_SITES= MYSQL/MySQL-8.0 +PKGNAMESUFFIX?= 80-server +DISTNAME= ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX} + +MAINTAINER= mokhi64@gmail.com +COMMENT?= Multithreaded SQL database (server) + +LICENSE= GPLv2 + +WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX} + +SLAVEDIRS= databases/mysql80-client +USES= bison:build cmake:outsource compiler:c11 compiler:c++11-lib \ + cpe libedit localbase perl5 shebangfix ssl + +USE_PERL5= run + +MY_DBDIR= /var/db/mysql +MY_SECDIR= /var/db/mysql_secure +MY_TMPDIR= /var/db/mysql_tmpdir + +LIB_DEPENDS+= libevent.so:devel/libevent2 \ + liblz4.so:archivers/liblz4 + +CMAKE_BUILD_TYPE= Release + +CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ + -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \ + -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \ + -DINSTALL_DOCDIR="share/doc/mysql" \ + -DINSTALL_DOCREADMEDIR="share/doc/mysql" \ + -DINSTALL_INCLUDEDIR="include/mysql" \ + -DINSTALL_INFODIR="info" \ + -DINSTALL_LIBDIR="lib/mysql" \ + -DINSTALL_MANDIR="man" \ + -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ + -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \ + -DINSTALL_MYSQLSHAREDIR="share/mysql" \ + -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \ + -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ + -DINSTALL_SBINDIR="libexec" \ + -DINSTALL_SCRIPTDIR="bin" \ + -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \ + -DINSTALL_SHAREDIR="share" \ + -DINSTALL_SUPPORTFILESDIR="share/mysql" \ + -DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \ + -DWITH_BOOST="${WRKSRC}/boost" \ + -DWITH_EDITLINE=system \ + -DWITH_LIBEVENT=system \ + -DWITH_LZ4=system \ + -DWITH_ZLIB=system \ + -DINSTALL_MYSQLTESTDIR=0 + +SHEBANG_FILES= scripts/*.pl* scripts/*.sh + +.ifdef USE_MYSQL +.error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. +.endif + +SUB_LIST= MY_DBDIR=${MY_DBDIR} \ + MY_SECDIR=${MY_SECDIR} \ + MY_TMPDIR=${MY_TMPDIR} + +PLIST_SUB= MY_DBDIR=${MY_DBDIR} \ + MY_SECDIR=${MY_SECDIR} \ + MY_TMPDIR=${MY_TMPDIR} \ + MYSQL80_LIBVER=${MYSQL80_LIBVER} + +# MySQL-Server part +.if !defined(CLIENT_ONLY) +USES+= mysql:80 + +CONFLICTS_INSTALL= mysql8[1-9]-server-* \ + mysql[0-79][0-9]-server-* \ + mariadb[0-9][0-9]-server-* \ + percona[0-9][0-9]-server-* + +USE_RC_SUBR= mysql-server + +SUB_FILES= my.cnf.sample + +USERS= mysql +GROUPS= mysql + +USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin + +MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \ + mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \ + mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \ + mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \ + mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \ + mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1 + +CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" + +OPTIONS_GROUP= STORAGE +OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA +OPTIONS_SUB= YES +STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server) +ARCHIVE_DESC= Compile "Archive Storage" statically in server +BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server +EXAMPLE_DESC= Compile "Example Storage" statically in server +FEDERATED_DESC= Compile "Federated Storage" statically in server +INNOBASE_DESC= Compile "InnoDB Storage" statically in server +PARTITION_DESC= Compile "Partitioning support Storage" statically in server +PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server + +ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 +BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1 +EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 +FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1 +INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 +PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1 +PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 + +OPTIONS_GROUP+= FEATURES +OPTIONS_GROUP_FEATURES= PERFSCHM +FEATURES_DESC= Default features knobs +PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage) +OPTIONS_DEFAULT+= PERFSCHM + +PERFSCHM_SUB_LIST+= PERFSCHEMRC="" +PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" +.endif + +.include <bsd.port.options.mk> + +### Just for the sake of FreeBSD 9.X ### +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1000000 +. if !defined(CLIENT_ONLY) +EXTRA_PATCHES+= ${PATCHDIR}/rapid_plugin-patch-_x_mysqlxtest__src_mysqlxtest.cc +. endif +.endif + +.include <bsd.port.pre.mk> + +.if ${SSL_DEFAULT} == base +BROKEN_FreeBSD_9= FreeBSD 9.x requires SSL from ports +CMAKE_ARGS+= -DWITH_SSL=system +.else +CMAKE_ARGS+= -DWITH_SSL=${OPENSSLBASE} +.endif + +post-extract: + @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h + +post-patch: + @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt + +.if !defined(CLIENT_ONLY) +post-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample + ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring + ${MKDIR} ${STAGEDIR}${MY_SECDIR} + ${MKDIR} ${STAGEDIR}${MY_TMPDIR} +.endif + +.include <bsd.port.post.mk> diff --git a/databases/mysql80-server/distinfo b/databases/mysql80-server/distinfo new file mode 100644 index 000000000000..cd9b2dd6ff9f --- /dev/null +++ b/databases/mysql80-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1483372244 +SHA256 (mysql-boost-8.0.0-dmr.tar.gz) = e5b7b77e532c906dc30f12b821950426b8205a64b5a77c26681e2109a3b6a5fc +SIZE (mysql-boost-8.0.0-dmr.tar.gz) = 65567795 diff --git a/databases/mysql80-server/files/extra-patch-config.h.cmake b/databases/mysql80-server/files/extra-patch-config.h.cmake new file mode 100644 index 000000000000..3ac1add1b9ce --- /dev/null +++ b/databases/mysql80-server/files/extra-patch-config.h.cmake @@ -0,0 +1,12 @@ +--- config.h.cmake.orig 2014-12-05 16:24:02 UTC ++++ config.h.cmake +@@ -151,7 +151,8 @@ + #cmakedefine HAVE_FESETROUND 1 + #cmakedefine HAVE_FINITE 1 + #cmakedefine HAVE_FP_EXCEPT 1 +-#cmakedefine HAVE_FPSETMASK 1 ++#cmakedefine HAVE_FPSETMASK 0 ++#cmakedefine HAVE_FEDISABLEEXCEPT 1 + #cmakedefine HAVE_FSEEKO 1 + #cmakedefine HAVE_FSYNC 1 + #cmakedefine HAVE_FTIME 1 diff --git a/databases/mysql80-server/files/my.cnf.sample.in b/databases/mysql80-server/files/my.cnf.sample.in new file mode 100644 index 000000000000..7d20c4aa558d --- /dev/null +++ b/databases/mysql80-server/files/my.cnf.sample.in @@ -0,0 +1,64 @@ +# $FreeBSD$ + +[client] +port = 3306 +socket = /tmp/mysql.sock + +[mysql] +prompt = \u@\h [\d]>\_ +no_auto_rehash + +[mysqld] +user = mysql +port = 3306 +socket = /tmp/mysql.sock +bind-address = 127.0.0.1 +basedir = %%PREFIX%% +datadir = %%MY_DBDIR%% +tmpdir = %%MY_TMPDIR%% +slave-load-tmpdir = %%MY_TMPDIR%% +secure-file-priv = %%MY_SECDIR%% +log-bin = mysql-bin +log-output = TABLE +master-info-repository = TABLE +relay-log-info-repository = TABLE +relay-log-recovery = 1 +slow-query-log = 1 +server-id = 1 +sync_binlog = 1 +sync_relay_log = 1 +binlog_cache_size = 16M +expire_logs_days = 30 +default_password_lifetime = 0 +enforce-gtid-consistency = 1 +gtid-mode = ON +safe-user-create = 1 +lower_case_table_names = 1 +explicit-defaults-for-timestamp = 1 +myisam-recover-options = BACKUP,FORCE +open_files_limit = 32768 +table_open_cache = 16384 +table_definition_cache = 8192 +net_retry_count = 16384 +key_buffer_size = 256M +max_allowed_packet = 64M +query_cache_type = 0 +query_cache_size = 0 +long_query_time = 0.5 +innodb_buffer_pool_size = 1G +innodb_data_home_dir = %%MY_DBDIR%% +innodb_log_group_home_dir = %%MY_DBDIR%% +innodb_data_file_path = ibdata1:128M:autoextend +innodb_temp_data_file_path = ibtmp1:128M:autoextend +innodb_flush_method = O_DIRECT +innodb_log_file_size = 256M +innodb_log_buffer_size = 16M +innodb_write_io_threads = 8 +innodb_read_io_threads = 8 +innodb_autoinc_lock_mode = 2 +skip-symbolic-links + +[mysqldump] +max_allowed_packet = 256M +quote_names +quick diff --git a/databases/mysql80-server/files/mysql-server.in b/databases/mysql80-server/files/mysql-server.in new file mode 100644 index 000000000000..03c57e7d15b8 --- /dev/null +++ b/databases/mysql80-server/files/mysql-server.in @@ -0,0 +1,96 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: mysql +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable mysql: +# mysql_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable MySQL. +# mysql_limits (bool): Set to "NO" by default. +# Set it to yes to run `limits -e -U mysql` +# just before mysql starts. +# mysql_dbdir (str): Default to "%%MY_DBDIR%%" +# Base database directory. +# mysql_confdir (str): Default to "%%ETCDIR%%" +# Base configuration directory. +# mysql_optfile (str): Server-specific option file. +# Default to "${mysql_confdir}/my.cnf". +# mysql_pidfile (str): Custum PID file path and name. +# Default to "${mysql_dbdir}/${hostname}.pid". +# mysql_args (str): Custom additional arguments to be passed +# to mysqld_safe (default empty). +# + +. /etc/rc.subr + +name="mysql" +rcvar=mysql_enable + +load_rc_config $name + +: ${mysql_enable="NO"} +: ${mysql_limits="NO"} +: ${mysql_dbdir="%%MY_DBDIR%%"} +: ${mysql_confdir="%%ETCDIR%%"} +if [ -f "${mysql_dbdir}/my.cnf" ]; then +: ${mysql_optfile="${mysql_dbdir}/my.cnf"} +else +: ${mysql_optfile="${mysql_confdir}/my.cnf"} +fi + +mysql_user="mysql" +mysql_limits_args="-e -U ${mysql_user}" +: ${hostname:=`/bin/hostname`} +pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} +command="/usr/sbin/daemon" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%PERFSCHEMRC%%" +procname="%%PREFIX%%/libexec/mysqld" +start_precmd="${name}_prestart" +start_postcmd="${name}_poststart" +mysql_install_db="%%PREFIX%%/bin/mysql_install_db" +mysql_install_db_args="--defaults-extra-file=${mysql_optfile} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --mysqld-file=${procname} --user=${mysql_user}" + +mysql_create_auth_tables() +{ + eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null +} + +mysql_prestart() +{ + if [ -f "${mysql_dbdir}/my.cnf" ]; then + echo "" + echo "Please keep in mind that the default location for my.cnf has changed" + echo "from \"%%MY_DBDIR%%/my.cnf\" to \"%%ETCDIR%%/my.cnf\". " + echo "Please merge your existing my.cnf with the new default and move" + echo "it to \"%%ETCDIR%%/my.cnf\"." + echo "If you do not want to move your my.cnf to the new location then" + echo "you must set \"mysql_optfile\" in /etc/rc.conf to \"/var/db/mysql/my.cnf\"." + echo "" + fi + + if [ ! -d "${mysql_dbdir}/mysql" ]; then + mysql_create_auth_tables || return 1 + fi + if checkyesno mysql_limits; then + eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null + else + return 0 + fi +} + +mysql_poststart() +{ + local timeout=15 + while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +run_rc_command "$1" diff --git a/databases/mysql80-server/files/patch-CMakeLists.txt b/databases/mysql80-server/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..fe05a9c83935 --- /dev/null +++ b/databases/mysql80-server/files/patch-CMakeLists.txt @@ -0,0 +1,40 @@ +--- CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ CMakeLists.txt +@@ -614,12 +614,10 @@ IF(UNIX) + ENDIF() + + IF(NOT WITHOUT_SERVER) +- ADD_SUBDIRECTORY(testclients) + ADD_SUBDIRECTORY(sql) + OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) + IF(WITH_EMBEDDED_SERVER) + ADD_SUBDIRECTORY(libmysqld) +- ADD_SUBDIRECTORY(libmysqld/examples) + ENDIF(WITH_EMBEDDED_SERVER) + ENDIF() + +@@ -628,8 +626,6 @@ ENDIF() + ADD_SUBDIRECTORY(scripts) + + IF(NOT WITHOUT_SERVER) +- ADD_SUBDIRECTORY(mysql-test) +- ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) + ADD_SUBDIRECTORY(support-files) + IF(EXISTS ${CMAKE_SOURCE_DIR}/internal/CMakeLists.txt) + ADD_SUBDIRECTORY(internal) +@@ -684,6 +680,7 @@ ENDIF() + # + # RPM installs documentation directly from the source tree + # ++IF(FALSE) + IF(NOT INSTALL_LAYOUT MATCHES "RPM") + INSTALL(FILES COPYING LICENSE.mysql + DESTINATION ${INSTALL_DOCREADMEDIR} +@@ -706,6 +703,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") + PATTERN "sp-imp-spec.txt" EXCLUDE + ) + ENDIF() ++ENDIF() + + INCLUDE(CPack) + diff --git a/databases/mysql80-server/files/patch-client_CMakeLists.txt b/databases/mysql80-server/files/patch-client_CMakeLists.txt new file mode 100644 index 000000000000..9ee6c19aff7a --- /dev/null +++ b/databases/mysql80-server/files/patch-client_CMakeLists.txt @@ -0,0 +1,60 @@ +--- client/CMakeLists.txt.orig 2016-08-25 12:32:09 UTC ++++ client/CMakeLists.txt +@@ -32,8 +32,6 @@ INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compil + + ## Subdirectory with common client code. + ADD_SUBDIRECTORY(base) +-## Subdirectory for mysqlpump code. +-ADD_SUBDIRECTORY(dump) + + ## We will need libeay32.dll and ssleay32.dll when running client executables. + COPY_OPENSSL_DLLS(copy_openssl_client) +@@ -41,11 +39,13 @@ COPY_OPENSSL_DLLS(copy_openssl_client) + INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) + + ADD_DEFINITIONS(${SSL_DEFINES}) ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc ../sql-common/sql_string.cc) + TARGET_LINK_LIBRARIES(mysql mysqlclient) + IF(UNIX) + TARGET_LINK_LIBRARIES(mysql ${EDITLINE_LIBRARY}) + ENDIF(UNIX) ++ENDIF() + + IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysql_upgrade +@@ -66,6 +66,7 @@ ADD_DEPENDENCIES(mysqltest GenError GenC + ADD_CONVENIENCE_LIBRARY(mysqlcheck_core check/mysqlcheck_core.cc) + TARGET_LINK_LIBRARIES(mysqlcheck_core mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqlcheck check/mysqlcheck.cc) + TARGET_LINK_LIBRARIES(mysqlcheck mysqlcheck_core) + +@@ -78,7 +79,9 @@ TARGET_LINK_LIBRARIES(mysqlimport mysqlc + + MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.cc) + TARGET_LINK_LIBRARIES(mysqlshow mysqlclient) ++ENDIF() + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc) + SET(MYSQLBINLOG_LIB_SOURCES + ${CMAKE_SOURCE_DIR}/strings/decimal.cc +@@ -112,13 +115,16 @@ TARGET_LINK_LIBRARIES(mysqlslap mysqlcli + + MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc) + TARGET_LINK_LIBRARIES(mysql_config_editor mysqlclient) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc) + TARGET_LINK_LIBRARIES(mysql_secure_installation mysqlclient) + ++IF(FALSE) + MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup mysql_ssl_rsa_setup.cc path.cc logger.cc) + TARGET_LINK_LIBRARIES(mysql_ssl_rsa_setup mysys mysys_ssl) + SET_TARGET_PROPERTIES(mysql_ssl_rsa_setup PROPERTIES LINKER_LANGUAGE CXX) ++ENDIF() + + # "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/". + IF(WIN32) diff --git a/databases/mysql80-server/files/patch-cmake_plugin.cmake b/databases/mysql80-server/files/patch-cmake_plugin.cmake new file mode 100644 index 000000000000..65d4bc2b4d31 --- /dev/null +++ b/databases/mysql80-server/files/patch-cmake_plugin.cmake @@ -0,0 +1,12 @@ +--- cmake/plugin.cmake.orig 2016-03-28 18:06:12 UTC ++++ cmake/plugin.cmake +@@ -237,9 +237,6 @@ MACRO(MYSQL_ADD_PLUGIN) + MYSQL_INSTALL_TARGETS(${target} + DESTINATION ${INSTALL_PLUGINDIR} + COMPONENT ${INSTALL_COMPONENT}) +- INSTALL_DEBUG_TARGET(${target} +- DESTINATION ${INSTALL_PLUGINDIR}/debug +- COMPONENT ${INSTALL_COMPONENT}) + # Add installed files to list for RPMs + FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files + "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n" diff --git a/databases/mysql80-server/files/patch-cmake_ssl.cmake b/databases/mysql80-server/files/patch-cmake_ssl.cmake new file mode 100644 index 000000000000..c9a66c421b23 --- /dev/null +++ b/databases/mysql80-server/files/patch-cmake_ssl.cmake @@ -0,0 +1,15 @@ +--- cmake/ssl.cmake.orig 2016-08-12 10:55:07 UTC ++++ cmake/ssl.cmake +@@ -179,6 +179,12 @@ MACRO (MYSQL_CHECK_SSL) + OPENSSL_MAJOR_VERSION STREQUAL "1" + ) + SET(OPENSSL_FOUND TRUE) ++ ELSEIF(OPENSSL_INCLUDE_DIR AND ++ OPENSSL_LIBRARY AND ++ CRYPTO_LIBRARY AND ++ OPENSSL_MAJOR_VERSION STREQUAL "2" ++ ) ++ SET(OPENSSL_FOUND TRUE) + ELSE() + SET(OPENSSL_FOUND FALSE) + ENDIF() diff --git a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h new file mode 100644 index 000000000000..34fbf5a45509 --- /dev/null +++ b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_chartype.h @@ -0,0 +1,11 @@ +--- cmd-line-utils/libedit/chartype.h.orig 2016-03-28 18:06:12 UTC ++++ cmd-line-utils/libedit/chartype.h +@@ -49,7 +49,7 @@ + TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */ + #if !defined(__NetBSD__) && !defined(__sun) \ + && !(defined(__APPLE__) && defined(__MACH__)) \ +- && !defined(__FreeBSD__) && !defined(_AIX) ++ && !defined(__FreeBSD__) && !defined(_AIX) && !defined(__DragonFly__) + #ifndef __STDC_ISO_10646__ + /* In many places it is assumed that the first 127 code points are ASCII + * compatible, so ensure wchar_t indeed does ISO 10646 and not some other diff --git a/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c new file mode 100644 index 000000000000..cb3e255991ab --- /dev/null +++ b/databases/mysql80-server/files/patch-cmd-line-utils_libedit_vi.c @@ -0,0 +1,20 @@ +--- cmd-line-utils/libedit/vi.c.orig 2016-03-28 18:06:12 UTC ++++ cmd-line-utils/libedit/vi.c +@@ -919,7 +919,7 @@ vi_comment_out(EditLine *el, Int c __att + * NB: posix implies that we should enter insert mode, however + * this is against historical precedent... + */ +-#if defined(__weak_reference) && !defined(__FreeBSD__) ++#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) + __weakref_visible char *my_get_alias_text(const char *) + __weak_reference(get_alias_text); + #endif +@@ -928,7 +928,7 @@ protected el_action_t + vi_alias(EditLine *el __attribute__((__unused__)), + Int c __attribute__((__unused__))) + { +-#if defined(__weak_reference) && !defined(__FreeBSD__) ++#if defined(__weak_reference) && !defined(__FreeBSD__) && !defined(__DragonFly__) + char alias_name[3]; + char *alias_text; + diff --git a/databases/mysql80-server/files/patch-include_CMakeLists.txt b/databases/mysql80-server/files/patch-include_CMakeLists.txt new file mode 100644 index 000000000000..cb451ddc6ac4 --- /dev/null +++ b/databases/mysql80-server/files/patch-include_CMakeLists.txt @@ -0,0 +1,19 @@ +--- include/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ include/CMakeLists.txt +@@ -69,14 +69,13 @@ SET(HEADERS + ${HEADERS_GEN_CONFIGURE} + ) + ++IF(FALSE) + INSTALL(FILES + ../libbinlogevents/export/binary_log_types.h + DESTINATION ${INSTALL_INCLUDEDIR} +- COMPONENT Development) +-INSTALL(FILES ${HEADERS} DESTINATION ${INSTALL_INCLUDEDIR} COMPONENT Development) +-INSTALL(DIRECTORY mysql/ DESTINATION ${INSTALL_INCLUDEDIR}/mysql COMPONENT Development + PATTERN "*.h" + PATTERN "psi_abi*" EXCLUDE + ) ++ENDIF() + + diff --git a/databases/mysql80-server/files/patch-include_my__compare.h b/databases/mysql80-server/files/patch-include_my__compare.h new file mode 100644 index 000000000000..1a64142bb658 --- /dev/null +++ b/databases/mysql80-server/files/patch-include_my__compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2016-03-28 18:06:12 UTC ++++ include/my_compare.h +@@ -40,7 +40,7 @@ extern "C" { + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) diff --git a/databases/mysql80-server/files/patch-include_my__thread__os__id.h b/databases/mysql80-server/files/patch-include_my__thread__os__id.h new file mode 100644 index 000000000000..60b111b88a10 --- /dev/null +++ b/databases/mysql80-server/files/patch-include_my__thread__os__id.h @@ -0,0 +1,15 @@ +--- include/my_thread_os_id.h.orig 2016-03-28 18:06:12 UTC ++++ include/my_thread_os_id.h +@@ -75,8 +75,12 @@ static inline my_thread_os_id_t my_threa + return pthread_getthreadid_np(); + #else + #ifdef HAVE_INTEGER_PTHREAD_SELF ++# ifdef __DragonFly__ ++ return syscall(SYS_lwp_gettid); ++# else + /* Unknown platform, fallback. */ + return pthread_self(); ++# endif + #else + /* Feature not available. */ + return 0; diff --git a/databases/mysql80-server/files/patch-include_myisam.h b/databases/mysql80-server/files/patch-include_myisam.h new file mode 100644 index 000000000000..0a4b795e9426 --- /dev/null +++ b/databases/mysql80-server/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2016-03-28 18:06:12 UTC ++++ include/myisam.h +@@ -45,7 +45,7 @@ extern "C" { + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) diff --git a/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt new file mode 100644 index 000000000000..dd39fc7d8977 --- /dev/null +++ b/databases/mysql80-server/files/patch-libmysql_CMakeLists.txt @@ -0,0 +1,29 @@ +--- libmysql/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ libmysql/CMakeLists.txt +@@ -215,7 +215,7 @@ IF(WIN32) + ENDIF() + + # Merge several convenience libraries into one big mysqlclient +-MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development) ++MERGE_LIBRARIES(mysqlclient STATIC ${LIBS} COMPONENT Development NOINSTALL) + + # Visual Studio users need debug static library for debug projects + IF(MSVC) +@@ -257,7 +257,8 @@ IF(NOT DISABLE_SHARED) + # and link them together into shared library. + MERGE_LIBRARIES(libmysql SHARED ${LIBS} + EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} +- COMPONENT SharedLibraries) ++ COMPONENT SharedLibraries NOINSTALL) ++IF(FALSE) + IF(UNIX) + # libtool compatability + IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) +@@ -313,6 +314,7 @@ ENDIF() + # to initialize api_calls[] array in api_test.c + # + SET(CLIENT_API_FUNCTION_LIST "") ++ ENDIF() + FOREACH(api ${CLIENT_API_FUNCTIONS}) + SET(CLIENT_API_FUNCTION_LIST "${CLIENT_API_FUNCTION_LIST} ${api},") + ENDFOREACH() diff --git a/databases/mysql80-server/files/patch-libservices_CMakeLists.txt b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt new file mode 100644 index 000000000000..bfd6118b5648 --- /dev/null +++ b/databases/mysql80-server/files/patch-libservices_CMakeLists.txt @@ -0,0 +1,9 @@ +--- libservices/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ libservices/CMakeLists.txt +@@ -35,4 +35,6 @@ SET(MYSQLSERVICES_SOURCES + mysql_keyring_service.c) + + ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES}) ++IF(FALSE) + INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) ++ENDIF() diff --git a/databases/mysql80-server/files/patch-man_CMakeLists.txt b/databases/mysql80-server/files/patch-man_CMakeLists.txt new file mode 100644 index 000000000000..b771ae6214f0 --- /dev/null +++ b/databases/mysql80-server/files/patch-man_CMakeLists.txt @@ -0,0 +1,11 @@ +--- man/CMakeLists.txt.orig 2015-11-29 19:16:24 UTC ++++ man/CMakeLists.txt +@@ -15,8 +15,6 @@ + + # Copy man pages + FILE(GLOB MAN1_FILES *.1) +-FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) +-FILE(GLOB MAN1_NDB ndb*.1) + FILE(GLOB MAN8_FILES *.8) + FILE(GLOB MAN8_NDB ndb*.8) + IF(MAN1_FILES) diff --git a/databases/mysql80-server/files/patch-mysys__ssl_my__default.cc b/databases/mysql80-server/files/patch-mysys__ssl_my__default.cc new file mode 100644 index 000000000000..ea05679341fa --- /dev/null +++ b/databases/mysql80-server/files/patch-mysys__ssl_my__default.cc @@ -0,0 +1,61 @@ +--- mysys_ssl/my_default.cc.orig 2016-08-25 11:52:06 UTC ++++ mysys_ssl/my_default.cc +@@ -114,7 +114,7 @@ static my_bool defaults_already_read= FA + + /* Which directories are searched for options (and in which order) */ + +-#define MAX_DEFAULT_DIRS 6 ++#define MAX_DEFAULT_DIRS 7 + #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ + static const char **default_directories = NULL; + +@@ -914,6 +914,14 @@ static int search_default_file_with_ext( + return 1; /* Ignore wrong files */ + } + ++ if (strstr(name, "/etc") == name) ++ { ++ fprintf(stderr, ++ "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n", ++ name,name); ++ goto err; ++ } ++ + while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) + { + line++; +@@ -1252,7 +1260,8 @@ void my_print_default_files(const char * + end[(strlen(end)-1)] = ' '; + else + strxmov(end, conf_file, *ext , " ", NullS); +- fputs(name, stdout); ++ if (strstr(name, "/etc") != name) ++ fputs(name, stdout); + } + } + } +@@ -1411,13 +1420,8 @@ static const char **init_default_directo + + #else + +- errors += add_directory(alloc, "/etc/", dirs); +- errors += add_directory(alloc, "/etc/mysql/", dirs); +- +-#if defined(DEFAULT_SYSCONFDIR) +- if (DEFAULT_SYSCONFDIR[0]) +- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); +-#endif /* DEFAULT_SYSCONFDIR */ ++ errors += add_directory(alloc, "/usr/local/etc/", dirs); ++ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); + + #endif + +@@ -1488,7 +1492,7 @@ int check_file_permissions(const char *f + MY_STAT stat_info; + + if (!my_stat(file_name,&stat_info,MYF(0))) +- return 1; ++ return 0; + /* + Ignore .mylogin.cnf file if not exclusively readable/writable + by current user. diff --git a/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc b/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc new file mode 100644 index 000000000000..47fc0dc6b7e5 --- /dev/null +++ b/databases/mysql80-server/files/patch-plugin_password__validation_validate__password.cc @@ -0,0 +1,11 @@ +--- plugin/password_validation/validate_password.cc.orig 2016-03-28 18:06:12 UTC ++++ plugin/password_validation/validate_password.cc +@@ -18,6 +18,8 @@ + #include <mysql/plugin_validate_password.h> + #include <mysql/service_my_plugin_log.h> + #include <mysql/service_mysql_string.h> ++/* solve clash between libc++ bitset::test() and test macro from my_global.h */ ++#undef test + #include <set> + #include <iostream> + #include <fstream> diff --git a/databases/mysql80-server/files/patch-rapid_plugin_x_CMakeLists.txt b/databases/mysql80-server/files/patch-rapid_plugin_x_CMakeLists.txt new file mode 100644 index 000000000000..7dddb54da652 --- /dev/null +++ b/databases/mysql80-server/files/patch-rapid_plugin_x_CMakeLists.txt @@ -0,0 +1,20 @@ +--- rapid/plugin/x/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ rapid/plugin/x/CMakeLists.txt +@@ -91,14 +91,14 @@ ELSE() + ${CMAKE_CURRENT_SOURCE_DIR}/ngs/include + ${CMAKE_SOURCE_DIR}/include #temporary + ${CMAKE_CURRENT_SOURCE_DIR}/include/mysql +- ${SSL_INCLUDE_DIRS} +- ${ZLIB_INCLUDE_DIR} ++ ${BOOST_INCLUDE_DIR} + ) + + INCLUDE_DIRECTORIES(SYSTEM +- ${BOOST_INCLUDE_DIR} + ${PROTOBUF_INCLUDE_DIRS} + ${LIBEVENT_INCLUDE_DIR} ++ ${SSL_INCLUDE_DIRS} ++ ${ZLIB_INCLUDE_DIR} + ) + + IF(XPLUGIN_NO_LITE_PROTOBUF) diff --git a/databases/mysql80-server/files/patch-rapid_plugin_x_mysqlx__configure.cmake b/databases/mysql80-server/files/patch-rapid_plugin_x_mysqlx__configure.cmake new file mode 100644 index 000000000000..52828f00f631 --- /dev/null +++ b/databases/mysql80-server/files/patch-rapid_plugin_x_mysqlx__configure.cmake @@ -0,0 +1,15 @@ +--- rapid/plugin/x/mysqlx_configure.cmake.orig 2016-09-14 15:25:26 UTC ++++ rapid/plugin/x/mysqlx_configure.cmake +@@ -29,6 +29,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src + CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/mysqlx_version.h.in + ${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_version.h ) + ++IF(FALSE) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_error.h + DESTINATION ${INSTALL_INCLUDEDIR} + COMPONENT Developement) +@@ -36,3 +37,4 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/mysqlx_version.h + DESTINATION ${INSTALL_INCLUDEDIR} + COMPONENT Developement) ++ENDIF() diff --git a/databases/mysql80-server/files/patch-rapid_unittest_gunit_xplugin_CMakeLists.txt b/databases/mysql80-server/files/patch-rapid_unittest_gunit_xplugin_CMakeLists.txt new file mode 100644 index 000000000000..d968a7daa022 --- /dev/null +++ b/databases/mysql80-server/files/patch-rapid_unittest_gunit_xplugin_CMakeLists.txt @@ -0,0 +1,18 @@ +--- rapid/unittest/gunit/xplugin/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ rapid/unittest/gunit/xplugin/CMakeLists.txt +@@ -65,7 +65,6 @@ ENDIF() + ADD_DEFINITIONS(${GMOCK_CFLAGS} -DBOOST_ALL_NO_LIB -DBOOST_NO_AUTO_PTR -DUSE_MYSQLX_FULL_PROTO) + + INCLUDE_DIRECTORIES(SYSTEM +- ${BOOST_INCLUDE_DIR} + ${PROTOBUF_INCLUDE_DIRS} + ${SSL_INCLUDE_DIRS} + ${LIBEVENT_INCLUDE_DIR} +@@ -75,6 +74,7 @@ INCLUDE_DIRECTORIES(SYSTEM + ) + + INCLUDE_DIRECTORIES( ++ ${BOOST_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/testing/include + ${PROJECT_SOURCE_DIR}/rapid/plugin/x/ngs/include + ${PROJECT_SOURCE_DIR}/rapid/plugin/x/ngs/include/ngs diff --git a/databases/mysql80-server/files/patch-scripts_CMakeLists.txt b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..b8481a0aed4e --- /dev/null +++ b/databases/mysql80-server/files/patch-scripts_CMakeLists.txt @@ -0,0 +1,36 @@ +--- scripts/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ scripts/CMakeLists.txt +@@ -347,6 +347,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) + GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) + STRING(REGEX REPLACE "^lib" "" lib "${lib}") + SET(${var} "${${var}}-l${lib} " ) ++ ELSEIF(lib STREQUAL "-pthread") ++ SET(${var} "${${var}}-pthread " ) + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -430,14 +432,13 @@ ELSE() + # On Unix, most of the files end up in the bin directory + SET(mysql_config_COMPONENT COMPONENT Development) + ++ + IF(WITH_SYSTEMD) + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + ) + ELSE() + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + mysqld_multi + mysqld_safe +@@ -471,7 +472,7 @@ ELSE() + FOREACH(file ${BIN_SCRIPTS}) + IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh +- ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY) ++ ${CMAKE_CURRENT_BINARY_DIR}/${file} @ONLY) + ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file} + ${CMAKE_CURRENT_BINARY_DIR}/${file} COPYONLY) diff --git a/databases/mysql80-server/files/patch-sql_CMakeLists.txt b/databases/mysql80-server/files/patch-sql_CMakeLists.txt new file mode 100644 index 000000000000..033958f32efb --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_CMakeLists.txt @@ -0,0 +1,11 @@ +--- sql/CMakeLists.txt.orig 2016-08-25 11:52:06 UTC ++++ sql/CMakeLists.txt +@@ -24,6 +24,8 @@ INCLUDE_DIRECTORIES( + ${ZLIB_INCLUDE_DIR} + ${SSL_INCLUDE_DIRS} + ${CMAKE_BINARY_DIR}/sql ++ ${CMAKE_BINARY_DIR}/include ++ ${CMAKE_BINARY_DIR} + ${LZ4_INCLUDE_DIR} + ) + diff --git a/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc b/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc new file mode 100644 index 000000000000..c33d355fcf0a --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc @@ -0,0 +1,30 @@ +--- sql/conn_handler/socket_connection.cc.orig 2016-03-28 18:06:12 UTC ++++ sql/conn_handler/socket_connection.cc +@@ -939,20 +939,23 @@ Channel_info* Mysqld_socket_listener::li + signal(SIGCHLD, SIG_DFL); + request_init(&req, RQ_DAEMON, m_libwrap_name, RQ_FILE, + mysql_socket_getfd(connect_sock), NULL); +- fromhost(&req); ++ void (*my_fromhost) (void *) = (void (*)(void *)) fromhost; ++ my_fromhost(&req); + +- if (!hosts_access(&req)) ++ int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access; ++ if (!my_hosts_access(&req)) + { + /* + This may be stupid but refuse() includes an exit(0) + which we surely don't want... + clean_exit() - same stupid thing ... + */ ++ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client; + syslog(LOG_AUTH | m_deny_severity, +- "refused connect from %s", eval_client(&req)); ++ "refused connect from %s", my_eval_client(&req)); + + if (req.sink) +- (req.sink)(req.fd); ++ ((void (*)(int)) (req.sink))(req.fd); + + mysql_socket_shutdown(listen_sock, SHUT_RDWR); + mysql_socket_close(listen_sock); diff --git a/databases/mysql80-server/files/patch-sql_histograms_histogram.h b/databases/mysql80-server/files/patch-sql_histograms_histogram.h new file mode 100644 index 000000000000..73256070a0a6 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_histograms_histogram.h @@ -0,0 +1,11 @@ +--- sql/histograms/histogram.h.orig 2017-01-05 16:18:44 UTC ++++ sql/histograms/histogram.h +@@ -111,7 +111,7 @@ public: + + // Typedefs. + template<typename T> +-using value_map_allocator = Memroot_allocator<std::pair<T, ha_rows> >; ++using value_map_allocator = Memroot_allocator<std::pair<const T, ha_rows> >; + + template<typename T> + using value_map_type = std::map<T, ha_rows, Histogram_comparator, diff --git a/databases/mysql80-server/files/patch-sql_histograms_singleton.cc b/databases/mysql80-server/files/patch-sql_histograms_singleton.cc new file mode 100644 index 000000000000..2682a96b1086 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_histograms_singleton.cc @@ -0,0 +1,11 @@ +--- sql/histograms/singleton.cc.orig 2017-01-05 16:22:30 UTC ++++ sql/histograms/singleton.cc +@@ -126,7 +126,7 @@ bool Singleton<T>::histogram_to_json(Jso + + + template <class T> +-bool Singleton<T>::create_json_bucket(const std::pair<T, double> &bucket, ++bool Singleton<T>::create_json_bucket(const std::pair<const T, double> &bucket, + Json_array *json_bucket) + { + // Value diff --git a/databases/mysql80-server/files/patch-sql_histograms_singleton.h b/databases/mysql80-server/files/patch-sql_histograms_singleton.h new file mode 100644 index 000000000000..ab5aae1f0edc --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_histograms_singleton.h @@ -0,0 +1,20 @@ +--- sql/histograms/singleton.h.orig 2017-01-05 16:21:18 UTC ++++ sql/histograms/singleton.h +@@ -89,7 +89,7 @@ private: + + /// The buckets for this histogram [key, cumulative frequency]. + std::map<const T, double, Histogram_comparator, +- Memroot_allocator<std::pair<T, double> > > m_buckets; ++ Memroot_allocator<std::pair<const T, double> > > m_buckets; + public: + /** + Singleton constructor. +@@ -162,7 +162,7 @@ private: + + @return true on error, false otherwise + */ +- static bool create_json_bucket(const std::pair<T, double> &bucket, ++ static bool create_json_bucket(const std::pair<const T, double> &bucket, + Json_array *json_bucket); + }; + diff --git a/databases/mysql80-server/files/patch-sql_json__dom.h b/databases/mysql80-server/files/patch-sql_json__dom.h new file mode 100644 index 000000000000..54718af16065 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_json__dom.h @@ -0,0 +1,11 @@ +--- sql/json_dom.h.orig 2017-01-05 16:09:35 UTC ++++ sql/json_dom.h +@@ -337,7 +337,7 @@ struct Json_key_comparator + Json_object class. + */ + typedef std::map<std::string, Json_dom *, Json_key_comparator, +- Malloc_allocator<std::pair<std::string, Json_dom *> > > Json_object_map; ++ Malloc_allocator<std::pair<const std::string, Json_dom *> > > Json_object_map; + + /** + Represents a JSON container value of type "object" (ECMA), type diff --git a/databases/mysql80-server/files/patch-sql_sys__vars.cc b/databases/mysql80-server/files/patch-sql_sys__vars.cc new file mode 100644 index 000000000000..e21d62430970 --- /dev/null +++ b/databases/mysql80-server/files/patch-sql_sys__vars.cc @@ -0,0 +1,38 @@ +--- sql/sys_vars.cc.orig 2016-03-28 18:06:12 UTC ++++ sql/sys_vars.cc +@@ -1734,7 +1734,7 @@ static Sys_var_ulong Sys_interactive_tim + "connection before closing it", + SESSION_VAR(net_interactive_timeout), + CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_ulong Sys_join_buffer_size( + "join_buffer_size", +@@ -2552,7 +2552,7 @@ static Sys_var_ulong Sys_net_read_timeou + "Number of seconds to wait for more data from a connection before " + "aborting the read", + SESSION_VAR(net_read_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), + ON_UPDATE(fix_net_read_timeout)); + +@@ -2568,7 +2568,7 @@ static Sys_var_ulong Sys_net_write_timeo + "Number of seconds to wait for a block to be written to a connection " + "before aborting the write", + SESSION_VAR(net_write_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), + ON_UPDATE(fix_net_write_timeout)); + +@@ -4083,7 +4083,7 @@ static Sys_var_ulong Sys_net_wait_timeou + "The number of seconds the server waits for activity on a " + "connection before closing it", + SESSION_VAR(net_wait_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, IF_WIN(INT_MAX32/1000, LONG_TIMEOUT)), ++ VALID_RANGE(1, INT_MAX32/1000), + DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_plugin Sys_default_storage_engine( diff --git a/databases/mysql80-server/files/patch-storage_innobase_buf_buf0buf.cc b/databases/mysql80-server/files/patch-storage_innobase_buf_buf0buf.cc new file mode 100644 index 000000000000..0a3b1944f50e --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_buf_buf0buf.cc @@ -0,0 +1,11 @@ +--- storage/innobase/buf/buf0buf.cc.orig 2016-03-28 18:06:12 UTC ++++ storage/innobase/buf/buf0buf.cc +@@ -338,7 +338,7 @@ typedef std::map< + const byte*, + buf_chunk_t*, + std::less<const byte*>, +- ut_allocator<std::pair<const byte*, buf_chunk_t*> > > ++ ut_allocator<std::pair<const byte* const, buf_chunk_t*> > > + buf_pool_chunk_map_t; + + static buf_pool_chunk_map_t* buf_chunk_map_reg; diff --git a/databases/mysql80-server/files/patch-storage_innobase_dict_dict0stats.cc b/databases/mysql80-server/files/patch-storage_innobase_dict_dict0stats.cc new file mode 100644 index 000000000000..879e91a116fb --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_dict_dict0stats.cc @@ -0,0 +1,11 @@ +--- storage/innobase/dict/dict0stats.cc.orig 2016-03-28 18:06:12 UTC ++++ storage/innobase/dict/dict0stats.cc +@@ -139,7 +139,7 @@ then we would store 5,7,10,11,12 in the + typedef std::vector<ib_uint64_t, ut_allocator<ib_uint64_t> > boundaries_t; + + /** Allocator type used for index_map_t. */ +-typedef ut_allocator<std::pair<const char*, dict_index_t*> > ++typedef ut_allocator<std::pair<const char* const, dict_index_t*> > + index_map_t_allocator; + + /** Auxiliary map used for sorting indexes by name in dict_stats_save(). */ diff --git a/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h b/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h new file mode 100644 index 000000000000..8abbfcb04a31 --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_include_srv0mon.h @@ -0,0 +1,13 @@ +--- storage/innobase/include/srv0mon.h.orig 2016-03-28 18:06:12 UTC ++++ storage/innobase/include/srv0mon.h +@@ -34,6 +34,10 @@ Created 12/15/2009 Jimmy Yang + /* Required for FreeBSD so that INT64_MAX is defined. */ + #define __STDC_LIMIT_MACROS + #endif /* __STDC_LIMIT_MACROS */ ++#ifdef __DragonFly__ ++/* The hack above doen't work for dragonfly, stdint.h already imported */ ++#include <machine/int_limits.h> ++#endif + + #include <stdint.h> + diff --git a/databases/mysql80-server/files/patch-storage_innobase_sync_sync0debug.cc b/databases/mysql80-server/files/patch-storage_innobase_sync_sync0debug.cc new file mode 100644 index 000000000000..b9dbdedf057f --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_sync_sync0debug.cc @@ -0,0 +1,11 @@ +--- storage/innobase/sync/sync0debug.cc.orig 2016-03-28 18:06:12 UTC ++++ storage/innobase/sync/sync0debug.cc +@@ -1702,7 +1702,7 @@ private: + const void*, + File, + std::less<const void*>, +- ut_allocator<std::pair<const void*, File> > > ++ ut_allocator<std::pair<const void* const, File> > > + Files; + + typedef OSMutex Mutex; diff --git a/databases/mysql80-server/files/patch-storage_innobase_trx_trx0purge.cc b/databases/mysql80-server/files/patch-storage_innobase_trx_trx0purge.cc new file mode 100644 index 000000000000..5b062e2fad03 --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_trx_trx0purge.cc @@ -0,0 +1,11 @@ +--- storage/innobase/trx/trx0purge.cc.orig 2017-01-05 13:57:29 UTC ++++ storage/innobase/trx/trx0purge.cc +@@ -1668,7 +1668,7 @@ trx_purge_attach_undo_recs( + using GroupBy = std::map< + table_id_t, purge_node_t::Recs*, + std::less<table_id_t>, +- mem_heap_allocator<std::pair<table_id_t, purge_node_t::Recs*>>>; ++ mem_heap_allocator<std::pair<const table_id_t, purge_node_t::Recs*>>>; + + GroupBy group_by{ + GroupBy::key_compare{}, diff --git a/databases/mysql80-server/files/patch-storage_innobase_trx_trx0trx.cc b/databases/mysql80-server/files/patch-storage_innobase_trx_trx0trx.cc new file mode 100644 index 000000000000..e6ec64cb5e1f --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_innobase_trx_trx0trx.cc @@ -0,0 +1,11 @@ +--- storage/innobase/trx/trx0trx.cc.orig 2017-01-05 15:43:29 UTC ++++ storage/innobase/trx/trx0trx.cc +@@ -63,7 +63,7 @@ typedef std::set< + typedef std::map< + trx_t*, table_id_set, + std::less<trx_t*>, +- ut_allocator<table_id_set> > trx_table_map; ++ ut_allocator<std::pair<trx_t* const, table_id_set>> > trx_table_map; + + /** Map of resurrected transactions to affected table_id */ + static trx_table_map resurrected_trx_tables; diff --git a/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.c b/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.c new file mode 100644 index 000000000000..282cffdbcbc5 --- /dev/null +++ b/databases/mysql80-server/files/patch-storage_myisam_mi__dynrec.c @@ -0,0 +1,23 @@ +--- storage/myisam/mi_dynrec.c.orig 2016-03-28 18:06:12 UTC ++++ storage/myisam/mi_dynrec.c +@@ -65,18 +65,13 @@ my_bool mi_dynmap_file(MI_INFO *info, my + DBUG_RETURN(1); + } + /* +- I wonder if it is good to use MAP_NORESERVE. From the Linux man page: +- MAP_NORESERVE +- Do not reserve swap space for this mapping. When swap space is +- reserved, one has the guarantee that it is possible to modify the +- mapping. When swap space is not reserved one might get SIGSEGV +- upon a write if no physical memory is available. ++ MAP_NORESERVE is unimplemented in FreeBSD + */ + info->s->file_map= (uchar*) + my_mmap(0, (size_t) size, + info->s->mode==O_RDONLY ? PROT_READ : + PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_NORESERVE, ++ MAP_SHARED, + info->dfile, 0L); + if (info->s->file_map == (uchar*) MAP_FAILED) + { diff --git a/databases/mysql80-server/files/patch-support-files_CMakeLists.txt b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt new file mode 100644 index 000000000000..1d1999212ed5 --- /dev/null +++ b/databases/mysql80-server/files/patch-support-files_CMakeLists.txt @@ -0,0 +1,12 @@ +--- support-files/CMakeLists.txt.orig 2016-03-28 18:06:12 UTC ++++ support-files/CMakeLists.txt +@@ -69,7 +69,9 @@ IF(UNIX) + INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) + ENDIF() + ++IF(FALSE) + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++ENDIF() + + SET(bindir ${prefix}/${INSTALL_BINDIR}) + SET(sbindir ${prefix}/${INSTALL_SBINDIR}) diff --git a/databases/mysql80-server/files/rapid_plugin-patch-_x_mysqlxtest__src_mysqlxtest.cc b/databases/mysql80-server/files/rapid_plugin-patch-_x_mysqlxtest__src_mysqlxtest.cc new file mode 100644 index 000000000000..078f3106848b --- /dev/null +++ b/databases/mysql80-server/files/rapid_plugin-patch-_x_mysqlxtest__src_mysqlxtest.cc @@ -0,0 +1,12 @@ +--- rapid/plugin/x/mysqlxtest_src/mysqlxtest.cc.orig 2016-03-28 18:06:12 UTC ++++ rapid/plugin/x/mysqlxtest_src/mysqlxtest.cc +@@ -1661,7 +1661,8 @@ private: + if (2 == argl.size()) + tolerance = atoi(argl[1].c_str()); + +- if (abs(expected_msec - msec) > tolerance) ++#define my_abs_64(x) ((x) < 0 ? (-x) : (x)) ++ if (my_abs_64((expected_msec - msec)) > tolerance) + { + std::cerr << "Timeout should occur after " << expected_msec << "ms, but it was " << msec <<"ms. \n"; + return Stop_with_failure; diff --git a/databases/mysql80-server/pkg-descr b/databases/mysql80-server/pkg-descr new file mode 100644 index 000000000000..872bbdcaf778 --- /dev/null +++ b/databases/mysql80-server/pkg-descr @@ -0,0 +1,15 @@ +MySQL is a very fast, multi-threaded, multi-user and robust SQL +(Structured Query Language) database server. +The new features in MySQL 8.0. In addition to Data Dictionnary and CTEs are: + Move to utf8(mb4) as MySQL's default character set + Language specific case insensitive collation for 21 languages (utf8) + Invisible index + Descending indexes + Improve usability of UUID and IPV6 manipulations + SQL roles - SET PERSIST for global variable values + Performance Schema, instrumenting data locks + Performance Schema, instrumenting error messages + Improved cost model with histograms + + +WWW: http://www.mysql.com/ diff --git a/databases/mysql80-server/pkg-message b/databases/mysql80-server/pkg-message new file mode 100644 index 000000000000..02103edffd0d --- /dev/null +++ b/databases/mysql80-server/pkg-message @@ -0,0 +1,16 @@ +***************************************************************************** + +Remember to run mysql_upgrade the first time you start the MySQL server +after an upgrade from an earlier version. + +Initial password for first time use of MySQL is saved in $HOME/.mysql_secret +ie. when you want to use "mysql -u root -p" first you should see password +in /root/.mysql_secret + +***************************************************************************** + +***************************************************************************** + +WARNING: THIS IS STILL-IN-DEV PROJECT! USE WITH CAUTION ON PRODUCTION ENVS! + +***************************************************************************** diff --git a/databases/mysql80-server/pkg-plist b/databases/mysql80-server/pkg-plist new file mode 100644 index 000000000000..bbb6b12c50cb --- /dev/null +++ b/databases/mysql80-server/pkg-plist @@ -0,0 +1,160 @@ +bin/ibd2sdi +bin/innochecksum +bin/my_print_defaults +bin/myisam_ftdump +bin/myisamchk +bin/myisamlog +bin/myisampack +bin/mysql_secure_installation +bin/mysql_tzinfo_to_sql +bin/mysql_upgrade +bin/mysqld_multi +bin/mysqld_safe +bin/mysqldumpslow +bin/mysqltest +bin/mysqlxtest +bin/perror +bin/replace +bin/resolve_stack_dump +bin/resolveip +lib/mysql/libmysqld.a +lib/mysql/plugin/adt_null.so +lib/mysql/plugin/auth.so +lib/mysql/plugin/auth_test_plugin.so +lib/mysql/plugin/component_example_component1.so +lib/mysql/plugin/component_example_component2.so +lib/mysql/plugin/component_example_component3.so +lib/mysql/plugin/daemon_example.ini +%%NO_EXAMPLE%%lib/mysql/plugin/ha_example.so +lib/mysql/plugin/keyring_file.so +lib/mysql/plugin/libdaemon_example.so +lib/mysql/plugin/libtest_framework.so +lib/mysql/plugin/libtest_services.so +lib/mysql/plugin/libtest_services_threaded.so +lib/mysql/plugin/libtest_session_detach.so +lib/mysql/plugin/libtest_session_in_thd.so +lib/mysql/plugin/libtest_session_info.so +lib/mysql/plugin/libtest_sql_2_sessions.so +lib/mysql/plugin/libtest_sql_all_col_types.so +lib/mysql/plugin/libtest_sql_cmds_1.so +lib/mysql/plugin/libtest_sql_commit.so +lib/mysql/plugin/libtest_sql_complex.so +lib/mysql/plugin/libtest_sql_errors.so +lib/mysql/plugin/libtest_sql_lock.so +lib/mysql/plugin/libtest_sql_processlist.so +lib/mysql/plugin/libtest_sql_replication.so +lib/mysql/plugin/libtest_sql_shutdown.so +lib/mysql/plugin/libtest_sql_sqlmode.so +lib/mysql/plugin/libtest_sql_stored_procedures_functions.so +lib/mysql/plugin/libtest_sql_views_triggers.so +lib/mysql/plugin/libtest_x_sessions_deinit.so +lib/mysql/plugin/libtest_x_sessions_init.so +lib/mysql/plugin/locking_service.so +lib/mysql/plugin/mypluglib.so +lib/mysql/plugin/mysql_no_login.so +lib/mysql/plugin/mysqlx.so +lib/mysql/plugin/qa_auth_client.so +lib/mysql/plugin/qa_auth_interface.so +lib/mysql/plugin/qa_auth_server.so +lib/mysql/plugin/replication_observers_example_plugin.so +lib/mysql/plugin/rewrite_example.so +lib/mysql/plugin/rewriter.so +lib/mysql/plugin/semisync_master.so +lib/mysql/plugin/semisync_slave.so +lib/mysql/plugin/test_security_context.so +lib/mysql/plugin/keyring_udf.so +lib/mysql/plugin/test_udf_services.so +lib/mysql/plugin/validate_password.so +lib/mysql/plugin/version_token.so +libdata/pkgconfig/LIBMYSQL_OS_OUTPUT_NAME-NOTFOUND.pc +libexec/mysqld +man/man1/my_print_defaults.1.gz +man/man1/myisam_ftdump.1.gz +man/man1/myisamchk.1.gz +man/man1/myisamlog.1.gz +man/man1/myisampack.1.gz +man/man1/mysql.server.1.gz +man/man1/mysql_secure_installation.1.gz +man/man1/mysql_tzinfo_to_sql.1.gz +man/man1/mysql_upgrade.1.gz +man/man1/mysqld_multi.1.gz +man/man1/mysqld_safe.1.gz +man/man1/mysqldumpslow.1.gz +man/man1/mysqlman.1.gz +man/man1/mysqltest.1.gz +man/man1/perror.1.gz +man/man1/replace.1.gz +man/man1/resolve_stack_dump.1.gz +man/man1/resolveip.1.gz +man/man8/mysqld.8.gz +%%DATADIR%%/bulgarian/errmsg.sys +%%DATADIR%%/charsets/Index.xml +%%DATADIR%%/charsets/README +%%DATADIR%%/charsets/armscii8.xml +%%DATADIR%%/charsets/ascii.xml +%%DATADIR%%/charsets/cp1250.xml +%%DATADIR%%/charsets/cp1251.xml +%%DATADIR%%/charsets/cp1256.xml +%%DATADIR%%/charsets/cp1257.xml +%%DATADIR%%/charsets/cp850.xml +%%DATADIR%%/charsets/cp852.xml +%%DATADIR%%/charsets/cp866.xml +%%DATADIR%%/charsets/dec8.xml +%%DATADIR%%/charsets/geostd8.xml +%%DATADIR%%/charsets/greek.xml +%%DATADIR%%/charsets/hebrew.xml +%%DATADIR%%/charsets/hp8.xml +%%DATADIR%%/charsets/keybcs2.xml +%%DATADIR%%/charsets/koi8r.xml +%%DATADIR%%/charsets/koi8u.xml +%%DATADIR%%/charsets/latin1.xml +%%DATADIR%%/charsets/latin2.xml +%%DATADIR%%/charsets/latin5.xml +%%DATADIR%%/charsets/latin7.xml +%%DATADIR%%/charsets/macce.xml +%%DATADIR%%/charsets/macroman.xml +%%DATADIR%%/charsets/swe7.xml +%%DATADIR%%/czech/errmsg.sys +%%DATADIR%%/danish/errmsg.sys +%%DATADIR%%/dictionary.txt +%%DATADIR%%/dutch/errmsg.sys +%%DATADIR%%/english/errmsg.sys +%%DATADIR%%/errmsg-utf8.txt +%%DATADIR%%/estonian/errmsg.sys +%%DATADIR%%/fill_help_tables.sql +%%DATADIR%%/french/errmsg.sys +%%DATADIR%%/german/errmsg.sys +%%DATADIR%%/greek/errmsg.sys +%%DATADIR%%/hungarian/errmsg.sys +%%DATADIR%%/innodb_memcached_config.sql +%%DATADIR%%/install_rewriter.sql +%%DATADIR%%/italian/errmsg.sys +%%DATADIR%%/japanese/errmsg.sys +%%DATADIR%%/korean/errmsg.sys +%%DATADIR%%/magic +%%DATADIR%%/my-default.cnf +%%DATADIR%%/mysql-log-rotate +%%DATADIR%%/mysql.server +%%DATADIR%%/mysql_security_commands.sql +%%DATADIR%%/mysql_sys_schema.sql +%%DATADIR%%/mysql_system_tables.sql +%%DATADIR%%/mysql_system_tables_data.sql +%%DATADIR%%/mysql_test_data_timezone.sql +%%DATADIR%%/mysqld_multi.server +%%DATADIR%%/norwegian-ny/errmsg.sys +%%DATADIR%%/norwegian/errmsg.sys +%%DATADIR%%/polish/errmsg.sys +%%DATADIR%%/portuguese/errmsg.sys +%%DATADIR%%/romanian/errmsg.sys +%%DATADIR%%/russian/errmsg.sys +%%DATADIR%%/serbian/errmsg.sys +%%DATADIR%%/slovak/errmsg.sys +%%DATADIR%%/spanish/errmsg.sys +%%DATADIR%%/swedish/errmsg.sys +%%DATADIR%%/ukrainian/errmsg.sys +%%DATADIR%%/uninstall_rewriter.sql +@dir lib/mysql/plugin/debug +@sample(root,wheel,0644) %%ETCDIR%%/my.cnf.sample +@dir(mysql,mysql,0750) %%ETCDIR%%/keyring +@dir(mysql,mysql,0750) %%MY_SECDIR%% +@dir(mysql,mysql,0750) %%MY_TMPDIR%% |