19.7.1 / 2017/03/21

===================
- fix: continue if SO_REUSEPORT seems to be available but fails (:issue:`1480`)
- fix: support non-decimal values for the umask command line option (:issue:`1325`)

19.7.0 / 2017/03/01
===================
- The previously deprecated ``gunicorn_django`` command has been removed.
  Use the :ref:`gunicorn-cmd` command-line interface instead.
- The previously deprecated ``django_settings`` setting has been removed.
  Use the :ref:`raw-env` setting instead.
- The default value of :ref:`ssl-version` has been changed from
  ``ssl.PROTOCOL_TLSv1`` to ``ssl.PROTOCOL_SSLv23``.
- fix: initialize the group access list when initgroups is set (:issue:`1297`)
- add environment variables to gunicorn access log format (:issue:`1291`)
- add --paste-global-conf option (:issue:`1304`)
- fix: print access logs to STDOUT (:issue:`1184`)
- remove upper limit on max header size config (:issue:`1313`)
- fix: print original exception on AppImportError (:issue:`1334`)
- use SO_REUSEPORT if available (:issue:`1344`)
- `fix leak <b4c41481e2>`_ of duplicate file descriptor for bound sockets.
- add --reload-engine option, support inotify and other backends (:issue:`1368`, :issue:`1459`)
- fix: reject request with invalid HTTP versions
- add ``child_exit`` callback (:issue:`1394`)
- add support for eventlets _AlreadyHandled object (:issue:`1406`)
- format boot tracebacks properly with reloader (:issue:`1408`)
- refactor socket activation and fd inheritance for better support of SystemD (:issue:`1310`)
- fix: o fds are given by default in gunicorn (:issue:`1423`)
- add ability to pass settings to GUNICORN_CMD_ARGS environment variable which helps in container world (:issue:`1385`)
- fix: catch access denied to pid file (:issue:`1091`)
-  many additions and improvements to the documentation
This commit is contained in:
adam 2017-04-14 13:24:30 +00:00
parent b8b2ceb9b0
commit 29b11d5e04
4 changed files with 93 additions and 142 deletions

View file

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.8 2016/10/01 14:15:04 wen Exp $
# $NetBSD: Makefile,v 1.9 2017/04/14 13:24:30 adam Exp $
DISTNAME= gunicorn-19.6.0
DISTNAME= gunicorn-19.7.1
CATEGORIES= www
MASTER_SITES= ${MASTER_SITE_PYPI:=g/gunicorn/}
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
@ -12,7 +12,6 @@ LICENSE= mit
# These depends is used for test
BUILD_DEPENDS+= ${PYPKGPREFIX}-test-cov>=0:../../devel/py-test-cov
BUILD_DEPENDS+= ${PYPKGPREFIX}-test-cov>=0:../../devel/py-test-cov
USE_TOOLS+= pax
@ -20,10 +19,6 @@ DOCDIR= ${PREFIX}/share/doc/py-gunicorn
EXAMPLESDIR= ${PREFIX}/share/examples/py-gunicorn
AUTO_MKDIRS= yes
# https://github.com/benoitc/gunicorn/issues/1108
# according to upstream it is fine that one file does not
# compile with python-2.x because it won't be used there
post-install:
cd ${WRKSRC}/docs/source && pax -wr -pma *.rst \
${DESTDIR}${DOCDIR}

View file

