summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--databases/Makefile1
-rw-r--r--databases/xtrabackup8/Makefile50
-rw-r--r--databases/xtrabackup8/distinfo3
-rw-r--r--databases/xtrabackup8/files/patch-cmake-install_layout.cmake11
-rw-r--r--databases/xtrabackup8/files/patch-cmake_os_FreeBSD.cmake23
-rw-r--r--databases/xtrabackup8/files/patch-sql_binlog.cc24
-rw-r--r--databases/xtrabackup8/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh15
-rw-r--r--databases/xtrabackup8/pkg-descr6
-rw-r--r--databases/xtrabackup8/pkg-plist47
9 files changed, 180 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index 5f257024c7bc..70a3d1810ba1 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -1033,6 +1033,7 @@
SUBDIR += xapian-core12
SUBDIR += xrootd
SUBDIR += xtrabackup
+ SUBDIR += xtrabackup8
SUBDIR += zabbix3-libzbxpgsql
.include <bsd.port.subdir.mk>
diff --git a/databases/xtrabackup8/Makefile b/databases/xtrabackup8/Makefile
new file mode 100644
index 000000000000..c35617f953c4
--- /dev/null
+++ b/databases/xtrabackup8/Makefile
@@ -0,0 +1,50 @@
+# Created by: Alex Samorukov <samm@freebsd.org>
+# $FreeBSD$
+
+PORTNAME= xtrabackup
+PORTVERSION= 8.0.14
+CATEGORIES= databases
+MASTER_SITES= https://www.percona.com/downloads/Percona-XtraBackup-${PORTVERSION:R}/Percona-XtraBackup-${PORTVERSION}/source/tarball/ \
+ https://github.com/percona/percona-xtrabackup/archive/
+PKGNAMESUFFIX= 8
+DISTNAME= percona-${PORTNAME}-${PORTVERSION}
+
+MAINTAINER= eugene@zhegan.in
+COMMENT= Open-source backup tool for InnoDB and XtraDB
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= xxd:editors/vim-console \
+ boost-libs>=1.72.0:devel/boost-libs \
+ 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 \
+ 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
+.for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD
+CMAKE_ARGS+= -DWITH_${component}:STRING=system
+.endfor
+
+post-patch:
+# Delete bundled components so we won't accidentally use them, except LZ4
+# which cannot be removed just yet
+ @${MV} ${WRKSRC}/extra/lz4 ${WRKSRC}
+ @${RM} -r ${WRKSRC}/extra/*
+ @${MV} ${WRKSRC}/lz4 ${WRKSRC}/extra
+
+post-stage:
+ @${RM} -r ${STAGEDIR}${PREFIX}/docs \
+ ${STAGEDIR}${PREFIX}/lib/plugin/debug
+
+.include <bsd.port.mk>
diff --git a/databases/xtrabackup8/distinfo b/databases/xtrabackup8/distinfo
new file mode 100644
index 000000000000..17df898cd990
--- /dev/null
+++ b/databases/xtrabackup8/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1598684487
+SHA256 (percona-xtrabackup-8.0.14.tar.gz) = db8d6d2c6a6b016bf24b4942582ebdbd55c09253ccc78daa6911217bd5a73d5d
+SIZE (percona-xtrabackup-8.0.14.tar.gz) = 285621091
diff --git a/databases/xtrabackup8/files/patch-cmake-install_layout.cmake b/databases/xtrabackup8/files/patch-cmake-install_layout.cmake
new file mode 100644
index 000000000000..e823abeffe31
--- /dev/null
+++ b/databases/xtrabackup8/files/patch-cmake-install_layout.cmake
@@ -0,0 +1,11 @@
+--- cmake/install_layout.cmake.orig 2020-04-10 19:45:19 UTC
++++ cmake/install_layout.cmake
+@@ -160,7 +160,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/xtrabackup8/files/patch-cmake_os_FreeBSD.cmake b/databases/xtrabackup8/files/patch-cmake_os_FreeBSD.cmake
new file mode 100644
index 000000000000..624f462e7542
--- /dev/null
+++ b/databases/xtrabackup8/files/patch-cmake_os_FreeBSD.cmake
@@ -0,0 +1,23 @@
+--- 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 --git a/databases/xtrabackup8/files/patch-sql_binlog.cc b/databases/xtrabackup8/files/patch-sql_binlog.cc
new file mode 100644
index 000000000000..2bae3d050d5a
--- /dev/null
+++ b/databases/xtrabackup8/files/patch-sql_binlog.cc
@@ -0,0 +1,24 @@
+--- sql/binlog.cc.orig 2020-08-28 21:02:32 UTC
++++ sql/binlog.cc
+@@ -9163,8 +9163,8 @@ void MYSQL_BIN_LOG::report_missing_purged_gtids(
+
+ char *missing_gtids = NULL;
+ char *slave_executed_gtids = NULL;
+- gtid_missing.to_string(&missing_gtids, NULL);
+- slave_executed_gtid_set->to_string(&slave_executed_gtids, NULL);
++ gtid_missing.to_string(&missing_gtids, false);
++ slave_executed_gtid_set->to_string(&slave_executed_gtids, false);
+
+ /*
+ Log the information about the missing purged GTIDs to the error log.
+@@ -9217,8 +9217,8 @@ void MYSQL_BIN_LOG::report_missing_gtids(
+ Gtid_set gtid_missing(slave_executed_gtid_set->get_sid_map());
+ gtid_missing.add_gtid_set(slave_executed_gtid_set);
+ gtid_missing.remove_gtid_set(previous_gtid_set);
+- gtid_missing.to_string(&missing_gtids, NULL);
+- slave_executed_gtid_set->to_string(&slave_executed_gtids, NULL);
++ gtid_missing.to_string(&missing_gtids, false);
++ slave_executed_gtid_set->to_string(&slave_executed_gtids, false);
+
+ String tmp_uuid;
+
diff --git a/databases/xtrabackup8/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh b/databases/xtrabackup8/files/patch-storage_innobase_xtrabackup_xbcloud__osenv.sh
new file mode 100644
index 000000000000..37b1e45afc66
--- /dev/null
+++ b/databases/xtrabackup8/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/xtrabackup8/pkg-descr b/databases/xtrabackup8/pkg-descr
new file mode 100644
index 000000000000..f3724e711112
--- /dev/null
+++ b/databases/xtrabackup8/pkg-descr
@@ -0,0 +1,6 @@
+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.
+
+WWW: https://www.percona.com/doc/percona-xtrabackup/
diff --git a/databases/xtrabackup8/pkg-plist b/databases/xtrabackup8/pkg-plist
new file mode 100644
index 000000000000..88c2ddc371ba
--- /dev/null
+++ b/databases/xtrabackup8/pkg-plist
@@ -0,0 +1,47 @@
+bin/xbcloud
+bin/xbcloud_osenv
+bin/xbcrypt
+bin/xbstream
+bin/xtrabackup
+lib/libmysqlservices.a
+lib/plugin/keyring_file.so
+lib/plugin/keyring_vault.so
+man/man1/comp_err.1.gz
+man/man1/ibd2sdi.1.gz
+man/man1/innochecksum.1.gz
+man/man1/lz4_decompress.1.gz
+man/man1/my_print_defaults.1.gz
+man/man1/myisam_ftdump.1.gz
+man/man1/myisamchk.1.gz
+man/man1/myisamlog.1.gz
+man/man1/myisampack.1.gz
+man/man1/mysql.1.gz
+man/man1/mysql.server.1.gz
+man/man1/mysql_config.1.gz
+man/man1/mysql_config_editor.1.gz
+man/man1/mysql_secure_installation.1.gz
+man/man1/mysql_ssl_rsa_setup.1.gz
+man/man1/mysql_tzinfo_to_sql.1.gz
+man/man1/mysql_upgrade.1.gz
+man/man1/mysqladmin.1.gz
+man/man1/mysqlbinlog.1.gz
+man/man1/mysqlcheck.1.gz
+man/man1/mysqld_multi.1.gz
+man/man1/mysqld_safe.1.gz
+man/man1/mysqldump.1.gz
+man/man1/mysqldumpslow.1.gz
+man/man1/mysqlimport.1.gz
+man/man1/mysqlman.1.gz
+man/man1/mysqlpump.1.gz
+man/man1/mysqlrouter.1.gz
+man/man1/mysqlrouter_keyring.1.gz
+man/man1/mysqlrouter_passwd.1.gz
+man/man1/mysqlrouter_plugin_info.1.gz
+man/man1/mysqlshow.1.gz
+man/man1/mysqlslap.1.gz
+man/man1/perror.1.gz
+man/man1/zlib_decompress.1.gz
+man/man8/mysqld.8.gz
+man/man8/ndb_mgmd.8.gz
+man/man8/ndbd.8.gz
+man/man8/ndbmtd.8.gz