class Sphinx < Formula desc "Full-text search engine" homepage "http://www.sphinxsearch.com" url "http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz" sha256 "6662039f093314f896950519fa781bc87610f926f64b3d349229002f06ac41a9" head "https://github.com/sphinxsearch/sphinx.git" bottle do sha256 "60e5aa2a956bd9c4d1e35453b7b201e33a96565331d476423f26cd62873a3f10" => :mojave sha256 "b890cf523db9777c7d125842fd6b0a53fe9a7a5a4cb816389ba6f5ee6483c78d" => :high_sierra sha256 "55ce34bdedf13946fa614bde50839d93135eae720f1021e2c87807d04515ab18" => :sierra sha256 "c75e018d69afb7d3cb662ebd129af67607d47f7b7f71ce8ea95be75d66dc502d" => :el_capitan sha256 "f89b43df8735d295a55c74f18d6af4a1a10b9f3ae81df69713c27f9240f78d14" => :yosemite sha256 "4ec1f1ea71e17b9e924e9f36747d7184114463640f100022cdbb46202e46261f" => :mavericks end option "with-mysql", "Force compiling against MySQL" option "with-postgresql", "Force compiling against PostgreSQL" option "with-id64", "Force compiling with 64-bit ID support" deprecated_option "mysql" => "with-mysql" deprecated_option "pgsql" => "with-postgresql" deprecated_option "id64" => "with-id64" depends_on "re2" => :optional depends_on "mysql" => :optional depends_on "postgresql" => :optional depends_on "openssl" if build.with? "mysql" resource "stemmer" do url "https://github.com/snowballstem/snowball.git", :revision => "9b58e92c965cd7e3208247ace3cc00d173397f3c" end fails_with :clang do build 421 cause "sphinxexpr.cpp:1802:11: error: use of undeclared identifier 'ExprEval'" end needs :cxx11 if build.with? "re2" def install if build.with? "re2" ENV.cxx11 # Fix "error: invalid suffix on literal" and "error: # non-constant-expression cannot be narrowed from type 'long' to 'int'" # Upstream issue from 7 Dec 2016 http://sphinxsearch.com/bugs/view.php?id=2578 ENV.append "CXXFLAGS", "-Wno-reserved-user-defined-literal -Wno-c++11-narrowing" end resource("stemmer").stage do system "make", "dist_libstemmer_c" system "tar", "xzf", "dist/libstemmer_c.tgz", "-C", buildpath end args = %W[ --prefix=#{prefix} --disable-dependency-tracking --localstatedir=#{var} --with-libstemmer ] args << "--enable-id64" if build.with? "id64" args << "--with-re2" if build.with? "re2" if build.with? "mysql" args << "--with-mysql" else args << "--without-mysql" end if build.with? "postgresql" args << "--with-pgsql" else args << "--without-pgsql" end system "./configure", *args system "make", "install" end def caveats; <<~EOS This is not sphinx - the Python Documentation Generator. To install sphinx-python use pip. Sphinx has been compiled with libstemmer support. Sphinx depends on either MySQL or PostreSQL as a datasource. You can install these with Homebrew with: brew install mysql For MySQL server. brew install mysql-connector-c For MySQL client libraries only. brew install postgresql For PostgreSQL server. We don't install these for you when you install this formula, as we don't know which datasource you intend to use. EOS end test do system bin/"searchd", "--help" end end