homebrew-core/Formula/percona-xtrabackup.rb
2019-11-16 10:51:00 +01:00

86 lines
2.9 KiB
Ruby

class PerconaXtrabackup < Formula
desc "Open source hot backup tool for InnoDB and XtraDB databases"
homepage "https://www.percona.com/software/mysql-database/percona-xtrabackup"
url "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.14/source/tarball/percona-xtrabackup-2.4.14.tar.gz"
sha256 "4dffa6986aef358675b318b3b9f4a9b8df48e8fc4987ad2469bba1b186b47662"
revision 2
bottle do
sha256 "3de1cc8089d273eaf169764138c669f8a87f5a74c585f8f259d0e49c74023bba" => :catalina
sha256 "c23450a2570d5cfce83aa24bdcb7d151261bd7cde183a570681a0b6d7fcdf5d6" => :mojave
sha256 "fcbbc4998956a5aee3f2ae098e913be5b9a0f732e534f8d21f5b9b1253ef21b8" => :high_sierra
end
depends_on "cmake" => :build
depends_on "sphinx-doc" => :build
depends_on "libev"
depends_on "libgcrypt"
depends_on "mysql-client"
depends_on "openssl@1.1"
resource "DBI" do
url "https://cpan.metacpan.org/authors/id/T/TI/TIMB/DBI-1.641.tar.gz"
sha256 "5509e532cdd0e3d91eda550578deaac29e2f008a12b64576e8c261bb92e8c2c1"
end
resource "DBD::mysql" do
url "https://cpan.metacpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.046.tar.gz"
sha256 "6165652ec959d05b97f5413fa3dff014b78a44cf6de21ae87283b28378daf1f7"
end
resource "boost" do
url "https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2"
sha256 "727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca"
end
def install
cmake_args = %w[
-DBUILD_CONFIG=xtrabackup_release
-DCOMPILATION_COMMENT=Homebrew
-DINSTALL_PLUGINDIR=lib/percona-xtrabackup/plugin
-DINSTALL_MANDIR=share/man
-DWITH_MAN_PAGES=ON
-DINSTALL_MYSQLTESTDIR=
-DCMAKE_CXX_FLAGS="-DBOOST_NO_CXX11_HDR_ARRAY"
]
# macOS has this value empty by default.
# See https://bugs.python.org/issue18378#msg215215
ENV["LC_ALL"] = "en_US.UTF-8"
# 1.59.0 specifically required. Detailed in cmake/boost.cmake
(buildpath/"boost_1_59_0").install resource("boost")
cmake_args << "-DWITH_BOOST=#{buildpath}/boost_1_59_0"
cmake_args.concat std_cmake_args
system "cmake", *cmake_args
system "make"
system "make", "install"
share.install "share/man"
# remove conflicting library that is already installed by mysql
rm lib/"libmysqlservices.a"
ENV.prepend_create_path "PERL5LIB", libexec/"lib/perl5"
# In Mojave, this is not part of the system Perl anymore
if MacOS.version >= :mojave
resource("DBI").stage do
system "perl", "Makefile.PL", "INSTALL_BASE=#{libexec}"
system "make", "install"
end
end
resource("DBD::mysql").stage do
system "perl", "Makefile.PL", "INSTALL_BASE=#{libexec}"
system "make", "install"
end
bin.env_script_all_files(libexec/"bin", :PERL5LIB => ENV["PERL5LIB"])
end
test do
assert_match version.to_s, shell_output("#{bin}/xtrabackup --version 2>&1")
end
end