require "formula" class Uwsgi < Formula homepage "https://uwsgi-docs.readthedocs.org/en/latest/" url "http://projects.unbit.it/downloads/uwsgi-2.0.8.tar.gz" sha1 "f017faf259f409907dc8c37541370d3e803fba32" head "https://github.com/unbit/uwsgi.git" bottle do sha1 "111f178b0f86c2f3e35d791c00c78ce858633e12" => :yosemite sha1 "607debd03c31e9d3ac74ef3a7a72c06d14c868de" => :mavericks sha1 "d83b6ea522d5c9980778218db3545512b4ab09b8" => :mountain_lion end depends_on "pkg-config" => :build depends_on "openssl" depends_on :python if MacOS.version <= :snow_leopard depends_on "pcre" depends_on "yajl" if build.without? "jansson" depends_on "geoip" => :optional depends_on "gloox" => :optional depends_on "go" => [:build, :optional] depends_on "jansson" => :optional depends_on "libffi" => :optional depends_on "libxslt" => :optional depends_on "libyaml" => :optional depends_on "lua51" => :optional depends_on "mongodb" => :optional depends_on "mongrel2" => :optional depends_on "nagios" => :optional depends_on "postgresql" => :optional depends_on "pypy" => :optional depends_on "python" => :optional depends_on "python3" => :optional depends_on "rrdtool" => :optional depends_on "rsyslog" => :optional depends_on "tcc" => :optional depends_on "v8" => :optional depends_on "zeromq" => :optional option "with-java", "Compile with Java support" option "with-php", "Compile with PHP support (PHP must be built for embedding)" option "with-ruby", "Compile with Ruby support" # This is a hacky patch, but it works. Replace once upstream have a better fix. # https://github.com/Homebrew/homebrew/issues/33488 # https://github.com/unbit/uwsgi/issues/760 if MacOS.version == :yosemite patch :DATA end def install ENV.append %w{CFLAGS LDFLAGS}, "-arch #{MacOS.preferred_arch}" ENV.append_to_cflags "-DHAVE_HTONLL" if MacOS.version == :yosemite json = build.with?("jansson") ? "jansson" : "yajl" yaml = build.with?("libyaml") ? "libyaml" : "embedded" (buildpath/"buildconf/brew.ini").write <<-EOS.undent [uwsgi] json = #{json} yaml = #{yaml} inherit = base plugin_dir = #{libexec}/uwsgi embedded_plugins = null EOS system "python", "uwsgiconfig.py", "--build", "brew" plugins = ["airbrake", "alarm_curl", "alarm_speech", "asyncio", "cache", "carbon", "cgi", "cheaper_backlog2", "cheaper_busyness", "corerouter", "curl_cron", "cplusplus", "dumbloop", "dummy", "echo", "emperor_amqp", "fastrouter", "forkptyrouter", "gevent", "http", "logcrypto", "logfile", "ldap", "logpipe", "logsocket", "msgpack", "notfound", "pam", "ping", "psgi", "pty", "rawrouter", "router_basicauth", "router_cache", "router_expires", "router_hash", "router_http", "router_memcached", "router_metrics", "router_radius", "router_redirect", "router_redis", "router_rewrite", "router_static", "router_uwsgi", "router_xmldir", "rpc", "signal", "spooler", "sqlite3", "sslrouter", "stats_pusher_file", "stats_pusher_socket", "symcall", "syslog", "transformation_chunked", "transformation_gzip", "transformation_offload", "transformation_tofile", "transformation_toupper","ugreen", "webdav", "zergpool"] plugins << "alarm_xmpp" if build.with? "gloox" plugins << "emperor_mongodb" if build.with? "mongodb" plugins << "emperor_pg" if build.with? "postgresql" plugins << "ffi" if build.with? "libffi" plugins << "fiber" if build.with? "ruby" plugins << "gccgo" if build.with? "go" plugins << "geoip" if build.with? "geoip" plugins << "jvm" if build.with? "java" plugins << "jwsgi" if build.with? "java" plugins << "libtcc" if build.with? "tcc" plugins << "lua" if build.with? "lua" plugins << "mongodb" if build.with? "mongodb" plugins << "mongodblog" if build.with? "mongodb" plugins << "mongrel2" if build.with? "mongrel2" plugins << "nagios" if build.with? "nagios" plugins << "pypy" if build.with? "pypy" plugins << "php" if build.with? "php" plugins << "rack" if build.with? "ruby" plugins << "rbthreads" if build.with? "ruby" plugins << "ring" if build.with? "java" plugins << "rrdtool" if build.with? "rrdtool" plugins << "rsyslog" if build.with? "rsyslog" plugins << "servlet" if build.with? "java" plugins << "stats_pusher_mongodb" if build.with? "mongodb" plugins << "v8" if build.with? "v8" plugins << "xslt" if build.with? "libxslt" (libexec/"uwsgi").mkpath plugins.each do |plugin| system "python", "uwsgiconfig.py", "--plugin", "plugins/#{plugin}", "brew" end python_versions = ["python", "python2"] python_versions << "python3" if build.with? "python3" python_versions.each do |v| system "python", "uwsgiconfig.py", "--plugin", "plugins/python", "brew", v end bin.install "uwsgi" end plist_options :manual => "uwsgi" def plist; <<-EOS.undent Label #{plist_name} RunAtLoad KeepAlive ProgramArguments #{bin}/uwsgi --uid _www --gid _www --master --die-on-term --autoload --logto #{HOMEBREW_PREFIX}/var/log/uwsgi.log --emperor #{HOMEBREW_PREFIX}/etc/uwsgi/apps-enabled WorkingDirectory #{HOMEBREW_PREFIX} EOS end end __END__ diff --git a/plugins/emperor_amqp/amqp.c b/plugins/emperor_amqp/amqp.c index 7b34c66..a6f8a2f 100644 --- a/plugins/emperor_amqp/amqp.c +++ b/plugins/emperor_amqp/amqp.c @@ -2,6 +2,8 @@ #define AMQP_CONNECTION_HEADER "AMQP\0\0\x09\x01" +#ifndef HAVE_HTONLL + #ifdef __BIG_ENDIAN__ #define ntohll(x) x #else @@ -9,6 +11,8 @@ #endif #define htonll(x) ntohll(x) +#endif + #define amqp_send(a, b, c) if (send(a, b, c, 0) < 0) { uwsgi_error("send()"); return -1; } struct amqp_frame_header {