@ -1,6 +1,5 @@
@comment $NetBSD: PLIST,v 1.6 2016/10/01 14:15:04 wen Exp $
@comment $NetBSD: PLIST,v 1.7 2017/04/14 13:24:30 adam Exp $
bin/gunicorn
bin/gunicorn_django
bin/gunicorn_paster
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
@ -9,137 +8,125 @@ ${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
${PYSITELIB}/gunicorn/__init__.py
${PYSITELIB}/gunicorn/__init__.pyo
${PYSITELIB}/gunicorn/__init__.pyc
${PYSITELIB}/gunicorn/_compat.pyo
${PYSITELIB}/gunicorn/_compat.pyc
${PYSITELIB}/gunicorn/arbiter.pyo
${PYSITELIB}/gunicorn/arbiter.pyc
${PYSITELIB}/gunicorn/argparse_compat.pyo
${PYSITELIB}/gunicorn/argparse_compat.pyc
${PYSITELIB}/gunicorn/config.pyo
${PYSITELIB}/gunicorn/config.pyc
${PYSITELIB}/gunicorn/debug.pyo
${PYSITELIB}/gunicorn/debug.pyc
${PYSITELIB}/gunicorn/errors.pyo
${PYSITELIB}/gunicorn/errors.pyc
${PYSITELIB}/gunicorn/glogging.pyo
${PYSITELIB}/gunicorn/glogging.pyc
${PYSITELIB}/gunicorn/pidfile.pyo
${PYSITELIB}/gunicorn/pidfile.pyc
${PYSITELIB}/gunicorn/reloader.pyo
${PYSITELIB}/gunicorn/reloader.pyc
${PYSITELIB}/gunicorn/selectors.pyo
${PYSITELIB}/gunicorn/selectors.pyc
${PYSITELIB}/gunicorn/six.pyo
${PYSITELIB}/gunicorn/six.pyc
${PYSITELIB}/gunicorn/sock.pyo
${PYSITELIB}/gunicorn/sock.pyc
${PYSITELIB}/gunicorn/util.pyo
${PYSITELIB}/gunicorn/util.pyc
${PYSITELIB}/gunicorn/__init__.pyo
${PYSITELIB}/gunicorn/_compat.py
${PYSITELIB}/gunicorn/_compat.pyc
${PYSITELIB}/gunicorn/_compat.pyo
${PYSITELIB}/gunicorn/app/__init__.py
${PYSITELIB}/gunicorn/app/__init__.pyo
${PYSITELIB}/gunicorn/app/__init__.pyc
${PYSITELIB}/gunicorn/app/base.pyo
${PYSITELIB}/gunicorn/app/base.pyc
${PYSITELIB}/gunicorn/app/django_wsgi.pyo
${PYSITELIB}/gunicorn/app/django_wsgi.pyc
${PYSITELIB}/gunicorn/app/djangoapp.pyo
${PYSITELIB}/gunicorn/app/djangoapp.pyc
${PYSITELIB}/gunicorn/app/pasterapp.pyo
${PYSITELIB}/gunicorn/app/pasterapp.pyc
${PYSITELIB}/gunicorn/app/wsgiapp.pyo
${PYSITELIB}/gunicorn/app/wsgiapp.pyc
${PYSITELIB}/gunicorn/app/__init__.pyo
${PYSITELIB}/gunicorn/app/base.py
${PYSITELIB}/gunicorn/app/django_wsgi.py
${PYSITELIB}/gunicorn/app/djangoapp.py
${PYSITELIB}/gunicorn/app/base.pyc
${PYSITELIB}/gunicorn/app/base.pyo
${PYSITELIB}/gunicorn/app/pasterapp.py
${PYSITELIB}/gunicorn/app/pasterapp.pyc
${PYSITELIB}/gunicorn/app/pasterapp.pyo
${PYSITELIB}/gunicorn/app/wsgiapp.py
${PYSITELIB}/gunicorn/app/wsgiapp.pyc
${PYSITELIB}/gunicorn/app/wsgiapp.pyo
${PYSITELIB}/gunicorn/arbiter.py
${PYSITELIB}/gunicorn/arbiter.pyc
${PYSITELIB}/gunicorn/arbiter.pyo
${PYSITELIB}/gunicorn/argparse_compat.py
${PYSITELIB}/gunicorn/argparse_compat.pyc
${PYSITELIB}/gunicorn/argparse_compat.pyo
${PYSITELIB}/gunicorn/config.py
${PYSITELIB}/gunicorn/config.pyc
${PYSITELIB}/gunicorn/config.pyo
${PYSITELIB}/gunicorn/debug.py
${PYSITELIB}/gunicorn/debug.pyc
${PYSITELIB}/gunicorn/debug.pyo
${PYSITELIB}/gunicorn/errors.py
${PYSITELIB}/gunicorn/errors.pyc
${PYSITELIB}/gunicorn/errors.pyo
${PYSITELIB}/gunicorn/glogging.py
${PYSITELIB}/gunicorn/glogging.pyc
${PYSITELIB}/gunicorn/glogging.pyo
${PYSITELIB}/gunicorn/http/__init__.py
${PYSITELIB}/gunicorn/http/__init__.pyo
${PYSITELIB}/gunicorn/http/__init__.pyc
${PYSITELIB}/gunicorn/http/_sendfile.pyo
${PYSITELIB}/gunicorn/http/_sendfile.pyc
${PYSITELIB}/gunicorn/http/body.pyo
${PYSITELIB}/gunicorn/http/body.pyc
${PYSITELIB}/gunicorn/http/errors.pyo
${PYSITELIB}/gunicorn/http/errors.pyc
${PYSITELIB}/gunicorn/http/message.pyo
${PYSITELIB}/gunicorn/http/message.pyc
${PYSITELIB}/gunicorn/http/parser.pyo
${PYSITELIB}/gunicorn/http/parser.pyc
${PYSITELIB}/gunicorn/http/unreader.pyo
${PYSITELIB}/gunicorn/http/unreader.pyc
${PYSITELIB}/gunicorn/http/wsgi.pyo
${PYSITELIB}/gunicorn/http/wsgi.pyc
${PYSITELIB}/gunicorn/http/__init__.pyo
${PYSITELIB}/gunicorn/http/_sendfile.py
${PYSITELIB}/gunicorn/http/_sendfile.pyc
${PYSITELIB}/gunicorn/http/_sendfile.pyo
${PYSITELIB}/gunicorn/http/body.py
${PYSITELIB}/gunicorn/http/body.pyc
${PYSITELIB}/gunicorn/http/body.pyo
${PYSITELIB}/gunicorn/http/errors.py
${PYSITELIB}/gunicorn/http/errors.pyc
${PYSITELIB}/gunicorn/http/errors.pyo
${PYSITELIB}/gunicorn/http/message.py
${PYSITELIB}/gunicorn/http/message.pyc
${PYSITELIB}/gunicorn/http/message.pyo
${PYSITELIB}/gunicorn/http/parser.py
${PYSITELIB}/gunicorn/http/parser.pyc
${PYSITELIB}/gunicorn/http/parser.pyo
${PYSITELIB}/gunicorn/http/unreader.py
${PYSITELIB}/gunicorn/http/unreader.pyc
${PYSITELIB}/gunicorn/http/unreader.pyo
${PYSITELIB}/gunicorn/http/wsgi.py
${PYSITELIB}/gunicorn/http/wsgi.pyc
${PYSITELIB}/gunicorn/http/wsgi.pyo
${PYSITELIB}/gunicorn/instrument/__init__.py
${PYSITELIB}/gunicorn/instrument/__init__.pyo
${PYSITELIB}/gunicorn/instrument/__init__.pyc
${PYSITELIB}/gunicorn/instrument/statsd.pyo
${PYSITELIB}/gunicorn/instrument/statsd.pyc
${PYSITELIB}/gunicorn/instrument/__init__.pyo
${PYSITELIB}/gunicorn/instrument/statsd.py
${PYSITELIB}/gunicorn/management/__init__.py
${PYSITELIB}/gunicorn/management/__init__.pyo
${PYSITELIB}/gunicorn/management/__init__.pyc
${PYSITELIB}/gunicorn/management/commands/__init__.py
${PYSITELIB}/gunicorn/management/commands/__init__.pyo
${PYSITELIB}/gunicorn/management/commands/__init__.pyc
${PYSITELIB}/gunicorn/management/commands/run_gunicorn.pyo
${PYSITELIB}/gunicorn/management/commands/run_gunicorn.pyc
${PYSITELIB}/gunicorn/management/commands/run_gunicorn.py
${PYSITELIB}/gunicorn/instrument/statsd.pyc
${PYSITELIB}/gunicorn/instrument/statsd.pyo
${PYSITELIB}/gunicorn/pidfile.py
${PYSITELIB}/gunicorn/pidfile.pyc
${PYSITELIB}/gunicorn/pidfile.pyo
${PYSITELIB}/gunicorn/reloader.py
${PYSITELIB}/gunicorn/reloader.pyc
${PYSITELIB}/gunicorn/reloader.pyo
${PYSITELIB}/gunicorn/selectors.py
${PYSITELIB}/gunicorn/selectors.pyc
${PYSITELIB}/gunicorn/selectors.pyo
${PYSITELIB}/gunicorn/six.py
${PYSITELIB}/gunicorn/six.pyc
${PYSITELIB}/gunicorn/six.pyo
${PYSITELIB}/gunicorn/sock.py
${PYSITELIB}/gunicorn/sock.pyc
${PYSITELIB}/gunicorn/sock.pyo
${PYSITELIB}/gunicorn/systemd.py
${PYSITELIB}/gunicorn/systemd.pyc
${PYSITELIB}/gunicorn/systemd.pyo
${PYSITELIB}/gunicorn/util.py
${PYSITELIB}/gunicorn/util.pyc
${PYSITELIB}/gunicorn/util.pyo
${PYSITELIB}/gunicorn/workers/__init__.py
${PYSITELIB}/gunicorn/workers/__init__.pyo
${PYSITELIB}/gunicorn/workers/__init__.pyc
${PYSITELIB}/gunicorn/workers/_gaiohttp.pyo
${PYSITELIB}/gunicorn/workers/_gaiohttp.pyc
${PYSITELIB}/gunicorn/workers/async.pyo
${PYSITELIB}/gunicorn/workers/async.pyc
${PYSITELIB}/gunicorn/workers/base.pyo
${PYSITELIB}/gunicorn/workers/base.pyc
${PYSITELIB}/gunicorn/workers/gaiohttp.pyo
${PYSITELIB}/gunicorn/workers/gaiohttp.pyc
${PYSITELIB}/gunicorn/workers/geventlet.pyo
${PYSITELIB}/gunicorn/workers/geventlet.pyc
${PYSITELIB}/gunicorn/workers/ggevent.pyo
${PYSITELIB}/gunicorn/workers/ggevent.pyc
${PYSITELIB}/gunicorn/workers/gthread.pyo
${PYSITELIB}/gunicorn/workers/gthread.pyc
${PYSITELIB}/gunicorn/workers/gtornado.pyo
${PYSITELIB}/gunicorn/workers/gtornado.pyc
${PYSITELIB}/gunicorn/workers/sync.pyo
${PYSITELIB}/gunicorn/workers/sync.pyc
${PYSITELIB}/gunicorn/workers/workertmp.pyo
${PYSITELIB}/gunicorn/workers/workertmp.pyc
${PYSITELIB}/gunicorn/workers/__init__.pyo
${PYSITELIB}/gunicorn/workers/_gaiohttp.py
${PLIST.py3x}${PYSITELIB}/gunicorn/workers/_gaiohttp.pyc
${PLIST.py3x}${PYSITELIB}/gunicorn/workers/_gaiohttp.pyo
${PYSITELIB}/gunicorn/workers/async.py
${PYSITELIB}/gunicorn/workers/async.pyc
${PYSITELIB}/gunicorn/workers/async.pyo
${PYSITELIB}/gunicorn/workers/base.py
${PYSITELIB}/gunicorn/workers/base.pyc
${PYSITELIB}/gunicorn/workers/base.pyo
${PYSITELIB}/gunicorn/workers/gaiohttp.py
${PYSITELIB}/gunicorn/workers/gaiohttp.pyc
${PYSITELIB}/gunicorn/workers/gaiohttp.pyo
${PYSITELIB}/gunicorn/workers/geventlet.py
${PYSITELIB}/gunicorn/workers/geventlet.pyc
${PYSITELIB}/gunicorn/workers/geventlet.pyo
${PYSITELIB}/gunicorn/workers/ggevent.py
${PYSITELIB}/gunicorn/workers/ggevent.pyc
${PYSITELIB}/gunicorn/workers/ggevent.pyo
${PYSITELIB}/gunicorn/workers/gthread.py
${PYSITELIB}/gunicorn/workers/gthread.pyc
${PYSITELIB}/gunicorn/workers/gthread.pyo
${PYSITELIB}/gunicorn/workers/gtornado.py
${PYSITELIB}/gunicorn/workers/gtornado.pyc
${PYSITELIB}/gunicorn/workers/gtornado.pyo
${PYSITELIB}/gunicorn/workers/sync.py
${PYSITELIB}/gunicorn/workers/sync.pyc
${PYSITELIB}/gunicorn/workers/sync.pyo
${PYSITELIB}/gunicorn/workers/workertmp.py
${PYSITELIB}/gunicorn/workers/workertmp.pyc
${PYSITELIB}/gunicorn/workers/workertmp.pyo
share/doc/py-gunicorn/2010-news.rst
share/doc/py-gunicorn/2011-news.rst
share/doc/py-gunicorn/2012-news.rst
@ -147,6 +134,7 @@ share/doc/py-gunicorn/2013-news.rst
share/doc/py-gunicorn/2014-news.rst
share/doc/py-gunicorn/2015-news.rst
share/doc/py-gunicorn/2016-news.rst
share/doc/py-gunicorn/2017-news.rst
share/doc/py-gunicorn/community.rst
share/doc/py-gunicorn/configure.rst
share/doc/py-gunicorn/custom.rst
@ -183,40 +171,6 @@ share/examples/py-gunicorn/frameworks/django/testing/testing/urls.py
share/examples/py-gunicorn/frameworks/django/testing/testing/wsgi.py
share/examples/py-gunicorn/frameworks/flask_sendfile.py
share/examples/py-gunicorn/frameworks/flaskapp.py
share/examples/py-gunicorn/frameworks/ittyapp.py
share/examples/py-gunicorn/frameworks/pylonstest/MANIFEST.in
share/examples/py-gunicorn/frameworks/pylonstest/README.txt
share/examples/py-gunicorn/frameworks/pylonstest/development.ini
share/examples/py-gunicorn/frameworks/pylonstest/development2.ini
share/examples/py-gunicorn/frameworks/pylonstest/docs/index.txt
share/examples/py-gunicorn/frameworks/pylonstest/ez_setup.py
share/examples/py-gunicorn/frameworks/pylonstest/nose.ini
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/config/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/config/deployment.ini_tmpl
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/config/environment.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/config/middleware.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/config/routing.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/controllers/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/controllers/error.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/controllers/hello.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/lib/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/lib/app_globals.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/lib/base.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/lib/helpers.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/model/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/public/bg.png
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/public/favicon.ico
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/public/index.html
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/public/pylons-logo.gif
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/tests/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/tests/functional/__init__.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/tests/functional/test_hello.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/tests/test_models.py
share/examples/py-gunicorn/frameworks/pylonstest/pylonstest/websetup.py
share/examples/py-gunicorn/frameworks/pylonstest/setup.cfg
share/examples/py-gunicorn/frameworks/pylonstest/setup.py
share/examples/py-gunicorn/frameworks/pylonstest/test.ini
share/examples/py-gunicorn/frameworks/pyramidapp.py
share/examples/py-gunicorn/frameworks/tornadoapp.py
share/examples/py-gunicorn/frameworks/webpyapp.py

View file

@ -1,7 +1,7 @@
$NetBSD: distinfo,v 1.5 2016/10/01 14:15:04 wen Exp $
$NetBSD: distinfo,v 1.6 2017/04/14 13:24:30 adam Exp $
SHA1 (gunicorn-19.6.0.tar.gz) = ec049362953567e1acdc16e74c0c337301bc4867
RMD160 (gunicorn-19.6.0.tar.gz) = d2bb8980907294466b9cce803ed4df8b007caea4
SHA512 (gunicorn-19.6.0.tar.gz) = 50b69ae18acc6f60be6fc5c6f4a867d8415d32009a1f959155b58502d52403a057612e97d6c9b69ec068ee5af7b9b045952a636a5edf4713a1249492611be479
Size (gunicorn-19.6.0.tar.gz) = 404497 bytes
SHA1 (patch-requirements__test.txt) = 37ab001b68d957df9667377e34af6d1a38e71c59
SHA1 (gunicorn-19.7.1.tar.gz) = e4d9f55744bf4198f71d29f61f9eeaf9d216ecac
RMD160 (gunicorn-19.7.1.tar.gz) = d5c2505b8de371a5b9fd9c3512c217e3666f5b63
SHA512 (gunicorn-19.7.1.tar.gz) = ee01276028ad65c72076f09d95b6801a720700ec55d9b0bf929e0a6c0db546178a21c34f584ef1780f329218b2cfa3dc1e0c2d81bd4f7fcb0b328fbdfb0b9f0e
Size (gunicorn-19.7.1.tar.gz) = 402658 bytes
SHA1 (patch-requirements__test.txt) = 4ba4d4af3e979932694bb6b2d434d584ffdc7563

View file

@ -1,9 +1,11 @@
$NetBSD: patch-requirements__test.txt,v 1.1 2016/10/01 14:15:04 wen Exp $
$NetBSD: patch-requirements__test.txt,v 1.2 2017/04/14 13:24:30 adam Exp $
Use pytest and pytest-con in pkgsrc to avoid download.
--- requirements_test.txt.orig 2016-10-01 14:02:06.000000000 +0000
+++ requirements_test.txt
@@ -1,2 +1,2 @@
-pytest==2.8.3
-pytest-cov==1.7.0
+pytest>=2.8.3
+pytest-cov>=1.7.0
-pytest==3.0.5
-pytest-cov==2.4.0
+pytest>=3.0.5
+pytest-cov>=2.4.0