summaryrefslogtreecommitdiff
path: root/databases/mariadb104-server/files
diff options
context:
space:
mode:
Diffstat (limited to 'databases/mariadb104-server/files')
-rw-r--r--databases/mariadb104-server/files/mysql-server.in140
-rw-r--r--databases/mariadb104-server/files/patch-MDEV-1179046
-rw-r--r--databases/mariadb104-server/files/patch-MDEV-1596150
-rw-r--r--databases/mariadb104-server/files/patch-libmariadb_include_CMakeLists.txt15
-rw-r--r--databases/mariadb104-server/files/patch-libmariadb_libmariadb_CMakeLists.txt14
-rw-r--r--databases/mariadb104-server/files/patch-libmariadb_plugins_auth_CMakeLists.txt31
-rw-r--r--databases/mariadb104-server/files/patch-libservices_CMakeLists.txt11
-rw-r--r--databases/mariadb104-server/files/patch-man_CMakeLists.txt14
-rw-r--r--databases/mariadb104-server/files/patch-mysys_my__default.c52
-rw-r--r--databases/mariadb104-server/files/patch-oqgraph-MDEV-1529140
-rw-r--r--databases/mariadb104-server/files/patch-pcre_CMakeLists.txt11
-rw-r--r--databases/mariadb104-server/files/patch-scripts_mysql__config.sh12
-rw-r--r--databases/mariadb104-server/files/patch-scripts_mysqld__safe.sh16
-rw-r--r--databases/mariadb104-server/files/patch-sql_mysqld.cc13
-rw-r--r--databases/mariadb104-server/files/patch-storage_innobase_lz4.cmake36
-rw-r--r--databases/mariadb104-server/files/patch-storage_innobase_lzo.cmake38
-rw-r--r--databases/mariadb104-server/files/patch-storage_innobase_snappy.cmake24
-rw-r--r--databases/mariadb104-server/files/patch-storage_mroonga_vendor_groonga_CMakeLists.txt15
-rw-r--r--databases/mariadb104-server/files/patch-storage_rocksdb_build__rocksdb.cmake13
-rw-r--r--databases/mariadb104-server/files/patch-storage_tokudb_CMakeLists.txt9
-rw-r--r--databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_CMakeLists.txt11
-rw-r--r--databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_cmake__modules_TokuThirdParty.cmake39
-rw-r--r--databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_portability_memory.cc16
-rw-r--r--databases/mariadb104-server/files/patch-support-files_CMakeLists.txt14
-rw-r--r--databases/mariadb104-server/files/pkg-message.in15
25 files changed, 695 insertions, 0 deletions
diff --git a/databases/mariadb104-server/files/mysql-server.in b/databases/mariadb104-server/files/mysql-server.in
new file mode 100644
index 000000000000..8c01fa0bd333
--- /dev/null
+++ b/databases/mariadb104-server/files/mysql-server.in
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+# $FreeBSD: head/databases/mariadb55-server/files/mysql-server.in 361647 2014-07-12 22:42:33Z rakuco $
+#
+# PROVIDE: mysql
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf to enable mysql:
+# mysql_(instance_)?enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable MySQL.
+%%LEGACY_LIMITS%%# mysql_(instance_)?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_(instance_)?dbdir (str): Default to "/var/db/mysql"
+# Base database directory.
+# mysql_(instance_)?args (str): Custom additional arguments to be passed
+# to mysqld_safe (default empty).
+# mysql_(instance_)?pidfile (str): Custum PID file path and name.
+# Default to "${mysql_dbdir}/${hostname}.pid".
+# mysql_(instance_)?user (str): User to run mysqld as
+# Default to "mysql" created by the port
+# mysql_(instance_)?optfile (str): Server-specific option file.
+# Default to "${mysql_dbdir}/my.cnf".
+# mysql_instances (str): Set to "" by default.
+# If defined, list of instances to enable
+
+. /etc/rc.subr
+
+name="mysql"
+rcvar=mysql_enable
+
+load_rc_config $name
+
+: ${mysql_enable="NO"}
+%%LEGACY_LIMITS%%: ${mysql_limits="NO"}
+: ${mysql_user="mysql"}
+%%LEGACY_LIMITS%%mysql_limits_args="-e -U ${mysql_user}"
+: ${mysql_dbdir="/var/db/mysql"}
+: ${mysql_optfile="${mysql_dbdir}/my.cnf"}
+
+command="/usr/sbin/daemon"
+procname="%%PREFIX%%/libexec/mysqld"
+start_precmd="${name}_prestart"
+start_postcmd="${name}_poststart"
+
+if [ -n "$2" ]; then
+ instance="$2"
+ load_rc_config ${name}_${instance}
+ case "$mysql_instances" in
+ "$2 "*|*" $2 "*|*" $2"|"$2")
+ eval mysql_args="\${mysql_${instance}_args:-\"${mysql_args}\"}"
+ eval mysql_dbdir="\${mysql_${instance}_dbdir:-\"/var/db/mysql_${instance}\"}"
+ %%LEGACY_LIMITS%%eval mysql_limits="\${mysql_${instance}_limits:-\"${mysql_limits}\"}"
+ eval mysql_user="\${mysql_${instance}_user:-\"${mysql_user}\"}"
+ %%LEGACY_LIMITS%%eval mysql_limits_args="\${mysql_${instance}_limits_args:-\"-e -U $mysql_user\"}"
+ eval mysql_optfile="\${mysql_${instance}_optfile:-\"${mysql_dbdir}/my.cnf\"}"
+ eval mysql_pidfile="\${mysql_${instance}_pidfile:-\"${mysql_dbdir}/`/bin/hostname`.pid\"}"
+ ;;
+ *)
+ err 1 "$2 not found in mysql_instances" ;;
+ esac
+else
+ if [ -n "${mysql_instances}" -a -n "$1" ]; then
+ for instance in ${mysql_instances}; do
+ eval _enable="\${mysql_${instance}_enable}"
+ case "${_enable:-${mysql_enable}}" in
+ [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
+ continue
+ ;;
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ ;;
+ *)
+ if [ -z "$_enable" ]; then
+ _var=mysql_enable
+ else
+ _var=mysql_${instance}_enable
+ fi
+ warn "Bad value" \
+ "'${_enable:-${mysql_enable}}'" \
+ "for ${_var}. " \
+ "Instance ${instance} skipped."
+ continue
+ ;;
+ esac
+ echo "===> mysql instance: ${instance}"
+ if %%PREFIX%%/etc/rc.d/mysql-server $1 ${instance}; then
+ success="${instance} ${success}"
+ else
+ failed="${instance} (${retcode}) ${failed}"
+ fi
+ done
+ exit 0
+ else
+ mysql_pidfile=${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"}
+ fi
+fi
+
+pidfile=$mysql_pidfile
+mysql_install_db="%%PREFIX%%/bin/mysql_install_db"
+mysql_install_db_args="--basedir=%%PREFIX%% --datadir=${mysql_dbdir} --force"
+command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}"
+
+mysql_create_auth_tables()
+{
+ eval $mysql_install_db $mysql_install_db_args
+ [ $? -eq 0 ] && chown -R ${mysql_user}:$(id -gn $mysql_user) ${mysql_dbdir}
+}
+
+mysql_prestart()
+{
+ local dir
+ for dir in /etc /etc/mysql; do
+ if [ -f "${dir}/my.cnf" ]; then
+ echo "Please move existing my.cnf file from ${dir} to %%PREFIX%%${dir}"
+ return 1
+ fi
+ done
+ 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"
diff --git a/databases/mariadb104-server/files/patch-MDEV-11790 b/databases/mariadb104-server/files/patch-MDEV-11790
new file mode 100644
index 000000000000..1794bcf44da7
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-MDEV-11790
@@ -0,0 +1,46 @@
+WITHOUT_SERVER installs server-only files
+
+https://jira.mariadb.org/browse/MDEV-11790
+--- extra/CMakeLists.txt.orig 2018-10-02 09:45:40 UTC
++++ extra/CMakeLists.txt
+@@ -99,7 +99,7 @@ IF(WITH_INNOBASE_STORAGE_ENGINE)
+ ADD_DEPENDENCIES(innochecksum GenError)
+ ENDIF()
+
+-MYSQL_ADD_EXECUTABLE(replace replace.c COMPONENT Server)
++MYSQL_ADD_EXECUTABLE(replace replace.c COMPONENT Client)
+ TARGET_LINK_LIBRARIES(replace mysys)
+
+ IF(UNIX)
+--- scripts/CMakeLists.txt.orig 2018-10-02 09:45:42 UTC
++++ scripts/CMakeLists.txt
+@@ -241,7 +241,10 @@ ENDIF()
+ SET(mysql_config_COMPONENT COMPONENT Development)
+ SET(msql2mysql_COMPONENT COMPONENT Client)
+ SET(mysqlaccess_COMPONENT COMPONENT Client)
++SET(mysqlhotcopy_COMPONENT COMPONENT Client)
++SET(mysql_convert_table_format_COMPONENT COMPONENT Client)
+ SET(mysql_find_rows_COMPONENT COMPONENT Client)
++SET(mysql_setpermission_COMPONENT COMPONENT Client)
+ SET(mytop_COMPONENT Mytop)
+
+ IF(WIN32)
+@@ -298,14 +301,14 @@ ELSE()
+ # On Unix, most of the files end up in the bin directory
+ SET(BIN_SCRIPTS
+ msql2mysql
+- mysql_config
+- mysql_setpermission
+- mysql_secure_installation
+ mysqlaccess
++ mysqlhotcopy
++ mysql_config
+ mysql_convert_table_format
+ mysql_find_rows
++ mysql_secure_installation
++ mysql_setpermission
+ mytop
+- mysqlhotcopy
+ ${SERVER_SCRIPTS}
+ ${WSREP_SCRIPTS}
+ ${SYSTEMD_SCRIPTS}
diff --git a/databases/mariadb104-server/files/patch-MDEV-15961 b/databases/mariadb104-server/files/patch-MDEV-15961
new file mode 100644
index 000000000000..65fb24a2f46d
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-MDEV-15961
@@ -0,0 +1,50 @@
+MDEV-15961: Fix stacktraces under FreeBSD
+
+https://jira.mariadb.org/browse/MDEV-15961
+--- mysys/stacktrace.c.orig 2018-07-02 07:34:11 UTC
++++ mysys/stacktrace.c
+@@ -34,19 +34,19 @@
+ #include <execinfo.h>
+ #endif
+
++#ifdef __linux__
+ #define PTR_SANE(p) ((p) && (char*)(p) >= heap_start && (char*)(p) <= heap_end)
+-
+ static char *heap_start;
+-
+-#if(defined HAVE_BSS_START) && !(defined __linux__)
+ extern char *__bss_start;
+-#endif
++#else
++#define PTR_SANE(p) (p)
++#endif /* __linux */
+
+ void my_init_stacktrace()
+ {
+-#if(defined HAVE_BSS_START) && !(defined __linux__)
++#ifdef __linux__
+ heap_start = (char*) &__bss_start;
+-#endif
++#endif /* __linux__ */
+ }
+
+ #ifdef __linux__
+@@ -149,15 +149,16 @@ static int safe_print_str(const char *ad
+
+ int my_safe_print_str(const char* val, size_t max_len)
+ {
++#ifdef __linux__
++/* Only needed by the linux version of PTR_SANE */
+ char *heap_end;
+
+-#ifdef __linux__
+ // Try and make use of /proc filesystem to safely print memory contents.
+ if (!safe_print_str(val, max_len))
+ return 0;
+-#endif
+
+ heap_end= (char*) sbrk(0);
++#endif
+
+ if (!PTR_SANE(val))
+ {
diff --git a/databases/mariadb104-server/files/patch-libmariadb_include_CMakeLists.txt b/databases/mariadb104-server/files/patch-libmariadb_include_CMakeLists.txt
new file mode 100644
index 000000000000..70e8fad20f85
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-libmariadb_include_CMakeLists.txt
@@ -0,0 +1,15 @@
+--- libmariadb/include/CMakeLists.txt.orig 2017-05-14 23:13:15 UTC
++++ libmariadb/include/CMakeLists.txt
+@@ -21,6 +21,7 @@ IF(WIN32)
+ SET(WIX_INCLUDES ${MARIADB_CLIENT_INCLUDES} ${MARIADB_ADDITIONAL_INCLUDES} ${MYSQL_ADDITIONAL_INCLUDES} PARENT_SCOPE)
+ ENDIF()
+
++IF(NOT WITHOUT_CLIENT)
+ INSTALL(FILES
+ ${MARIADB_CLIENT_INCLUDES}
+ DESTINATION ${INSTALL_INCLUDEDIR}
+@@ -33,3 +34,4 @@ INSTALL(FILES
+ ${MARIADB_ADDITIONAL_INCLUDES}
+ DESTINATION ${INSTALL_INCLUDEDIR}/mariadb
+ COMPONENT Development)
++ENDIF()
diff --git a/databases/mariadb104-server/files/patch-libmariadb_libmariadb_CMakeLists.txt b/databases/mariadb104-server/files/patch-libmariadb_libmariadb_CMakeLists.txt
new file mode 100644
index 000000000000..0542221db134
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-libmariadb_libmariadb_CMakeLists.txt
@@ -0,0 +1,14 @@
+--- libmariadb/libmariadb/CMakeLists.txt.orig 2017-05-14 23:13:15 UTC
++++ libmariadb/libmariadb/CMakeLists.txt
+@@ -401,9 +401,11 @@ SET_TARGET_PROPERTIES(libmariadb PROPERT
+ INSTALL(TARGETS mariadbclient
+ COMPONENT Development
+ DESTINATION ${INSTALL_LIBDIR})
++IF(NOT WITHOUT_CLIENT)
+ INSTALL(TARGETS libmariadb
+ COMPONENT SharedLibraries
+ DESTINATION ${INSTALL_LIBDIR})
++ENDIF()
+
+ IF(WIN32)
+ # On Windows, install PDB
diff --git a/databases/mariadb104-server/files/patch-libmariadb_plugins_auth_CMakeLists.txt b/databases/mariadb104-server/files/patch-libmariadb_plugins_auth_CMakeLists.txt
new file mode 100644
index 000000000000..196ced2e7ddb
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-libmariadb_plugins_auth_CMakeLists.txt
@@ -0,0 +1,31 @@
+--- libmariadb/plugins/auth/CMakeLists.txt.orig 2018-05-23 20:38:41 UTC
++++ libmariadb/plugins/auth/CMakeLists.txt
+@@ -38,6 +38,7 @@ IF(GSSAPI_SOURCES)
+ LIBRARIES ${GSSAPI_LIBS})
+ ENDIF()
+
++IF(NOT WITHOUT_CLIENT)
+ IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${WITH_SSL} STREQUAL "SCHANNEL")
+ IF(WIN32)
+ SET(SHA256_LIBS crypt32)
+@@ -51,6 +52,7 @@ IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${W
+ SOURCES ${AUTH_DIR}/sha256_pw.c
+ LIBRARIES ${SHA256_LIBS})
+ ENDIF()
++ENDIF()
+
+ # old_password plugin
+ REGISTER_PLUGIN(TARGET mysql_old_password
+@@ -60,10 +62,11 @@ REGISTER_PLUGIN(TARGET mysql_old_passwor
+ SOURCES ${AUTH_DIR}/old_password.c)
+
+
++IF(NOT WITHOUT_CLIENT)
+ # Cleartext
+ REGISTER_PLUGIN(TARGET mysql_clear_password
+ TYPE MARIADB_CLIENT_PLUGIN_AUTH
+ CONFIGURATIONS DYNAMIC STATIC OFF
+ DEFAULT DYNAMIC
+ SOURCES ${AUTH_DIR}/mariadb_cleartext.c)
+-
++ENDIF()
diff --git a/databases/mariadb104-server/files/patch-libservices_CMakeLists.txt b/databases/mariadb104-server/files/patch-libservices_CMakeLists.txt
new file mode 100644
index 000000000000..82bf5fac68ea
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-libservices_CMakeLists.txt
@@ -0,0 +1,11 @@
+Fix up missing WITHOUT_DOCS, WITHOUT_CLIENT options
+
+--- libservices/CMakeLists.txt.orig 2017-05-14 23:13:16 UTC
++++ libservices/CMakeLists.txt
+@@ -40,4 +40,6 @@ SET(MYSQLSERVICES_SOURCES
+ )
+
+ ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES})
++IF(FALSE)
+ INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
++ENDIF()
diff --git a/databases/mariadb104-server/files/patch-man_CMakeLists.txt b/databases/mariadb104-server/files/patch-man_CMakeLists.txt
new file mode 100644
index 000000000000..350a8f5ef2b7
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-man_CMakeLists.txt
@@ -0,0 +1,14 @@
+Fix up missing WITHOUT_DOCS, WITHOUT_CLIENT options
+
+--- man/CMakeLists.txt.orig 2017-05-14 23:13:16 UTC
++++ man/CMakeLists.txt
+@@ -38,7 +38,8 @@ SET(MAN1_TEST mysql-stress-test.pl.1 mys
+
+ INSTALL(FILES ${MAN1_SERVER} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesServer)
+ INSTALL(FILES ${MAN8_SERVER} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPagesServer)
++IF(FALSE)
+ INSTALL(FILES ${MAN1_CLIENT} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesClient)
+ INSTALL(FILES ${MAN1_DEVEL} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesDevelopment)
+ INSTALL(FILES ${MAN1_TEST} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesTest)
+-
++ENDIF()
diff --git a/databases/mariadb104-server/files/patch-mysys_my__default.c b/databases/mariadb104-server/files/patch-mysys_my__default.c
new file mode 100644
index 000000000000..ef8d9b5ca53e
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-mysys_my__default.c
@@ -0,0 +1,52 @@
+--- mysys/my_default.c.orig 2017-05-14 23:13:17 UTC
++++ mysys/my_default.c
+@@ -785,7 +785,7 @@ static int search_default_file_with_ext(
+ {
+ MY_STAT stat_info;
+ if (!my_stat(name,&stat_info,MYF(0)))
+- return 1;
++ return 0;
+ /*
+ Ignore world-writable regular files.
+ This is mainly done to protect us to not read a file created by
+@@ -803,6 +803,14 @@ static int search_default_file_with_ext(
+ if (!(fp= mysql_file_fopen(key_file_cnf, name, O_RDONLY, MYF(0))))
+ 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 %%PREFIX%%%s\n",
++ name,name);
++ goto err;
++ }
++
+ while (mysql_file_fgets(buff, sizeof(buff) - 1, fp))
+ {
+ line++;
+@@ -1067,7 +1075,8 @@ void my_print_default_files(const char *
+ if (name[0] == FN_HOMELIB) /* Add . to filenames in home */
+ *end++= '.';
+ strxmov(end, conf_file, *ext, " ", NullS);
+- fputs(name, stdout);
++ if (strstr(name, "/etc") != name)
++ fputs(name, stdout);
+ }
+ }
+ }
+@@ -1192,13 +1201,10 @@ static const char **init_default_directo
+
+ #else
+
+-#if defined(DEFAULT_SYSCONFDIR)
+- if (DEFAULT_SYSCONFDIR[0])
+- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
+-#else
+ errors += add_directory(alloc, "/etc/", dirs);
+ errors += add_directory(alloc, "/etc/mysql/", dirs);
+-#endif /* DEFAULT_SYSCONFDIR */
++ errors += add_directory(alloc, "%%PREFIX%%/etc/", dirs);
++ errors += add_directory(alloc, "%%PREFIX%%/etc/mysql/", dirs);
+
+ #endif
+
diff --git a/databases/mariadb104-server/files/patch-oqgraph-MDEV-15291 b/databases/mariadb104-server/files/patch-oqgraph-MDEV-15291
new file mode 100644
index 000000000000..05083cd206ac
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-oqgraph-MDEV-15291
@@ -0,0 +1,40 @@
+--- storage/oqgraph/oqgraph_judy.cc.orig 2018-02-12 15:01:28 UTC
++++ storage/oqgraph/oqgraph_judy.cc
+@@ -27,7 +27,7 @@
+ /*
+ Currently the only active code that can return error is:
+ judy_bitset::reset()/J1U()
+- judy_bitset::setbit()/J1S()
++ judy_bitset::jsetbit()/J1S()
+
+ In most cases errors are either about wrong parameters passed to Judy
+ functions or internal structures corruption. These definitely deserve
+@@ -60,7 +60,7 @@ bool open_query::judy_bitset::test(size_
+ return rc == 1;
+ }
+
+-open_query::judy_bitset& open_query::judy_bitset::setbit(size_type n)
++open_query::judy_bitset& open_query::judy_bitset::jsetbit(size_type n)
+ {
+ int rc;
+ J1S(rc, array, n);
+--- storage/oqgraph/oqgraph_judy.h.orig 2018-02-12 15:01:28 UTC
++++ storage/oqgraph/oqgraph_judy.h
+@@ -63,7 +63,7 @@ namespace open_query
+ if (!val)
+ return reset(n);
+ else
+- return setbit(n);
++ return jsetbit(n);
+ }
+
+ judy_bitset& set(const judy_bitset& src);
+@@ -115,7 +115,7 @@ namespace open_query
+ private:
+ mutable void* array;
+
+- judy_bitset& setbit(size_type n);
++ judy_bitset& jsetbit(size_type n);
+ };
+ }
+
diff --git a/databases/mariadb104-server/files/patch-pcre_CMakeLists.txt b/databases/mariadb104-server/files/patch-pcre_CMakeLists.txt
new file mode 100644
index 000000000000..c09bb5f9d875
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-pcre_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- pcre/CMakeLists.txt.orig 2017-08-17 10:05:39 UTC
++++ pcre/CMakeLists.txt
+@@ -510,6 +510,8 @@ IF(PCRE_SHOW_REPORT)
+ MESSAGE(STATUS "")
+ ENDIF(PCRE_SHOW_REPORT)
+
++IF(FALSE)
+ INSTALL(FILES ${CMAKE_BINARY_DIR}/pcre/pcre.h DESTINATION ${INSTALL_INCLUDEDIR}/server/private COMPONENT Development)
++ENDIF()
+
+ # end CMakeLists.txt
diff --git a/databases/mariadb104-server/files/patch-scripts_mysql__config.sh b/databases/mariadb104-server/files/patch-scripts_mysql__config.sh
new file mode 100644
index 000000000000..13f25ca9fb74
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-scripts_mysql__config.sh
@@ -0,0 +1,12 @@
+--- scripts/mysql_config.sh.orig 2017-05-24 09:15:23 UTC
++++ scripts/mysql_config.sh
+@@ -106,7 +106,9 @@ fi
+
+ # Create options
+ libs="-L$pkglibdir @RPATH_OPTION@ @LIBS_FOR_CLIENTS@"
++libs="$libs -L%%LOCALBASE%%/lib "
+ embedded_libs="-L$pkglibdir @RPATH_OPTION@ @EMB_LIBS_FOR_CLIENTS@"
++embedded_libs="$embedded_libs -L%%LOCALBASE%%/lib "
+
+ include="-I$pkgincludedir"
+ if [ "$basedir" != "/usr" ]; then
diff --git a/databases/mariadb104-server/files/patch-scripts_mysqld__safe.sh b/databases/mariadb104-server/files/patch-scripts_mysqld__safe.sh
new file mode 100644
index 000000000000..0c694bd3a30a
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-scripts_mysqld__safe.sh
@@ -0,0 +1,16 @@
+--- scripts/mysqld_safe.sh.orig 2017-05-24 09:15:23 UTC
++++ scripts/mysqld_safe.sh
+@@ -568,11 +568,11 @@ fi
+
+ if test -z "$MYSQL_HOME"
+ then
+- if test -r "$DATADIR/my.cnf"
++ if test -r "$DATADIR/etc/my.cnf"
+ then
+ log_error "WARNING: Found $DATADIR/my.cnf
+ The data directory is not a valid location for my.cnf, please move it to
+-$MY_BASEDIR_VERSION/my.cnf"
++$MY_BASEDIR_VERSION/etc/my.cnf"
+ fi
+ MYSQL_HOME=$MY_BASEDIR_VERSION
+ fi
diff --git a/databases/mariadb104-server/files/patch-sql_mysqld.cc b/databases/mariadb104-server/files/patch-sql_mysqld.cc
new file mode 100644
index 000000000000..ab4a1ed810a5
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-sql_mysqld.cc
@@ -0,0 +1,13 @@
+--- sql/mysqld.cc.orig 2017-05-14 23:13:18 UTC
++++ sql/mysqld.cc
+@@ -4838,8 +4840,9 @@ static void init_ssl()
+ while ((err= ERR_get_error()))
+ sql_print_warning("SSL error: %s", ERR_error_string(err, NULL));
+ }
+- else
++ else {
+ ERR_remove_state(0);
++ }
+ }
+ else
+ {
diff --git a/databases/mariadb104-server/files/patch-storage_innobase_lz4.cmake b/databases/mariadb104-server/files/patch-storage_innobase_lz4.cmake
new file mode 100644
index 000000000000..096529fae9f5
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_innobase_lz4.cmake
@@ -0,0 +1,36 @@
+--- storage/innobase/lz4.cmake.orig 2017-05-14 23:13:18 UTC
++++ storage/innobase/lz4.cmake
+@@ -17,21 +17,29 @@ SET(WITH_INNODB_LZ4 AUTO CACHE STRING
+
+ MACRO (MYSQL_CHECK_LZ4)
+ IF (WITH_INNODB_LZ4 STREQUAL "ON" OR WITH_INNODB_LZ4 STREQUAL "AUTO")
+- CHECK_INCLUDE_FILES(lz4.h HAVE_LZ4_H)
+- CHECK_LIBRARY_EXISTS(lz4 LZ4_compress_limitedOutput "" HAVE_LZ4_SHARED_LIB)
+- CHECK_LIBRARY_EXISTS(lz4 LZ4_compress_default "" HAVE_LZ4_COMPRESS_DEFAULT)
++ find_path(LZ4_INCLUDE_DIR NAMES lz4.h)
++ find_library(LZ4_LIBRARY NAMES lz4)
++ IF (LZ4_LIBRARY)
++ get_filename_component(LZ4_LIBDIR ${LZ4_LIBRARY} DIRECTORY)
++#MESSAGE(STATUS "LZ4_INCLUDE_DIR=${LZ4_INCLUDE_DIR} LZ4_LIBRARY=${LZ4_LIBRARY} LZ4_LIBDIR=${LZ4_LIBDIR}")
++ IF (LZ4_INCLUDE_DIR)
++ SET(HAVE_LZ4_H YES)
++ ENDIF()
++ CHECK_LIBRARY_EXISTS(lz4 LZ4_compress_limitedOutput ${LZ4_LIBDIR} HAVE_LZ4_SHARED_LIB)
++ CHECK_LIBRARY_EXISTS(lz4 LZ4_compress_default ${LZ4_LIBDIR} HAVE_LZ4_COMPRESS_DEFAULT)
+
+ IF (HAVE_LZ4_SHARED_LIB AND HAVE_LZ4_H)
+ ADD_DEFINITIONS(-DHAVE_LZ4=1)
+ IF (HAVE_LZ4_COMPRESS_DEFAULT)
+ ADD_DEFINITIONS(-DHAVE_LZ4_COMPRESS_DEFAULT=1)
+ ENDIF()
+- LINK_LIBRARIES(lz4)
++ LINK_LIBRARIES(innobase ${LZ4_LIBRARY})
+ ELSE()
+ IF (WITH_INNODB_LZ4 STREQUAL "ON")
+ MESSAGE(FATAL_ERROR "Required lz4 library is not found")
+ ENDIF()
+ ENDIF()
++ ENDIF()
+ ENDIF()
+ ENDMACRO()
+
diff --git a/databases/mariadb104-server/files/patch-storage_innobase_lzo.cmake b/databases/mariadb104-server/files/patch-storage_innobase_lzo.cmake
new file mode 100644
index 000000000000..afabe8542926
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_innobase_lzo.cmake
@@ -0,0 +1,38 @@
+--- storage/innobase/lzo.cmake.orig 2017-05-14 23:13:18 UTC
++++ storage/innobase/lzo.cmake
+@@ -17,12 +17,10 @@ SET(WITH_INNODB_LZO AUTO CACHE STRING
+
+ MACRO (MYSQL_CHECK_LZO_STATIC)
+ IF (WITH_INNODB_LZO STREQUAL "ON" OR WITH_INNODB_LZO STREQUAL "AUTO")
+- CHECK_INCLUDE_FILES(lzo/lzo1x.h HAVE_LZO_H)
+- CHECK_LIBRARY_EXISTS(liblzo2.a lzo1x_1_compress "" HAVE_LZO_LIB)
+-
++ CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_compress "${LZO_LIBDIR}" HAVE_LZO_LIB)
+ IF(HAVE_LZO_LIB AND HAVE_LZO_H)
+ ADD_DEFINITIONS(-DHAVE_LZO=1)
+- LINK_LIBRARIES(liblzo2.a)
++ LINK_LIBRARIES(lzo2)
+ ELSE()
+ IF (WITH_INNODB_LZO STREQUAL "ON")
+ MESSAGE(FATAL_ERROR "Required lzo library is not found")
+@@ -33,12 +31,16 @@ ENDMACRO()
+
+ MACRO (MYSQL_CHECK_LZO)
+ IF (WITH_INNODB_LZO STREQUAL "ON" OR WITH_INNODB_LZO STREQUAL "AUTO")
+- CHECK_INCLUDE_FILES(lzo/lzo1x.h HAVE_LZO_H)
+- CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_compress "" HAVE_LZO_SHARED_LIB)
+-
++ find_path(LZO_INCLUDE NAMES lzo/lzo1x.h)
++ find_library(LZO_LIBRARY NAMES lzo2)
++ get_filename_component(LZO_LIBDIR ${LZO_LIBRARY} DIRECTORY)
++ IF (LZO_INCLUDE)
++ SET(HAVE_LZO_H 1)
++ ENDIF()
++ CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_compress ${LZO_LIBDIR} HAVE_LZO_SHARED_LIB)
+ IF(HAVE_LZO_SHARED_LIB AND HAVE_LZO_H)
+ ADD_DEFINITIONS(-DHAVE_LZO=1)
+- LINK_LIBRARIES(lzo2)
++ LINK_LIBRARIES(${LZO_LIBRARY})
+ ELSE()
+ IF (WITH_INNODB_LZO STREQUAL "ON")
+ MESSAGE(FATAL_ERROR "Required lzo library is not found")
diff --git a/databases/mariadb104-server/files/patch-storage_innobase_snappy.cmake b/databases/mariadb104-server/files/patch-storage_innobase_snappy.cmake
new file mode 100644
index 000000000000..42c80e08d04a
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_innobase_snappy.cmake
@@ -0,0 +1,24 @@
+--- storage/innobase/snappy.cmake.orig 2017-05-14 23:13:18 UTC
++++ storage/innobase/snappy.cmake
+@@ -17,12 +17,17 @@ SET(WITH_INNODB_SNAPPY AUTO CACHE STRING
+
+ MACRO (MYSQL_CHECK_SNAPPY)
+ IF (WITH_INNODB_SNAPPY STREQUAL "ON" OR WITH_INNODB_SNAPPY STREQUAL "AUTO")
+- CHECK_INCLUDE_FILES(snappy-c.h HAVE_SNAPPY_H)
+- CHECK_LIBRARY_EXISTS(snappy snappy_uncompress "" HAVE_SNAPPY_SHARED_LIB)
+-
++ find_path(SNAPPY_INCLUDE_DIR NAMES snappy-c.h)
++ find_library(SNAPPY_LIBRARY NAMES snappy)
++ get_filename_component(SNAPPY_LIBDIR ${SNAPPY_LIBRARY} DIRECTORY)
++ IF (SNAPPY_INCLUDE_DIR)
++ SET(HAVE_SNAPPY_H 1)
++ ENDIF()
++ CHECK_LIBRARY_EXISTS(snappy snappy_uncompress ${SNAPPY_LIBDIR} HAVE_SNAPPY_SHARED_LIB)
++MESSAGE(STATUS "HAVE_SNAPPY_H=${HAVE_SNAPPY_H} HAVE_SNAPPY_SHARED_LIB=${HAVE_SNAPPY_SHARED_LIB} SNAPPY_LIBDIR=${SNAPPY_LIBDIR} ")
+ IF(HAVE_SNAPPY_SHARED_LIB AND HAVE_SNAPPY_H)
+ ADD_DEFINITIONS(-DHAVE_SNAPPY=1)
+- LINK_LIBRARIES(snappy)
++ LINK_LIBRARIES(${SNAPPY_LIBRARY})
+ ELSE()
+ IF (WITH_INNODB_SNAPPY STREQUAL "ON")
+ MESSAGE(FATAL_ERROR "Required snappy library is not found")
diff --git a/databases/mariadb104-server/files/patch-storage_mroonga_vendor_groonga_CMakeLists.txt b/databases/mariadb104-server/files/patch-storage_mroonga_vendor_groonga_CMakeLists.txt
new file mode 100644
index 000000000000..023d10e97d94
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_mroonga_vendor_groonga_CMakeLists.txt
@@ -0,0 +1,15 @@
+From https://github.com/openquery/mariadb-server/commit/43bf72e45b9ead6aa0dc4abd6e5719c6381974b5
+
+--- storage/mroonga/vendor/groonga/CMakeLists.txt.orig 2017-05-14 23:13:18 UTC
++++ storage/mroonga/vendor/groonga/CMakeLists.txt
+@@ -167,6 +167,10 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COM
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-clobbered")
+ endif()
+
++if(CMAKE_COMPILER_IS_CLANGCXX)
++ MY_CHECK_AND_SET_COMPILER_FLAG("-fexceptions")
++endif()
++
+ if(NOT DEFINED CMAKE_C_COMPILE_OPTIONS_PIC)
+ # For old CMake
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGCXX)
diff --git a/databases/mariadb104-server/files/patch-storage_rocksdb_build__rocksdb.cmake b/databases/mariadb104-server/files/patch-storage_rocksdb_build__rocksdb.cmake
new file mode 100644
index 000000000000..be036e0a597f
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_rocksdb_build__rocksdb.cmake
@@ -0,0 +1,13 @@
+--- storage/rocksdb/build_rocksdb.cmake.orig 2018-10-02 09:45:43 UTC
++++ storage/rocksdb/build_rocksdb.cmake
+@@ -69,10 +69,6 @@ if(ZSTD_FOUND AND (NOT WITH_ROCKSDB_ZSTD
+ SET(CMAKE_REQUIRED_LIBRARIES zstd)
+ CHECK_FUNCTION_EXISTS(ZDICT_trainFromBuffer ZSTD_VALID)
+ UNSET(CMAKE_REQUIRED_LIBRARIES)
+- if (WITH_ROCKSDB_ZSTD STREQUAL "ON" AND NOT ZSTD_VALID)
+- MESSAGE(FATAL_ERROR
+- "WITH_ROCKSDB_ZSTD is ON and ZSTD library was found, but the version needs to be >= 1.1.3")
+- endif()
+ if (ZSTD_VALID)
+ add_definitions(-DZSTD)
+ include_directories(${ZSTD_INCLUDE_DIR})
diff --git a/databases/mariadb104-server/files/patch-storage_tokudb_CMakeLists.txt b/databases/mariadb104-server/files/patch-storage_tokudb_CMakeLists.txt
new file mode 100644
index 000000000000..e75813586e40
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_tokudb_CMakeLists.txt
@@ -0,0 +1,9 @@
+--- storage/tokudb/CMakeLists.txt.orig 2017-09-25 08:33:26.000000000 +0200
++++ storage/tokudb/CMakeLists.txt 2017-09-28 21:46:55.119327000 +0200
+@@ -108,6 +108,3 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINA
+
+ TARGET_LINK_LIBRARIES(tokudb tokufractaltree_static tokuportability_static
+ ${ZLIB_LIBRARY} ${LIBJEMALLOC} 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")
diff --git a/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_CMakeLists.txt b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_CMakeLists.txt
new file mode 100644
index 000000000000..9ef62147175b
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- storage/tokudb/PerconaFT/CMakeLists.txt.orig 2017-05-14 23:13:20 UTC
++++ storage/tokudb/PerconaFT/CMakeLists.txt
+@@ -80,7 +80,7 @@ add_subdirectory(src)
+ add_subdirectory(ftcxx)
+ add_subdirectory(tools)
+
+-INSTALL_DOCUMENTATION(README.md COPYING.AGPLv3 COPYING.GPLv2 PATENTS
++INSTALL_DOCUMENTATION(README.md
+ COMPONENT Server)
+
+ ## build tags
diff --git a/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_cmake__modules_TokuThirdParty.cmake b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_cmake__modules_TokuThirdParty.cmake
new file mode 100644
index 000000000000..1ba52dbe8853
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_cmake__modules_TokuThirdParty.cmake
@@ -0,0 +1,39 @@
+Do NOT use bundled libs, use xz/lzma from base and archivers/snappy from ports
+
+--- storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake.orig 2017-05-14 23:13:20 UTC
++++ storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake
+@@ -34,6 +34,13 @@ if (CMAKE_PROJECT_NAME STREQUAL TokuDB)
+ endif ()
+ endif ()
+
++IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
++ include_directories("/usr/include")
++
++ add_library(lzma SHARED IMPORTED)
++ set_target_properties(lzma PROPERTIES IMPORTED_LOCATION
++ "/usr/lib/liblzma.so")
++ELSE()
+ ## add lzma with an external project
+ set(xz_configure_opts --with-pic --enable-static)
+ if (APPLE)
+@@ -105,8 +112,15 @@ add_library(lzma STATIC IMPORTED)
+ set_target_properties(lzma PROPERTIES IMPORTED_LOCATION
+ "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib/liblzma.a")
+ add_dependencies(lzma build_lzma)
++ENDIF()
+
++IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
++ include_directories("%%LOCALBASE%%/include")
+
++ add_library(snappy SHARED IMPORTED)
++ set_target_properties(snappy PROPERTIES IMPORTED_LOCATION
++ "%%LOCALBASE%%/lib/libsnappy.so")
++ELSE()
+ ## add snappy with an external project
+ set(SNAPPY_SOURCE_DIR "${TokuDB_SOURCE_DIR}/third_party/snappy-1.1.2" CACHE FILEPATH "Where to find sources for snappy.")
+ if (NOT EXISTS "${SNAPPY_SOURCE_DIR}/CMakeLists.txt")
+@@ -140,3 +154,4 @@ add_library(snappy STATIC IMPORTED)
+ set_target_properties(snappy PROPERTIES IMPORTED_LOCATION
+ "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/snappy/lib/libsnappy.a")
+ add_dependencies(snappy build_snappy)
++ENDIF()
diff --git a/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_portability_memory.cc b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_portability_memory.cc
new file mode 100644
index 000000000000..c6eb23c5a525
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-storage_tokudb_PerconaFT_portability_memory.cc
@@ -0,0 +1,16 @@
+Fix build error
+
+--- storage/tokudb/PerconaFT/portability/memory.cc.orig 2017-05-14 23:13:21 UTC
++++ storage/tokudb/PerconaFT/portability/memory.cc
+@@ -42,11 +42,6 @@ Copyright (c) 2006, 2015, Percona and/or
+ #include <string.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#if defined(HAVE_MALLOC_H)
+-# include <malloc.h>
+-#elif defined(HAVE_SYS_MALLOC_H)
+-# include <sys/malloc.h>
+-#endif
+ #include <dlfcn.h>
+ #include <toku_race_tools.h>
+ #include "memory.h"
diff --git a/databases/mariadb104-server/files/patch-support-files_CMakeLists.txt b/databases/mariadb104-server/files/patch-support-files_CMakeLists.txt
new file mode 100644
index 000000000000..c9392ca628a2
--- /dev/null
+++ b/databases/mariadb104-server/files/patch-support-files_CMakeLists.txt
@@ -0,0 +1,14 @@
+Fix up missing WITHOUT_DOCS, WITHOUT_CLIENT options
+
+--- support-files/CMakeLists.txt.orig 2017-05-14 23:13:28 UTC
++++ support-files/CMakeLists.txt
+@@ -83,7 +83,9 @@ IF(UNIX)
+ CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc DESTINATION ${INSTALL_SHAREDIR}/pkgconfig COMPONENT Development)
+
++IF(FALSE)
+ INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
++ENDIF()
+
+ SET(bindir ${INSTALL_BINDIRABS})
+ SET(sbindir ${INSTALL_SBINDIRABS})
diff --git a/databases/mariadb104-server/files/pkg-message.in b/databases/mariadb104-server/files/pkg-message.in
new file mode 100644
index 000000000000..b49d42074149
--- /dev/null
+++ b/databases/mariadb104-server/files/pkg-message.in
@@ -0,0 +1,15 @@
+************************************************************************
+
+Remember to run mysql_upgrade (with the optional --datadir=<dbdir> flag)
+the first time you start the MySQL server after an upgrade from an
+earlier version.
+
+MariaDB respects hier(7) and doesn't check /etc and /etc/mysql for
+my.cnf. Please move existing my.cnf files from those paths to
+%%PREFIX%%/etc and %%PREFIX%%/etc/mysql.
+
+This port does NOT include the mytop perl script, this is included in
+the MariaDB tarball but the most recent version can be found in the
+databases/mytop port
+
+************************************************************************