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 1 bottle do sha256 "5c79a9667f73328988698067ccd98044c65b047d6334e4ecfbf6ea1f218a2494" => :mojave sha256 "9e30e4ca82c4e36117a083f59f8326d7e3b5ce8b9f962ac3f036b8de24d50163" => :high_sierra sha256 "872f44972f4f7701cc22730987eb5b81efb7691160ee7e4989fbcc25988ea1ae" => :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" conflicts_with "percona-server", :because => "both install lib/plugin/keyring_vault.so" 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_MANDIR=share/man -DWITH_MAN_PAGES=ON -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" rm_rf prefix/"xtrabackup-test" # Remove unnecessary files # remove conflicting libraries that are already installed by mysql rm lib/"libmysqlservices.a" rm lib/"plugin/keyring_file.so" 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