Initial mysqlwsrep80

This commit is contained in:
Xavier Beaudouin
2024-01-24 10:33:30 +01:00
parent ef61d4684e
commit 53ecf53d1b
55 changed files with 2193 additions and 0 deletions

View File

@ -0,0 +1,208 @@
# Created by: Mahdi Mokhtari <mokhi64@gmail.com>
# $FreeBSD: head/databases/mysql80-server/Makefile 553940 2020-11-03 00:56:26Z jbeich $
PORTNAME?= mysqlwsrep
PORTVERSION= 8.0.21
DISTVERSIONPREFIX?= wsrep_
DISTVERSIONSUFFIX?= -26.4
PORTREVISION?= 1
CATEGORIES= databases
MASTER_SITES= https://releases.galeracluster.com/mysql-wsrep-8.0/source/
PKGNAMESUFFIX?= 80-server
DISTNAME= mysql-wsrep-${PORTVERSION}${DISTVERSIONSUFFIX}
MAINTAINER= joneum@FreeBSD.org
COMMENT?= Multithreaded SQL database (server)
LICENSE= GPLv2
WRKSRC= ${WRKDIR}/mysql-wsrep-${PORTVERSION}${DISTVERSIONSUFFIX}
SLAVEDIRS= databases/mysql80-client
USES= bison:build cmake:noninja compiler:c++14-lang cpe \
groff:run libedit localbase ncurses perl5 pkgconfig shebangfix ssl
USE_CXXSTD= c++14
USE_PERL5= run
MY_DBDIR= /var/db/mysql
MY_SECDIR= /var/db/mysql_secure
MY_TMPDIR= /var/db/mysql_tmpdir
LIB_DEPENDS+= libcurl.so:ftp/curl \
libevent.so:devel/libevent \
libicutu.so:devel/icu \
liblz4.so:archivers/liblz4 \
libzstd.so:archivers/zstd \
libprotobuf.so:devel/protobuf \
${LIB_DEPENDS_${ARCH}}
LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind
LIB_DEPENDS_amd64= libunwind.so:devel/libunwind
LIB_DEPENDS_i386= libunwind.so:devel/libunwind
LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind
LIB_DEPENDS_powerpc64le= libunwind.so:devel/libunwind
BUILD_DEPENDS= liblz4>0:archivers/liblz4 \
${BUILD_DEPENDS_${ARCH}}
BUILD_DEPENDS_aarch64= libunwind>0:devel/libunwind
BUILD_DEPENDS_amd64= libunwind>0:devel/libunwind
BUILD_DEPENDS_i386= libunwind>0:devel/libunwind
BUILD_DEPENDS_powerpc64= libunwind>0:devel/libunwind
BUILD_DEPENDS_powerpc64le= libunwind>0:devel/libunwind
CMAKE_BUILD_TYPE= Release
CFLAGS+= -fPIC
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_PATH}" \
-DINSTALL_LIBDIR="lib/mysql" \
-DINSTALL_MANDIR="man" \
-DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
-DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
-DINSTALL_MYSQLSHAREDIR="share/mysql" \
-DINSTALL_MYSQLTESTDIR="" \
-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_SYSTEM_LIBS=1 \
-DWITH_EDITLINE=system \
-DWITH_LIBEVENT=system \
-DWITH_LZ4=system \
-DWITH_ICU=system \
-DWITH_CURL=system \
-DWITH_ZLIB=system \
-DWITH_ZSTD=system \
-DWITH_PROTOBUF=system \
-DWITH_SSL=${OPENSSLBASE} \
-DBUILD_BUNDLED_ZLIB=0 \
-DBUILD_BUNDLED_LZ4=0
# The Mroonga, RocksDB, and TokuDB storage engines are disabled.
# Mroonga is only buildable on little endian archs.
# RocksDB is only buildable on little endian archs and requires POSIX timers.
# TokuDB is only buildable on 64-bit little endian archs.
CMAKE_ARGS+= -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \
-DWITHOUT_TOKUDB_STORAGE_ENGINE=1
SHEBANG_FILES= scripts/*.pl* scripts/*.sh
.ifdef USE_MYSQL
IGNORE= 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-* \
mysqlwsrep* \
mariadb[0-9][0-9]-server-* \
percona[0-9][0-9]-server-*
USE_RC_SUBR= mysql-server
SUB_FILES= my.cnf.sample pkg-message
USERS= mysql
GROUPS= mysql
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
MMAN1= ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 \
myisamlog.1 myisampack.1 mysql_secure_installation.1 mysql_ssl_rsa_setup.1 \
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql.server.1 mysqldumpslow.1 mysqld_multi.1 \
mysqld_safe.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlrouter.1
MMAN8= mysqld.8
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="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"
FEDERATED_SUB_LIST+= FEDER="--federated"
FEDERATED_SUB_LIST_OFF+= FEDER=""
.endif
.include <bsd.port.options.mk>
# Since 8.0.20 release innodb engine uses new memory alligned allocator
# which is broken on i386 due to different size of types and caused a
# 'static_assert(alignof(T) <= alignof(std::max_align_t))' error
.if ${ARCH} == i386
CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1
.endif
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057
SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS=""
.else
SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment "
.endif
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1300109
BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}
CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT}
.endif
post-extract:
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
.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>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1608572785
SHA256 (mysql-wsrep-8.0.21-26.4.tar.gz) = e367b0545dc30aa119a22628e0c3a3f7a469399148800621968dea066c1b33e2
SIZE (mysql-wsrep-8.0.21-26.4.tar.gz) = 285710964

View File

@ -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

View File

@ -0,0 +1,62 @@
# $FreeBSD: head/databases/mysql80-server/files/my.cnf.sample.in 469734 2018-05-12 15:35:25Z mmokhi $
[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
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

View File

@ -0,0 +1,91 @@
#!/bin/sh
#
# $FreeBSD: head/databases/mysql80-server/files/mysql-server.in 466508 2018-04-04 21:01:28Z mmokhi $
#
# 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.
%%LEGACY_LIMITS%%# mysql_limits (bool): Set to "NO" by default.
%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql`
%%LEGACY_LIMITS%%# 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.
# Set it in the rc.conf or default behaviour of
# `mysqld_safe` itself, will be picking
# ${mysql_confdir}/my.cnf if it exists.
# 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"}
%%LEGACY_LIMITS%%: ${mysql_limits="NO"}
: ${mysql_dbdir="%%MY_DBDIR%%"}
: ${mysql_confdir="%%ETCDIR%%"}
if [ -f "${mysql_confdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_confdir}/my.cnf"}
elif [ -f "${mysql_dbdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_dbdir}/my.cnf"}
fi
if [ ! -z "${mysql_optfile}" ]; then
mysql_extra="--defaults-extra-file=${mysql_optfile}"
fi
mysql_user="mysql"
%%LEGACY_LIMITS%%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 ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%"
procname="%%PREFIX%%/libexec/mysqld"
start_precmd="${name}_prestart"
start_postcmd="${name}_poststart"
mysqld_init="${procname}"
mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}"
mysql_create_auth_tables()
{
eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null
}
mysql_prestart()
{
if [ ! -d "${mysql_dbdir}/mysql/." ]; then
mysql_create_auth_tables || return 1
fi
%%LEGACY_LIMITS%% if checkyesno mysql_limits; then
%%LEGACY_LIMITS%% eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null
%%LEGACY_LIMITS%% else
%%LEGACY_LIMITS%% return 0
%%LEGACY_LIMITS%% fi
%%MODERN_LIMITS%% return 0
}
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"

View File

@ -0,0 +1,76 @@
--- CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ CMakeLists.txt
@@ -1417,10 +1417,10 @@ IF(WITH_AUTHENTICATION_LDAP)
ENDIF()
ENDIF()
-# Add system/bundled editline.
-MYSQL_CHECK_EDITLINE()
# Add libevent
-MYSQL_CHECK_LIBEVENT()
+IF(NOT WITHOUT_SERVER)
+ MYSQL_CHECK_LIBEVENT()
+ENDIF()
# Add lz4 library
MYSQL_CHECK_LZ4()
# Add icu library
@@ -1520,7 +1520,9 @@ IF(WITH_UNIT_TESTS)
INCLUDE(googletest)
ENDIF()
-ADD_SUBDIRECTORY(include)
+IF(NOT WITHOUT_CLIENTLIBS)
+ ADD_SUBDIRECTORY(include)
+ENDIF(NOT WITHOUT_CLIENTLIBS)
ADD_SUBDIRECTORY(strings)
ADD_SUBDIRECTORY(vio)
ADD_SUBDIRECTORY(mysys)
@@ -1562,12 +1564,17 @@ IF(WITH_UNIT_TESTS)
ADD_SUBDIRECTORY(unittest/mytap/t)
ENDIF()
-ADD_SUBDIRECTORY(client)
+IF(NOT WITHOUT_TOOLS)
+ # Add system/bundled editline
+ MYSQL_CHECK_EDITLINE()
+ ADD_SUBDIRECTORY(client)
+ENDIF(NOT WITHOUT_TOOLS)
+
ADD_SUBDIRECTORY(utilities)
-ADD_SUBDIRECTORY(share)
ADD_SUBDIRECTORY(libservices)
IF(NOT WITHOUT_SERVER)
+ ADD_SUBDIRECTORY(share)
ADD_SUBDIRECTORY(testclients)
ADD_SUBDIRECTORY(sql)
ENDIF()
@@ -1590,11 +1597,11 @@ ENDIF()
# scripts/mysql_config depends on client and server targets loaded above.
# It is referenced by some of the directories below, so we insert it here.
ADD_SUBDIRECTORY(scripts)
+ADD_SUBDIRECTORY(support-files)
IF(NOT WITHOUT_SERVER)
ADD_SUBDIRECTORY(mysql-test)
ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess)
- ADD_SUBDIRECTORY(support-files)
IF(WITH_INTERNAL)
ADD_SUBDIRECTORY(internal)
ENDIF()
@@ -1703,6 +1710,7 @@ IF(PACK_SEPARATE_COMPONENTS)
SET(CPACK_COMPONENTS_GROUPING IGNORE)
ENDIF()
+IF(FALSE)
IF(UNIX)
INSTALL(FILES
Docs/mysql.info
@@ -1737,6 +1745,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM")
PATTERN "sp-imp-spec.txt" EXCLUDE
PATTERN "README.build" EXCLUDE
)
+ENDIF()
ENDIF()
# Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests,

View File

@ -0,0 +1,76 @@
--- client/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ client/CMakeLists.txt
@@ -23,8 +23,11 @@
## Subdirectory with common client code.
ADD_SUBDIRECTORY(base)
## Subdirectory for mysqlpump code.
+IF(WITHOUT_SERVER)
ADD_SUBDIRECTORY(dump)
+ENDIF()
+IF(NOT WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(mysql
${CMAKE_SOURCE_DIR}/sql-common/net_ns.cc
completion_hash.cc
@@ -33,6 +36,7 @@ MYSQL_ADD_EXECUTABLE(mysql
readline.cc
LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY}
)
+ENDIF()
IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysql_upgrade
@@ -48,6 +52,7 @@ IF(SOLARIS_SPARC AND CMAKE_BUILD_TYPE_UPPER STREQUAL "
)
ENDIF()
+IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqltest
mysqltest.cc
mysqltest/error_names.cc
@@ -63,6 +68,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest
ENABLE_EXPORTS
LINK_LIBRARIES mysqlclient
)
+ENDIF()
+
+IF(WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqlcheck
check/mysqlcheck.cc
check/mysqlcheck_core.cc
@@ -80,6 +88,7 @@ MYSQL_ADD_EXECUTABLE(mysqlshow
mysqlshow.cc
LINK_LIBRARIES mysqlclient
)
+
MYSQL_ADD_EXECUTABLE(mysqlbinlog
mysqlbinlog.cc
${CMAKE_SOURCE_DIR}/sql/json_binary.cc
@@ -104,7 +113,9 @@ MYSQL_ADD_EXECUTABLE(mysqlbinlog
TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX)
TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql)
+ENDIF()
+IF(WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqladmin
mysqladmin.cc
LINK_LIBRARIES mysqlclient
@@ -117,6 +128,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor
mysql_config_editor.cc
LINK_LIBRARIES mysqlclient
)
+ENDIF()
+
+IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysql_secure_installation
mysql_secure_installation.cc
LINK_LIBRARIES mysqlclient
@@ -127,6 +141,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup
path.cc
LINK_LIBRARIES mysys
)
+ENDIF()
# "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/".
IF(WIN32)

View File

@ -0,0 +1,95 @@
--- cmake/install_layout.cmake.orig 2019-12-09 19:53:17 UTC
+++ cmake/install_layout.cmake
@@ -41,6 +41,10 @@
# Build with prefix=/usr/local/mysql, create tarball with install prefix="."
# and relative links.
#
+# FREEBSD
+# Build with prefix=/usr/local, create tarball with install prefix="."
+# and relative links.
+#
# To force a directory layout, use -DINSTALL_LAYOUT=<layout>.
#
# The default is STANDALONE.
@@ -80,7 +84,7 @@ IF(NOT INSTALL_LAYOUT)
ENDIF()
SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}"
- CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, RPM, DEB, SVR4"
+ CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, FREEBSD, RPM, DEB, SVR4"
)
IF(UNIX)
@@ -98,7 +102,7 @@ IF(UNIX)
CACHE PATH "install prefix" FORCE)
ENDIF()
SET(VALID_INSTALL_LAYOUTS
- "RPM" "DEB" "SVR4" "TARGZ" "STANDALONE")
+ "RPM" "DEB" "SVR4" "TARGZ" "FREEBSD" "STANDALONE")
LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind)
IF(ind EQUAL -1)
MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}."
@@ -167,6 +171,32 @@ SET(INSTALL_MYSQLKEYRINGDIR_STANDALONE "keyring")
SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path})
#
+# FREEBSD layout
+#
+SET(INSTALL_BINDIR_FREEBSD "bin")
+SET(INSTALL_SBINDIR_FREEBSD "bin")
+#
+SET(INSTALL_LIBDIR_FREEBSD "lib")
+SET(INSTALL_PRIV_LIBDIR_FREEBSD "lib/private")
+SET(INSTALL_PLUGINDIR_FREEBSD "lib/plugin")
+#
+SET(INSTALL_INCLUDEDIR_FREEBSD "include")
+#
+SET(INSTALL_DOCDIR_FREEBSD "docs")
+SET(INSTALL_DOCREADMEDIR_FREEBSD ".")
+SET(INSTALL_MANDIR_FREEBSD "man")
+SET(INSTALL_INFODIR_FREEBSD "docs")
+#
+SET(INSTALL_SHAREDIR_FREEBSD "share")
+SET(INSTALL_MYSQLSHAREDIR_FREEBSD "share")
+SET(INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test")
+SET(INSTALL_SUPPORTFILESDIR_FREEBSD "support-files")
+#
+SET(INSTALL_MYSQLDATADIR_FREEBSD "data")
+SET(INSTALL_MYSQLKEYRINGDIR_FREEBSD "keyring")
+SET(INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path})
+
+#
# TARGZ layout
#
SET(INSTALL_BINDIR_TARGZ "bin")
@@ -361,7 +391,7 @@ ENDIF()
SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LAYOUT}"
CACHE
STRING
- "Installation directory layout. Options are: STANDALONE RPM DEB SVR4 TARGZ")
+ "Installation directory layout. Options are: STANDALONE FREEBSD RPM DEB SVR4 TARGZ")
# If we are shared STANDALONE with the the server, we shouldn't write
# into the server's data/ as that would create a "schemadir" in
@@ -405,6 +435,21 @@ FOREACH(var
)
SET(ROUTER_INSTALL_${var}DIR_TARGZ ${ROUTER_INSTALL_${var}DIR_STANDALONE})
ENDFOREACH()
+
+#
+# FreeBSD layout
+#
+SET(ROUTER_INSTALL_CONFIGDIR_FREEBSD "/usr/local/etc/mysqlrouter")
+SET(ROUTER_INSTALL_DATADIR_FREEBSD "/var/db/mysqlrouter")
+SET(ROUTER_INSTALL_LOGDIR_FREEBSD "/var/log/mysqlrouter")
+SET(ROUTER_INSTALL_RUNTIMEDIR_FREEBSD "/var/run/mysqlrouter")
+
+SET(ROUTER_INSTALL_BINDIR_FREEBSD "bin")
+SET(ROUTER_INSTALL_LIBDIR_FREEBSD "lib/mysql")
+SET(ROUTER_INSTALL_PLUGINDIR_FREEBSD "lib/mysql/mysqlrouter")
+SET(ROUTER_INSTALL_LOGROTATEDIR_FREEBSD "etc/logrotate.d")
+SET(ROUTER_INSTALL_LOGROTATEFILE_FREEBSD "mysqlrouter")
+SET(ROUTER_INSTALL_DOCDIR_FREEBSD "share/mysqlrouter/docs")
FOREACH(var
LOGROTATE

View File

@ -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()

View File

@ -0,0 +1,25 @@
--- cmake/os/FreeBSD.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/os/FreeBSD.cmake
@@ -45,8 +45,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER)
MESSAGE(FATAL_ERROR
"GCC 5.3 or newer is required (-dumpversion says ${GCC_VERSION})")
ENDIF()
- ELSE()
- MESSAGE(FATAL_ERROR "Unsupported compiler!")
+ CHECK_C_SOURCE_RUNS("
+ int main()
+ {
+ return (__clang_major__ >= 4);
+ }" I386_ATOMIC_BUILTINS)
+ IF((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (NOT I386_ATOMIC_BUILTINS))
+ SET(HAVE_GCC_ATOMIC_BUILTINS CACHE INTERNAL "")
+ ENDIF()
+ ELSEIF(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()
ENDIF()
ENDIF()

View File

@ -0,0 +1,27 @@
--- cmake/plugin.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/plugin.cmake
@@ -230,15 +230,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
# For testing purposes, we need
# <...>/lib/plugin/debug/authentication_ldap_sasl_client.so
- IF(ARG_CLIENT_ONLY)
- INSTALL_DEBUG_TARGET(${target}
- DESTINATION ${INSTALL_PLUGINDIR}/debug
- COMPONENT Test)
- ELSE()
- INSTALL_DEBUG_TARGET(${target}
- DESTINATION ${INSTALL_PLUGINDIR}/debug
- COMPONENT ${INSTALL_COMPONENT})
- ENDIF()
+# IF(ARG_CLIENT_ONLY)
+# INSTALL_DEBUG_TARGET(${target}
+# DESTINATION ${INSTALL_PLUGINDIR}/debug
+# COMPONENT Test)
+# ELSE()
+# INSTALL_DEBUG_TARGET(${target}
+# DESTINATION ${INSTALL_PLUGINDIR}/debug
+# COMPONENT ${INSTALL_COMPONENT})
+# ENDIF()
ENDIF()
ELSE()
IF(WITHOUT_${plugin})

View File

@ -0,0 +1,28 @@
--- cmake/ssl.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/ssl.cmake
@@ -199,7 +199,7 @@ MACRO (MYSQL_CHECK_SSL)
# Encoded as MNNFFPPS: major minor fix patch status
FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h"
OPENSSL_VERSION_NUMBER
- REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
+ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
)
STRING(REGEX REPLACE
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
@@ -214,13 +214,14 @@ MACRO (MYSQL_CHECK_SSL)
OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}"
)
ENDIF()
- IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0")
+ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION)
+ IF(HAVE_TLS1_3_VERSION)
ADD_DEFINITIONS(-DHAVE_TLSv13)
ENDIF()
IF(OPENSSL_INCLUDE_DIR AND
OPENSSL_LIBRARY AND
CRYPTO_LIBRARY AND
- OPENSSL_MAJOR_VERSION STREQUAL "1"
+ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1"
)
SET(OPENSSL_FOUND TRUE)
FIND_PROGRAM(OPENSSL_EXECUTABLE openssl

View File

@ -0,0 +1,17 @@
Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
sql/mysqld.cc:6915:30: error: use of undeclared identifier 'TRUE'
my_getopt_skip_unknown = TRUE;
^
--- sql/mysqld.cc.orig 2020-06-16 16:31:03 UTC
+++ sql/mysqld.cc
@@ -6910,7 +6912,7 @@ int mysqld_main(int argc, char **argv)
if (opt_keyring_migration_source || opt_keyring_migration_destination ||
migrate_connect_options) {
Migrate_keyring mk;
- my_getopt_skip_unknown = TRUE;
+ my_getopt_skip_unknown = true;
if (mk.init(remaining_argc, remaining_argv, opt_keyring_migration_source,
opt_keyring_migration_destination, opt_keyring_migration_user,
opt_keyring_migration_host, opt_keyring_migration_password,

View File

@ -0,0 +1,176 @@
--- include/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ include/CMakeLists.txt
@@ -37,10 +37,173 @@ SET(HEADERS
${CMAKE_CURRENT_BINARY_DIR}/mysql_version.h
${CMAKE_CURRENT_BINARY_DIR}/mysqld_error.h
field_types.h
+ base64.h
+ big_endian.h
+ c_string_less.h
+ crypt_genhash_impl.h
+ decimal.h
+ depth_first_search.h
+ dur_prop.h
+ errmsg.h
+ ft_global.h
+ guard.h
+ heap.h
+ integer_digits.h
+ keycache.h
+ lex_string.h
+ lf.h
+ little_endian.h
+ m_ctype.h
+ m_string.h
+ map_helpers.h
+ mf_wcomp.h
+ mutex_lock.h
+ my_aes.h
+ my_alloc.h
+ my_atomic.h
+ my_base.h
+ my_bit.h
+ my_bitmap.h
+ my_byteorder.h
+ my_check_opt.h
+ my_command.h
+ my_compare.h
+ my_compiler.h
+ my_dbug.h
+ my_default.h
+ my_dir.h
+ my_double2ulonglong.h
+ my_getopt.h
+ my_hash_combine.h
+ my_icp.h
+ my_inttypes.h
+ my_io.h
+ my_list.h
+ my_loglevel.h
+ my_macros.h
+ my_md5.h
+ my_md5_size.h
+ my_murmur3.h
+ my_pointer_arithmetic.h
+ my_psi_config.h
+ my_rapidjson_size_t.h
+ my_rdtsc.h
+ my_rnd.h
+ my_sharedlib.h
+ my_shm_defaults.h
+ my_sqlcommand.h
+ my_stacktrace.h
+ my_sys.h
+ my_systime.h
+ my_table_map.h
+ my_thread.h
+ my_thread_local.h
+ my_thread_os_id.h
+ my_time.h
+ my_timer.h
+ my_tree.h
+ my_uctype.h
+ my_user.h
+ my_xml.h
+ myisam.h
+ myisammrg.h
+ myisampack.h
+ mysql.h
+ mysql.h.pp
+ mysql_com.h
+ mysql_com_server.h
+ mysql_time.h
+ mysql_version.h.in
+ mysys_err.h
+ nullable.h
+ password.h
+ pfs_cond_provider.h
+ pfs_error_provider.h
+ pfs_file_provider.h
+ pfs_idle_provider.h
+ pfs_memory_provider.h
+ pfs_metadata_provider.h
+ pfs_mutex_provider.h
+ pfs_rwlock_provider.h
+ pfs_socket_provider.h
+ pfs_stage_provider.h
+ pfs_statement_provider.h
+ pfs_table_provider.h
+ pfs_thread_provider.h
+ pfs_transaction_provider.h
+ prealloced_array.h
+ print_version.h
+ priority_queue.h
+ rwlock_scoped_lock.h
+ scope_guard.h
+ service_versions.h
+ sha1.h
+ sha2.h
+ sql_chars.h
+ sql_common.h
+ sql_string.h
+ sslopt-case.h
+ sslopt-longopts.h
+ sslopt-vars.h
+ tables_contained_in.h
+ template_utils.h
+ thr_cond.h
+ thr_lock.h
+ thr_mutex.h
+ thr_rwlock.h
+ typelib.h
+ varlen_sort.h
+ violite.h
+ welcome_copyright_notice.h
)
SET(HEADERS_MYSQL_DIR
mysql/client_plugin.h
mysql/plugin_auth_common.h
+ mysql/udf_registration_types.h
+ mysql/client_authentication.h
+ mysql/client_plugin.h.pp
+ mysql/com_data.h
+ mysql/group_replication_priv.h
+ mysql/innodb_priv.h
+ mysql/mysql_lex_string.h
+ mysql/plugin.h
+ mysql/plugin_audit.h
+ mysql/plugin_audit.h.pp
+ mysql/plugin_auth.h
+ mysql/plugin_auth.h.pp
+ mysql/plugin_auth_common.h
+ mysql/plugin_ftparser.h
+ mysql/plugin_ftparser.h.pp
+ mysql/plugin_group_replication.h
+ mysql/plugin_keyring.h
+ mysql/plugin_keyring.h.pp
+ mysql/plugin_query_rewrite.h
+ mysql/plugin_trace.h
+ mysql/plugin_validate_password.h
+ mysql/service_command.h
+ mysql/service_locking.h
+ mysql/service_my_plugin_log.h
+ mysql/service_mysql_alloc.h
+ mysql/service_mysql_keyring.h
+ mysql/service_mysql_password_policy.h
+ mysql/service_mysql_string.h
+ mysql/service_parser.h
+ mysql/service_plugin_registry.h
+ mysql/service_rpl_transaction_ctx.h
+ mysql/service_rpl_transaction_write_set.h
+ mysql/service_rules_table.h
+ mysql/service_security_context.h
+ mysql/service_srv_session.h
+ mysql/service_srv_session_info.h
+ mysql/service_ssl_wrapper.h
+ mysql/service_thd_alloc.h
+ mysql/service_thd_engine_lock.h
+ mysql/service_thd_wait.h
+ mysql/service_thread_scheduler.h
+ mysql/services.h
+ mysql/services.h.pp
+ mysql/thread_pool_priv.h
+ mysql/thread_type.h
mysql/udf_registration_types.h
)

View File

@ -0,0 +1,11 @@
--- include/my_compare.h.orig 2019-09-20 08:30:51 UTC
+++ include/my_compare.h
@@ -49,7 +49,7 @@
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)

View File

@ -0,0 +1,11 @@
--- include/my_stacktrace.h.orig 2020-01-23 19:43:07.769584000 +0100
+++ include/my_stacktrace.h 2020-01-23 19:43:48.684042000 +0100
@@ -43,7 +43,7 @@
HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris
_WIN32 - Windows
*/
-#if defined(HAVE_BACKTRACE) || defined(_WIN32)
+#if (defined(HAVE_BACKTRACE) || defined(_WIN32)) && (defined(__aarch64__) || defined(__amd64__) || defined(__i386__))
#define HAVE_STACKTRACE 1
void my_init_stacktrace();
void my_print_stacktrace(uchar *stack_bottom, ulong thread_stack);

