From nobody Tue Apr 2 19:57:28 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4V8JZJ5D6Gz5Ff23; Tue, 2 Apr 2024 19:57:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V8JZJ4z3wz50Xs; Tue, 2 Apr 2024 19:57:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712087848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+C0ZXVAUefRbFwkAHl7tVRFAXfmFtlUM6oPGHd/eodA=; b=aB1LuNzpIexPLpaLgHiNbdPstJKToSnzErDDoRL4853jejrLY1jJZ3D2Hi1Rl8ajKplQKT Rj5Uyo2nixd5MMvDX+PcKsdB04nNTVzLnyx2i2mXZj5l68hWixBH5d5uJfrQjG+9L7OHaV jc251XFk6II9nhsgUxqAc398SmhCTj7SHVge2oVS+jROvTI6KYxEXXakbHiRaLxlmn5UJJ ACVgRSUC1gfkiVgj+XIPNU1deTL2YUBbntmHr/5E6ry3PkL/G9l+u0yPan+CvDLG4A9+W6 8fpR0jWwbjDYzMDaPBgq+SL/DYrlypLjvMfot9OoWTjDqJUy1gRFsqrCGzQo2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1712087848; a=rsa-sha256; cv=none; b=jM+D7PEOyCxrDHkdWHfBj6ouyMNPh8jGGSVWdIhVAmYNnRNG8sVXNdRym9g2TTWF9mL6RV BGvpZ9q9JsdbahrXO5lKWky9jQUNxXq5XtW/0qHHhTi4lzonhr92+aoOGi88+MOYDB/dl0 V6xHuiYX4Gfo66OfxcSepHSx0heEzn34lBXOf7axOInXCwrPNRk/2yDSTHbN0IVIW8vkkT uRA6COROywmKXSeiC5ycxhBXBwPQCRwQwbAwXXu62/MVi+Iw75/z2JgeLyUavSDh9Xx7wb 0LyBLVSvm4QjEBpX0QepBTOiRcU+YsRHwAn02if+pfl5TkRPSTiywMKbZP7jcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712087848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+C0ZXVAUefRbFwkAHl7tVRFAXfmFtlUM6oPGHd/eodA=; b=VMAAv8rLK4FVoM36wBz9poAzJCOqZKSB+SDXBUo6QP9Gd7iJ4k4DuDK4E2mc+q+xs9GM95 4DFx06aQPlbsM2FXWUEj/zfIJvqoHgK2CSoCAmMshbpcPoEGgLIn9TsdrhASkqwAMrJRrg dMYZUO1NG+3/UPjGY4H2XRfWwklfN68QKY3GKI687hUBlaLqHR4aGHA754uq7v+/ey/wPF WDFJJnUL/AZatCPG5wGePN9HUsG+I8uUPFDuHyZJxu4BWkF/ZQWlnIAxo2l9irYuuhhY+5 VePpKOZbten8DD3ZjAfWT9i2D7jYpwPBNj2BhdfTEOWZDpCP+m6Q7ifrmNRezg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4V8JZJ4ZD9z12xW; Tue, 2 Apr 2024 19:57:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 432JvSLd030352; Tue, 2 Apr 2024 19:57:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 432JvS9i030349; Tue, 2 Apr 2024 19:57:28 GMT (envelope-from git) Date: Tue, 2 Apr 2024 19:57:28 GMT Message-Id: <202404021957.432JvS9i030349@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Oleksii Samorukov Subject: git: e8017b636faf - main - databases/xtrabackup81: New port: xtrabackup 8.1 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: samm X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e8017b636faf34ffaac9f68ad2cfc31b3cf5390e Auto-Submitted: auto-generated The branch main has been updated by samm: URL: https://cgit.FreeBSD.org/ports/commit/?id=e8017b636faf34ffaac9f68ad2cfc31b3cf5390e commit e8017b636faf34ffaac9f68ad2cfc31b3cf5390e Author: Oleksii Samorukov AuthorDate: 2024-04-02 19:50:34 +0000 Commit: Oleksii Samorukov CommitDate: 2024-04-02 19:52:32 +0000 databases/xtrabackup81: New port: xtrabackup 8.1 setting maintainer email to Eugene as aligned in the email conversation. --- databases/Makefile | 1 + databases/xtrabackup81/Makefile | 89 ++++++++++++++++++++++ databases/xtrabackup81/distinfo | 5 ++ databases/xtrabackup81/files/patch-CMakeLists.txt | 22 ++++++ .../files/patch-cmake-install_layout.cmake | 11 +++ .../files/patch-cmake_os_FreeBSD.cmake | 23 ++++++ databases/xtrabackup81/files/patch-file_utils | 20 +++++ databases/xtrabackup81/files/patch-llvm-15 | 28 +++++++ databases/xtrabackup81/files/patch-procps | 28 +++++++ databases/xtrabackup81/files/patch-protobuf | 10 +++ .../patch-storage_innobase_xtrabackup_src_utils.cc | 59 ++++++++++++++ ...h-storage_innobase_xtrabackup_xbcloud__osenv.sh | 15 ++++ ..._temptable_include_temptable_lock__free__type.h | 17 +++++ databases/xtrabackup81/pkg-descr | 4 + databases/xtrabackup81/pkg-plist | 10 +++ 15 files changed, 342 insertions(+) diff --git a/databases/Makefile b/databases/Makefile index f65e1cf2175b..02d38e240ffe 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -1073,6 +1073,7 @@ SUBDIR += xrootd SUBDIR += xtrabackup SUBDIR += xtrabackup80 + SUBDIR += xtrabackup81 SUBDIR += zodb .include diff --git a/databases/xtrabackup81/Makefile b/databases/xtrabackup81/Makefile new file mode 100644 index 000000000000..75165fccc89c --- /dev/null +++ b/databases/xtrabackup81/Makefile @@ -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 + +# 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 diff --git a/databases/xtrabackup81/distinfo b/databases/xtrabackup81/distinfo new file mode 100644 index 000000000000..aa6d91e59545 --- /dev/null +++ b/databases/xtrabackup81/distinfo @@ -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 diff --git a/databases/xtrabackup81/files/patch-CMakeLists.txt b/databases/xtrabackup81/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..8152347c2ee0 --- /dev/null +++ b/databases/xtrabackup81/files/patch-CMakeLists.txt @@ -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) diff --git a/databases/xtrabackup81/files/patch-cmake-install_layout.cmake b/databases/xtrabackup81/files/patch-cmake-install_layout.cmake new file mode 100644 index 000000000000..f5916ece2f0b --- /dev/null +++ b/databases/xtrabackup81/files/patch-cmake-install_layout.cmake @@ -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") diff --git a/databases/xtrabackup81/files/patch-cmake_os_FreeBSD.cmake b/databases/xtrabackup81/files/patch-cmake_os_FreeBSD.cmake new file mode 100644 index 000000000000..55947a14f6c3 --- /dev/null +++ b/databases/xtrabackup81/files/patch-cmake_os_FreeBSD.cmake @@ -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() diff --git a/databases/xtrabackup81/files/patch-file_utils b/databases/xtrabackup81/files/patch-file_utils new file mode 100644 index 000000000000..a23aa72136d4 --- /dev/null +++ b/databases/xtrabackup81/files/patch-file_utils @@ -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 +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined (__FreeBSD__) + #include + #else + #include +@@ -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) { diff --git a/databases/xtrabackup81/files/patch-llvm-15 b/databases/xtrabackup81/files/patch-llvm-15 new file mode 100644 index 000000000000..0017d73b5902 --- /dev/null +++ b/databases/xtrabackup81/files/patch-llvm-15 @@ -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++) { diff --git a/databases/xtrabackup81/files/patch-procps b/databases/xtrabackup81/files/patch-procps new file mode 100644 index 000000000000..733821dd7c65 --- /dev/null +++ b/databases/xtrabackup81/files/patch-procps @@ -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) diff --git a/databases/xtrabackup81/files/patch-protobuf b/databases/xtrabackup81/files/patch-protobuf new file mode 100644 index 000000000000..f1bd482d944a --- /dev/null +++ b/databases/xtrabackup81/files/patch-protobuf @@ -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) + diff --git a/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_src_utils.cc b/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_src_utils.cc new file mode 100644 index 000000000000..dbc84f05a7e1 --- /dev/null +++ b/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_src_utils.cc @@ -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 ++#endif ++#if defined(__APPLE__) || defined(__FreeBSD__) + #include + #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() { diff --git a/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh b/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh new file mode 100644 index 000000000000..37b1e45afc66 --- /dev/null +++ b/databases/xtrabackup81/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh @@ -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} + diff --git a/databases/xtrabackup81/files/patch-storage_temptable_include_temptable_lock__free__type.h b/databases/xtrabackup81/files/patch-storage_temptable_include_temptable_lock__free__type.h new file mode 100644 index 000000000000..f6664e3afa74 --- /dev/null +++ b/databases/xtrabackup81/files/patch-storage_temptable_include_temptable_lock__free__type.h @@ -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 diff --git a/databases/xtrabackup81/pkg-descr b/databases/xtrabackup81/pkg-descr new file mode 100644 index 000000000000..da1655f57769 --- /dev/null +++ b/databases/xtrabackup81/pkg-descr @@ -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. diff --git a/databases/xtrabackup81/pkg-plist b/databases/xtrabackup81/pkg-plist new file mode 100644 index 000000000000..40cde5419101 --- /dev/null +++ b/databases/xtrabackup81/pkg-plist @@ -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