6ca2134a89
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 linux
167 lines
5.8 KiB
Text
167 lines
5.8 KiB
Text
@comment $NetBSD: PLIST,v 1.12 2017/04/09 04:12:39 wen Exp $
|
|
bin/unicorn${RUBY_SUFFIX}
|
|
bin/unicorn_rails${RUBY_SUFFIX}
|
|
${GEM_HOME}/cache/${GEM_NAME}.gem
|
|
${GEM_EXTSDIR}/gem.build_complete
|
|
${GEM_EXTSDIR}/unicorn_http.${RUBY_DLEXT}
|
|
${GEM_LIBDIR}/.CHANGELOG.old
|
|
${GEM_LIBDIR}/.document
|
|
${GEM_LIBDIR}/.gitattributes
|
|
${GEM_LIBDIR}/.gitignore
|
|
${GEM_LIBDIR}/.mailmap
|
|
${GEM_LIBDIR}/.manifest
|
|
${GEM_LIBDIR}/.olddoc.yml
|
|
${GEM_LIBDIR}/Application_Timeouts
|
|
${GEM_LIBDIR}/CONTRIBUTORS
|
|
${GEM_LIBDIR}/COPYING
|
|
${GEM_LIBDIR}/DESIGN
|
|
${GEM_LIBDIR}/Documentation/.gitignore
|
|
${GEM_LIBDIR}/Documentation/GNUmakefile
|
|
${GEM_LIBDIR}/Documentation/unicorn.1.txt
|
|
${GEM_LIBDIR}/Documentation/unicorn_rails.1.txt
|
|
${GEM_LIBDIR}/FAQ
|
|
${GEM_LIBDIR}/GIT-VERSION-FILE
|
|
${GEM_LIBDIR}/GIT-VERSION-GEN
|
|
${GEM_LIBDIR}/GNUmakefile
|
|
${GEM_LIBDIR}/HACKING
|
|
${GEM_LIBDIR}/ISSUES
|
|
${GEM_LIBDIR}/KNOWN_ISSUES
|
|
${GEM_LIBDIR}/LATEST
|
|
${GEM_LIBDIR}/LICENSE
|
|
${GEM_LIBDIR}/Links
|
|
${GEM_LIBDIR}/NEWS
|
|
${GEM_LIBDIR}/PHILOSOPHY
|
|
${GEM_LIBDIR}/README
|
|
${GEM_LIBDIR}/Rakefile
|
|
${GEM_LIBDIR}/SIGNALS
|
|
${GEM_LIBDIR}/Sandbox
|
|
${GEM_LIBDIR}/TODO
|
|
${GEM_LIBDIR}/TUNING
|
|
${GEM_LIBDIR}/archive/.gitignore
|
|
${GEM_LIBDIR}/archive/slrnpull.conf
|
|
${GEM_LIBDIR}/bin/unicorn
|
|
${GEM_LIBDIR}/bin/unicorn_rails
|
|
${GEM_LIBDIR}/examples/big_app_gc.rb
|
|
${GEM_LIBDIR}/examples/echo.ru
|
|
${GEM_LIBDIR}/examples/init.sh
|
|
${GEM_LIBDIR}/examples/logger_mp_safe.rb
|
|
${GEM_LIBDIR}/examples/logrotate.conf
|
|
${GEM_LIBDIR}/examples/nginx.conf
|
|
${GEM_LIBDIR}/examples/unicorn.conf.minimal.rb
|
|
${GEM_LIBDIR}/examples/unicorn.conf.rb
|
|
${GEM_LIBDIR}/examples/unicorn.socket
|
|
${GEM_LIBDIR}/examples/unicorn@.service
|
|
${GEM_LIBDIR}/ext/unicorn_http/CFLAGS
|
|
${GEM_LIBDIR}/ext/unicorn_http/c_util.h
|
|
${GEM_LIBDIR}/ext/unicorn_http/common_field_optimization.h
|
|
${GEM_LIBDIR}/ext/unicorn_http/ext_help.h
|
|
${GEM_LIBDIR}/ext/unicorn_http/extconf.rb
|
|
${GEM_LIBDIR}/ext/unicorn_http/global_variables.h
|
|
${GEM_LIBDIR}/ext/unicorn_http/httpdate.c
|
|
${GEM_LIBDIR}/ext/unicorn_http/unicorn_http.c
|
|
${GEM_LIBDIR}/ext/unicorn_http/unicorn_http.rl
|
|
${GEM_LIBDIR}/ext/unicorn_http/unicorn_http_common.rl
|
|
${GEM_LIBDIR}/lib/unicorn.rb
|
|
${GEM_LIBDIR}/lib/unicorn/app/old_rails.rb
|
|
${GEM_LIBDIR}/lib/unicorn/app/old_rails/static.rb
|
|
${GEM_LIBDIR}/lib/unicorn/cgi_wrapper.rb
|
|
${GEM_LIBDIR}/lib/unicorn/configurator.rb
|
|
${GEM_LIBDIR}/lib/unicorn/const.rb
|
|
${GEM_LIBDIR}/lib/unicorn/http_request.rb
|
|
${GEM_LIBDIR}/lib/unicorn/http_response.rb
|
|
${GEM_LIBDIR}/lib/unicorn/http_server.rb
|
|
${GEM_LIBDIR}/lib/unicorn/launcher.rb
|
|
${GEM_LIBDIR}/lib/unicorn/oob_gc.rb
|
|
${GEM_LIBDIR}/lib/unicorn/preread_input.rb
|
|
${GEM_LIBDIR}/lib/unicorn/socket_helper.rb
|
|
${GEM_LIBDIR}/lib/unicorn/stream_input.rb
|
|
${GEM_LIBDIR}/lib/unicorn/tee_input.rb
|
|
${GEM_LIBDIR}/lib/unicorn/tmpio.rb
|
|
${GEM_LIBDIR}/lib/unicorn/util.rb
|
|
${GEM_LIBDIR}/lib/unicorn/version.rb
|
|
${GEM_LIBDIR}/lib/unicorn/worker.rb
|
|
${GEM_LIBDIR}/lib/unicorn_http.${RUBY_DLEXT}
|
|
${GEM_LIBDIR}/man/man1/unicorn.1
|
|
${GEM_LIBDIR}/man/man1/unicorn_rails.1
|
|
${GEM_LIBDIR}/setup.rb
|
|
${GEM_LIBDIR}/t/.gitignore
|
|
${GEM_LIBDIR}/t/GNUmakefile
|
|
${GEM_LIBDIR}/t/README
|
|
${GEM_LIBDIR}/t/bin/content-md5-put
|
|
${GEM_LIBDIR}/t/bin/sha1sum.rb
|
|
${GEM_LIBDIR}/t/bin/unused_listen
|
|
${GEM_LIBDIR}/t/broken-app.ru
|
|
${GEM_LIBDIR}/t/detach.ru
|
|
${GEM_LIBDIR}/t/env.ru
|
|
${GEM_LIBDIR}/t/fails-rack-lint.ru
|
|
${GEM_LIBDIR}/t/heartbeat-timeout.ru
|
|
${GEM_LIBDIR}/t/hijack.ru
|
|
${GEM_LIBDIR}/t/listener_names.ru
|
|
${GEM_LIBDIR}/t/my-tap-lib.sh
|
|
${GEM_LIBDIR}/t/oob_gc.ru
|
|
${GEM_LIBDIR}/t/oob_gc_path.ru
|
|
${GEM_LIBDIR}/t/pid.ru
|
|
${GEM_LIBDIR}/t/preread_input.ru
|
|
${GEM_LIBDIR}/t/rack-input-tests.ru
|
|
${GEM_LIBDIR}/t/t0000-http-basic.sh
|
|
${GEM_LIBDIR}/t/t0001-reload-bad-config.sh
|
|
${GEM_LIBDIR}/t/t0002-config-conflict.sh
|
|
${GEM_LIBDIR}/t/t0002-parser-error.sh
|
|
${GEM_LIBDIR}/t/t0003-working_directory.sh
|
|
${GEM_LIBDIR}/t/t0004-heartbeat-timeout.sh
|
|
${GEM_LIBDIR}/t/t0004-working_directory_broken.sh
|
|
${GEM_LIBDIR}/t/t0005-working_directory_app.rb.sh
|
|
${GEM_LIBDIR}/t/t0006-reopen-logs.sh
|
|
${GEM_LIBDIR}/t/t0006.ru
|
|
${GEM_LIBDIR}/t/t0007-working_directory_no_embed_cli.sh
|
|
${GEM_LIBDIR}/t/t0008-back_out_of_upgrade.sh
|
|
${GEM_LIBDIR}/t/t0009-broken-app.sh
|
|
${GEM_LIBDIR}/t/t0009-winch_ttin.sh
|
|
${GEM_LIBDIR}/t/t0010-reap-logging.sh
|
|
${GEM_LIBDIR}/t/t0011-active-unix-socket.sh
|
|
${GEM_LIBDIR}/t/t0012-reload-empty-config.sh
|
|
${GEM_LIBDIR}/t/t0013-rewindable-input-false.sh
|
|
${GEM_LIBDIR}/t/t0013.ru
|
|
${GEM_LIBDIR}/t/t0014-rewindable-input-true.sh
|
|
${GEM_LIBDIR}/t/t0014.ru
|
|
${GEM_LIBDIR}/t/t0015-configurator-internals.sh
|
|
${GEM_LIBDIR}/t/t0018-write-on-close.sh
|
|
${GEM_LIBDIR}/t/t0019-max_header_len.sh
|
|
${GEM_LIBDIR}/t/t0020-at_exit-handler.sh
|
|
${GEM_LIBDIR}/t/t0021-process_detach.sh
|
|
${GEM_LIBDIR}/t/t0022-listener_names-preload_app.sh
|
|
${GEM_LIBDIR}/t/t0100-rack-input-tests.sh
|
|
${GEM_LIBDIR}/t/t0116-client_body_buffer_size.sh
|
|
${GEM_LIBDIR}/t/t0116.ru
|
|
${GEM_LIBDIR}/t/t0200-rack-hijack.sh
|
|
${GEM_LIBDIR}/t/t0300-no-default-middleware.sh
|
|
${GEM_LIBDIR}/t/t9000-preread-input.sh
|
|
${GEM_LIBDIR}/t/t9001-oob_gc.sh
|
|
${GEM_LIBDIR}/t/t9002-oob_gc-path.sh
|
|
${GEM_LIBDIR}/t/test-lib.sh
|
|
${GEM_LIBDIR}/t/write-on-close.ru
|
|
${GEM_LIBDIR}/test/aggregate.rb
|
|
${GEM_LIBDIR}/test/benchmark/README
|
|
${GEM_LIBDIR}/test/benchmark/dd.ru
|
|
${GEM_LIBDIR}/test/benchmark/stack.ru
|
|
${GEM_LIBDIR}/test/exec/README
|
|
${GEM_LIBDIR}/test/exec/test_exec.rb
|
|
${GEM_LIBDIR}/test/test_helper.rb
|
|
${GEM_LIBDIR}/test/unit/test_ccc.rb
|
|
${GEM_LIBDIR}/test/unit/test_configurator.rb
|
|
${GEM_LIBDIR}/test/unit/test_droplet.rb
|
|
${GEM_LIBDIR}/test/unit/test_http_parser.rb
|
|
${GEM_LIBDIR}/test/unit/test_http_parser_ng.rb
|
|
${GEM_LIBDIR}/test/unit/test_request.rb
|
|
${GEM_LIBDIR}/test/unit/test_response.rb
|
|
${GEM_LIBDIR}/test/unit/test_server.rb
|
|
${GEM_LIBDIR}/test/unit/test_signals.rb
|
|
${GEM_LIBDIR}/test/unit/test_socket_helper.rb
|
|
${GEM_LIBDIR}/test/unit/test_stream_input.rb
|
|
${GEM_LIBDIR}/test/unit/test_tee_input.rb
|
|
${GEM_LIBDIR}/test/unit/test_upload.rb
|
|
${GEM_LIBDIR}/test/unit/test_util.rb
|
|
${GEM_LIBDIR}/unicorn.gemspec
|
|
${GEM_LIBDIR}/unicorn_1
|
|
${GEM_LIBDIR}/unicorn_rails_1
|
|
${GEM_HOME}/specifications/${GEM_NAME}.gemspec
|