View File

@ -0,0 +1,15 @@
--- include/my_thread_os_id.h.orig 2019-09-20 08:30:51 UTC
+++ include/my_thread_os_id.h
@@ -84,8 +84,12 @@ static inline my_thread_os_id_t my_thread_os_id() {
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;

View File

@ -0,0 +1,11 @@
--- include/myisam.h.orig 2019-09-20 08:30:51 UTC
+++ include/myisam.h
@@ -59,7 +59,7 @@
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)

View File

@ -0,0 +1,14 @@
--- include/violite.h.orig 2019-09-20 08:30:51 UTC
+++ include/violite.h
@@ -269,9 +269,11 @@ struct st_VioSSLFd *new_VioSSLConnectorFd(
long process_tls_version(const char *tls_version);
+#ifndef LIBRESSL_VERSION_NUMBER
int set_fips_mode(const uint fips_mode, char *err_string);
uint get_fips_mode();
+#endif
struct st_VioSSLFd *new_VioSSLAcceptorFd(
const char *key_file, const char *cert_file, const char *ca_file,

View File

@ -0,0 +1,69 @@
--- libmysql/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ libmysql/CMakeLists.txt
@@ -192,6 +192,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C)
)
ENDIF()
+INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
+IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ ADD_COMPILE_FLAGS(${CLIENT_SOURCES} COMPILE_FLAGS "-fPIC")
+ENDIF()
+
#
# Include protocol tracing infrastructure and the test
# trace plugin if enabled by build options.
@@ -242,11 +247,18 @@ IF(WIN32)
LIST(APPEND LIBS_TO_MERGE auth_win_client)
ENDIF()
-# LDAP authentication SASL client plugin
-ADD_SUBDIRECTORY(authentication_ldap)
+IF(WITHOUT_CLIENTLIBS)
+ # Merge several convenience libraries into one big mysqlclient
+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL)
+ELSE(WITHOUT_CLIENTLIBS)
+ # LDAP authentication SASL client plugin
+ MESSAGE(STATUS "Creating LDAP authentication SASL client library.")
+ ADD_SUBDIRECTORY(authentication_ldap)
-# Merge several convenience libraries into one big mysqlclient
-MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development)
+ # Merge several convenience libraries into one big mysqlclient
+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development)
+ENDIF(WITHOUT_CLIENTLIBS)
+
TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK})
# Visual Studio users need debug static library for debug projects
@@ -281,12 +291,22 @@ ENDIF()
# Merge several convenience libraries into one big mysqlclient
# and link them together into shared library.
+IF(WITHOUT_CLIENTLIBS)
MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE}
EXPORTS
${CLIENT_API_FUNCTIONS}
${CLIENT_API_FUNCTIONS_UNDOCUMENTED}
${CLIENT_API_NONBLOCKING_FUNCTIONS}
+ COMPONENT SharedLibraries
+ SKIP_INSTALL )
+ELSE(WITHOUT_CLIENTLIBS)
+MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE}
+ EXPORTS
+ ${CLIENT_API_FUNCTIONS}
+ ${CLIENT_API_FUNCTIONS_UNDOCUMENTED}
+ ${CLIENT_API_NONBLOCKING_FUNCTIONS}
COMPONENT SharedLibraries)
+ENDIF(WITHOUT_CLIENTLIBS)
TARGET_LINK_LIBRARIES(libmysql PRIVATE ${LIBS_TO_LINK})
IF(WIN32)
@@ -300,7 +320,7 @@ ENDIF()
IF(UNIX)
# libtool compatability
- IF(FREEBSD OR APPLE)
+ IF(FREEBSD OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly")
SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
ELSE()
SET(OS_SHARED_LIB_VERSION

View File

@ -0,0 +1,12 @@
--- libservices/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ libservices/CMakeLists.txt
@@ -45,7 +45,9 @@ SET(MYSQLSERVICES_SOURCES
plugin_registry_service.c)
ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURCES})
+IF(FALSE)
IF(INSTALL_STATIC_LIBRARIES)
INSTALL(TARGETS mysqlservices
DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
+ENDIF()
ENDIF()

View File

@ -0,0 +1,71 @@
--- man/CMakeLists.txt.orig 2020-10-20 11:47:42.675974000 +0200
+++ man/CMakeLists.txt 2020-10-20 13:53:03.993879000 +0200
@@ -23,21 +23,10 @@
# Copy man pages
SET(MAN1
comp_err.1
- ibd2sdi.1
- innochecksum.1
lz4_decompress.1
- my_print_defaults.1
- myisam_ftdump.1
- myisamchk.1
- myisamlog.1
- myisampack.1
mysql.1
mysql_config.1
mysql_config_editor.1
- mysql_secure_installation.1
- mysql_ssl_rsa_setup.1
- mysql_tzinfo_to_sql.1
- mysql_upgrade.1
mysqladmin.1
mysqlbinlog.1
mysqlcheck.1
@@ -52,13 +41,23 @@ SET(MAN1
zlib_decompress.1
)
-IF(NOT WITH_SYSTEMD)
- LIST(APPEND MAN1
- mysql.server.1
- mysqld_multi.1
- mysqld_safe.1
+SET(MAN1_TOOLS
+ ibd2sdi.1
+ innochecksum.1
+ my_print_defaults.1
+ myisam_ftdump.1
+ myisamchk.1
+ myisamlog.1
+ myisampack.1
+ mysql.server.1
+ mysql_secure_installation.1
+ mysql_ssl_rsa_setup.1
+ mysql_tzinfo_to_sql.1
+ mysql_upgrade.1
+ mysqldumpslow.1
+ mysqld_multi.1
+ mysqld_safe.1
)
-ENDIF()
SET(MAN1_NDB
ndb-common-options.1
@@ -105,8 +104,14 @@ SET(MAN8_NDB
ndbmtd.8
)
-INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
-INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages)
+IF(NOT WITHOUT_CLIENTLIBS)
+ INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
+ENDIF()
+
+IF(NOT WITHOUT_SERVER)
+ INSTALL(FILES ${MAN1_TOOLS} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
+ INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages)
+ENDIF()
IF(WITH_ROUTER)
INSTALL(FILES ${MAN1_ROUTER}

View File

@ -0,0 +1,62 @@
--- mysys/my_default.cc.orig 2019-09-20 08:30:51 UTC
+++ mysys/my_default.cc
@@ -203,7 +203,7 @@ bool no_defaults = false;
/* 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;
@@ -909,6 +909,14 @@ static int search_default_file_with_ext(Process_option
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++;
/* Ignore comment and empty lines */
@@ -1228,7 +1236,8 @@ void my_print_default_files(const char *conf_file) {
end[(strlen(end) - 1)] = ' ';
else
strxmov(end, conf_file, *ext, " ", NullS);
- fputs(name, stdout);
+ if (strstr(name, "/etc") != name)
+ fputs(name, stdout);
}
}
}
@@ -1565,14 +1574,9 @@ static const char **init_default_directories(MEM_ROOT
#else
- errors += add_directory(alloc, "/etc/", dirs);
- errors += add_directory(alloc, "/etc/mysql/", dirs);
+ errors += add_directory(alloc, "/usr/local/etc/", dirs);
+ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs);
-#if defined(DEFAULT_SYSCONFDIR)
- if (DEFAULT_SYSCONFDIR[0])
- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
-#endif /* DEFAULT_SYSCONFDIR */
-
#endif
if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs);
@@ -1635,7 +1639,7 @@ int check_file_permissions(const char *file_name, bool
#if !defined(_WIN32)
MY_STAT stat_info;
- if (!my_stat(file_name, &stat_info, MYF(0))) return 1;
+ if (!my_stat(file_name, &stat_info, MYF(0))) return 0;
/*
Ignore .mylogin.cnf file if not exclusively readable/writable
by current user.

View File

@ -0,0 +1,12 @@
--- mysys/my_md5.cc.orig 2019-09-20 08:30:51 UTC
+++ mysys/my_md5.cc
@@ -56,7 +56,9 @@ static void my_md5_hash(unsigned char *digest, unsigne
int compute_md5_hash(char *digest, const char *buf, int len) {
int retval = 0;
int fips_mode = 0;
+#ifndef LIBRESSL_VERSION_NUMBER
fips_mode = FIPS_mode();
+#endif /* LIBRESSL_VERSION_NUMBER */
/* If fips mode is ON/STRICT restricted method calls will result into abort,
* skipping call. */
if (fips_mode == 0) {

View File

@ -0,0 +1,31 @@
--- plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
@@ -329,6 +329,7 @@ error:
return 1;
}
+#ifndef LIBRESSL_VERSION_NUMBER
#define OPENSSL_ERROR_LENGTH 512
static int configure_ssl_fips_mode(const uint fips_mode) {
int rc = -1;
@@ -352,6 +353,7 @@ static int configure_ssl_fips_mode(const uint fips_mod
EXIT:
return rc;
}
+#endif
static int configure_ssl_ca(SSL_CTX *ssl_ctx, const char *ca_file,
const char *ca_path) {
@@ -555,10 +557,12 @@ int xcom_init_ssl(const char *server_key_file, const c
int verify_server = SSL_VERIFY_NONE;
int verify_client = SSL_VERIFY_NONE;
+#ifndef LIBRESSL_VERSION_NUMBER
if (configure_ssl_fips_mode(ssl_fips_mode) != 1) {
G_ERROR("Error setting the ssl fips mode");
goto error;
}
+#endif
SSL_library_init();
SSL_load_error_strings();

View File

@ -0,0 +1,11 @@
--- plugin/password_validation/validate_password.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/password_validation/validate_password.cc
@@ -25,6 +25,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 <stdio.h>
#include <stdlib.h>
#include <string.h>

View File

@ -0,0 +1,11 @@
--- plugin/x/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/CMakeLists.txt
@@ -77,6 +77,8 @@ INCLUDE_DIRECTORIES(
${MYSQLX_GENERATE_DIR}
${MYSQLX_PROTOCOL_INCLUDE_DIR}
${MYSQLX_CLIENT_INCLUDE_DIR}
+ ${OPENSSL_INCLUDE_DIR}
+ ${BOOST_INCLUDE_DIR}
)
MY_INCLUDE_SYSTEM_DIRECTORIES(PROTOBUF)

View File

@ -0,0 +1,11 @@
--- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/client/authentication/sha256_scramble_generator.cc
@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig
return true;
}
m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
EVP_MD_CTX_cleanup(md_context);
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
EVP_MD_CTX_reset(md_context);

View File

@ -0,0 +1,33 @@
--- plugin/x/client/xconnection_impl.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/client/xconnection_impl.cc
@@ -520,6 +520,7 @@ XError Connection_impl::get_ssl_error(const int error_
return XError(CR_SSL_CONNECTION_ERROR, buffer);
}
+#ifndef LIBRESSL_VERSION_NUMBER
/**
Set fips mode in openssl library,
When we set fips mode ON/STRICT, it will perform following operations:
@@ -559,6 +560,7 @@ int set_fips_mode(const uint32_t fips_mode,
EXIT:
return rc;
}
+#endif
XError Connection_impl::activate_tls() {
if (nullptr == m_vio) return get_socket_error(SOCKET_ECONNRESET);
@@ -569,12 +571,14 @@ XError Connection_impl::activate_tls() {
if (!m_context->m_ssl_config.is_configured())
return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED, true};
+#ifndef LIBRESSL_VERSION_NUMBER
char err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
if (set_fips_mode(
static_cast<uint32_t>(m_context->m_ssl_config.m_ssl_fips_mode),
err_string) != 1) {
return XError{CR_SSL_CONNECTION_ERROR, err_string, true};
}
+#endif
auto ssl_ctx_flags = process_tls_version(
details::null_when_empty(m_context->m_ssl_config.m_tls_version));

View File

@ -0,0 +1,15 @@
--- plugin/x/configure.cmake.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/configure.cmake
@@ -45,6 +45,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx
CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx_version.h.in
${MYSQLX_GENERATE_DIR}/mysqlx_version.h )
+IF(FALSE)
INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_error.h
DESTINATION ${INSTALL_INCLUDEDIR}
COMPONENT Development)
@@ -56,3 +57,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_ername.h
INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h
DESTINATION ${INSTALL_INCLUDEDIR}
COMPONENT Development)
+ENDIF()

View File

@ -0,0 +1,10 @@
--- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2020-11-09 00:30:01 UTC
+++ router/src/harness/include/mysql/harness/net_ts/internet.h
@@ -43,6 +43,7 @@
#include <arpa/inet.h> // inet_ntop
#include <netdb.h> // getaddrinfo
#include <netinet/in.h> // in_addr_t
+#include <sys/types.h> // u_int32_t
#include <netinet/ip6.h> // in6_addr_t
#include <netinet/tcp.h> // TCP_NODELAY
#include <sys/ioctl.h> // ioctl

View File

@ -0,0 +1,13 @@
--- router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h.orig 2020-09-23 12:37:48 UTC
+++ router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h
@@ -190,8 +190,8 @@
auto secs = std::chrono::duration_cast<std::chrono::seconds>(timeout);
timeout -= secs;
- ts = {secs.count(),
- std::chrono::duration_cast<std::chrono::nanoseconds>(timeout)
+ ts = {(time_t)secs.count(),
+ (time_t)std::chrono::duration_cast<std::chrono::nanoseconds>(timeout)
.count()};
p_ts = &ts;

View File

@ -0,0 +1,16 @@
--- router/src/harness/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/harness/src/CMakeLists.txt
@@ -205,7 +205,6 @@ IF(NOT WIN32)
INSTALL(TARGETS harness-library
LIBRARY
DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
ELSE()
INSTALL(TARGETS harness-library
@@ -240,5 +239,4 @@ INSTALL(TARGETS harness_stdx
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)

View File

@ -0,0 +1,26 @@
--- router/src/http/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/http/src/CMakeLists.txt
@@ -62,7 +62,6 @@ INSTALL(TARGETS http_common
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
## split library code from the plugin to use them _passwd and tests
@@ -88,7 +87,6 @@ INSTALL(TARGETS http_auth_backend_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
TARGET_INCLUDE_DIRECTORIES(http_auth_backend_lib PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
@@ -141,7 +139,6 @@ INSTALL(TARGETS http_auth_realm_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
## the rpath for the bundled openssl
ADD_INSTALL_RPATH_FOR_OPENSSL(http_auth_realm_lib)

View File

@ -0,0 +1,11 @@
--- router/src/http/src/tls_client_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_client_context.cc
@@ -54,7 +54,7 @@ void TlsClientContext::verify(TlsVerify verify) {
void TlsClientContext::cipher_suites(const std::string &ciphers) {
// TLSv1.3 ciphers are controlled via SSL_CTX_set_ciphersuites()
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
+#ifdef TLS1_3_VERSION
if (1 != SSL_CTX_set_ciphersuites(ssl_ctx_.get(), ciphers.c_str())) {
throw TlsError("set-cipher-suites");
}

View File

@ -0,0 +1,44 @@
--- router/src/http/src/tls_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_context.cc
@@ -91,7 +91,7 @@ static constexpr int o11x_version(TlsVersion version)
return TLS1_1_VERSION;
case TlsVersion::TLS_1_2:
return TLS1_2_VERSION;
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
+#ifdef TLS1_3_VERSION
case TlsVersion::TLS_1_3:
return TLS1_3_VERSION;
#endif
@@ -121,9 +121,11 @@ void TlsContext::version_range(TlsVersion min_version,
default:
// unknown, leave all disabled
// fallthrough
+#ifdef TLS1_3_VERSION
case TlsVersion::TLS_1_3:
opts |= SSL_OP_NO_TLSv1_2;
// fallthrough
+#endif
case TlsVersion::TLS_1_2:
opts |= SSL_OP_NO_TLSv1_1;
// fallthrough
@@ -170,8 +172,10 @@ TlsVersion TlsContext::min_version() const {
return TlsVersion::TLS_1_1;
case TLS1_2_VERSION:
return TlsVersion::TLS_1_2;
+#ifdef TLS1_3_VERSION
case TLS1_3_VERSION:
return TlsVersion::TLS_1_3;
+#endif
case 0:
return TlsVersion::AUTO;
default:
@@ -230,7 +234,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c
}
int TlsContext::security_level() const {
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
+#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
+ !defined(LIBRESSL_VERSION_NUMBER)
return SSL_CTX_get_security_level(ssl_ctx_.get());
#else
return 0;

View File

@ -0,0 +1,12 @@
--- router/src/http/src/tls_server_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_server_context.cc
@@ -166,7 +166,8 @@ void TlsServerContext::init_tmp_dh(const std::string &
}
} else {
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
+#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
+ !defined(LIBRESSL_VERSION_NUMBER)
dh2048.reset(DH_get_2048_256());
#else
/*

View File

@ -0,0 +1,10 @@
--- router/src/io/src/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ router/src/io/src/CMakeLists.txt
@@ -47,7 +47,6 @@ INSTALL(TARGETS io_component
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
GENERATE_EXPORT_HEADER(io_component

View File

@ -0,0 +1,10 @@
--- router/src/router/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/router/src/CMakeLists.txt
@@ -119,7 +119,6 @@ INSTALL(TARGETS router_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
MYSQL_ADD_EXECUTABLE(mysqlrouter_keyring

View File

@ -0,0 +1,61 @@
--- scripts/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ scripts/CMakeLists.txt
@@ -330,7 +330,7 @@ MACRO(EXTRACT_LINK_LIBRARIES target var)
LIST(REMOVE_DUPLICATES ${target}_LIB_DEPENDS)
FOREACH(lib ${${target}_LIB_DEPENDS})
# Filter out "general", it is not a library, just CMake hint
- IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} ")
+ IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} " AND NOT lib STREQUAL "imported_openssl" AND NOT lib STREQUAL "imported_crypto")
IF (lib MATCHES "^\\-l")
SET(${var} "${${var}} ${lib} ")
ELSEIF (lib MATCHES "^\\-L")
@@ -340,6 +340,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()
@@ -414,7 +416,7 @@ ELSE()
${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE}
ESCAPE_QUOTES @ONLY)
- IF(INSTALL_PKGCONFIGDIR)
+ IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS)
MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}")
INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE}
@@ -427,23 +429,28 @@ ELSE()
# mysqld_safe used in mtr even for systemd platforms
IF(WITH_SYSTEMD)
SET(BIN_SCRIPTS
- mysql_config
mysqldumpslow
mysqld_safe
)
ELSE()
SET(BIN_SCRIPTS
- mysql_config
mysqldumpslow
mysqld_multi
mysqld_safe
)
ENDIF()
+ IF(NOT WITHOUT_CLIENTLIBS)
+ SET(BIN_SCRIPTS
+ ${BIN_SCRIPTS}
+ mysql_config
+ )
+ ENDIF(NOT WITHOUT_CLIENTLIBS)
+
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}.pl.in)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in

View File

@ -0,0 +1,18 @@
--- sql-common/client.cc.orig 2020-03-26 13:31:45 UTC
+++ sql-common/client.cc
@@ -7752,6 +7752,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt
return 1;
break;
case MYSQL_OPT_SSL_FIPS_MODE: {
+#if !defined(LIBRESSL_VERSION_NUMBER)
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
ENSURE_EXTENSIONS_PRESENT(&mysql->options);
mysql->options.extension->ssl_fips_mode = *static_cast<const uint *>(arg);
@@ -7763,6 +7764,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt
"Set Fips mode ON/STRICT failed, detail: '%s'.", ssl_err_string);
return 1;
}
+#endif
} break;
case MYSQL_OPT_SSL_MODE:
ENSURE_EXTENSIONS_PRESENT(&mysql->options);

View File

@ -0,0 +1,11 @@
--- sql/auth/sha2_password_common.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/auth/sha2_password_common.cc
@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig
return true;
}
m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
EVP_MD_CTX_cleanup(md_context);
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
EVP_MD_CTX_reset(md_context);

View File

@ -0,0 +1,32 @@
--- sql/conn_handler/socket_connection.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/conn_handler/socket_connection.cc
@@ -950,9 +950,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC
signal(SIGCHLD, SIG_DFL);
request_init(&req, RQ_DAEMON, 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...
@@ -964,12 +966,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC
This is unproblematic as TCP-wrapper is unix specific,
anyway.
*/
+ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client;
syslog(LOG_AUTH | LOG_WARNING, "refused connect from %s",
- eval_client(&req));
+ my_eval_client(&req));
#ifdef HAVE_LIBWRAP_PROTOTYPES
// Some distros have patched tcpd.h to have proper prototypes
- if (req.sink) (req.sink)(req.fd);
+ if (req.sink) ((void (*)(int)) (req.sink))(req.fd);
#else
// Some distros have not patched tcpd.h
if (req.sink) ((void (*)(int))req.sink)(req.fd);

View File

@ -0,0 +1,26 @@
--- sql/mysqld.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/mysqld.cc
@@ -5109,7 +5109,7 @@ static int init_thread_environment() {
static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#define FILE_LINE_ARGS
#else
#define FILE_LINE_ARGS , const char *, int
@@ -5143,12 +5143,14 @@ static void init_ssl() {
}
static int init_ssl_communication() {
+#ifndef LIBRESSL_VERSION_NUMBER
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
int ret_fips_mode = set_fips_mode(opt_ssl_fips_mode, ssl_err_string);
if (ret_fips_mode != 1) {
LogErr(ERROR_LEVEL, ER_SSL_FIPS_MODE_ERROR, ssl_err_string);
return 1;
}
+#endif /* LIBRESSL_VERSION_NUMBER */
if (TLS_channel::singleton_init(&mysql_main, mysql_main_channel, opt_use_ssl,
&server_main_callback, opt_initialize))
return 1;

View File

@ -0,0 +1,70 @@
--- sql/sys_vars.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/sys_vars.cc
@@ -1875,7 +1875,7 @@ static Sys_var_ulong Sys_connect_timeout(
"The number of seconds the mysqld server is waiting for a connect "
"packet before responding with 'Bad handshake'",
GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG),
- VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1));
+ VALID_RANGE(2, INT_MAX32 / 1000), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1));
static Sys_var_ulong Sys_information_schema_stats_expiry(
"information_schema_stats_expiry",
@@ -2929,7 +2929,7 @@ static Sys_var_ulong Sys_net_read_timeout(
"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(nullptr),
ON_UPDATE(fix_net_read_timeout));
@@ -2950,7 +2950,7 @@ static Sys_var_ulong Sys_net_write_timeout(
"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(nullptr),
ON_UPDATE(fix_net_write_timeout));
@@ -4459,6 +4459,7 @@ static Sys_var_ulong Sys_max_execution_time(
HINT_UPDATEABLE SESSION_VAR(max_execution_time), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1));
+#ifndef LIBRESSL_VERSION_NUMBER
static bool update_fips_mode(sys_var *, THD *, enum_var_type) {
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
if (set_fips_mode(opt_ssl_fips_mode, ssl_err_string) != 1) {
@@ -4470,14 +4471,30 @@ static bool update_fips_mode(sys_var *, THD *, enum_va
}
}
+#endif
+
+#if defined(LIBRESSL_VERSION_NUMBER)
+static const char *ssl_fips_mode_names[] = {"OFF", 0};
+#else
static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", nullptr};
+#endif
static Sys_var_enum Sys_ssl_fips_mode(
"ssl_fips_mode",
"SSL FIPS mode (applies only for OpenSSL); "
- "permitted values are: OFF, ON, STRICT",
+#ifndef LIBRESSL_VERSION_NUMBER
+ "permitted values are: OFF, ON, STRICT",
+#else
+ "permitted values are: OFF",
+#endif
GLOBAL_VAR(opt_ssl_fips_mode), CMD_LINE(REQUIRED_ARG, OPT_SSL_FIPS_MODE),
ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG,
- ON_CHECK(nullptr), ON_UPDATE(update_fips_mode), nullptr);
+ ON_CHECK(NULL),
+#ifndef LIBRESSL_VERSION_NUMBER
+ ON_UPDATE(update_fips_mode),
+#else
+ ON_UPDATE(NULL),
+#endif
+ NULL);
static Sys_var_bool Sys_auto_generate_certs(
"auto_generate_certs",

View File

@ -0,0 +1,13 @@
--- storage/innobase/include/srv0mon.h.orig 2019-09-20 08:30:51 UTC
+++ storage/innobase/include/srv0mon.h
@@ -40,6 +40,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
/* 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>

View File

@ -0,0 +1,22 @@
--- storage/myisam/mi_dynrec.cc.orig 2019-09-20 08:30:51 UTC
+++ storage/myisam/mi_dynrec.cc
@@ -85,17 +85,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) {
return true;
}
/*
- 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(
nullptr, (size_t)size,
info->s->mode == O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE,
- MAP_SHARED | MAP_NORESERVE, info->dfile, 0L);
+ MAP_SHARED, info->dfile, 0L);
if (info->s->file_map == (uchar *)MAP_FAILED) {
info->s->file_map = nullptr;
return true;

View File

@ -0,0 +1,17 @@
--- storage/temptable/include/temptable/lock_free_type.h.orig 2020-06-16 16:31:03 UTC
+++ storage/temptable/include/temptable/lock_free_type.h
@@ -31,6 +31,14 @@ Lock-free type (selection) implementation. */
#include "storage/temptable/include/temptable/constants.h"
+#if defined(__i386__) //&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)
+/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorrectly for x86
+ * https://llvm.org/bugs/show_bug.cgi?id=19355
+ */
+#undef ATOMIC_LLONG_LOCK_FREE
+#define ATOMIC_LLONG_LOCK_FREE 2
+#endif
+
namespace temptable {
/** Enum class describing alignment-requirements. */

View File

@ -0,0 +1,39 @@
--- support-files/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ support-files/CMakeLists.txt
@@ -24,8 +24,9 @@ IF(NOT UNIX)
RETURN()
ENDIF()
-INSTALL(FILES mysql.m4
- DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
+IF(NOT WITHOUT_CLIENTLIBS)
+ INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
+ENDIF(NOT WITHOUT_CLIENTLIBS)
SET(localstatedir "${MYSQL_DATADIR}")
@@ -43,7 +44,7 @@ ENDIF()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-rotate.in
${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate @ONLY)
-IF(NOT WITH_SYSTEMD)
+IF(NOT WITHOUT_SERVER)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh
${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY
)
@@ -59,6 +60,7 @@ IF(NOT WITH_SYSTEMD)
)
ENDIF()
+IF(NOT WITHOUT_SERVER)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate
COMPONENT Server_Scripts
DESTINATION ${INSTALL_SUPPORTFILESDIR}
@@ -66,6 +68,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-ro
OWNER_READ OWNER_WRITE
GROUP_READ WORLD_READ
)
+ENDIF()
IF(WITH_ROUTER)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqlrouter-log-rotate.in

View File

@ -0,0 +1,79 @@
--- utilities/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ utilities/CMakeLists.txt
@@ -23,13 +23,19 @@
ADD_WSHADOW_WARNING()
DISABLE_MISSING_PROFILE_WARNING()
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(comp_err
comp_err.cc
COMPONENT Test
LINK_LIBRARIES mysys
+ SKIP_INSTALL)
+ELSE(WITHOUT_CLIENTLIBS)
+ MYSQL_ADD_EXECUTABLE(comp_err
+ comp_err.cc
+ COMPONENT Test
+ LINK_LIBRARIES mysys
)
-ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(comp_client_err
comp_client_err.cc
@@ -112,10 +118,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test
EXCLUDE_FROM_ALL
)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(my_print_defaults
my_print_defaults.cc
COMPONENT Server
LINK_LIBRARIES mysys
+ SKIP_INSTALL )
+MYSQL_ADD_EXECUTABLE(perror
+ perror.cc
+ COMPONENT Server
+ DEPENDENCIES GenError
+ LINK_LIBRARIES mysys
+ SKIP_INSTALL )
+IF(BUILD_BUNDLED_LZ4)
+ MYSQL_ADD_EXECUTABLE(lz4_decompress
+ lz4_decompress.cc
+ COMPONENT Server
+ LINK_LIBRARIES ${LZ4_LIBRARY} mysys
+ SKIP_INSTALL )
+ENDIF()
+ELSE(WITHOUT_CLIENTLIBS)
+MYSQL_ADD_EXECUTABLE(my_print_defaults
+ my_print_defaults.cc
+ COMPONENT Server
+ LINK_LIBRARIES mysys
)
MYSQL_ADD_EXECUTABLE(perror
perror.cc
@@ -130,12 +156,23 @@ IF(BUILD_BUNDLED_LZ4)
LINK_LIBRARIES ${LZ4_LIBRARY} mysys
)
ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(zlib_decompress
zlib_decompress.cc
COMPONENT Server
LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
+ SKIP_INSTALL )
+ELSE(WITHOUT_CLIENTLIBS)
+IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB)
+ MYSQL_ADD_EXECUTABLE(zlib_decompress
+ zlib_decompress.cc
+ COMPONENT Server
+ LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
)
+ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
# All targets below belong to COMPONENT Server and depend on InnoDB.
IF(WITHOUT_SERVER)

View File

@ -0,0 +1,30 @@
--- vio/viossl.cc.orig 2019-09-20 08:30:51 UTC
+++ vio/viossl.cc
@@ -45,7 +45,8 @@
BIO_set_callback_ex was added in openSSL 1.1.1
For older openSSL, use the deprecated BIO_set_callback.
*/
-#if OPENSSL_VERSION_NUMBER >= 0x10101000L
+#if OPENSSL_VERSION_NUMBER >= 0x10101000L && \
+ !defined(LIBRESSL_VERSION_NUMBER)
#define HAVE_BIO_SET_CALLBACK_EX
#endif
@@ -635,7 +636,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l
#if !defined(DBUG_OFF)
{
STACK_OF(SSL_COMP) *ssl_comp_methods = nullptr;
- ssl_comp_methods = SSL_COMP_get_compression_methods();
+ ssl_comp_methods = (STACK_OF(SSL_COMP) *)SSL_COMP_get_compression_methods();
n = sk_SSL_COMP_num(ssl_comp_methods);
DBUG_PRINT("info", ("Available compression methods:\n"));
if (n == 0)
@@ -643,7 +644,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l
else
for (j = 0; j < n; j++) {
SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
DBUG_PRINT("info", (" %d: %s\n", c->id, c->name));
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
DBUG_PRINT("info",

View File

@ -0,0 +1,26 @@
--- vio/viosslfactories.cc.orig 2019-09-20 08:30:51 UTC
+++ vio/viosslfactories.cc
@@ -38,6 +38,7 @@
#ifdef HAVE_OPENSSL
#include <openssl/dh.h>
+#include <openssl/crypto.h>
#define TLS_VERSION_OPTION_SIZE 256
#define SSL_CIPHER_LIST_SIZE 4096
@@ -420,6 +421,7 @@ void ssl_start() {
}
}
+#ifndef LIBRESSL_VERSION_NUMBER
/**
Set fips mode in openssl library,
When we set fips mode ON/STRICT, it will perform following operations:
@@ -473,6 +475,7 @@ EXIT:
@returns openssl current fips mode
*/
uint get_fips_mode() { return FIPS_mode(); }
+#endif
long process_tls_version(const char *tls_version) {
const char *separator = ",";

View File

@ -0,0 +1,21 @@
[
{ type: install
message: <<EOM
There is no initial password for first time use of MySQL.
Keep in mind to reset it to a secure password.
MySQL80 has a default %%ETCDIR%%/my.cnf,
remember to replace it with your own
or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf.
EOM
}
{ type: upgrade
message: <<EOM
As of MySQL 8.0.16, the MySQL server performs the upgrade tasks previously
handled by mysql_upgrade. Consequently, mysql_upgrade is unneeded and is
deprecated as of that version, and will be removed in a future MySQL version.
Because mysql_upgrade no longer performs upgrade tasks,
it exits with status 0 unconditionally.
EOM
}
]

View File

@ -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: https://www.mysql.com/

View File

@ -0,0 +1,238 @@
LICENSE.router
README.router
bin/ibd2sdi
bin/innochecksum
bin/myisam_ftdump
bin/myisamchk
bin/myisamlog
bin/myisampack
bin/mysqldumpslow
bin/mysql_client_test
bin/mysql_secure_installation
bin/mysql_ssl_rsa_setup
bin/mysql_tzinfo_to_sql
bin/mysql_upgrade
bin/mysqld_multi
bin/mysqld_safe
bin/mysqlrouter
bin/mysqlrouter_keyring
bin/mysqlrouter_passwd
bin/mysqlrouter_plugin_info
bin/mysqltest
bin/mysqltest_safe_process
bin/mysqlxtest
etc/logrotate.d/mysqlrouter
lib/mysql/libmysqlharness.so
lib/mysql/libmysqlharness.so.1
lib/mysql/libmysqlharness_stdx.so
lib/mysql/libmysqlharness_stdx.so.1
lib/mysql/libmysqlrouter.so
lib/mysql/libmysqlrouter.so.1
lib/mysql/libmysqlrouter_http.so
lib/mysql/libmysqlrouter_http.so.1
lib/mysql/libmysqlrouter_http_auth_backend.so
lib/mysql/libmysqlrouter_http_auth_backend.so.1
lib/mysql/libmysqlrouter_http_auth_realm.so
lib/mysql/libmysqlrouter_http_auth_realm.so.1
lib/mysql/libmysqlrouter_io_component.so
lib/mysql/libmysqlrouter_io_component.so.1
lib/mysql/mysqlrouter/http_auth_backend.so
lib/mysql/mysqlrouter/http_auth_realm.so
lib/mysql/mysqlrouter/http_server.so
lib/mysql/mysqlrouter/io.so
lib/mysql/mysqlrouter/keepalive.so
lib/mysql/mysqlrouter/metadata_cache.so
lib/mysql/mysqlrouter/mysql_protocol.so
lib/mysql/mysqlrouter/rest_api.so
lib/mysql/mysqlrouter/rest_metadata_cache.so
lib/mysql/mysqlrouter/rest_router.so
lib/mysql/mysqlrouter/rest_routing.so
lib/mysql/mysqlrouter/router_protobuf.so
lib/mysql/mysqlrouter/routing.so
lib/mysql/plugin/adt_null.so
lib/mysql/plugin/auth.so
lib/mysql/plugin/auth_test_plugin.so
lib/mysql/plugin/component_audit_api_message_emit.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/component_log_filter_dragnet.so
lib/mysql/plugin/component_log_sink_json.so
lib/mysql/plugin/component_log_sink_syseventlog.so
lib/mysql/plugin/component_log_sink_test.so
lib/mysql/plugin/component_mysqlbackup.so
lib/mysql/plugin/component_mysqlx_global_reset.so
lib/mysql/plugin/component_pfs_example.so
lib/mysql/plugin/component_pfs_example_component_population.so
lib/mysql/plugin/component_test_audit_api_message.so
lib/mysql/plugin/component_test_backup_lock_service.so
lib/mysql/plugin/component_test_component_deinit.so
lib/mysql/plugin/component_test_host_application_signal.so
lib/mysql/plugin/component_test_mysql_current_thread_reader.so
lib/mysql/plugin/component_test_mysql_runtime_error.so
lib/mysql/plugin/component_test_pfs_notification.so
lib/mysql/plugin/component_test_pfs_resource_group.so
lib/mysql/plugin/component_test_status_var_service.so
lib/mysql/plugin/component_test_status_var_service_int.so
lib/mysql/plugin/component_test_status_var_service_reg_only.so
lib/mysql/plugin/component_test_status_var_service_str.so
lib/mysql/plugin/component_test_status_var_service_unreg_only.so
lib/mysql/plugin/component_test_string_service.so
lib/mysql/plugin/component_test_string_service_charset.so
lib/mysql/plugin/component_test_string_service_long.so
lib/mysql/plugin/component_test_sys_var_service.so
lib/mysql/plugin/component_test_sys_var_service_int.so
lib/mysql/plugin/component_test_sys_var_service_same.so
lib/mysql/plugin/component_test_sys_var_service_str.so
lib/mysql/plugin/component_test_system_variable_source.so
lib/mysql/plugin/component_test_udf_registration.so
@comment lib/mysql/plugin/component_test_udf_services.so
lib/mysql/plugin/component_udf_reg_3_func.so
lib/mysql/plugin/component_udf_reg_avg_func.so
lib/mysql/plugin/component_udf_reg_int_func.so
lib/mysql/plugin/component_udf_reg_int_same_func.so
lib/mysql/plugin/component_udf_reg_only_3_func.so
lib/mysql/plugin/component_udf_reg_real_func.so
lib/mysql/plugin/component_udf_unreg_3_func.so
lib/mysql/plugin/component_udf_unreg_int_func.so
lib/mysql/plugin/component_udf_unreg_real_func.so
lib/mysql/plugin/component_validate_password.so
lib/mysql/plugin/connection_control.so
lib/mysql/plugin/daemon_example.ini
lib/mysql/plugin/ddl_rewriter.so
lib/mysql/plugin/group_replication.so
%%NO_EXAMPLE%%lib/mysql/plugin/ha_example.so
lib/mysql/plugin/ha_mock.so
lib/mysql/plugin/component_test_udf_services.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_attach.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_reset_connection.so
lib/mysql/plugin/libtest_sql_shutdown.so
lib/mysql/plugin/libtest_sql_sqlmode.so
lib/mysql/plugin/libtest_sql_stmt.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_clone.so
lib/mysql/plugin/mysql_no_login.so
lib/mysql/plugin/pfs_example_plugin_employee.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/test_services_host_application_signal.so
lib/mysql/plugin/test_services_plugin_registry.so
lib/mysql/plugin/udf_example.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
libexec/mysqld
man/man1/ibd2sdi.1.gz
man/man1/innochecksum.1.gz
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_secure_installation.1.gz
man/man1/mysql_ssl_rsa_setup.1.gz
man/man1/mysql_tzinfo_to_sql.1.gz
man/man1/mysql_upgrade.1.gz
man/man1/mysql.server.1.gz
man/man1/mysqld_multi.1.gz
man/man1/mysqld_safe.1.gz
man/man1/mysqldumpslow.1.gz
man/man1/mysqlrouter_passwd.1.gz
man/man1/mysqlrouter_plugin_info.1.gz
man/man1/mysqlrouter.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%%/estonian/errmsg.sys
%%DATADIR%%/french/errmsg.sys
%%DATADIR%%/german/errmsg.sys
%%DATADIR%%/greek/errmsg.sys
%%DATADIR%%/hungarian/errmsg.sys
%%DATADIR%%/install_rewriter.sql
%%DATADIR%%/italian/errmsg.sys
%%DATADIR%%/japanese/errmsg.sys
%%DATADIR%%/korean/errmsg.sys
%%DATADIR%%/messages_to_clients.txt
%%DATADIR%%/messages_to_error_log.txt
%%DATADIR%%/mysql-log-rotate
%%DATADIR%%/mysql.server
%%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
%%DATADIR%%router/docs/sample_mysqlrouter.conf
@dir lib/mysql/plugin/debug
@dir %%DATADIR%%router/docs
@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%%