Commit graph

9 commits

Author SHA1 Message Date
taca
f5e7051c01 Update ruby-unicorn to 5.0.1.
=== unicorn 5.0.0.pre2 - another prerelease! / 2015-07-06 21:37 UTC

  There is a minor TCP socket options are now applied to inherited
  sockets, and we have native support for inheriting sockets from
  systemd (by emulating the sd_listen_fds(3) function).

  Dynamic changes in the application to Rack::Utils::HTTP_STATUS
  codes is now supported, so you can use your own custom status
  lines.

  Ruby 2.2 and later is now favored for performance.
  Optimizations by using constants which made sense in earlier
  versions of Ruby are gone: so users of old Ruby versions
  will see performance regressions.  Ruby 2.2 users should
  see the same or better performance, and we have less code
  as a result.

  * doc: update some invalid URLs
  * apply TCP socket options on inherited sockets
  * reflect changes in Rack::Utils::HTTP_STATUS_CODES
  * reduce constants and optimize for Ruby 2.2
  * http_response: reduce size of multi-line header path
  * emulate sd_listen_fds for systemd support
  * test/unit/test_response.rb: compatibility with older test-unit

  This also includes all changes in unicorn 5.0.0.pre1:

  http://bogomips.org/unicorn-public/m/20150615225652.GA16164@dcvr.yhbt.net.html

=== unicorn 5.0.0.pre1 - incompatible changes! / 2015-06-15 22:49 UTC

  This release finally drops Ruby 1.8 support and requires Ruby 1.9.3
  or later.  The horrible "Status:" header in our HTTP response is
  finally gone, saving at least 16 precious bytes in every single HTTP
  response.

  Under Ruby 2.1 and later, the monotonic clock is used for timeout
  handling for better accuracy.

  Several experimental, unused and undocumented features are removed.

  There's also tiny, minor performance and memory improvements from
  dropping 1.8 compatibility, but probably nothing noticeable on a
  typical real-life (bloated) app.

  The biggest performance improvement we made was to our website by
  switching to olddoc.  Depending on connection speed, latency, and
  renderer performance, it typically loads two to four times faster.

  Finally, for the billionth time: unicorn must never be exposed
  to slow clients, as it will never ever use new-fangled things
  like non-blocking socket I/O, threads, epoll or kqueue.  unicorn
  must be used with a fully-buffering reverse proxy such as nginx
  for slow clients.

  * ISSUES: update with mailing list subscription
  * GIT-VERSION-GEN: start 5.0.0 development
  * http: remove xftrust options
  * FAQ: add entry for Rails autoflush_log
  * dev: remove isolate dependency
  * unicorn.gemspec: depend on test-unit 3.0
  * http_response: remove Status: header
  * remove RubyForge and Freecode references
  * remove mongrel.rubyforge.org references
  * http: remove the keepalive requests limit
  * http: reduce parser from 72 to 56 bytes on 64-bit
  * examples: add run_once to before_fork hook example
  * worker: remove old tmp accessor
  * http_server: save 450+ bytes of memory on x86-64
  * t/t0002-parser-error.sh: relax test for rack 1.6.0
  * remove SSL support
  * tmpio: drop the "size" method
  * switch docs + website to olddoc
  * README: clarify/reduce references to unicorn_rails
  * gemspec: fixup olddoc migration
  * use the monotonic clock under Ruby 2.1+
  * http: -Wshorten-64-to-32 warnings on clang
  * remove old inetd+git examples and exec_cgi
  * http: standalone require + reduction in binary size
  * GNUmakefile: fix clean gem build + reduce build cruft
  * socket_helper: reduce constant lookups and caching
  * remove 1.8, <= 1.9.1 fallback for missing IO#autoclose=
  * favor IO#close_on_exec= over fcntl in 1.9+
  * use require_relative to reduce syscalls at startup
  * doc: update support status for Ruby versions
  * fix uninstalled testing and reduce require paths
  * test_socket_helper: do not depend on SO_REUSEPORT
  * favor "a.b(&:c)" form over "a.b { |x| x.c }"
  * ISSUES: add section for bugs in other projects
  * http_server: favor ivars over constants
  * explain 11 byte magic number for self-pipe
  * const: drop constants used by Rainbows!
  * reduce and localize constant string use
  * Links: mark Rainbows! as historical, reference yahns
  * save about 200 bytes of memory on x86-64
  * http: remove deprecated reset method
  * http: remove experimental dechunk! method
  * socket_helper: update comments
  * doc: document UNICORN_FD in manpage
  * doc: document Etc.nprocessors for worker_processes
  * favor more string literals for cold call sites
  * tee_input: support for Rack::TempfileReaper middleware
  * support TempfileReaper in deployment and development envs
  * favor kgio_wait_readable for single FD over select
  * Merge tag 'v4.9.0'
  * http_request: support rack.hijack by default
  * avoid extra allocation for hijack proc creation
  * FAQ: add note about ECONNRESET errors from bodies
  * process SIGWINCH unless stdin is a TTY
  * ISSUES: discourage HTML mail strongly, welcome nyms
  * http: use rb_hash_clear in Ruby 2.0+
  * http_response: avoid special-casing for Rack < 1.5
  * www: install NEWS.atom.xml properly
  * http_server: remove a few more accessors and constants
  * http_response: simplify regular expression
  * move the socket into Rack env for hijacking
  * http: move response_start_sent into the C ext
  * FAQ: reorder bit on Rack 1.1.x and Rails 2.3.x
  * ensure body is closed during hijack
