diff --git a/Formula/postgresql@9.4.rb b/Formula/postgresql@9.4.rb new file mode 100644 index 00000000000..bb13c6e828b --- /dev/null +++ b/Formula/postgresql@9.4.rb @@ -0,0 +1,125 @@ +class PostgresqlAT94 < Formula + desc "Object-relational database system" + homepage "https://www.postgresql.org/" + url "https://ftp.postgresql.org/pub/source/v9.4.11/postgresql-9.4.11.tar.bz2" + sha256 "e3eb51d045c180b03d2de1f0c3af9356e10be49448e966ca01dfc2c6d1cc9d23" + + keg_only :versioned_formula + + option "without-perl", "Build without Perl support" + option "without-tcl", "Build without Tcl support" + option "with-dtrace", "Build with DTrace support" + + depends_on "openssl" + depends_on "readline" + depends_on "libxml2" if MacOS.version <= :leopard # Leopard libxml is too old + depends_on :python => :optional + + fails_with :clang do + build 211 + cause "Miscompilation resulting in segfault on queries" + end + + def install + ENV.prepend "LDFLAGS", "-L#{Formula["openssl"].opt_lib} -L#{Formula["readline"].opt_lib}" + ENV.prepend "CPPFLAGS", "-I#{Formula["openssl"].opt_include} -I#{Formula["readline"].opt_include}" + ENV.append_to_cflags "-D_XOPEN_SOURCE" + + args = %W[ + --disable-debug + --prefix=#{prefix} + --datadir=#{pkgshare} + --docdir=#{doc} + --enable-thread-safety + --with-bonjour + --with-gssapi + --with-ldap + --with-openssl + --with-pam + --with-libxml + --with-libxslt + ] + + args << "--with-perl" if build.with? "perl" + + args << "--with-python" if build.with? "python" + + # The CLT is required to build tcl support on 10.7 and 10.8 because tclConfig.sh is not part of the SDK + if build.with?("tcl") && (MacOS.version >= :mavericks || MacOS::CLT.installed?) + args << "--with-tcl" + + if File.exist?("#{MacOS.sdk_path}/usr/lib/tclConfig.sh") + args << "--with-tclconfig=#{MacOS.sdk_path}/usr/lib" + end + end + + args << "--enable-dtrace" if build.with? "dtrace" + args << "--with-uuid=e2fs" + + system "./configure", *args + system "make", "install-world" + end + + def post_install + (var/"log").mkpath + (var/name).mkpath + unless File.exist? "#{var}/#{name}/PG_VERSION" + system "#{bin}/initdb", "#{var}/#{name}" + end + end + + def caveats + s = <<-EOS.undent + If builds of PostgreSQL 9 are failing and you have version 8.x installed, + you may need to remove the previous version first. See: + https://github.com/Homebrew/homebrew/issues/issue/2510 + + To migrate existing data from a previous major version (pre-9.3) of PostgreSQL, see: + http://www.postgresql.org/docs/9.3/static/upgrading.html + EOS + + if MacOS.prefer_64_bit? + s << <<-EOS.undent + \nWhen installing the postgres gem, including ARCHFLAGS is recommended: + ARCHFLAGS="-arch x86_64" gem install pg + + To install gems without sudo, see the Homebrew documentation: + https://github.com/Homebrew/brew/blob/master/docs/Gems%2C-Eggs-and-Perl-Modules.md + EOS + end + + s + end + + plist_options :manual => "pg_ctl -D #{HOMEBREW_PREFIX}/var/postgresql@9.4 start" + + def plist; <<-EOS.undent + + + + + KeepAlive + + Label + #{plist_name} + ProgramArguments + + #{opt_bin}/postgres + -D + #{var}/#{name} + + RunAtLoad + + WorkingDirectory + #{HOMEBREW_PREFIX} + StandardErrorPath + #{var}/log/#{name}.log + + + EOS + end + + test do + system "#{bin}/initdb", testpath/"test" + end +end diff --git a/formula_renames.json b/formula_renames.json index 1915296a237..d4d6dfc182f 100644 --- a/formula_renames.json +++ b/formula_renames.json @@ -78,6 +78,7 @@ "plt-racket": "racket", "ppl011": "ppl@0.11", "polarssl": "mbedtls", + "postgresql94": "postgresql@9.4", "protobuf250": "protobuf@2.5", "protobuf260": "protobuf@2.6", "qt55": "qt@5.5",