diff --git a/databases/xtrabackup/Makefile b/databases/xtrabackup/Makefile index b984c86c2282..d5a5f4c0e81f 100644 --- a/databases/xtrabackup/Makefile +++ b/databases/xtrabackup/Makefile @@ -1,61 +1,54 @@ PORTNAME= xtrabackup -DISTVERSION= 2.4.21 +DISTVERSION= 2.4.28 CATEGORIES= databases MASTER_SITES= https://www.percona.com/downloads/Percona-XtraBackup-${PORTVERSION:R}/Percona-XtraBackup-${PORTVERSION}/source/tarball/:xtrabackup \ https://ftp.osuosl.org/pub/blfs/conglomeration/boost/:boost SF/boost/boost/1.59.0/:boost DISTFILES= percona-${PORTNAME}-${PORTVERSION}.tar.gz:xtrabackup \ boost_1_59_0.tar.bz2:boost MAINTAINER= samm@FreeBSD.org COMMENT= OpenSource version of InnoDB backup with support of Percona extensions WWW= https://www.percona.com/doc/percona-xtrabackup/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_armv6= fails to compile: cannot combine with previous 'type-name' declaration specifier BROKEN_armv7= fails to compile: cannot combine with previous 'type-name' declaration specifier BROKEN_mips64= fails to compile: 'fpsetmask' was not declared in this scope # quilt is required by build.sh BUILD_DEPENDS= bash:shells/bash \ cmake:devel/cmake-core LIB_DEPENDS= libcurl.so:ftp/curl \ libev.so:devel/libev \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error RUN_DEPENDS= qpress:archivers/qpress USES= alias autoreconf:build bison cmake:noninja compiler:c++11-lang \ cpe gettext libtool perl5 shebangfix USE_CXXSTD= c++11 CONFLICTS_INSTALL= ${PORTNAME}8 CPE_VENDOR= percona SHEBANG_FILES= storage/innobase/xtrabackup/xbcloud_osenv.sh CMAKE_ARGS= -DWITH_BOOST=${WRKDIR}/boost_1_59_0 -DWITH_VERSION_CHECK=OFF WRKSRC= ${WRKDIR}/percona-${PORTNAME}-${PORTVERSION} PLIST_FILES= bin/xtrabackup bin/xbstream bin/innobackupex bin/xbcrypt \ bin/xbcloud bin/xbcloud_osenv .include -# xtrabackup/mysql57 fails to compile with llvm11, which was imported to current in r364284 -# without a version increase (1300109 = r364274). -# Until a proper fix is provided, simply use llvm from ports, which probably could be -# a backport of amongst other tings: -# https://github.com/mysql/mysql-server/commit/08f46b3c00ee70e7ed7825daeb91df2289f80f50 -.if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1300109 -_LLVM_VERSION= 10 -BUILD_DEPENDS+= clang${_LLVM_VERSION}:devel/llvm${_LLVM_VERSION} -CC= ${LOCALBASE}/bin/clang${_LLVM_VERSION} -CXX= ${LOCALBASE}/bin/clang++${_LLVM_VERSION} -.endif # Not sure why it's trying to install mysql client libraries now post-install: ${RM} -rf ${STAGEDIR}${LOCALBASE}/lib +post-patch: + @${REINPLACE_CMD} -e 's|__clang__|__undefined__|g' \ + ${WRKDIR}/boost_1_59_0/boost/atomic/detail/ops_gcc_x86_dcas.hpp + .include diff --git a/databases/xtrabackup/distinfo b/databases/xtrabackup/distinfo index 2a26d91ed656..ed854fdc0fa2 100644 --- a/databases/xtrabackup/distinfo +++ b/databases/xtrabackup/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1610454639 -SHA256 (percona-xtrabackup-2.4.21.tar.gz) = 6427b16348c181df8b570bc9e7c16374fef81277dd8677628ae3b9fb608548cc -SIZE (percona-xtrabackup-2.4.21.tar.gz) = 61901220 +TIMESTAMP = 1685991049 +SHA256 (percona-xtrabackup-2.4.28.tar.gz) = 1d77f920a0cf536e12ddcd3a154583b1b52cd3db35bd2d06db629cc255367cea +SIZE (percona-xtrabackup-2.4.28.tar.gz) = 62525343 SHA256 (boost_1_59_0.tar.bz2) = 727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca SIZE (boost_1_59_0.tar.bz2) = 70389425 diff --git a/databases/xtrabackup/files/patch-cmake-install_layout.cmake b/databases/xtrabackup/files/patch-cmake-install_layout.cmake index e823abeffe31..48409561fcf5 100644 --- a/databases/xtrabackup/files/patch-cmake-install_layout.cmake +++ b/databases/xtrabackup/files/patch-cmake-install_layout.cmake @@ -1,11 +1,11 @@ ---- cmake/install_layout.cmake.orig 2020-04-10 19:45:19 UTC +--- cmake/install_layout.cmake.orig 2023-03-14 11:58:56 UTC +++ cmake/install_layout.cmake -@@ -160,7 +160,7 @@ SET(INSTALL_INFODIR_STANDALONE "docs") +@@ -167,7 +167,7 @@ SET(INSTALL_INFODIR_STANDALONE "docs") # SET(INSTALL_SHAREDIR_STANDALONE "share") SET(INSTALL_MYSQLSHAREDIR_STANDALONE "share") -SET(INSTALL_MYSQLTESTDIR_STANDALONE "xtrabackup-test") +# SET(INSTALL_MYSQLTESTDIR_STANDALONE "xtrabackup-test") SET(INSTALL_SUPPORTFILESDIR_STANDALONE "support-files") # SET(INSTALL_MYSQLDATADIR_STANDALONE "data") diff --git a/databases/xtrabackup/files/patch-cmake_os_FreeBSD.cmake b/databases/xtrabackup/files/patch-cmake_os_FreeBSD.cmake index 2b65a3faef22..3610fac4b5d2 100644 --- a/databases/xtrabackup/files/patch-cmake_os_FreeBSD.cmake +++ b/databases/xtrabackup/files/patch-cmake_os_FreeBSD.cmake @@ -1,31 +1,31 @@ ---- cmake/os/FreeBSD.cmake.orig 2020-05-26 05:35:19 UTC +--- cmake/os/FreeBSD.cmake.orig 2023-03-14 11:58:56 UTC +++ cmake/os/FreeBSD.cmake -@@ -36,6 +36,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) - IF(GCC_VERSION VERSION_LESS 4.4) - MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!") +@@ -45,6 +45,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) + IF(NOT HAVE_SUPPORTED_CLANG_VERSION) + MESSAGE(FATAL_ERROR "Clang 3.3 or newer is required!") ENDIF() + 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() ELSE() MESSAGE(FATAL_ERROR "Unsupported compiler!") ENDIF() -@@ -44,4 +58,6 @@ ENDIF() +@@ -53,4 +67,6 @@ ENDIF() # Should not be needed any more, but kept for easy resurrection if needed # #Legacy option, maybe not needed anymore , taken as is from autotools build # ADD_DEFINITIONS(-DNET_RETRY_COUNT=1000000) - +# For GCC maybe it's also good idea to use +# ADD_DEFINITIONS(-D_GNU_SOURCE) + diff --git a/databases/xtrabackup/files/patch-include_my__compare.h b/databases/xtrabackup/files/patch-include_my__compare.h new file mode 100644 index 000000000000..24205abdee3e --- /dev/null +++ b/databases/xtrabackup/files/patch-include_my__compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2019-10-21 05:21:41 UTC ++++ include/my_compare.h +@@ -47,7 +47,7 @@ extern "C" { + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) diff --git a/databases/xtrabackup/files/patch-include_myisam.h b/databases/xtrabackup/files/patch-include_myisam.h new file mode 100644 index 000000000000..228303eaf909 --- /dev/null +++ b/databases/xtrabackup/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2019-10-21 05:21:41 UTC ++++ include/myisam.h +@@ -52,7 +52,7 @@ extern "C" { + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) diff --git a/databases/xtrabackup/files/patch-sql_conn__handler_socket__connection.cc b/databases/xtrabackup/files/patch-sql_conn__handler_socket__connection.cc new file mode 100644 index 000000000000..5afdb1cfd53e --- /dev/null +++ b/databases/xtrabackup/files/patch-sql_conn__handler_socket__connection.cc @@ -0,0 +1,32 @@ +--- sql/conn_handler/socket_connection.cc.orig 2019-10-21 05:21:41 UTC ++++ sql/conn_handler/socket_connection.cc +@@ -953,22 +953,25 @@ Channel_info* Mysqld_socket_listener::listen_for_conne + signal(SIGCHLD, SIG_DFL); + request_init(&req, RQ_DAEMON, m_libwrap_name, RQ_FILE, + mysql_socket_getfd(connect_sock), NULL); +- fromhost(&req); ++ void (*my_fromhost) (void *) = (void (*)(void *)) fromhost; ++ my_fromhost(&req); + +- if (!hosts_access(&req)) ++ int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access; ++ if (!my_hosts_access(&req)) + { + /* + This may be stupid but refuse() includes an exit(0) + which we surely don't want... + clean_exit() - same stupid thing ... + */ ++ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client; + syslog(LOG_AUTH | m_deny_severity, +- "refused connect from %s", eval_client(&req)); ++ "refused connect from %s", my_eval_client(&req)); + + #ifdef HAVE_LIBWRAP_PROTOTYPES + // Some distros have patched tcpd.h to have proper prototypes + if (req.sink) +- (req.sink)(req.fd); ++ ((void (*)(int)) (req.sink))(req.fd); + #else + // Some distros have not patched tcpd.h + if (req.sink) diff --git a/databases/xtrabackup/files/patch-sql_locks_shared__spin__lock.cc b/databases/xtrabackup/files/patch-sql_locks_shared__spin__lock.cc new file mode 100644 index 000000000000..b581258780b9 --- /dev/null +++ b/databases/xtrabackup/files/patch-sql_locks_shared__spin__lock.cc @@ -0,0 +1,11 @@ +--- sql/locks/shared_spin_lock.cc.orig 2023-06-05 20:41:14 UTC ++++ sql/locks/shared_spin_lock.cc +@@ -239,7 +239,7 @@ lock::Shared_spin_lock &lock::Shared_spin_lock::try_or + { + this->spin_exclusive_lock(); + } +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + my_atomic_store64(&this->m_exclusive_owner, reinterpret_cast(self)); + #else + my_atomic_store64(&this->m_exclusive_owner, self); diff --git a/databases/xtrabackup/files/patch-sql_sys__vars.cc b/databases/xtrabackup/files/patch-sql_sys__vars.cc new file mode 100644 index 000000000000..52c636089b2d --- /dev/null +++ b/databases/xtrabackup/files/patch-sql_sys__vars.cc @@ -0,0 +1,38 @@ +--- sql/sys_vars.cc.orig 2021-06-16 10:56:53 UTC ++++ sql/sys_vars.cc +@@ -1749,7 +1749,7 @@ static Sys_var_ulong Sys_interactive_timeout( + "connection before closing it", + SESSION_VAR(net_interactive_timeout), + CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); ++ VALID_RANGE(1, INT_MAX32/1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_ulong Sys_join_buffer_size( + "join_buffer_size", +@@ -2629,7 +2629,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(0), + ON_UPDATE(fix_net_read_timeout)); + +@@ -2653,7 +2653,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(0), + ON_UPDATE(fix_net_write_timeout)); + +@@ -4389,7 +4389,7 @@ static Sys_var_ulong Sys_net_wait_timeout( + "The number of seconds the server waits for activity on a " + "connection before closing it", + SESSION_VAR(net_wait_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, IF_WIN(INT_MAX32/1000, LONG_TIMEOUT)), ++ VALID_RANGE(1, INT_MAX32/1000), + DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_plugin Sys_default_storage_engine( diff --git a/databases/xtrabackup/files/patch-storage-myisam-mi_dynrec.c b/databases/xtrabackup/files/patch-storage-myisam-mi_dynrec.c index 4436e2e4b195..def5cf714845 100644 --- a/databases/xtrabackup/files/patch-storage-myisam-mi_dynrec.c +++ b/databases/xtrabackup/files/patch-storage-myisam-mi_dynrec.c @@ -1,23 +1,23 @@ ---- storage/myisam/mi_dynrec.c.orig 2020-04-10 19:45:19 UTC +--- storage/myisam/mi_dynrec.c.orig 2023-03-14 11:58:56 UTC +++ storage/myisam/mi_dynrec.c -@@ -65,18 +65,13 @@ my_bool mi_dynmap_file(MI_INFO *info, my_off_t size) +@@ -72,18 +72,13 @@ my_bool mi_dynmap_file(MI_INFO *info, my_off_t size) DBUG_RETURN(1); } /* - I wonder if it is good to use MAP_NORESERVE. From the Linux man page: - MAP_NORESERVE - Do not reserve swap space for this mapping. When swap space is - reserved, one has the guarantee that it is possible to modify the - mapping. When swap space is not reserved one might get SIGSEGV - upon a write if no physical memory is available. + MAP_NORESERVE is unimplemented in FreeBSD */ info->s->file_map= (uchar*) my_mmap(0, (size_t) size, info->s->mode==O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_NORESERVE, + MAP_SHARED, info->dfile, 0L); if (info->s->file_map == (uchar*) MAP_FAILED) { diff --git a/databases/xtrabackup/files/patch-storage_innobase_fsp_fsp0fsp.cc b/databases/xtrabackup/files/patch-storage_innobase_fsp_fsp0fsp.cc index 86d7e46582fb..8207474b1ced 100644 --- a/databases/xtrabackup/files/patch-storage_innobase_fsp_fsp0fsp.cc +++ b/databases/xtrabackup/files/patch-storage_innobase_fsp_fsp0fsp.cc @@ -1,11 +1,11 @@ ---- storage/innobase/fsp/fsp0fsp.cc.orig 2020-04-10 19:45:19 UTC +--- storage/innobase/fsp/fsp0fsp.cc.orig 2023-03-14 11:58:56 UTC +++ storage/innobase/fsp/fsp0fsp.cc -@@ -1289,7 +1289,7 @@ fsp_header_decode_encryption_info( +@@ -1293,7 +1293,7 @@ fsp_header_decode_encryption_info( if (elen == MY_AES_BAD_DATA) { my_free(master_key); - return(NULL); + return(false); } /* Check checksum bytes. */ diff --git a/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_ds__tmpfile.c b/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_ds__tmpfile.c deleted file mode 100644 index 1354c60ff98c..000000000000 --- a/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_ds__tmpfile.c +++ /dev/null @@ -1,11 +0,0 @@ ---- storage/innobase/xtrabackup/src/ds_tmpfile.c.orig 2020-04-10 19:45:19 UTC -+++ storage/innobase/xtrabackup/src/ds_tmpfile.c -@@ -55,7 +55,7 @@ datasink_t datasink_tmpfile = { - &tmpfile_deinit - }; - --MY_TMPDIR mysql_tmpdir_list; -+extern MY_TMPDIR mysql_tmpdir_list; - - static ds_ctxt_t * - tmpfile_init(const char *root) diff --git a/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_xbstream.c b/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_xbstream.c deleted file mode 100644 index 2542052b2790..000000000000 --- a/databases/xtrabackup/files/patch-storage_innobase_xtrabackup_src_xbstream.c +++ /dev/null @@ -1,10 +0,0 @@ ---- storage/innobase/xtrabackup/src/xbstream.c.orig 2020-04-10 19:45:19 UTC -+++ storage/innobase/xtrabackup/src/xbstream.c -@@ -55,7 +55,6 @@ datasink_t datasink_xbstream; - datasink_t datasink_compress; - datasink_t datasink_tmpfile; - datasink_t datasink_encrypt; --datasink_t datasink_buffer; - - static run_mode_t opt_mode; - static char * opt_directory = NULL;