2015-12-13 16:16:59 +00:00
agc
b9b754e081 Add SHA512 digests for distfiles for www category
Problems found locating distfiles:
	Package haskell-cgi: missing distfile haskell-cgi-20001206.tar.gz
	Package nginx: missing distfile array-var-nginx-module-0.04.tar.gz
	Package nginx: missing distfile encrypted-session-nginx-module-0.04.tar.gz
	Package nginx: missing distfile headers-more-nginx-module-0.261.tar.gz
	Package nginx: missing distfile nginx_http_push_module-0.692.tar.gz
	Package nginx: missing distfile set-misc-nginx-module-0.29.tar.gz
	Package nginx-devel: missing distfile echo-nginx-module-0.58.tar.gz
	Package nginx-devel: missing distfile form-input-nginx-module-0.11.tar.gz
	Package nginx-devel: missing distfile lua-nginx-module-0.9.16.tar.gz
	Package nginx-devel: missing distfile nginx_http_push_module-0.692.tar.gz
	Package nginx-devel: missing distfile set-misc-nginx-module-0.29.tar.gz
	Package php-owncloud: missing distfile owncloud-8.2.0.tar.bz2

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-04 02:46:46 +00:00
taca
deae4d4032 Update ruby-unicorn to 4.9.0.
pkgsrc change: add support for pkg_alternatives.


unicorn 4.9.0 - TempfileReaper support in Rack 1.6

This release supports the Rack::TempfileReaper middleware found
in rack 1.6 for cleaning up disk space used by temporary files.
We also use Rack::TempfileReaper for cleaning up large temporary
files buffered with TeeInput.  Users on rack 1.5 and earlier
will see no changes.

There's also a bunch of documentation/build system improvements.

This is likely to be the last Ruby 1.8-compatible release,
unicorn 5.x will require 1.9.3 or later as well as dropping lots
of cruft (the stupid "Status:" header in responses being the
most notable).

21 changes backported from master:

      ISSUES: update with mailing list subscription
      FAQ: add entry for Rails autoflush_log
      dev: remove isolate dependency
      unicorn.gemspec: depend on test-unit 3.0
      remove RubyForge and Freecode references
      remove mongrel.rubyforge.org references
      examples: add run_once to before_fork hook example
      t/t0002-parser-error.sh: relax test for rack 1.6.0
      switch docs + website to olddoc
      README: clarify/reduce references to unicorn_rails
      gemspec: fixup olddoc migration
      GNUmakefile: fix clean gem build + reduce build cruft
      doc: update support status for Ruby versions
      fix uninstalled testing and reduce require paths
      test_socket_helper: do not depend on SO_REUSEPORT
      ISSUES: add section for bugs in other projects
      explain 11 byte magic number for self-pipe
      Links: mark Rainbows! as historical, reference yahns
      doc: document UNICORN_FD in manpage
      tee_input: support for Rack::TempfileReaper middleware
      support TempfileReaper in deployment and development envs
