homebrew-core/Formula/mongodb.rb
Dominyk Tiller bc4f126b43 mongodb: disable warnings as errors on >Yosemite
The problem with MongoDB's compile seems to be related to Clang within
Xcode 7.0 rather than El Capitain itself. Since Xcode 7.0 is available for
10.10 as well and contains the 10.10 SDK we need to cover that use case.

I don't hugely advise running Xcode 7.0 on 10.10 just yet, but that's not
going to stop people from doing so.

Closes Homebrew/homebrew#41971.
2015-07-23 22:20:50 +01:00

156 lines
4.4 KiB
Ruby

require "language/go"
class Mongodb < Formula
desc "High-performance, schema-free, document-oriented database"
homepage "https://www.mongodb.org/"
stable do
url "https://fastdl.mongodb.org/src/mongodb-src-r3.0.4.tar.gz"
sha256 "6de7aa8b12ad892ee3852ac949069fda8cb87b3ee606a88226817505e2864360"
go_resource "github.com/mongodb/mongo-tools" do
url "https://github.com/mongodb/mongo-tools.git",
:tag => "r3.0.4",
:revision => "efe71bf185cdcfe9632f1fc2e42ca4e895f93269"
end
end
devel do
url "https://fastdl.mongodb.org/src/mongodb-src-r3.1.6.tar.gz"
sha256 "de8591025f38bfdf5c8540e70a09a426d7e0b45a41b625d959598efd57dc20fb"
go_resource "github.com/mongodb/mongo-tools" do
url "https://github.com/mongodb/mongo-tools.git",
:tag => "r3.1.6",
:revision => "ec79a8183b012d3c55fc22fde298dd3032444b0b"
end
end
bottle do
cellar :any
sha256 "cb796f8f0aaa0f457660d6cfca16325d4a708ffe21e66cba7caabb7e58932f7d" => :yosemite
sha256 "5a5ad8cb4399a08bcc4dd05297d29bfaf225676d58df3f4c7d85c0e4b223df81" => :mavericks
sha256 "e0bfd72074a21e1090632018d4f91ea3f89d2694a8189bc6d1af7e2dfb7f608e" => :mountain_lion
end
option "with-boost", "Compile using installed boost, not the version shipped with mongodb"
depends_on "boost" => :optional
depends_on "go" => :build
depends_on :macos => :mountain_lion
depends_on "scons" => :build
depends_on "openssl" => :optional
def install
ENV.libcxx if build.devel?
# New Go tools have their own build script but the server scons "install" target is still
# responsible for installing them.
Language::Go.stage_deps resources, buildpath/"src"
cd "src/github.com/mongodb/mongo-tools" do
# https://github.com/Homebrew/homebrew/issues/40136
inreplace "build.sh", '-ldflags "-X github.com/mongodb/mongo-tools/common/options.Gitspec `git rev-parse HEAD`"', ""
args = %W[]
if build.with? "openssl"
args << "ssl"
ENV["LIBRARY_PATH"] = "#{Formula["openssl"].opt_prefix}/lib"
ENV["CPATH"] = "#{Formula["openssl"].opt_prefix}/include"
end
system "./build.sh", *args
end
mkdir "src/mongo-tools"
cp Dir["src/github.com/mongodb/mongo-tools/bin/*"], "src/mongo-tools/"
args = %W[
--prefix=#{prefix}
-j#{ENV.make_jobs}
--osx-version-min=#{MacOS.version}
]
if build.stable?
args << "--cc=#{ENV.cc}"
args << "--cxx=#{ENV.cxx}"
end
if build.devel?
args << "CC=#{ENV.cc}"
args << "CXX=#{ENV.cxx}"
end
args << "--use-system-boost" if build.with? "boost"
args << "--use-new-tools"
args << "--disable-warnings-as-errors" if MacOS.version >= :yosemite
if build.with? "openssl"
args << "--ssl" << "--extrapath=#{Formula["openssl"].opt_prefix}"
end
scons "install", *args
(buildpath+"mongod.conf").write mongodb_conf
etc.install "mongod.conf"
(var+"mongodb").mkpath
(var+"log/mongodb").mkpath
end
def mongodb_conf; <<-EOS.undent
systemLog:
destination: file
path: #{var}/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: #{var}/mongodb
net:
bindIp: 127.0.0.1
EOS
end
plist_options :manual => "mongod --config #{HOMEBREW_PREFIX}/etc/mongod.conf"
def plist; <<-EOS.undent
<?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>Label</key>
<string>#{plist_name}</string>
<key>ProgramArguments</key>
<array>
<string>#{opt_bin}/mongod</string>
<string>--config</string>
<string>#{etc}/mongod.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>WorkingDirectory</key>
<string>#{HOMEBREW_PREFIX}</string>
<key>StandardErrorPath</key>
<string>#{var}/log/mongodb/output.log</string>
<key>StandardOutPath</key>
<string>#{var}/log/mongodb/output.log</string>
<key>HardResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>4096</integer>
</dict>
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>4096</integer>
</dict>
</dict>
</plist>
EOS
end
test do
system "#{bin}/mongod", "--sysinfo"
end
end