Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

mariadb 10.0.17 #37263

Closed
wants to merge 4 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
103 changes: 68 additions & 35 deletions Library/Formula/mariadb.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
require 'formula'

class Mariadb < Formula
homepage 'http://mariadb.org/'
url "http://ftp.osuosl.org/pub/mariadb/mariadb-10.0.16/source/mariadb-10.0.16.tar.gz"
sha1 "5164537bf222657ab5e3f47315fae96522285af1"
homepage "https://mariadb.org/"
url "http://ftp.osuosl.org/pub/mariadb/mariadb-10.0.17/source/mariadb-10.0.17.tar.gz"
sha1 "240253b3ee21dea5e2f501778e8ee72b32a5d052"

bottle do
sha1 "5098b447222fbcb46069b3c1f56f17730a2471c8" => :yosemite
Expand All @@ -12,27 +10,29 @@ class Mariadb < Formula
end

devel do
url "http://ftp.osuosl.org/pub/mariadb/mariadb-10.1.2/source/mariadb-10.1.2.tar.gz"
sha1 "56b035f31ec89f36555b7e7972efc5e5c4157f23"
url "http://ftp.osuosl.org/pub/mariadb/mariadb-10.1.3/source/mariadb-10.1.3.tar.gz"
sha1 "95a4e2640b40e79c58f22662ff76eb3f76f892e9"
end

depends_on 'cmake' => :build
depends_on 'pidof' unless MacOS.version >= :mountain_lion
depends_on "cmake" => :build
depends_on "pidof" unless MacOS.version >= :mountain_lion
depends_on "openssl"

option :universal
option 'with-tests', 'Keep test when installing'
option 'with-bench', 'Keep benchmark app when installing'
option 'with-embedded', 'Build the embedded server'
option 'with-libedit', 'Compile with editline wrapper instead of readline'
option 'with-archive-storage-engine', 'Compile with the ARCHIVE storage engine enabled'
option 'with-blackhole-storage-engine', 'Compile with the BLACKHOLE storage engine enabled'
option 'enable-local-infile', 'Build with local infile loading support'

conflicts_with 'mysql', 'mysql-cluster', 'percona-server',
option "with-tests", "Keep test when installing"
option "with-bench", "Keep benchmark app when installing"
option "with-embedded", "Build the embedded server"
option "with-libedit", "Compile with editline wrapper instead of readline"
option "with-archive-storage-engine", "Compile with the ARCHIVE storage engine enabled"
option "with-blackhole-storage-engine", "Compile with the BLACKHOLE storage engine enabled"
option "with-local-infile", "Build with local infile loading support"

deprecated_option "enable-local-infile" => "with-local-infile"

conflicts_with "mysql", "mysql-cluster", "percona-server",
:because => "mariadb, mysql, and percona install the same binaries."
conflicts_with 'mysql-connector-c',
:because => 'both install MySQL client libraries'
conflicts_with "mysql-connector-c",
:because => "both install MySQL client libraries"

def install
# Don't hard-code the libtool path. See:
Expand Down Expand Up @@ -70,19 +70,25 @@ def install
-DDEFAULT_COLLATION=utf8_general_ci
-DINSTALL_SYSCONFDIR=#{etc}
-DCOMPILATION_COMMENT=Homebrew
-DWITHOUT_TOKUDB=1
]

args << "-DWITH_UNIT_TESTS=OFF" if build.without? 'tests'
# disable TokuDB, which is currently not supported on Mac OS X
if build.stable?
args << "-DWITHOUT_TOKUDB=1"
else
args << "-DPLUGIN_TOKUDB=NO"
end

args << "-DWITH_UNIT_TESTS=OFF" if build.without? "tests"

# Build the embedded server
args << "-DWITH_EMBEDDED_SERVER=ON" if build.with? 'embedded'
args << "-DWITH_EMBEDDED_SERVER=ON" if build.with? "embedded"

