require 'formula' class Mariadb < Formula homepage 'http://mariadb.org/' url 'http://ftp.osuosl.org/pub/mariadb/mariadb-5.3.8/kvm-tarbake-jaunty-x86/mariadb-5.3.8.tar.gz' sha1 '1a6cc5e1c0aedf6aae61cd55f8d75fce11fa3115' depends_on 'readline' option :universal option 'with-tests', 'Keep test when installing' option 'with-bench', 'Keep benchmark app when installing' option 'client-only', 'Install only client tools' conflicts_with 'mysql', :because => "mariadb and mysql install the same binaries." conflicts_with 'percona-server', :because => "mariadb and percona-server install the same binaries." fails_with :clang do build 421 end def install # Build without compiler or CPU specific optimization flags to facilitate # compilation of gems and other software that queries `mysql-config`. ENV.minimal_optimization ENV.append 'CXXFLAGS', '-fno-omit-frame-pointer -felide-constructors' # Make universal for bindings to universal applications ENV.universal_binary if build.universal? configure_args = [ "--without-docs", "--without-debug", "--disable-dependency-tracking", "--prefix=#{prefix}", "--localstatedir=#{var}/mysql", "--sysconfdir=#{etc}", "--with-extra-charsets=complex", "--enable-assembler", "--enable-thread-safe-client", "--with-big-tables", "--with-plugin-aria", "--with-aria-tmp-tables", "--without-plugin-innodb_plugin", "--with-mysqld-ldflags=-static", "--with-client-ldflags=-static", "--with-plugins=max-no-ndb", "--with-embedded-server", "--with-libevent", "--with-readline", ] configure_args << "--without-server" if build.include? 'client-only' system "./configure", *configure_args system "make install" bin.install_symlink "#{libexec}/mysqld" bin.install_symlink "#{share}/mysql/mysql.server" (prefix+'mysql-test').rmtree unless build.include? 'with-tests' # save 121MB! (prefix+'sql-bench').rmtree unless build.include? 'with-bench' end def caveats; <<-EOS.undent Set up databases with: unset TMPDIR mysql_install_db If this is your first install, automatically load on login with: cp #{plist_path} ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/#{plist_path.basename} If this is an upgrade and you already have the #{plist_path.basename} loaded: launchctl unload -w ~/Library/LaunchAgents/#{plist_path.basename} cp #{plist_path} ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/#{plist_path.basename} Note on upgrading: We overwrite any existing #{plist_path.basename} in ~/Library/LaunchAgents if we are upgrading because previous versions of this brew created the plist with a version specific program argument. Or start manually with: mysql.server start EOS end def startup_plist; <<-EOPLIST.undent KeepAlive Label #{plist_name} Program #{HOMEBREW_PREFIX}/bin/mysqld_safe RunAtLoad UserName #{`whoami`.chomp} WorkingDirectory #{var} EOPLIST end end