aboutsummaryrefslogtreecommitdiff
path: root/databases/percona57-server
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2017-01-10 18:54:32 +0000
committerMark Felder <feld@FreeBSD.org>2017-01-10 18:54:32 +0000
commitf5a7bbe20b44e2ed7ce2b3d6d9ce2e9d94056ac8 (patch)
tree9dbb8720f9319f45cd7516be53e22a9d6faa015f /databases/percona57-server
parente20ec43bfc786b2390ea546eb25cae125cc1df5e (diff)
downloadports-f5a7bbe20b44e2ed7ce2b3d6d9ce2e9d94056ac8.tar.gz
ports-f5a7bbe20b44e2ed7ce2b3d6d9ce2e9d94056ac8.zip
Welcome Percona 5.7 ports to the tree
- client and server version 5.7.16-10 - pam-for-mysql: compatible with newer MySQL API (MySQL 5.7+) Thanks to all who have worked on Percona, MariaDB, and MySQL ports. Your tireless efforts have been instrumental in making this port happen. Differential Revision: https://reviews.freebsd.org/D8785
Notes
Notes: svn path=/head/; revision=431126
Diffstat (limited to 'databases/percona57-server')
-rw-r--r--databases/percona57-server/Makefile131
-rw-r--r--databases/percona57-server/distinfo5
-rw-r--r--databases/percona57-server/files/extra-patch-config.h.cmake29
-rw-r--r--databases/percona57-server/files/extrapatch-tokudb92
-rw-r--r--databases/percona57-server/files/mysql-server.in79
-rw-r--r--databases/percona57-server/files/patch-CMakeLists.txt40
-rw-r--r--databases/percona57-server/files/patch-client_CMakeLists.txt83
-rw-r--r--databases/percona57-server/files/patch-include_CMakeLists.txt19
-rw-r--r--databases/percona57-server/files/patch-include_my__compare.h11
-rw-r--r--databases/percona57-server/files/patch-include_myisam.h11
-rw-r--r--databases/percona57-server/files/patch-libmysql_CMakeLists.txt29
-rw-r--r--databases/percona57-server/files/patch-libservices_CMakeLists.txt9
-rw-r--r--databases/percona57-server/files/patch-man_CMakeLists.txt13
-rw-r--r--databases/percona57-server/files/patch-mysys__ssl_my__default.cc31
-rw-r--r--databases/percona57-server/files/patch-scripts_CMakeLists.txt34
-rw-r--r--databases/percona57-server/files/patch-sql_json__dom.h11
-rw-r--r--databases/percona57-server/files/patch-sql_mysqld.cc19
-rw-r--r--databases/percona57-server/files/patch-sql_sql__view.cc63
-rw-r--r--databases/percona57-server/files/patch-sql_sys__vars.cc38
-rw-r--r--databases/percona57-server/files/patch-storage_innobase_buf_buf0buf.cc11
-rw-r--r--databases/percona57-server/files/patch-storage_innobase_dict_dict0stats.cc11
-rw-r--r--databases/percona57-server/files/patch-storage_innobase_include_srv0mon.h13
-rw-r--r--databases/percona57-server/files/patch-storage_innobase_sync_sync0debug.cc11
-rw-r--r--databases/percona57-server/files/patch-storage_myisam_mi__dynrec.c23
-rw-r--r--databases/percona57-server/files/patch-support-files_CMakeLists.txt12
-rw-r--r--databases/percona57-server/files/patch-vio_viosocket.c13
-rw-r--r--databases/percona57-server/pkg-descr4
-rw-r--r--databases/percona57-server/pkg-message6
-rw-r--r--databases/percona57-server/pkg-plist179
29 files changed, 1030 insertions, 0 deletions
diff --git a/databases/percona57-server/Makefile b/databases/percona57-server/Makefile
new file mode 100644
index 000000000000..de89e33d9c24
--- /dev/null
+++ b/databases/percona57-server/Makefile
@@ -0,0 +1,131 @@
+# Created by: Mark Felder <feld@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME?= percona
+DISTVERSION= 5.7.16-10
+PORTREVISION?= 0
+CATEGORIES= databases ipv6
+MASTER_SITES= http://www.percona.com/downloads/Percona-Server-5.7/Percona-Server-${DISTVERSION}/source/tarball/:percona \
+ SF/boost/boost/1.59.0:boost
+PKGNAMESUFFIX?= 57-server
+DISTNAME= percona-server-${DISTVERSION}
+DISTFILES= percona-server-${DISTVERSION}${EXTRACT_SUFX}:percona \
+ boost_1_59_0${EXTRACT_SUFX}:boost
+
+MAINTAINER= feld@FreeBSD.org
+COMMENT?= Multithreaded SQL database (server)
+
+LICENSE?= GPLv2+
+
+LIB_DEPENDS= libevent.so:devel/libevent2 \
+ liblz4.so:archivers/liblz4
+
+BROKEN_powerpc64= Does not build
+
+SLAVEDIRS= databases/percona57-client \
+ databases/percona57-pam-for-mysql
+USES= bison:build cmake compiler:c11 compiler:c++11-lib \
+ cpe libedit localbase perl5 shebangfix
+
+DATADIR= ${LOCALBASE}/share/mysql
+DOCSDIR= ${LOCALBASE}/share/doc/mysql
+
+CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \
+ -DINSTALL_DOCDIR="share/doc/mysql" \
+ -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \
+ -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \
+ -DINSTALL_DOCREADMEDIR="share/doc/mysql" \
+ -DINSTALL_INCLUDEDIR="include/mysql" \
+ -DINSTALL_INFODIR="info" \
+ -DINSTALL_LIBDIR="lib/mysql" \
+ -DINSTALL_MANDIR="man" \
+ -DINSTALL_MYSQLDATADIR="/var/db/mysql" \
+ -DINSTALL_MYSQLSHAREDIR="share/mysql" \
+ -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \
+ -DINSTALL_PLUGINDIR="lib/mysql/plugin" \
+ -DINSTALL_SBINDIR="libexec" \
+ -DINSTALL_SCRIPTDIR="bin" \
+ -DINSTALL_SHAREDIR="share" \
+ -DINSTALL_SQLBENCHDIR="share/mysql" \
+ -DINSTALL_SUPPORTFILESDIR="share/mysql" \
+ -DWITH_UNIT_TESTS=0 \
+ -DWITH_EDITLINE=system \
+ -DWITH_LIBWRAP=0 \
+ -DWITH_LZ4=system \
+ -DWITH_ZLIB=system \
+ -DINSTALL_MYSQLTESTDIR=0 \
+ -DWITH_BOOST="${WRKDIR}/boost_1_59_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
+
+.ifdef CLIENT_ONLY
+# Client part
+USES+= libedit
+.elifdef PLUGIN_ONLY
+# For building plugins (percona-pam-for-mysql, etc)
+# Currently do nothing special
+USES+= libedit
+.else
+# MySQL-Server part
+OPTIONS_DEFINE= OPENSSL FASTMTX INNODBMEMCACHED TOKUDB
+OPTIONS_DEFAULT= OPENSSL INNODBMEMCACHED
+OPTIONS_SUB= yes
+
+FASTMTX_DESC= Replace mutexes with spinlocks
+FASTMTX_CMAKE_ON= -DWITH_FAST_MUTEXES=1
+INNODBMEMCACHED_DESC= InnoDB Memcached plugin
+INNODBMEMCACHED_CMAKE_ON= -DWITH_INNODB_MEMCACHED=1
+OPENSSL_CMAKE_ON= -DWITH_SSL=system
+OPENSSL_USES= ssl
+TOKUDB_DESC= TokuDB Engine (experimental)
+TOKUDB_CMAKE_ON= -DUSE_CTAGS=0
+TOKUDB_EXTRA_PATCHES=${PATCHDIR}/extrapatch-tokudb
+
+USES+=mysql:57p
+
+CONFLICTS_INSTALL= mysql*-server-* \
+ mariadb*-server-* \
+ percona5[0-68-9]-server-*
+
+USE_RC_SUBR= mysql-server
+
+USERS= mysql
+GROUPS= mysql
+
+INFO= mysql
+
+USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
+
+MANPAGES= 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"
+
+post-install:
+ @${MKDIR} ${STAGEDIR}/var/db/mysql
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} 's/*.1/${MANPAGES}/' ${WRKSRC}/man/CMakeLists.txt
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "arm"
+BROKEN= Does not compile on arm
+.endif
+
+.if ${PORT_OPTIONS:MTOKUDB}
+NOT_FOR_ARCHS= i386
+NOT_FOR_ARCHS_REASON= TokuDB not supported on 32-bit platforms, see \
+ https://github.com/percona/PerconaFT/blob/master/README.md
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/databases/percona57-server/distinfo b/databases/percona57-server/distinfo
new file mode 100644
index 000000000000..93518d8dcd52
--- /dev/null
+++ b/databases/percona57-server/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1481662079
+SHA256 (percona-server-5.7.16-10.tar.gz) = 1e88233d4bc5fd9a6910f2cc01ad5aca7d751f036cdba5a1c9954e1e25300347
+SIZE (percona-server-5.7.16-10.tar.gz) = 74341476
+SHA256 (boost_1_59_0.tar.gz) = 47f11c8844e579d02691a607fbd32540104a9ac7a2534a8ddaef50daf502baac
+SIZE (boost_1_59_0.tar.gz) = 83709983
diff --git a/databases/percona57-server/files/extra-patch-config.h.cmake b/databases/percona57-server/files/extra-patch-config.h.cmake
new file mode 100644
index 000000000000..4ea465832fb4
--- /dev/null
+++ b/databases/percona57-server/files/extra-patch-config.h.cmake
@@ -0,0 +1,29 @@
+--- Makefile
++++ Makefile
+@@ -95,8 +95,8 @@ post-patch:
+
+ .include <bsd.port.pre.mk>
+
+-.if ${ARCH} == "arm"
+-BROKEN= Does not compile on arm
++.if ${ARCH} == "armv6"
++EXTRA_PATCHES+= ${FILESDIR}/extra-patch-config.h.cmake
+ .endif
+
+ .include <bsd.port.post.mk>
+
+--- /dev/null
++++ 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/percona57-server/files/extrapatch-tokudb b/databases/percona57-server/files/extrapatch-tokudb
new file mode 100644
index 000000000000..87ea439282e8
--- /dev/null
+++ b/databases/percona57-server/files/extrapatch-tokudb
@@ -0,0 +1,92 @@
+--- storage/tokudb/CMakeLists.txt.orig 2016-03-03 15:32:33.000000000 +0200
++++ storage/tokudb/CMakeLists.txt 2016-03-08 10:13:58.000000000 +0200
+@@ -1,6 +1,6 @@
+ SET(TOKUDB_VERSION 5.6.29-76.2)
+ # PerconaFT only supports x86-64 and cmake-2.8.9+
+-IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND
++IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" AND
+ NOT CMAKE_VERSION VERSION_LESS "2.8.9")
+ CHECK_CXX_SOURCE_COMPILES(
+ "
+@@ -118,5 +118,5 @@
+ tokudb_thread.cc)
+ MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY
+ LINK_LIBRARIES tokufractaltree_static tokuportability_static ${ZLIB_LIBRARY} stdc++)
+-SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
+-SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
++SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} ")
++SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} ")
+--- plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeLists.txt.orig 2016-03-03 15:31:53.000000000 +0200
++++ plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeLists.txt 2016-03-10 11:13:23.772664272 +0200
+@@ -69,7 +69,7 @@
+ endif ()
+ endfunction(add_space_separated_property)
+
+-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -flto -UNDEBUG")
++set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -UNDEBUG")
+ if (NOT CMAKE_CXX_COMPILER_ID MATCHES Clang)
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
+ endif ()
+--- plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/backup.cc.orig 2016-03-03 15:31:53.000000000 +0200
++++ plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/backup.cc 2016-03-08 10:40:07.000000000 +0200
+@@ -85,7 +85,7 @@
+ if (oflag & O_CREAT) {
+ va_list ap;
+ va_start(ap, oflag);
+- mode_t mode = va_arg(ap, mode_t);
++ mode_t mode = va_arg(ap, int);
+ va_end(ap);
+ the_manager.lock_file_op();
+ fd = call_real_open(file, oflag, mode);
+--- plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/file_hash_table.cc.orig 2016-03-03 15:31:53.000000000 +0200
++++ plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/file_hash_table.cc 2016-03-08 10:37:19.000000000 +0200
+@@ -36,7 +36,7 @@
+
+ #include <string.h>
+ #include <pthread.h>
+-#include <malloc.h>
++#include <stdlib.h>
+ #include <stdio.h>
+
+ #include "source_file.h"
+--- plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/real_syscalls.cc.orig 2016-03-03 15:31:53.000000000 +0200
++++ plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/real_syscalls.cc 2016-03-08 10:38:58.000000000 +0200
+@@ -104,7 +104,7 @@
+ if (oflag & O_CREAT) {
+ va_list op;
+ va_start(op, oflag);
+- mode_t mode = va_arg(op, mode_t);
++ mode_t mode = va_arg(op, int);
+ va_end(op);
+ return real_open(file, oflag, mode);
+ } else {
+--- storage/tokudb/PerconaFT/CMakeLists.txt.orig 2016-06-30 13:35:08.000000000 +0200
++++ storage/tokudb/PerconaFT/CMakeLists.txt 2016-07-29 23:07:37.871068000 +0200
+@@ -82,7 +82,7 @@
+
+ install(
+ FILES README.md COPYING.AGPLv3 COPYING.GPLv2 PATENTS
+- DESTINATION .
++ DESTINATION ${INSTALL_DOCDIR}
+ COMPONENT tokukv_misc
+ )
+
+--- storage/tokudb/PerconaFT/buildheader/CMakeLists.txt.orig 2016-07-29 23:30:26.557847000 +0200
++++ storage/tokudb/PerconaFT/buildheader/CMakeLists.txt 2016-07-29 23:30:32.695950000 +0200
+@@ -1,6 +1,6 @@
+ set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "")
+
+-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/runcat.sh" "#!/bin/bash
++file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/runcat.sh" "#!/bin/sh
+ out=$1; shift
+ exec \"$@\" >$out")
+
+@@ -8,7 +8,7 @@
+ set_property(TARGET make_tdb APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE)
+ add_custom_command(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/db.h"
+- COMMAND bash runcat.sh "${CMAKE_CURRENT_BINARY_DIR}/db.h" $<TARGET_FILE:make_tdb>
++ COMMAND sh runcat.sh "${CMAKE_CURRENT_BINARY_DIR}/db.h" $<TARGET_FILE:make_tdb>
+ DEPENDS make_tdb)
+ add_custom_target(install_tdb_h DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/db.h")
diff --git a/databases/percona57-server/files/mysql-server.in b/databases/percona57-server/files/mysql-server.in
new file mode 100644
index 000000000000..245c1bdbaa85
--- /dev/null
+++ b/databases/percona57-server/files/mysql-server.in
@@ -0,0 +1,79 @@
+#!/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 "/var/db/mysql"
+# Base database directory.
+# mysql_optfile (str): Server-specific option file.
+# Default to "${mysql_dbdir}/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="/var/db/mysql"}
+: ${mysql_optfile="${mysql_dbdir}/my.cnf"}
+
+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} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}"
+procname="%%PREFIX%%/libexec/mysqld"
+start_precmd="${name}_prestart"
+start_postcmd="${name}_poststart"
+mysql_install_db="%%PREFIX%%/bin/mysql_install_db"
+mysql_install_db_args="--basedir=%%PREFIX%% --datadir=${mysql_dbdir} --defaults-extra-file=${mysql_optfile} --force"
+
+mysql_create_auth_tables()
+{
+ eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null
+ [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir}
+}
+
+mysql_prestart()
+{
+ 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/percona57-server/files/patch-CMakeLists.txt b/databases/percona57-server/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..92d09f7fe3d1
--- /dev/null
+++ b/databases/percona57-server/files/patch-CMakeLists.txt
@@ -0,0 +1,40 @@
+--- CMakeLists.txt.orig 2016-11-27 19:44:54 UTC
++++ CMakeLists.txt
+@@ -621,12 +621,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()
+
+@@ -635,8 +633,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)
+@@ -692,6 +688,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}
+@@ -714,6 +711,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM")
+ PATTERN "sp-imp-spec.txt" EXCLUDE
+ )
+ ENDIF()
++ENDIF()
+
+ INCLUDE(CPack)
+
diff --git a/databases/percona57-server/files/patch-client_CMakeLists.txt b/databases/percona57-server/files/patch-client_CMakeLists.txt
new file mode 100644
index 000000000000..09de11a195d7
--- /dev/null
+++ b/databases/percona57-server/files/patch-client_CMakeLists.txt
@@ -0,0 +1,83 @@
+--- client/CMakeLists.txt.orig 2016-11-27 19:44:54 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 perconaserverclient)
+ IF(UNIX)
+ TARGET_LINK_LIBRARIES(mysql ${MY_READLINE_LIBRARY})
+ ENDIF(UNIX)
++ENDIF()
+
+ IF(NOT WITHOUT_SERVER)
+ MYSQL_ADD_EXECUTABLE(mysql_upgrade
+@@ -65,6 +65,7 @@ TARGET_LINK_LIBRARIES(mysqltest perconas
+ ADD_CONVENIENCE_LIBRARY(mysqlcheck_core check/mysqlcheck_core.cc)
+ TARGET_LINK_LIBRARIES(mysqlcheck_core perconaserverclient)
+
++IF(FALSE)
+ MYSQL_ADD_EXECUTABLE(mysqlcheck check/mysqlcheck.cc)
+ TARGET_LINK_LIBRARIES(mysqlcheck mysqlcheck_core)
+
+@@ -77,10 +78,12 @@ TARGET_LINK_LIBRARIES(mysqlimport percon
+
+ MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c)
+ TARGET_LINK_LIBRARIES(mysqlshow perconaserverclient)
++ENDIF()
+
+ MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c)
+ TARGET_LINK_LIBRARIES(mysql_plugin perconaserverclient)
+
++IF(FALSE)
+ MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc)
+ ADD_COMPILE_FLAGS(
+ mysqlbinlog.cc
+@@ -97,9 +100,12 @@ TARGET_LINK_LIBRARIES(mysqlslap perconas
+
+ MYSQL_ADD_EXECUTABLE(mysql_config_editor mysql_config_editor.cc)
+ TARGET_LINK_LIBRARIES(mysql_config_editor perconaserverclient)
++ENDIF()
+
++IF(FALSE)
+ MYSQL_ADD_EXECUTABLE(mysql_secure_installation mysql_secure_installation.cc)
+ TARGET_LINK_LIBRARIES(mysql_secure_installation perconaserverclient)
++ENDIF()
+
+ IF(UNIX AND NOT WITHOUT_SERVER)
+ MYSQL_ADD_EXECUTABLE(mysql_install_db
+@@ -112,9 +118,11 @@ IF(UNIX AND NOT WITHOUT_SERVER)
+ ADD_DEPENDENCIES(mysql_install_db GenBootstrapPriv GenSysSchema)
+ ENDIF()
+
++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)
+@@ -123,11 +131,6 @@ ENDIF(WIN32)
+
+ SET_TARGET_PROPERTIES (
+ mysql_plugin
+- mysqlcheck
+- mysqldump
+- mysqlimport
+- mysqlshow
+- mysqlslap
+ PROPERTIES HAS_CXX TRUE)
+
+ ADD_DEFINITIONS(-DHAVE_DLOPEN)
diff --git a/databases/percona57-server/files/patch-include_CMakeLists.txt b/databases/percona57-server/files/patch-include_CMakeLists.txt
new file mode 100644
index 000000000000..c047677002a0
--- /dev/null
+++ b/databases/percona57-server/files/patch-include_CMakeLists.txt
@@ -0,0 +1,19 @@
+--- include/CMakeLists.txt.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-include_my__compare.h b/databases/percona57-server/files/patch-include_my__compare.h
new file mode 100644
index 000000000000..608e15dd8751
--- /dev/null
+++ b/databases/percona57-server/files/patch-include_my__compare.h
@@ -0,0 +1,11 @@
+--- include/my_compare.h.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-include_myisam.h b/databases/percona57-server/files/patch-include_myisam.h
new file mode 100644
index 000000000000..96bc58628416
--- /dev/null
+++ b/databases/percona57-server/files/patch-include_myisam.h
@@ -0,0 +1,11 @@
+--- include/myisam.h.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-libmysql_CMakeLists.txt b/databases/percona57-server/files/patch-libmysql_CMakeLists.txt
new file mode 100644
index 000000000000..1e13d4796949
--- /dev/null
+++ b/databases/percona57-server/files/patch-libmysql_CMakeLists.txt
@@ -0,0 +1,29 @@
+--- libmysql/CMakeLists.txt.orig 2016-11-27 19:44:54 UTC
++++ libmysql/CMakeLists.txt
+@@ -231,7 +231,7 @@ IF(WIN32)
+ ENDIF()
+
+ # Merge several convenience libraries into one big perconaserverclient
+-MERGE_LIBRARIES(perconaserverclient STATIC ${LIBS} COMPONENT Development)
++MERGE_LIBRARIES(perconaserverclient STATIC ${LIBS} COMPONENT Development NOINSTALL)
+
+ # Visual Studio users need debug static library for debug projects
+ IF(MSVC)
+@@ -273,7 +273,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)
+@@ -329,6 +330,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/percona57-server/files/patch-libservices_CMakeLists.txt b/databases/percona57-server/files/patch-libservices_CMakeLists.txt
new file mode 100644
index 000000000000..c9190039e613
--- /dev/null
+++ b/databases/percona57-server/files/patch-libservices_CMakeLists.txt
@@ -0,0 +1,9 @@
+--- libservices/CMakeLists.txt.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-man_CMakeLists.txt b/databases/percona57-server/files/patch-man_CMakeLists.txt
new file mode 100644
index 000000000000..0d3487cbefe6
--- /dev/null
+++ b/databases/percona57-server/files/patch-man_CMakeLists.txt
@@ -0,0 +1,13 @@
+--- man/CMakeLists.txt.orig 2016-11-27 19:44:54 UTC
++++ man/CMakeLists.txt
+@@ -14,9 +14,7 @@
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ # 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 MAN1_FILES 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)
+ FILE(GLOB MAN8_FILES *.8)
+ FILE(GLOB MAN8_NDB ndb*.8)
+ IF(MAN1_FILES)
diff --git a/databases/percona57-server/files/patch-mysys__ssl_my__default.cc b/databases/percona57-server/files/patch-mysys__ssl_my__default.cc
new file mode 100644
index 000000000000..83a127b9602c
--- /dev/null
+++ b/databases/percona57-server/files/patch-mysys__ssl_my__default.cc
@@ -0,0 +1,31 @@
+--- mysys_ssl/my_default.cc.orig 2016-11-27 19:44:54 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;
+
+@@ -1416,7 +1416,10 @@ static const char **init_default_directo
+
+ #if defined(DEFAULT_SYSCONFDIR)
+ if (DEFAULT_SYSCONFDIR[0])
++ {
+ errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
++ errors += add_directory(alloc, DEFAULT_SYSCONFDIR "/mysql", dirs);
++ }
+ #endif /* DEFAULT_SYSCONFDIR */
+
+ #endif
+@@ -1488,7 +1491,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/percona57-server/files/patch-scripts_CMakeLists.txt b/databases/percona57-server/files/patch-scripts_CMakeLists.txt
new file mode 100644
index 000000000000..84daf75bf979
--- /dev/null
+++ b/databases/percona57-server/files/patch-scripts_CMakeLists.txt
@@ -0,0 +1,34 @@
+--- scripts/CMakeLists.txt.orig 2016-11-27 19:44:54 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()
+@@ -432,13 +434,11 @@ ELSE()
+
+ IF(WITH_SYSTEMD)
+ SET(BIN_SCRIPTS
+- mysql_config
+ mysqldumpslow
+ ps_tokudb_admin
+ )
+ ELSE()
+ SET(BIN_SCRIPTS
+- mysql_config
+ mysqldumpslow
+ mysqld_multi
+ mysqld_safe
+@@ -473,7 +473,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/percona57-server/files/patch-sql_json__dom.h b/databases/percona57-server/files/patch-sql_json__dom.h
new file mode 100644
index 000000000000..54718af16065
--- /dev/null
+++ b/databases/percona57-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/percona57-server/files/patch-sql_mysqld.cc b/databases/percona57-server/files/patch-sql_mysqld.cc
new file mode 100644
index 000000000000..a3ac78e28867
--- /dev/null
+++ b/databases/percona57-server/files/patch-sql_mysqld.cc
@@ -0,0 +1,19 @@
+--- sql/mysqld.cc.orig 2016-11-27 19:44:54 UTC
++++ sql/mysqld.cc
+@@ -1480,6 +1480,16 @@ static void clean_up_mutexes()
+ ****************************************************************************/
+
+ /* Initialise proxy protocol. */
++
++/* At least OpenBSD and NexentaCore do not
++* define s6_addr32 for user land settings.
++*/
++#if !defined s6_addr32 && defined __sun__
++# define s6_addr32 _S6_un._S6_u32
++#elif !defined s6_addr32 && ( defined __OpenBSD__ || defined __FreeBSD__ )
++# define s6_addr32 __u6_addr.__u6_addr32
++#endif /* !defined s6_addr32 */
++
+ static void set_proxy()
+ {
+ const char *p;
diff --git a/databases/percona57-server/files/patch-sql_sql__view.cc b/databases/percona57-server/files/patch-sql_sql__view.cc
new file mode 100644
index 000000000000..91984f8b53db
--- /dev/null
+++ b/databases/percona57-server/files/patch-sql_sql__view.cc
@@ -0,0 +1,63 @@
+--- sql/sql_view.cc.orig 2016-11-27 19:44:54 UTC
++++ sql/sql_view.cc
+@@ -773,46 +773,46 @@ static const int required_view_parameter
+ */
+ static File_option view_parameters[]=
+ {{{ C_STRING_WITH_LEN("query")},
+- my_offsetof(TABLE_LIST, select_stmt),
++ static_cast<int>(my_offsetof(TABLE_LIST, select_stmt)),
+ FILE_OPTIONS_ESTRING},
+ {{ C_STRING_WITH_LEN("md5")},
+- my_offsetof(TABLE_LIST, md5),
++ static_cast<int>(my_offsetof(TABLE_LIST, md5)),
+ FILE_OPTIONS_STRING},
+ {{ C_STRING_WITH_LEN("updatable")},
+- my_offsetof(TABLE_LIST, updatable_view),
++ static_cast<int>(my_offsetof(TABLE_LIST, updatable_view)),
+ FILE_OPTIONS_ULONGLONG},
+ {{ C_STRING_WITH_LEN("algorithm")},
+- my_offsetof(TABLE_LIST, algorithm),
++ static_cast<int>(my_offsetof(TABLE_LIST, algorithm)),
+ FILE_OPTIONS_ULONGLONG},
+ {{ C_STRING_WITH_LEN("definer_user")},
+- my_offsetof(TABLE_LIST, definer.user),
++ static_cast<int>(my_offsetof(TABLE_LIST, definer.user)),
+ FILE_OPTIONS_STRING},
+ {{ C_STRING_WITH_LEN("definer_host")},
+- my_offsetof(TABLE_LIST, definer.host),
++ static_cast<int>(my_offsetof(TABLE_LIST, definer.host)),
+ FILE_OPTIONS_STRING},
+ {{ C_STRING_WITH_LEN("suid")},
+- my_offsetof(TABLE_LIST, view_suid),
++ static_cast<int>(my_offsetof(TABLE_LIST, view_suid)),
+ FILE_OPTIONS_ULONGLONG},
+ {{ C_STRING_WITH_LEN("with_check_option")},
+- my_offsetof(TABLE_LIST, with_check),
++ static_cast<int>(my_offsetof(TABLE_LIST, with_check)),
+ FILE_OPTIONS_ULONGLONG},
+ {{ C_STRING_WITH_LEN("timestamp")},
+- my_offsetof(TABLE_LIST, timestamp),
++ static_cast<int>(my_offsetof(TABLE_LIST, timestamp)),
+ FILE_OPTIONS_TIMESTAMP},
+ {{ C_STRING_WITH_LEN("create-version")},
+- my_offsetof(TABLE_LIST, file_version),
++ static_cast<int>(my_offsetof(TABLE_LIST, file_version)),
+ FILE_OPTIONS_ULONGLONG},
+ {{ C_STRING_WITH_LEN("source")},
+- my_offsetof(TABLE_LIST, source),
++ static_cast<int>(my_offsetof(TABLE_LIST, source)),
+ FILE_OPTIONS_ESTRING},
+ {{(char*) STRING_WITH_LEN("client_cs_name")},
+- my_offsetof(TABLE_LIST, view_client_cs_name),
++ static_cast<int>(my_offsetof(TABLE_LIST, view_client_cs_name)),
+ FILE_OPTIONS_STRING},
+ {{(char*) STRING_WITH_LEN("connection_cl_name")},
+- my_offsetof(TABLE_LIST, view_connection_cl_name),
++ static_cast<int>(my_offsetof(TABLE_LIST, view_connection_cl_name)),
+ FILE_OPTIONS_STRING},
+ {{(char*) STRING_WITH_LEN("view_body_utf8")},
+- my_offsetof(TABLE_LIST, view_body_utf8),
++ static_cast<int>(my_offsetof(TABLE_LIST, view_body_utf8)),
+ FILE_OPTIONS_ESTRING},
+ {{NullS, 0}, 0,
+ FILE_OPTIONS_STRING}
diff --git a/databases/percona57-server/files/patch-sql_sys__vars.cc b/databases/percona57-server/files/patch-sql_sys__vars.cc
new file mode 100644
index 000000000000..1d1cb73e49a2
--- /dev/null
+++ b/databases/percona57-server/files/patch-sql_sys__vars.cc
@@ -0,0 +1,38 @@
+--- sql/sys_vars.cc.orig 2016-11-27 19:44:54 UTC
++++ sql/sys_vars.cc
+@@ -1804,7 +1804,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",
+@@ -2696,7 +2696,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));
+
+@@ -2720,7 +2720,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));
+
+@@ -4406,7 +4406,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/percona57-server/files/patch-storage_innobase_buf_buf0buf.cc b/databases/percona57-server/files/patch-storage_innobase_buf_buf0buf.cc
new file mode 100644
index 000000000000..e43b325c6ea7
--- /dev/null
+++ b/databases/percona57-server/files/patch-storage_innobase_buf_buf0buf.cc
@@ -0,0 +1,11 @@
+--- storage/innobase/buf/buf0buf.cc.orig 2016-11-27 19:44:54 UTC
++++ storage/innobase/buf/buf0buf.cc
+@@ -333,7 +333,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/percona57-server/files/patch-storage_innobase_dict_dict0stats.cc b/databases/percona57-server/files/patch-storage_innobase_dict_dict0stats.cc
new file mode 100644
index 000000000000..48c7e3ed5d43
--- /dev/null
+++ b/databases/percona57-server/files/patch-storage_innobase_dict_dict0stats.cc
@@ -0,0 +1,11 @@
+--- storage/innobase/dict/dict0stats.cc.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-storage_innobase_include_srv0mon.h b/databases/percona57-server/files/patch-storage_innobase_include_srv0mon.h
new file mode 100644
index 000000000000..e023ef0c7708
--- /dev/null
+++ b/databases/percona57-server/files/patch-storage_innobase_include_srv0mon.h
@@ -0,0 +1,13 @@
+--- storage/innobase/include/srv0mon.h.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-storage_innobase_sync_sync0debug.cc b/databases/percona57-server/files/patch-storage_innobase_sync_sync0debug.cc
new file mode 100644
index 000000000000..e6087e7640a9
--- /dev/null
+++ b/databases/percona57-server/files/patch-storage_innobase_sync_sync0debug.cc
@@ -0,0 +1,11 @@
+--- storage/innobase/sync/sync0debug.cc.orig 2016-11-27 19:44:54 UTC
++++ storage/innobase/sync/sync0debug.cc
+@@ -1717,7 +1717,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/percona57-server/files/patch-storage_myisam_mi__dynrec.c b/databases/percona57-server/files/patch-storage_myisam_mi__dynrec.c
new file mode 100644
index 000000000000..80b7192940ca
--- /dev/null
+++ b/databases/percona57-server/files/patch-storage_myisam_mi__dynrec.c
@@ -0,0 +1,23 @@
+--- storage/myisam/mi_dynrec.c.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-support-files_CMakeLists.txt b/databases/percona57-server/files/patch-support-files_CMakeLists.txt
new file mode 100644
index 000000000000..87658305530b
--- /dev/null
+++ b/databases/percona57-server/files/patch-support-files_CMakeLists.txt
@@ -0,0 +1,12 @@
+--- support-files/CMakeLists.txt.orig 2016-11-27 19:44:54 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/percona57-server/files/patch-vio_viosocket.c b/databases/percona57-server/files/patch-vio_viosocket.c
new file mode 100644
index 000000000000..c03e19e9e86c
--- /dev/null
+++ b/databases/percona57-server/files/patch-vio_viosocket.c
@@ -0,0 +1,13 @@
+--- vio/viosocket.c.orig 2016-11-27 19:44:54 UTC
++++ vio/viosocket.c
+@@ -45,6 +45,10 @@
+ static void (*before_io_wait)(void)= 0;
+ static void (*after_io_wait)(void)= 0;
+
++#ifdef __FreeBSD__
++#define s6_addr32 __u6_addr.__u6_addr32
++#endif
++
+ /* Wait callback macros (both performance schema and threadpool */
+ #define START_SOCKET_WAIT(locker, state_ptr, sock, which, timeout) \
+ do \
diff --git a/databases/percona57-server/pkg-descr b/databases/percona57-server/pkg-descr
new file mode 100644
index 000000000000..cb5d1681d1bb
--- /dev/null
+++ b/databases/percona57-server/pkg-descr
@@ -0,0 +1,4 @@
+MySQL replacement : Percona ServerPercona Server is a drop-in alternative
+for MySQL with enhanced performance and enterprise-grade features.
+
+WWW: http://www.percona.com/software/percona-server
diff --git a/databases/percona57-server/pkg-message b/databases/percona57-server/pkg-message
new file mode 100644
index 000000000000..71d00aa80526
--- /dev/null
+++ b/databases/percona57-server/pkg-message
@@ -0,0 +1,6 @@
+************************************************************************
+
+Remember to run mysql_upgrade the first time you start the MySQL server
+after an upgrade from an earlier version.
+
+************************************************************************
diff --git a/databases/percona57-server/pkg-plist b/databases/percona57-server/pkg-plist
new file mode 100644
index 000000000000..11498d438072
--- /dev/null
+++ b/databases/percona57-server/pkg-plist
@@ -0,0 +1,179 @@
+bin/innochecksum
+bin/lz4_decompress
+bin/myisamchk
+bin/myisam_ftdump
+bin/myisamlog
+bin/myisampack
+bin/my_print_defaults
+bin/mysqld_multi
+bin/mysqld_safe
+bin/mysqldumpslow
+bin/mysql_install_db
+bin/mysql_plugin
+bin/mysqltest
+bin/mysql_tzinfo_to_sql
+bin/mysql_upgrade
+bin/mysqlxtest
+bin/perror
+bin/ps_tokudb_admin
+bin/replace
+bin/resolveip
+bin/resolve_stack_dump
+bin/zlib_decompress
+%%DATADIR%%/bulgarian/errmsg.sys
+%%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/Index.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/README
+%%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%%/mysqld_multi.server
+%%DATADIR%%/mysql-log-rotate
+%%DATADIR%%/mysql_security_commands.sql
+%%DATADIR%%/mysql.server
+%%DATADIR%%/mysql_sys_schema.sql
+%%DATADIR%%/mysql_system_tables_data.sql
+%%DATADIR%%/mysql_system_tables.sql
+%%DATADIR%%/mysql_test_data_timezone.sql
+%%DATADIR%%/norwegian/errmsg.sys
+%%DATADIR%%/norwegian-ny/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
+include/mysql/mysqlx_error.h
+include/mysql/mysqlx_version.h
+@dir lib/mysql/plugin/debug
+@dir(mysql,mysql,) /var/db/mysql
+%%INNODBMEMCACHED%%lib/mysql/plugin/innodb_engine.so
+%%INNODBMEMCACHED%%lib/mysql/plugin/libmemcached.so
+libexec/mysqld
+lib/mysql/libmysqld.a
+lib/mysql/plugin/adt_null.so
+lib/mysql/plugin/audit_log.so
+lib/mysql/plugin/auth.so
+lib/mysql/plugin/auth_test_plugin.so
+lib/mysql/plugin/daemon_example.ini
+lib/mysql/plugin/ha_example.so
+lib/mysql/plugin/keyring_file.so
+lib/mysql/plugin/keyring_udf.so
+lib/mysql/plugin/libdaemon_example.so
+lib/mysql/plugin/libfnv1a_udf.so
+lib/mysql/plugin/libfnv_udf.so
+lib/mysql/plugin/libmurmur_udf.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_info.so
+lib/mysql/plugin/libtest_session_in_thd.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/query_response_time.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/test_udf_services.so
+lib/mysql/plugin/validate_password.so
+lib/mysql/plugin/version_token.so
+libdata/pkgconfig/LIBMYSQL_OS_OUTPUT_NAME-NOTFOUND.pc
+man/man1/myisamchk.1.gz
+man/man1/myisam_ftdump.1.gz
+man/man1/myisamlog.1.gz
+man/man1/myisampack.1.gz
+man/man1/my_print_defaults.1.gz
+man/man1/mysqld_multi.1.gz
+man/man1/mysqld_safe.1.gz
+man/man1/mysqldumpslow.1.gz
+man/man1/mysql_install_db.1.gz
+man/man1/mysqlman.1.gz
+man/man1/mysql_plugin.1.gz
+man/man1/mysql_secure_installation.1.gz
+man/man1/mysql.server.1.gz
+man/man1/mysqltest.1.gz
+man/man1/mysql_tzinfo_to_sql.1.gz
+man/man1/mysql_upgrade.1.gz
+man/man1/perror.1.gz
+man/man1/replace.1.gz
+man/man1/resolveip.1.gz
+man/man1/resolve_stack_dump.1.gz
+man/man8/mysqld.8.gz
+%%TOKUDB%%bin/tokuftdump
+%%TOKUDB%%bin/tokuft_logprint
+%%TOKUDB%%include/backup.h
+%%TOKUDB%%lib/mysql/libHotBackup.so
+%%TOKUDB%%lib/mysql/plugin/ha_tokudb.so
+%%TOKUDB%%lib/mysql/plugin/tokudb_backup.so
+%%TOKUDB%%share/doc/mysql/COPYING.AGPLv3
+%%TOKUDB%%share/doc/mysql/COPYING.GPLv2
+%%TOKUDB%%share/doc/mysql/PATENTS
+%%TOKUDB%%share/doc/mysql/README.md
+%%TOKUDB%%share/doc/mysql/README_tokudb_backup