# Compile with readline unless libedit is explicitly chosen
args << "-DWITH_READLINE=yes" if build.without? 'libedit'
args << "-DWITH_READLINE=yes" if build.without? "libedit"

# Compile with ARCHIVE engine enabled if chosen
if build.with? 'archive-storage-engine'
if build.with? "archive-storage-engine"
if build.stable?
args << "-DWITH_ARCHIVE_STORAGE_ENGINE=1"
else
Expand All @@ -91,7 +97,7 @@ def install
end

# Compile with BLACKHOLE engine enabled if chosen
if build.with? 'blackhole-storage-engine'
if build.with? "blackhole-storage-engine"
if build.stable?
args << "-DWITH_BLACKHOLE_STORAGE_ENGINE=1"
else
Expand All @@ -106,24 +112,24 @@ def install
end

# Build with local infile loading support
args << "-DENABLED_LOCAL_INFILE=1" if build.include? 'enable-local-infile'
args << "-DENABLED_LOCAL_INFILE=1" if build.with? "local-infile"

system "cmake", *args
system "make"
system "make install"
system "make", "install"

# Fix my.cnf to point to #{etc} instead of /etc
(etc+'my.cnf.d').mkpath
(etc+"my.cnf.d").mkpath
inreplace "#{etc}/my.cnf" do |s|
s.gsub!("!includedir /etc/my.cnf.d", "!includedir #{etc}/my.cnf.d")
end

# Don't create databases inside of the prefix!
# See: https://github.com/Homebrew/homebrew/issues/4975
rm_rf prefix+'data'
rm_rf prefix+"data"

(prefix+'mysql-test').rmtree if build.without? 'tests' # save 121MB!
(prefix+'sql-bench').rmtree if build.without? 'bench'
(prefix+"mysql-test").rmtree if build.without? "tests" # save 121MB!
(prefix+"sql-bench").rmtree if build.without? "bench"

# Link the setup script into bin
bin.install_symlink prefix/"scripts/mysql_install_db"
Expand All @@ -132,18 +138,35 @@ def install
inreplace "#{prefix}/support-files/mysql.server" do |s|
s.gsub!(/^(PATH=".*)(")/, "\\1:#{HOMEBREW_PREFIX}/bin\\2")
# pidof can be replaced with pgrep from proctools on Mountain Lion
s.gsub!(/pidof/, 'pgrep') if MacOS.version >= :mountain_lion
s.gsub!(/pidof/, "pgrep") if MacOS.version >= :mountain_lion
end

bin.install_symlink prefix/"support-files/mysql.server"

if build.devel?
# Move sourced non-executable out of bin into libexec
libexec.mkpath
libexec.install "#{bin}/wsrep_sst_common"
# Fix up references to wsrep_sst_common
%W[
wsrep_sst_mysqldump
wsrep_sst_rsync
wsrep_sst_xtrabackup
wsrep_sst_xtrabackup-v2
].each do |f|
inreplace "#{bin}/#{f}" do |s|
s.gsub!("$(dirname $0)/wsrep_sst_common", "#{libexec}/wsrep_sst_common")
end
end
end
end

def post_install
# Make sure the var/mysql directory exists
(var+"mysql").mkpath
unless File.exist? "#{var}/mysql/mysql/user.frm"
ENV['TMPDIR'] = nil
system "#{bin}/mysql_install_db", '--verbose', "--user=#{ENV['USER']}",
ENV["TMPDIR"] = nil
system "#{bin}/mysql_install_db", "--verbose", "--user=#{ENV["USER"]}",
"--basedir=#{prefix}", "--datadir=#{var}/mysql", "--tmpdir=/tmp"
end
end
Expand Down Expand Up @@ -182,4 +205,14 @@ def plist; <<-EOS.undent
</plist>
EOS
end

test do
if build.with? "tests"
(prefix+"mysql-test").cd do
system "./mysql-test-run.pl", "status"
end
else
system "mysqld", "--version"
end
end
end