diff -urN xtrabackup80.orig/Makefile xtrabackup80/Makefile --- xtrabackup80.orig/Makefile 2024-05-01 15:50:22.048595000 +0700 +++ xtrabackup80/Makefile 2024-05-13 19:03:11.547732000 +0700 @@ -14,17 +14,6 @@ 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 @@ -33,10 +22,6 @@ -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 @@ -56,23 +41,49 @@ .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 +# which is broken on i386 with Clang 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 +GCCVER= 13 +CC= ${PREFIX}/bin/gcc${GCCVER} +CXX= ${PREFIX}/bin/g++${GCCVER} +CPP= ${PREFIX}/bin/cpp${GCCVER} +CXXFLAGS+= --std=c++17 -march=i586 +LDFLAGS_i386= -latomic -Wl,-rpath=${PREFIX}/lib/gcc${GCCVER} -Wl,-rpath=${PREFIX}/lib/private +PLIST= ${PKGDIR}/pkg-plist.i386 +USE_LDCONFIG= ${PREFIX}/lib/private -KEEP_EXTRA= lz4 robin-hood-hashing zlib +BUILD_DEPENDS= c++${GCCVER}:lang/gcc${GCCVER} +LIB_DEPENDS= libcurl.so:ftp/curl \ + libev.so:devel/libev \ + libgcrypt.so:security/libgcrypt \ + libgpg-error.so:security/libgpg-error \ + libunwind.so:devel/libunwind -post-patch: -.for d in storage/innobase/xtrabackup/src sql/protobuf - ${REINPLACE_CMD} 's,%%PREFIX%%,${PREFIX},' ${WRKSRC}/${d}/CMakeLists.txt +RUN_DEPENDS= ${PREFIX}/lib/gcc${GCCVER}/libatomic.so.1:lang/gcc${GCCVER} + +.for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD +CMAKE_ARGS+= -DWITH_${component}:STRING=bundled .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 +.else +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 +.for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD +CMAKE_ARGS+= -DWITH_${component}:STRING=system +.endfor + +KEEP_EXTRA= lz4 robin-hood-hashing zlib + pre-configure: .for dir in ${KEEP_EXTRA} @${MV} ${WRKSRC}/extra/${dir} ${WRKDIR} @@ -81,6 +92,16 @@ .for dir in ${KEEP_EXTRA} @${MV} ${WRKDIR}/${dir} ${WRKSRC}/extra .endfor +.endif + +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 post-stage: @${RM} -r ${STAGEDIR}${PREFIX}/docs ${STAGEDIR}${PREFIX}/man diff -urN xtrabackup80.orig/files/patch-cmake_os_FreeBSD.cmake xtrabackup80/files/patch-cmake_os_FreeBSD.cmake --- xtrabackup80.orig/files/patch-cmake_os_FreeBSD.cmake 2024-05-01 15:50:22.049086000 +0700 +++ xtrabackup80/files/patch-cmake_os_FreeBSD.cmake 1970-01-01 07:00:00.000000000 +0700 @@ -1,23 +0,0 @@ ---- cmake/os/FreeBSD.cmake.orig 2020-05-26 05:35:19 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!") - 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 -urN xtrabackup80.orig/pkg-plist.i386 xtrabackup80/pkg-plist.i386 --- xtrabackup80.orig/pkg-plist.i386 1970-01-01 07:00:00.000000000 +0700 +++ xtrabackup80/pkg-plist.i386 2024-05-13 18:32:17.014168000 +0700 @@ -0,0 +1,55 @@ +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/keyring_vault.so +lib/private/icudt73l/brkitr/burmesedict.dict +lib/private/icudt73l/brkitr/char.brk +lib/private/icudt73l/brkitr/cjdict.dict +lib/private/icudt73l/brkitr/de.res +lib/private/icudt73l/brkitr/el.res +lib/private/icudt73l/brkitr/en.res +lib/private/icudt73l/brkitr/en_US.res +lib/private/icudt73l/brkitr/en_US_POSIX.res +lib/private/icudt73l/brkitr/es.res +lib/private/icudt73l/brkitr/fi.res +lib/private/icudt73l/brkitr/fr.res +lib/private/icudt73l/brkitr/it.res +lib/private/icudt73l/brkitr/ja.res +lib/private/icudt73l/brkitr/khmerdict.dict +lib/private/icudt73l/brkitr/ko.res +lib/private/icudt73l/brkitr/laodict.dict +lib/private/icudt73l/brkitr/line.brk +lib/private/icudt73l/brkitr/line_cj.brk +lib/private/icudt73l/brkitr/line_loose.brk +lib/private/icudt73l/brkitr/line_loose_cj.brk +lib/private/icudt73l/brkitr/line_loose_phrase_cj.brk +lib/private/icudt73l/brkitr/line_normal.brk +lib/private/icudt73l/brkitr/line_normal_cj.brk +lib/private/icudt73l/brkitr/line_normal_phrase_cj.brk +lib/private/icudt73l/brkitr/line_phrase_cj.brk +lib/private/icudt73l/brkitr/pt.res +lib/private/icudt73l/brkitr/res_index.res +lib/private/icudt73l/brkitr/root.res +lib/private/icudt73l/brkitr/ru.res +lib/private/icudt73l/brkitr/sent.brk +lib/private/icudt73l/brkitr/sent_el.brk +lib/private/icudt73l/brkitr/sv.res +lib/private/icudt73l/brkitr/thaidict.dict +lib/private/icudt73l/brkitr/title.brk +lib/private/icudt73l/brkitr/word.brk +lib/private/icudt73l/brkitr/word_POSIX.brk +lib/private/icudt73l/brkitr/word_fi_sv.brk +lib/private/icudt73l/brkitr/zh.res +lib/private/icudt73l/brkitr/zh_Hant.res +lib/private/icudt73l/cnvalias.icu +lib/private/icudt73l/uemoji.icu +lib/private/icudt73l/ulayout.icu +lib/private/icudt73l/unames.icu +lib/private/libprotobuf-lite.so.3.19.4 +lib/private/libprotobuf.so.3.19.4