2015-06-11 17:07:56 +00:00
taca
1ea20eba82 Update ruby-unicorn to 4.8.3.
pkgsrc change:

* Add ${GEM_EXTSDIR}/gem.build_complete for new rubygems and updated ruby.

=== unicorn 4.8.3 - the end of an era / 2014-05-07 07:50 UTC

  This release updates documentation to reflect the migration of the
  mailing list to a new public-inbox[1] instance.  This is necessary
  due to the impending RubyForge shutdown on May 15, 2014.

  The public-inbox address is: unicorn-public@bogomips.org
      (no subscription required, plain text only)
  ssoma[2] git archives: git://bogomips.org/unicorn-public
  browser-friendly archives: http://bogomips.org/unicorn-public/

  Using, getting help for, and contributing to unicorn will never
  require any of the following:

  1) non-Free software (including SaaS)
  2) registration or sign-in of any kind
  3) a real identity (we accept mail from Mixmaster)
  4) a graphical user interface

  Nowadays, plain-text email is the only ubiquitous platform which
  meets all our requirements for communication.

  There is also one small bugfix to handle premature grandparent death
  upon initial startup.  Most users are unaffected.

  [1] policy: http://public-inbox.org/ - git://80x24.org/public-inbox
      an "archives first" approach to mailing lists
  [2] mechanism: http://ssoma.public-inbox.org/ - git://80x24.org/ssoma
      some sort of mail archiver (using git)

=== unicorn 4.8.2 - avoid race condition during worker startup / 2014-02-05 18:24 UTC

  We close SELF_PIPE in the worker immediately, but signal handlers
  do not get setup immediately.  So prevent workers from erroring out
  due to invalid SELF_PIPE.

=== unicorn 4.8.1 / 2014-01-29 08:48 UTC

  fix races/error handling in worker SIGQUIT handler

  This protects us from two problems:

  1) we (or our app) somehow called IO#close on one of the sockets
     we listen on without removing it from the readers array.
     We'll ignore IOErrors from IO#close and assume we wanted to
     close it.

  2) our SIGQUIT handler is interrupted by itself.  This can happen as
     a fake signal from the master could be handled and a real signal
     from an outside user is sent to us (e.g. from unicorn-worker-killer)
     or if a user uses the killall(1) command.

=== unicorn 4.8.0 - big internal changes, but compatible / 2014-01-11 07:34 UTC

  This release contains fairly major internal workings of master-to-worker
  notifications.  The master process no longer sends signals to workers
  for most tasks.  This works around some compatibility issues with some
  versions of the "pg" gem (and potentially any other code which may not
  handle EINTR properly).  One extra benefit is it also helps stray
  workers notice a rare, unexpected master death more easily.  Workers
  continue to (and will always) accept existing signals for compatibility
  with tools/scripts which may signal workers.

  PID file are always written early (even on upgrade) again to avoid
  breaking strange monitoring setups which use PID files.  Keep in mind we
  have always discouraged monitoring based on PID files as they are
  fragile.

  We now avoid bubbling IOError to the Rack app on premature client
  disconnects when streaming the input body.  This is usually not a
  problem with nginx, but may be on some LAN setups without nginx).

  Thanks to Sam Saffron, Jimmy Soho, Rodrigo Rosenfeld Rosas,
  Michael Fischer, and Andrew Hobson for their help with this release.

  Note: the unicorn mailing list will be moved/changed soon due to the
  RubyForge shutdown.  unicorn will always rely only on Free Software.
  There will never be any sign-up requirements nor terms-of-service to
  agree to when communicating with us.

=== unicorn 4.8.0pre1 / 2013-12-09 09:51 UTC

  Eric Wong (6):
        tests: fix SO_REUSEPORT tests for old Linux and non-Linux
        stream_input: avoid IO#close on client disconnect
        t0300: kill off stray processes in test
        always write PID file early for compatibility
        doc: clarify SIGNALS and reference init example
        rework master-to-worker signaling to use a pipe

