Created
March 1, 2018 17:04
-
-
Save tomdev/ef0bf50ec778c17f03d4a2ef9d50305b to your computer and use it in GitHub Desktop.
Postgresql 9.5.12 formulae
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class PostgresqlAT95 < Formula | |
desc "Object-relational database system" | |
homepage "https://www.postgresql.org/" | |
url "https://ftp.postgresql.org/pub/source/v9.5.12/postgresql-9.5.12.tar.bz2" | |
sha256 "02e86f5c66467731bbec18fde96e0daf38c13c9141d8e7d41be663ab6fa6f698" | |
bottle do | |
sha256 "56aecc8c7c03ca91538ae998f20798e0eb88cfa51574a60c654dba30790b72fa" => :high_sierra | |
sha256 "c67f2234591bc983804ed8e53a4809788027a9df8a0fda4d5310430f89789908" => :sierra | |
sha256 "809fe993972c7ad7a0feb360265bd4bb6acb082e7719f3598a62553b7ddec106" => :el_capitan | |
end | |
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" | |
option "with-python", "Build with Python2 (incompatible with --with-python3)" | |
option "with-python3", "Build with Python3 (incompatible with --with-python)" | |
depends_on "openssl" | |
depends_on "readline" | |
depends_on "python" => :optional | |
depends_on "python3" => :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}" | |
# avoid adding the SDK library directory to the linker search path | |
ENV["XML2_CONFIG"] = "xml2-config --exec-prefix=/usr" | |
args = %W[ | |
--disable-debug | |
--prefix=#{prefix} | |
--datadir=#{pkgshare} | |
--libdir=#{lib} | |
--sysconfdir=#{prefix}/etc | |
--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" | |
which_python = nil | |
if build.with?("python") && build.with?("python3") | |
odie "Cannot provide both --with-python and --with-python3" | |
elsif build.with?("python") || build.with?("python3") | |
args << "--with-python" | |
which_python = which(build.with?("python") ? "python" : "python3") | |
end | |
ENV["PYTHON"] = which_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}/System/Library/Frameworks/Tcl.framework/tclConfig.sh") | |
args << "--with-tclconfig=#{MacOS.sdk_path}/System/Library/Frameworks/Tcl.framework" | |
end | |
end | |
args << "--enable-dtrace" if build.with? "dtrace" | |
args << "--with-uuid=e2fs" | |
system "./configure", *args | |
system "make" | |
system "make", "install-world", "datadir=#{pkgshare}", | |
"libdir=#{lib}", | |
"pkglibdir=#{lib}" | |
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; <<~EOS | |
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/legacy-homebrew/issues/2510 | |
To migrate existing data from a previous major version (pre-9.0) of PostgreSQL, see: | |
https://www.postgresql.org/docs/9.5/static/upgrading.html | |
To migrate existing data from a previous minor version (9.0-9.4) of PostgreSQL, see: | |
https://www.postgresql.org/docs/9.5/static/pgupgrade.html | |
You will need your previous PostgreSQL installation from brew to perform `pg_upgrade`. | |
Do not run `brew cleanup postgresql@9.5` until you have performed the migration. | |
EOS | |
end | |
plist_options :manual => "pg_ctl -D #{HOMEBREW_PREFIX}/var/postgresql@9.5 start" | |
def plist; <<~EOS | |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<dict> | |
<key>KeepAlive</key> | |
<true/> | |
<key>Label</key> | |
<string>#{plist_name}</string> | |
<key>ProgramArguments</key> | |
<array> | |
<string>#{opt_bin}/postgres</string> | |
<string>-D</string> | |
<string>#{var}/#{name}</string> | |
</array> | |
<key>RunAtLoad</key> | |
<true/> | |
<key>WorkingDirectory</key> | |
<string>#{HOMEBREW_PREFIX}</string> | |
<key>StandardErrorPath</key> | |
<string>#{var}/log/#{name}.log</string> | |
</dict> | |
</plist> | |
EOS | |
end | |
test do | |
system "#{bin}/initdb", testpath/"test" | |
assert_equal pkgshare.to_s, shell_output("#{bin}/pg_config --sharedir").chomp | |
assert_equal lib.to_s, shell_output("#{bin}/pg_config --libdir").chomp | |
assert_equal lib.to_s, shell_output("#{bin}/pg_config --pkglibdir").chomp | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment