class Gearman < Formula desc "Application framework to farm out work to other machines or processes" homepage "http://gearman.org/" url "https://github.com/gearman/gearmand/releases/download/1.1.18/gearmand-1.1.18.tar.gz" sha256 "d789fa24996075a64c5af5fd2adef10b13f77d71f7d44edd68db482b349c962c" revision 1 bottle do cellar :any sha256 "a29334389cd7ca1245ee0a914959bd3472ae3562b2e4b2f92e44f0ec70d02022" => :mojave sha256 "1d069b8eca915e388207d735c45f143b139f801eedd302b6c690d1f8e4aaee30" => :sierra end depends_on "pkg-config" => :build depends_on "sphinx-doc" => :build depends_on "boost" depends_on "libevent" depends_on "libmemcached" def install # Work around "error: no member named 'signbit' in the global namespace" # encountered when trying to detect boost regex in configure ENV.delete("SDKROOT") if DevelopmentTools.clang_build_version >= 900 # https://bugs.launchpad.net/gearmand/+bug/1368926 Dir["tests/**/*.cc", "libtest/main.cc"].each do |test_file| next unless /std::unique_ptr/ =~ File.read(test_file) inreplace test_file, "std::unique_ptr", "std::auto_ptr" end args = %W[ --prefix=#{prefix} --localstatedir=#{var} --disable-silent-rules --disable-dependency-tracking --disable-cyassl --disable-hiredis --disable-libdrizzle --disable-libpq --disable-libtokyocabinet --disable-ssl --enable-libmemcached --with-boost=#{Formula["boost"].opt_prefix} --with-memcached=#{Formula["memcached"].opt_bin}/memcached --with-sqlite3 --without-mysql --without-postgresql ] ENV.append_to_cflags "-DHAVE_HTONLL" (var/"log").mkpath system "./configure", *args system "make", "install" end plist_options :manual => "gearmand -d" def plist; <<~EOS Label #{plist_name} Program #{opt_sbin}/gearmand RunAtLoad EOS end test do assert_match /gearman\s*Error in usage/, shell_output("#{bin}/gearman --version 2>&1", 1) end end