=== unicorn 4.7.0 - minor updates, license tweak / 2013-11-04 06:59 UTC

  * support SO_REUSEPORT on new listeners (:reuseport)

  This allows users to start an independent instance of unicorn on
  a the same port as a running unicorn (as long as both instances
  use :reuseport).

  ref: https://lwn.net/Articles/542629/

  * unicorn is now GPLv2-or-later and Ruby 1.8-licensed
  (instead of GPLv2-only, GPLv3-only, and Ruby 1.8-licensed)

  This changes nothing at the moment.  Once the FSF publishes the next
  version of the GPL, users may choose the newer GPL version without the
  unicorn BDFL approving it.  Two years ago when I got permission to add
  GPLv3 to the license options, I also got permission from all past
  contributors to approve future versions of the GPL.  So now I'm
  approving all future versions of the GPL for use with unicorn.

  Reasoning below:

  In case the GPLv4 arrives and I am not alive to approve/review it,
  the lesser of evils is have give blanket approval of all future GPL
  versions (as published by the FSF).  The worse evil is to be stuck
  with a license which cannot guarantee the Free-ness of this project
  in the future.

  This unfortunately means the FSF can theoretically come out with
  license terms I do not agree with, but the GPLv2 and GPLv3 will
  always be an option to all users.

  Note: we currently prefer GPLv3

  Two improvements thanks to Ernest W. Durbin III:

  * USR2 redirects fixed for Ruby 1.8.6 (broken since 4.1.0)
  * unicorn(1) and unicorn_rails(1) enforces valid integer for -p/--port

  A few more odd, minor tweaks and fixes:

  * attempt to rename PID file when possible (on USR2)
  * workaround reopen atomicity issues for stdio vs non-stdio
  * improve handling of client-triggerable socket errors
2015-03-08 15:35:47 +00:00
taca
8d5f9ea737 Update ruby-unicorn to 4.6.3.
=== unicorn 4.6.3 - fix --no-default-middleware option / 2013-06-21 08:01 UTC

  Thanks to Micah Chalmer for this fix.  There are also minor
  documentation updates and internal cleanups.
2013-09-15 18:01:47 +00:00
taca
7df825fcbe Update ruby-unicorn to 4.6.2.
=== unicorn 4.6.2 - HTTP parser fix for Rainbows! / 2013-02-26 02:59 UTC

  This release fixes a bug in Unicorn::HttpParser#filter_body
  which affected some configurations of Rainbows!  There is
  also a minor size reduction in the DSO.

=== unicorn 4.6.1 - minor cleanups / 2013-02-21 08:38 UTC

  Unicorn::Const::UNICORN_VERSION is now auto-generated from
  GIT-VERSION-GEN and always correct.  Minor cleanups for
  hijacking.

=== unicorn 4.6.0 - hijacking support / 2013-02-06 11:23 UTC

  This pre-release adds hijacking support for Rack 1.5 users.
  See Rack documentation for more information about hijacking.
  There is also a new --no-default-middleware/-N option
  for the `unicorn' command to ignore RACK_ENV within unicorn
  thanks to Lin Jen-Shin.

  There are only documentation and test-portability updates
  since 4.6.0pre1, no code changes.

=== unicorn 4.6.0pre1 - hijacking support / 2013-01-29 21:05 UTC

  This pre-release adds hijacking support for Rack 1.5 users.
  See Rack documentation for more information about hijacking.
  There is also a new --no-default-middleware/-N option
  for the `unicorn' command to ignore RACK_ENV within unicorn.
