require 'brewkit' class Mysql DATA} end def install ENV['CXXFLAGS'] = ENV['CXXFLAGS'].gsub "-fomit-frame-pointer", "" ENV['CXXFLAGS'] += " -fno-omit-frame-pointer -felide-constructors" configure_args = [ "--without-bench", "--without-docs", "--without-debug", "--disable-dependency-tracking", "--prefix=#{prefix}", "--localstatedir=#{var}", "--with-plugins=innobase,myisam", "--with-extra-charsets=complex", "--with-plugins=innobase,myisam", "--with-ssl", "--enable-assembler", "--enable-thread-safe-client", "--enable-local-infile", "--enable-shared"] configure_args << "--without-server" if ARGV.include? '--client-only' system "./configure", *configure_args system "make install" # Why does sql-bench still get built w/ above options? (prefix+'sql-bench').rmtree unless ARGV.include? '--with-bench' # save 66MB! (prefix+'mysql-test').rmtree unless ARGV.include? '--with-tests' var.mkpath (prefix+'com.mysql.mysqld.plist').write startup_plist end def caveats puts "Set up databases with `mysql_install_db`" puts "Automatically load on login with " puts " `launchctl load -w #{prefix}/com.mysql.mysqld.plist`" end def startup_plist return <<-EOPLIST KeepAlive Label com.mysql.mysqld Program #{bin}/mysqld_safe RunAtLoad UserName #{`whoami`} WorkingDirectory /usr/local EOPLIST end end __END__ --- old/scripts/mysqld_safe.sh 2009-09-02 04:10:39.000000000 -0400 +++ new/scripts/mysqld_safe.sh 2009-09-02 04:52:55.000000000 -0400 @@ -383,7 +383,7 @@ fi USER_OPTION="" -if test -w / -o "$USER" = "root" +if test -w /sbin -o "$USER" = "root" then if test "$user" != "root" -o $SET_USER = 1 then