Update to 5.3.0 Upstream changes: unicorn 5.3.0 / 2017-04-01 08:03 UTC A couple of portability fixes from Dylan Thacker-Smith and Jeremy Evans since 5.3.0.pre1 over a week ago, but this looks ready for a stable release, today. When I started this over 8 years ago, I wondered if this would just end up being an April Fools' joke. Guess not. I guess I somehow tricked people into using a terribly marketed web server that cannot talk directly to untrusted clients :x Anyways, unicorn won't be able to handle slow clients 8 years from now, either, or 80 years from now. And I vow never to learn to use new-fangled things like epoll, kqueue, or threads :P Anyways, this is a largish release with several new features, and no backwards incompatibilities. Simon Eskildsen contributed heavily using TCP_INFO under Linux to implement the (now 5 year old) check_client_connection feature: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-check_client_connection https://bogomips.org/unicorn-public/?q=s:check_client_connection&d:..20170401&x=t This also led to FreeBSD and OpenBSD portability improvements in one of our dependencies, raindrops: https://bogomips.org/raindrops-public/20170323024829.GA5190@dcvr/T/#u Jeremy Evans contributed several new features. First he implemented after_worker_exit to aid debugging: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_exit https://bogomips.org/unicorn-public/?q=s:after_worker_exit&d:..20170401&x=t#t And then security-related features to isolate workers. Workers may now chroot to drop access to the master filesystem, and the new after_worker_ready configuration hook now exists to aid with chroot support in workers: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_ready https://bogomips.org/unicorn/Unicorn/Worker.html#method-i-user https://bogomips.org/unicorn-public/?q=s:after_worker_ready&d:..20170401&x=t#t https://bogomips.org/unicorn-public/?q=s:chroot&d:..20170401&x=t#t Additionally, workers may run in a completely different VM space (nullifying preload_app and any CoW savings) with the new worker_exec option: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-worker_exec https://bogomips.org/unicorn-public/?q=s:worker_exec&d:..20170401&x=t#t There are also several improvements to FreeBSD and OpenBSD support with the addition of these features. shortlog of changes since v5.2.0 (2016-10-31): Dylan Thacker-Smith (1): Check for Socket::TCP_INFO constant before trying to get TCP_INFO Eric Wong (30): drop rb_str_set_len compatibility replacement TUNING: document THP caveat for Linux users tee_input: simplify condition for IO#write remove response_start_sent http_request: freeze constant strings passed IO#write Revert "remove response_start_sent" t/t0012-reload-empty-config.sh: access ivars directly if needed t0011-active-unix-socket.sh: fix race condition in test new test for check_client_connection revert signature change to HttpServer#process_client support "struct tcp_info" on non-Linux and Ruby 2.2+ unicorn_http: reduce rb_global_variable calls oob_gc: rely on opt_aref_with optimization on Ruby 2.2+ http_request: reduce insn size for check_client_connection freebsd: avoid EINVAL when setting accept filter test-lib: expr(1) portability fix tests: keep disabled tests defined test_exec: SO_KEEPALIVE value only needs to be true doc: fix links to raindrops project http_request: support proposed Raindrops::TCP states on non-Linux ISSUES: expand on mail archive info + subscription disclaimer test_ccc: use a pipe to synchronize test doc: remove private email support address input: update documentation and hide internals. http_server: initialize @pid ivar gemspec: remove olddoc from build dependency doc: add version annotations for new features unicorn 5.3.0.pre1 doc: note after_worker_exit is also 5.3.0+ test_exec: SO_KEEPALIVE value only needs to be true (take #2) Jeremy Evans (7): Add after_worker_exit configuration option Fix code example in after_worker_exit documentation Add support for chroot to Worker#user Add after_worker_ready configuration option Add worker_exec configuration option Don't pass a block for fork when forking workers Check for SocketError on first ccc attempt Simon Eskildsen (1): check_client_connection: use tcp state on linux unicorn 5.3.0.pre1 / 2017-03-24 00:25 UTC A largish release with several new features. Simon Eskildsen contributed heavily using TCP_INFO under Linux to implement the (now 5 year old) check_client_connection feature: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-check_client_connection https://bogomips.org/unicorn-public/?q=s:check_client_connection&d:..20170324&x=t This also led to FreeBSD and OpenBSD portability improvements in one of our dependencies, raindrops: https://bogomips.org/raindrops-public/20170323024829.GA5190@dcvr/T/#u Jeremy Evans contributed several new features. First he implemented after_worker_exit to aid debugging: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_exit https://bogomips.org/unicorn-public/?q=s:after_worker_exit&d:..20170324&x=t#t And then security-related features to isolate workers. Workers may now chroot to drop access to the master filesystem, and the new after_worker_ready configuration hook now exists to aid with chroot support in workers: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_ready https://bogomips.org/unicorn/Unicorn/Worker.html#method-i-user https://bogomips.org/unicorn-public/?q=s:after_worker_ready&d:..20170324&x=t#t https://bogomips.org/unicorn-public/?q=s:chroot&d:..20170324&x=t#t Additionally, workers may run in a completely different VM space (nullifying preload_app and any CoW savings) with the new worker_exec option: https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-worker_exec https://bogomips.org/unicorn-public/?q=s:worker_exec&d:..20170324&x=t#t There are also several improvements to FreeBSD and OpenBSD support with the addition of these features. 34 changes since 5.2.0 (2016-10-31): Eric Wong (27): drop rb_str_set_len compatibility replacement TUNING: document THP caveat for Linux users tee_input: simplify condition for IO#write remove response_start_sent http_request: freeze constant strings passed IO#write Revert "remove response_start_sent" t/t0012-reload-empty-config.sh: access ivars directly if needed t0011-active-unix-socket.sh: fix race condition in test new test for check_client_connection revert signature change to HttpServer#process_client support "struct tcp_info" on non-Linux and Ruby 2.2+ unicorn_http: reduce rb_global_variable calls oob_gc: rely on opt_aref_with optimization on Ruby 2.2+ http_request: reduce insn size for check_client_connection freebsd: avoid EINVAL when setting accept filter test-lib: expr(1) portability fix tests: keep disabled tests defined test_exec: SO_KEEPALIVE value only needs to be true doc: fix links to raindrops project http_request: support proposed Raindrops::TCP states on non-Linux ISSUES: expand on mail archive info + subscription disclaimer test_ccc: use a pipe to synchronize test doc: remove private email support address input: update documentation and hide internals. http_server: initialize @pid ivar gemspec: remove olddoc from build dependency doc: add version annotations for new features Jeremy Evans (6): Add after_worker_exit configuration option Fix code example in after_worker_exit documentation Add support for chroot to Worker#user Add after_worker_ready configuration option Add worker_exec configuration option Don't pass a block for fork when forking workers Simon Eskildsen (1): check_client_connection: use tcp state on linuxdiff -r1.11 -r1.12 pkgsrc/www/ruby-unicorn/Makefile
(wen)
@@ -1,16 +1,16 @@ | @@ -1,16 +1,16 @@ | |||
1 | # $NetBSD: Makefile,v 1.11 2016/11/01 17:06:59 taca Exp $ | 1 | # $NetBSD: Makefile,v 1.12 2017/04/09 04:12:39 wen Exp $ | |
2 | 2 | |||
3 | DISTNAME= unicorn-5.2.0 | 3 | DISTNAME= unicorn-5.3.0 | |
4 | CATEGORIES= www | 4 | CATEGORIES= www | |
5 | 5 | |||
6 | MAINTAINER= pkgsrc-users@NetBSD.org | 6 | MAINTAINER= pkgsrc-users@NetBSD.org | |
7 | HOMEPAGE= https://bogomips.org/unicorn/ | 7 | HOMEPAGE= https://bogomips.org/unicorn/ | |
8 | COMMENT= Rack HTTP server for fast clients and Unix | 8 | COMMENT= Rack HTTP server for fast clients and Unix | |
9 | LICENSE= ruby-license OR gnu-gpl-v2 OR gnu-gpl-v3 | 9 | LICENSE= ruby-license OR gnu-gpl-v2 OR gnu-gpl-v3 | |
10 | 10 | |||
11 | DEPENDS+= ${RUBY_PKGPREFIX}-kgio>=2.6<3:../../devel/ruby-kgio | 11 | DEPENDS+= ${RUBY_PKGPREFIX}-kgio>=2.6<3:../../devel/ruby-kgio | |
12 | DEPENDS+= ${RUBY_PKGPREFIX}-raindrops>=0.7<1:../../www/ruby-raindrops | 12 | DEPENDS+= ${RUBY_PKGPREFIX}-raindrops>=0.7<1:../../www/ruby-raindrops | |
13 | 13 | |||
14 | USE_GCC_RUNTIME= yes | 14 | USE_GCC_RUNTIME= yes | |
15 | RUBYGEM_OPTIONS+= --format-executable | 15 | RUBYGEM_OPTIONS+= --format-executable | |
16 | 16 |
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.11 2016/11/01 17:06:59 taca Exp $ | 1 | @comment $NetBSD: PLIST,v 1.12 2017/04/09 04:12:39 wen Exp $ | |
2 | bin/unicorn${RUBY_SUFFIX} | 2 | bin/unicorn${RUBY_SUFFIX} | |
3 | bin/unicorn_rails${RUBY_SUFFIX} | 3 | bin/unicorn_rails${RUBY_SUFFIX} | |
4 | ${GEM_HOME}/cache/${GEM_NAME}.gem | 4 | ${GEM_HOME}/cache/${GEM_NAME}.gem | |
5 | ${GEM_EXTSDIR}/gem.build_complete | 5 | ${GEM_EXTSDIR}/gem.build_complete | |
6 | ${GEM_EXTSDIR}/unicorn_http.${RUBY_DLEXT} | 6 | ${GEM_EXTSDIR}/unicorn_http.${RUBY_DLEXT} | |
7 | ${GEM_LIBDIR}/.CHANGELOG.old | 7 | ${GEM_LIBDIR}/.CHANGELOG.old | |
8 | ${GEM_LIBDIR}/.document | 8 | ${GEM_LIBDIR}/.document | |
9 | ${GEM_LIBDIR}/.gitattributes | 9 | ${GEM_LIBDIR}/.gitattributes | |
10 | ${GEM_LIBDIR}/.gitignore | 10 | ${GEM_LIBDIR}/.gitignore | |
11 | ${GEM_LIBDIR}/.mailmap | 11 | ${GEM_LIBDIR}/.mailmap | |
12 | ${GEM_LIBDIR}/.manifest | 12 | ${GEM_LIBDIR}/.manifest | |
13 | ${GEM_LIBDIR}/.olddoc.yml | 13 | ${GEM_LIBDIR}/.olddoc.yml | |
14 | ${GEM_LIBDIR}/Application_Timeouts | 14 | ${GEM_LIBDIR}/Application_Timeouts | |
@@ -137,26 +137,27 @@ ${GEM_LIBDIR}/t/t0200-rack-hijack.sh | @@ -137,26 +137,27 @@ ${GEM_LIBDIR}/t/t0200-rack-hijack.sh | |||
137 | ${GEM_LIBDIR}/t/t0300-no-default-middleware.sh | 137 | ${GEM_LIBDIR}/t/t0300-no-default-middleware.sh | |
138 | ${GEM_LIBDIR}/t/t9000-preread-input.sh | 138 | ${GEM_LIBDIR}/t/t9000-preread-input.sh | |
139 | ${GEM_LIBDIR}/t/t9001-oob_gc.sh | 139 | ${GEM_LIBDIR}/t/t9001-oob_gc.sh | |
140 | ${GEM_LIBDIR}/t/t9002-oob_gc-path.sh | 140 | ${GEM_LIBDIR}/t/t9002-oob_gc-path.sh | |
141 | ${GEM_LIBDIR}/t/test-lib.sh | 141 | ${GEM_LIBDIR}/t/test-lib.sh | |
142 | ${GEM_LIBDIR}/t/write-on-close.ru | 142 | ${GEM_LIBDIR}/t/write-on-close.ru | |
143 | ${GEM_LIBDIR}/test/aggregate.rb | 143 | ${GEM_LIBDIR}/test/aggregate.rb | |
144 | ${GEM_LIBDIR}/test/benchmark/README | 144 | ${GEM_LIBDIR}/test/benchmark/README | |
145 | ${GEM_LIBDIR}/test/benchmark/dd.ru | 145 | ${GEM_LIBDIR}/test/benchmark/dd.ru | |
146 | ${GEM_LIBDIR}/test/benchmark/stack.ru | 146 | ${GEM_LIBDIR}/test/benchmark/stack.ru | |
147 | ${GEM_LIBDIR}/test/exec/README | 147 | ${GEM_LIBDIR}/test/exec/README | |
148 | ${GEM_LIBDIR}/test/exec/test_exec.rb | 148 | ${GEM_LIBDIR}/test/exec/test_exec.rb | |
149 | ${GEM_LIBDIR}/test/test_helper.rb | 149 | ${GEM_LIBDIR}/test/test_helper.rb | |
150 | ${GEM_LIBDIR}/test/unit/test_ccc.rb | |||
150 | ${GEM_LIBDIR}/test/unit/test_configurator.rb | 151 | ${GEM_LIBDIR}/test/unit/test_configurator.rb | |
151 | ${GEM_LIBDIR}/test/unit/test_droplet.rb | 152 | ${GEM_LIBDIR}/test/unit/test_droplet.rb | |
152 | ${GEM_LIBDIR}/test/unit/test_http_parser.rb | 153 | ${GEM_LIBDIR}/test/unit/test_http_parser.rb | |
153 | ${GEM_LIBDIR}/test/unit/test_http_parser_ng.rb | 154 | ${GEM_LIBDIR}/test/unit/test_http_parser_ng.rb | |
154 | ${GEM_LIBDIR}/test/unit/test_request.rb | 155 | ${GEM_LIBDIR}/test/unit/test_request.rb | |
155 | ${GEM_LIBDIR}/test/unit/test_response.rb | 156 | ${GEM_LIBDIR}/test/unit/test_response.rb | |
156 | ${GEM_LIBDIR}/test/unit/test_server.rb | 157 | ${GEM_LIBDIR}/test/unit/test_server.rb | |
157 | ${GEM_LIBDIR}/test/unit/test_signals.rb | 158 | ${GEM_LIBDIR}/test/unit/test_signals.rb | |
158 | ${GEM_LIBDIR}/test/unit/test_socket_helper.rb | 159 | ${GEM_LIBDIR}/test/unit/test_socket_helper.rb | |
159 | ${GEM_LIBDIR}/test/unit/test_stream_input.rb | 160 | ${GEM_LIBDIR}/test/unit/test_stream_input.rb | |
160 | ${GEM_LIBDIR}/test/unit/test_tee_input.rb | 161 | ${GEM_LIBDIR}/test/unit/test_tee_input.rb | |
161 | ${GEM_LIBDIR}/test/unit/test_upload.rb | 162 | ${GEM_LIBDIR}/test/unit/test_upload.rb | |
162 | ${GEM_LIBDIR}/test/unit/test_util.rb | 163 | ${GEM_LIBDIR}/test/unit/test_util.rb |
@@ -1,6 +1,6 @@ | @@ -1,6 +1,6 @@ | |||
1 | $NetBSD: distinfo,v 1.11 2016/11/01 17:06:59 taca Exp $ | 1 | $NetBSD: distinfo,v 1.12 2017/04/09 04:12:39 wen Exp $ | |
2 | 2 | |||
3 | SHA1 (unicorn-5.2.0.gem) = 1a8d36d928c04269698307b6f2c0b3371c0b4529 | 3 | SHA1 (unicorn-5.3.0.gem) = 4f0223516cb2899089eef242896e1a9995bc8add | |
4 | RMD160 (unicorn-5.2.0.gem) = e272e55979ac5cd28e794306a504e8b348fc05ab | 4 | RMD160 (unicorn-5.3.0.gem) = 6621ffe05fef37512e91003d394e0c01775f8588 | |
5 | SHA512 (unicorn-5.2.0.gem) = d60b4ae818444407466815366c09f702863f0d8fd7a3745419dbf01c86f8f67ebe547aa0f76acb364c34c544ef9ed6811e61525573f97e26e489d5166784ae1e | 5 | SHA512 (unicorn-5.3.0.gem) = 5233098910af943041e12c8896a8ec230dec3e5a4115e59c3dcddcf595ed452cdfdee171bba317d8a06349f999046f804edbd16615ac0140e12605a6c971a906 | |
6 | Size (unicorn-5.2.0.gem) = 212480 bytes | 6 | Size (unicorn-5.3.0.gem) = 216576 bytes |