Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
databases/xtrabackup81: New port: xtrabackup 8.1
setting maintainer email to Eugene as aligned in the email conversation.
- Loading branch information
Showing
15 changed files
with
342 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
PORTNAME= xtrabackup81 | ||
PORTVERSION= 8.1.0 | ||
DISTVERSIONSUFFIX= -1 | ||
CATEGORIES= databases | ||
MASTER_SITES= https://downloads.percona.com/downloads/Percona-XtraBackup-innovative-release/Percona-XtraBackup-8.1.0-1/source/tarball/:percona \ | ||
SF/boost/boost/${BOOST_VERSION}:boost | ||
DISTFILES= ${PPORTNAME}-${DVERSION}${EXTRACT_SUFX}:percona \ | ||
boost_${BOOST_VERSION_UNDER}${EXTRACT_SUFX}:boost | ||
|
||
MAINTAINER= eugene@zhegan.in | ||
COMMENT= Open-source backup tool for InnoDB and XtraDB | ||
WWW= https://www.percona.com/doc/percona-xtrabackup/ | ||
|
||
LICENSE= GPLv2 | ||
LICENSE_FILE= ${WRKSRC}/LICENSE | ||
|
||
BUILD_DEPENDS= protobuf>=3.0:devel/protobuf \ | ||
rapidjson>=1.1.0:devel/rapidjson \ | ||
libevent>=2.1:devel/libevent | ||
LIB_DEPENDS= libcurl.so:ftp/curl \ | ||
libev.so:devel/libev \ | ||
libgcrypt.so:security/libgcrypt \ | ||
libgpg-error.so:security/libgpg-error \ | ||
libicudata.so:devel/icu \ | ||
libprotobuf-lite.so:devel/protobuf \ | ||
libunwind.so:devel/libunwind \ | ||
libzstd.so:archivers/zstd | ||
RUN_DEPENDS= qpress:archivers/qpress | ||
|
||
USES= bison cmake compiler:c++14-lang cpe pkgconfig ssl | ||
CPE_VENDOR= percona | ||
CMAKE_ARGS= -DBUILD_CONFIG:STRING=xtrabackup_release \ | ||
-DWITHOUT_COMPONENT_KEYRING_KMIP:STRING=yes \ | ||
-DWITH_VERSION_CHECK=false | ||
|
||
.for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD | ||
CMAKE_ARGS+= -DWITH_${component}:STRING=system | ||
.endfor | ||
|
||
CONFLICTS_INSTALL= ${PORTNAME:C/.$//}* | ||
|
||
# Bundle last supported Boost release | ||
BOOST_VERSION= 1.77.0 | ||
BOOST_VERSION_UNDER= ${BOOST_VERSION:C/\./_/g} | ||
|
||
CMAKE_ARGS+= -DWITH_BOOST=${WRKDIR}/boost_${BOOST_VERSION_UNDER} | ||
|
||
# Build fails without NDEBUG, so force it | ||
CFLAGS+= -DNDEBUG | ||
CXXFLAGS+= -DNDEBUG | ||
|
||
DVERSION= ${PORTVERSION}${DISTVERSIONSUFFIX} | ||
PPORTNAME= percona-xtrabackup | ||
WRKSRC= ${WRKDIR}/${PPORTNAME}-${DVERSION} | ||
|
||
.include <bsd.port.pre.mk> | ||
|
||
# Since MySQL 8.0.20 InnoDB engine uses new memory alligned allocator | ||
# which is broken on i386 due to different size of types and causes a | ||
# 'static_assert(alignof(T) <= alignof(std::max_align_t))' error | ||
.if ${ARCH} == i386 | ||
CXXFLAGS+= -malign-double | ||
.endif | ||
|
||
KEEP_EXTRA= lz4 robin-hood-hashing zlib | ||
|
||
post-patch: | ||
.for d in storage/innobase/xtrabackup/src sql/protobuf | ||
${REINPLACE_CMD} 's,%%PREFIX%%,${PREFIX},' ${WRKSRC}/${d}/CMakeLists.txt | ||
.endfor | ||
.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 | ||
@${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ | ||
${WRKSRC}/../boost_${BOOST_VERSION_UNDER}/boost/container_hash/hash.hpp | ||
.endif | ||
|
||
pre-configure: | ||
.for dir in ${KEEP_EXTRA} | ||
@${MV} ${WRKSRC}/extra/${dir} ${WRKDIR} | ||
.endfor | ||
@${RM} -r ${WRKSRC}/extra/* | ||
.for dir in ${KEEP_EXTRA} | ||
@${MV} ${WRKDIR}/${dir} ${WRKSRC}/extra | ||
.endfor | ||
|
||
post-stage: | ||
@${RM} -r ${STAGEDIR}${PREFIX}/docs ${STAGEDIR}${PREFIX}/man | ||
@${RMDIR} ${STAGEDIR}${PREFIX}/lib/plugin/debug | ||
|
||
.include <bsd.port.post.mk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
TIMESTAMP = 1711999595 | ||
SHA256 (percona-xtrabackup-8.1.0-1.tar.gz) = e058d18e2a80838940aa8f80a095413d994f5a4e8ff5c16228fd9382bb826fe6 | ||
SIZE (percona-xtrabackup-8.1.0-1.tar.gz) = 446978094 | ||
SHA256 (boost_1_77_0.tar.gz) = 5347464af5b14ac54bb945dc68f1dd7c56f0dad7262816b956138fc53bcc0131 | ||
SIZE (boost_1_77_0.tar.gz) = 130620992 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- CMakeLists.txt.orig 2023-10-19 12:05:28 UTC | ||
+++ CMakeLists.txt | ||
@@ -2094,8 +2094,6 @@ IF(WITH_PROTOBUF STREQUAL "bundled" OR WITH_FIDO STREQ | ||
ENDIF() | ||
ENDIF() | ||
|
||
-ADD_SUBDIRECTORY(extra/libkmip) | ||
- | ||
# | ||
# Setup maintainer mode options by the end. Platform checks are | ||
# not run with the warning options as to not perturb fragile checks | ||
@@ -2345,10 +2343,6 @@ ENDIF() | ||
|
||
IF(ENABLE_GCOV) | ||
INCLUDE(fastcov) | ||
-ENDIF() | ||
- | ||
-IF(UNIX) | ||
- ADD_SUBDIRECTORY(man) | ||
ENDIF() | ||
|
||
IF(LINUX AND NOT WITHOUT_SERVER) |
11 changes: 11 additions & 0 deletions
11
databases/xtrabackup81/files/patch-cmake-install_layout.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- cmake/install_layout.cmake.orig 2023-10-19 12:05:28 UTC | ||
+++ cmake/install_layout.cmake | ||
@@ -159,7 +159,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") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- cmake/os/FreeBSD.cmake.orig 2023-10-19 12:05:28 UTC | ||
+++ cmake/os/FreeBSD.cmake | ||
@@ -48,6 +48,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) | ||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.1) | ||
MESSAGE(FATAL_ERROR "GCC 7.1 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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- storage/innobase/xtrabackup/src/file_utils.cc.orig 2023-11-24 17:33:10.000000000 +0700 | ||
+++ storage/innobase/xtrabackup/src/file_utils.cc 2024-02-17 00:40:45.193255000 +0700 | ||
@@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos | ||
|
||
#include "file_utils.h" | ||
#include <mysql/service_mysql_alloc.h> | ||
-#ifdef __APPLE__ | ||
+#if defined(__APPLE__) || defined (__FreeBSD__) | ||
#include <sys/event.h> | ||
#else | ||
#include <sys/epoll.h> | ||
@@ -391,7 +391,7 @@ File open_fifo_for_read_with_timeout(const char *path, | ||
} | ||
|
||
/* File was open, lets check its open on the other side */ | ||
-#ifdef __APPLE__ | ||
+#if defined(__APPLE__) || defined(__FreeBSD__) | ||
struct timespec tm = {timeout, 0}; | ||
int kqueue_fd = kqueue(); | ||
if (kqueue_fd < 0) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
--- storage/innobase/include/ddl0impl.h.orig 2023-10-19 12:05:28 UTC | ||
+++ storage/innobase/include/ddl0impl.h | ||
@@ -118,14 +118,6 @@ struct Fetch_sequence : public Context::FTS::Sequence | ||
|
||
/** Physical row context. */ | ||
struct Row { | ||
- /** Constructor. */ | ||
- Row() = default; | ||
- | ||
- Row(const Row &) = default; | ||
- | ||
- /** Destructor. */ | ||
- ~Row() = default; | ||
- | ||
Row &operator=(const Row &) = default; | ||
|
||
/** Build a row from a raw record. | ||
--- unittest/gunit/mysys_my_rdtsc-t.cc.orig 2023-10-19 12:05:28 UTC | ||
+++ unittest/gunit/mysys_my_rdtsc-t.cc | ||
@@ -145,7 +145,7 @@ TEST_F(RDTimeStampCounter, TestNanosecond) { | ||
ulonglong t1 = my_timer_nanoseconds(); | ||
ulonglong t2; | ||
int i; | ||
- int backward = 0; | ||
+ int backward [[maybe_unused]] = 0; | ||
int nonzero = 0; | ||
|
||
for (i = 0; i < LOOP_COUNT; i++) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
--- storage/innobase/xtrabackup/src/CMakeLists.txt.orig 2023-11-24 13:33:10.000000000 +0300 | ||
+++ storage/innobase/xtrabackup/src/CMakeLists.txt 2024-02-16 15:38:03.294091000 +0300 | ||
@@ -20,8 +20,9 @@ | ||
|
||
INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) | ||
|
||
+INCLUDE_DIRECTORIES(%%PREFIX%%/include) | ||
+ | ||
FIND_GCRYPT() | ||
-FIND_PROCPS() | ||
|
||
CHECK_TYPE_SIZE("unsigned long" SIZEOF_UNSIGNED_LONG) | ||
|
||
@@ -134,14 +135,6 @@ | ||
ext::icu | ||
crc | ||
) | ||
- | ||
-IF(NOT APPLE) | ||
- IF(PROCPS_VERSION EQUAL 4) | ||
- TARGET_LINK_LIBRARIES(xtrabackup proc2) | ||
- ELSE() | ||
- TARGET_LINK_LIBRARIES(xtrabackup procps) | ||
- ENDIF() | ||
-ENDIF() | ||
|
||
# We depend on protobuf because of the mysqlx plugin and replication. | ||
IF(UNIX_INSTALL_RPATH_ORIGIN_PRIV_LIBDIR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- sql/protobuf/CMakeLists.txt.orig 2023-11-24 17:33:10.000000000 +0700 | ||
+++ sql/protobuf/CMakeLists.txt 2024-02-17 02:13:42.264307000 +0700 | ||
@@ -21,6 +21,7 @@ | ||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
|
||
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/protobuf.cmake) | ||
+INCLUDE_DIRECTORIES(%%PREFIX%%/include) | ||
|
||
SET(PROTOBUF_LITE_LIB_NAME rpl_protobuf_lite) | ||
|
59 changes: 59 additions & 0 deletions
59
databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_src_utils.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- storage/innobase/xtrabackup/src/utils.cc.orig 2023-10-19 12:05:28 UTC | ||
+++ storage/innobase/xtrabackup/src/utils.cc | ||
@@ -21,6 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Bos | ||
|
||
#ifdef __APPLE__ | ||
#include <mach/mach_host.h> | ||
+#endif | ||
+#if defined(__APPLE__) || defined(__FreeBSD__) | ||
#include <sys/sysctl.h> | ||
#else | ||
#ifdef HAVE_PROCPS_V3 | ||
@@ -113,12 +115,14 @@ unsigned long get_version_number(std::string version_s | ||
return major * 10000 + minor * 100 + version; | ||
} | ||
|
||
-#ifdef __APPLE__ | ||
+#if defined(__APPLE__) || defined(__FreeBSD__) | ||
unsigned long host_total_memory() { | ||
unsigned long total_mem = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE); | ||
return total_mem; | ||
} | ||
+#endif | ||
|
||
+#ifdef __APPLE__ | ||
unsigned long host_free_memory() { | ||
unsigned long total_mem = host_total_memory(); | ||
int64_t used_mem; | ||
@@ -139,6 +143,31 @@ unsigned long host_free_memory() { | ||
return total_mem - (unsigned long)used_mem; | ||
} | ||
return 0; | ||
+} | ||
+#elif defined(__FreeBSD__) | ||
+unsigned long host_free_memory() { | ||
+ static int mib_free[2] = { -1, 0 }; | ||
+ static int mib_inactive[2] = { -1, 0 }; | ||
+ size_t miblen = sizeof(mib_free) / sizeof(mib_free[0]); | ||
+ uint32_t free_pages, inactive_pages; | ||
+ size_t sz = sizeof(free_pages); | ||
+ | ||
+ free_pages = inactive_pages = 0; | ||
+ | ||
+ if (mib_free[0] < 0 && | ||
+ sysctlnametomib("vm.stats.vm.v_free_count", mib_free, &miblen) < 0) | ||
+ mib_free[0] = 0; | ||
+ if (mib_inactive[0] < 0 && | ||
+ sysctlnametomib("vm.stats.vm.v_inactive_count", mib_inactive, &miblen) < 0) | ||
+ mib_inactive[0] = 0; | ||
+ | ||
+ if (mib_free[0] && | ||
+ sysctl(mib_free, 2, &free_pages, &sz, NULL, 0) < 0) | ||
+ free_pages = 0; /* should not happen */ | ||
+ if (mib_inactive[0] && sysctl(mib_inactive, 2, &inactive_pages, &sz, NULL, 0) < 0) | ||
+ inactive_pages = 0; /* should not happen, too */ | ||
+ | ||
+ return (free_pages + inactive_pages) * sysconf(_SC_PAGESIZE); | ||
} | ||
#else | ||
unsigned long host_total_memory() { |
15 changes: 15 additions & 0 deletions
15
databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- storage/innobase/xtrabackup/xbcloud_osenv.sh.orig 2020-08-28 21:02:32 UTC | ||
+++ storage/innobase/xtrabackup/xbcloud_osenv.sh | ||
@@ -1,4 +1,4 @@ | ||
-#!/bin/bash | ||
+#!/bin/sh | ||
|
||
# Copyright (C) 2015 Percona LLC and/or its affiliates. | ||
# This software comes with ABSOLUTELY NO WARRANTY. This is free software, | ||
@@ -105,5 +105,5 @@ fi | ||
|
||
# do it | ||
# shellcheck disable=SC2086,SC2048 | ||
-${XBCLOUD_BIN} $* ${XBCLOUD_OS_ENV} | ||
+${XBCLOUD_BIN} "$@" ${XBCLOUD_OS_ENV} | ||
|
17 changes: 17 additions & 0 deletions
17
databases/xtrabackup81/files/patch-storage_temptable_include_temptable_lock__free__type.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- storage/temptable/include/temptable/lock_free_type.h.orig 2023-10-19 12:05:28 UTC | ||
+++ storage/temptable/include/temptable/lock_free_type.h | ||
@@ -32,6 +32,14 @@ Lock-free type (selection) implementation. */ | ||
#include "my_config.h" | ||
#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 { | ||
|
||
/** Clang has a bug which causes ATOMIC_LLONG_LOCK_FREE to be defined as 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Percona XtraBackup is an open-source hot backup utility for MySQL that | ||
doesn't lock your database during the backup. It can back up data from | ||
InnoDB, XtraDB and MyISAM tables on MySQL/Percona Server/MariaDB | ||
servers, and has many advanced features. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
bin/xbcloud | ||
bin/xbcloud_osenv | ||
bin/xbcrypt | ||
bin/xbstream | ||
bin/xtrabackup | ||
lib/libmysqlservices.a | ||
lib/plugin/component_keyring_file.so | ||
lib/plugin/component_keyring_kms.so | ||
lib/plugin/keyring_file.so | ||
lib/plugin/component_keyring_vault.so |