2013-03-14 16:24:21 +00:00
taca
44e39746d6 Update ruby-unicorn to 4.5.0.
=== unicorn 4.5.0 - check_client_connection option / 2012-12-07 22:59 UTC

  The new check_client_connection option allows unicorn to detect
  most disconnected local clients before potentially expensive
  application processing begins.

  This feature is useful for applications experiencing spikes of
  traffic leading to undesirable queue times, as clients will
  disconnect (and perhaps even retry, compounding the problem)
  before unicorn can even start processing the request.

  To enable this feature, add the following line to a unicorn
  config file:

        check_client_connection true

  This feature only works when nginx (or any other HTTP/1.0+
  client) is on the same machine as unicorn.

  A huge thanks to Tom Burns for implementing and testing this
  change in production with real traffic (including mitigating
  an unexpected DoS attack).

  ref: http://mid.gmane.org/CAK4qKG3rkfVYLyeqEqQyuNEh_nZ8yw0X_cwTxJfJ+TOU+y8F+w@mail.gmail.com

  This release fixes broken Rainbows! compatibility in 4.5.0pre1.

=== unicorn 4.5.0pre1 - check_client_connection option / 2012-11-29 23:48 UTC

  The new check_client_connection option allows unicorn to detect
  most disconnected clients before potentially expensive
  application processing begins.

  This feature is useful for applications experiencing spikes of
  traffic leading to undesirable queue times, as clients will
  disconnect (and perhaps even retry, compounding the problem)
  before unicorn can even start processing the request.

  To enable this feature, add the following line to a unicorn
  config file:

    check_client_connection true

  A huge thanks to Tom Burns for implementing and testing this
  change in production with real traffic (including mitigating
  an unexpected DoS attack).

=== unicorn 4.4.0 - minor updates / 2012-10-11 09:11 UTC

  Non-regular files are no longer reopened on SIGUSR1.  This
  allows users to specify FIFOs as log destinations.

  TCP_NOPUSH/TCP_CORK is no longer set/unset by default.  Use
  :tcp_nopush explicitly with the "listen" directive if you wish
  to enable TCP_NOPUSH/TCP_CORK.

  Listen sockets are now bound _after_ loading the application for
  preload_app(true) users.  This prevents load balancers from
  sending traffic to an application server while the application
  is still loading.

  There are also minor test suite cleanups.
2012-12-17 15:55:15 +00:00
taca
321dde0763 Update ruby-unicorn to 4.3.1.
=== unicorn 4.3.1 - shutdown() fixes / 2012-04-29 07:04 UTC

  * Call shutdown(2) if a client EOFs on us during upload.
    We can avoid holding a socket open if the Rack app forked a
    process during uploads.

  * ignore potential Errno::ENOTCONN errors (from shutdown(2)).
    Even on LANs, connections can occasionally be accept()-ed but
    be unusable afterwards.

  Thanks to Joel Nimety <jnimety@continuity.net>,
  Matt Smith <matt@nearapogee.com> and George <lists@southernohio.net>
  on the mongrel-unicorn@rubyforge.org mailing list for their
  feedback and testing for this release.

=== unicorn 4.3.0 - minor fixes and updates / 2012-04-17 21:51 UTC

  * PATH_INFO (aka REQUEST_PATH) increased to 4096 (from 1024).
    This allows requests with longer path components and matches
    the system PATH_MAX value common to GNU/Linux systems for
    serving filesystem components with long names.

  * Apps that fork() (but do not exec()) internally for background
    tasks now indicate the end-of-request immediately after
    writing the Rack response.

  Thanks to Hongli Lai, Lawrence Pit, Patrick Wenger and Nuo Yan
  for their valuable feedback for this release.

=== unicorn 4.2.1 - minor fix and doc updates / 2012-03-26 21:39 UTC

  * Stale pid files are detected if a pid is recycled by processes
    belonging to another user, thanks to Graham Bleach.
  * nginx example config updates thanks to to Eike Herzbach.
  * KNOWN_ISSUES now documents issues with apps/libs that install
    conflicting signal handlers.
2012-04-29 16:05:42 +00:00
fhajny
1de420b7c4 Import ruby18-unicorn-4.2.0 as www/ruby-unicorn.
Unicorn is an HTTP server for Rack applications designed to only serve
fast clients on low-latency, high-bandwidth connections and take
advantage of features in Unix/Unix-like kernels.  Slow clients should
only be served by placing a reverse proxy capable of fully buffering
both the the request and response in between Unicorn and slow clients.
2012-02-06 12:40:36 +00:00