Hi ports@,

This is an update for www/py-gunicorn from 19.9.0 to 20.0.4.
Here's a list of changes to the software:

20.0.4

* fix binding a socket using the file descriptor
* remove support for the bdist_rpm build

20.0.3

* fixed load of a config file without a Python extension
* fixed socketfromfd.fromfd when defaults are not set

20.0.2

* fix changelog

20.0.1

* fixed the way the config module is loaded. __file__ is now available
* fixed wsgi.input_terminated. It is always true.
* use the highest protocol version of openssl by default
* only support Python >= 3.5
* added __repr__ method to Config instance
* fixed support of AIX platform and musl libc in socketfromfd.fromfd
  function
* fixed support of applications loaded from a factory function
* fixed chunked encoding support to prevent any request smuggling
  
<https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn>_
* Capture os.sendfile before patching in gevent and eventlet workers.
* fix RecursionError.
* removed locking in reloader when adding new files
* load the WSGI application before the loader to pick up all files

20.0

* Fixed fdopen RuntimeWarning in Python 3.8
* Added check and exception for str type on value in Response
  process_headers method.
* Ensure WSGI header value is string before conducting regex search on
  it.
* Added pypy3 to list of tested environments
* Grouped StopIteration and KeyboardInterrupt exceptions with same body
  together in Arbiter.run()
* Added setproctitle module to extras_require in setup.py
* Avoid unnecessary chown of temporary files
* Logging: Handle auth type case insensitively
* Removed util.import_module
* Removed fallback for types.SimpleNamespace in tests utils
* Use SourceFileLoader instead instead of execfile_
* Use importlib instead of __import__ and eval`
* Fixed eventlet patching
* Added optional datadog <https://www.datadoghq.com>_ tags for statsd
  metrics
* Header values now are encoded using latin-1, not ascii.
* Rewritten parse_address util added test
* Removed redundant super() arguments
* Simplify futures import in gthread module
* Fixed worker_connections` setting to also affects the Gthread worker
  type
* Fixed setting max_requests
* Bump minimum Eventlet and Gevent versions to 0.24 and 1.4
* Use Python default SSL cipher list by default
* handle wsgi.input_terminated extension
* Simplify Paste Deployment documentation
* Fix root logging: root and logger are same level.
* Fixed typo in ssl_version documentation
* Documented systemd deployement unit examples
* Added systemd sd_notify support
* Fixed typo in gthread.py
* Added tornado <https://www.tornadoweb.org/>_ 5 and 6 support
* Declare our setuptools dependency
* Added support to --bind to open file descriptors
* Document how to serve WSGI app modules from Gunicorn
* Provide guidance on X-Forwarded-For access log in documentation
* Add support for named constants in the --ssl-version flag
* Clarify log format usage of header & environment in documentation
* Fixed systemd documentation to properly setup gunicorn unix socket
* Prevent removal unix socket for reuse_port
* Fix ResourceWarning when reading a Python config module
* Remove unnecessary call to dict keys method
* Support str and bytes for UNIX socket addresses
* fixed InotifyReloadeder: handle module.__file__ is None
* /dev/shm as a convenient alternative to making your own tmpfs mount in
  fchmod FAQ
* fix examples to work on python3
* Fix typo in --max-requests documentation
* Clear tornado ioloop before os.fork
* Miscellaneous fixes and improvement for linting using Pylint

About the port itself, I made it py3 only, as the consumers are already
py3 only.
All tests pass for me on amd64.  The consumers for this port both have
NO_TEST=yes.  For reference they are:

* www/puppetboard
* www/py-aiohttp
  (I tried to update this one and enable tests.  I gave up because some
  tests try to contact secure.aiohttp.io which does not even resolve for
  me ...)

Comments and/or ok welcome.

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/www/py-gunicorn/Makefile,v
retrieving revision 1.23
diff -u -p -r1.23 Makefile
--- Makefile    12 Jul 2019 20:51:01 -0000      1.23
+++ Makefile    8 Mar 2020 17:53:18 -0000
@@ -2,11 +2,10 @@
 
 COMMENT =              Python WSGI HTTP server
 
-MODPY_EGG_VERSION =    19.9.0
+MODPY_EGG_VERSION =    20.0.4
 DISTNAME =             gunicorn-${MODPY_EGG_VERSION}
 PKGNAME =              py-${DISTNAME}
 CATEGORIES =           www
-REVISION =             0
 
 HOMEPAGE =             http://gunicorn.org/
 
@@ -16,26 +15,19 @@ PERMIT_PACKAGE =    Yes
 MODULES =              lang/python
 MODPY_PI =             Yes
 MODPY_SETUPTOOLS =     Yes
+MODPY_PYTEST =         Yes
 
 FLAVORS =              python3
-FLAVOR ?=
+FLAVOR =               python3
 
-# py-aiohttp and py-multidict are python3 only
-.if ${FLAVOR:Mpython3}
 RUN_DEPENDS +=         www/py-aiohttp \
                        www/py-multidict
-.endif
+
 TEST_DEPENDS =         devel/py-coverage${MODPY_FLAVOR} \
                        devel/py-test${MODPY_FLAVOR} \
                        devel/py-test-cov${MODPY_FLAVOR} \
                        ${BASE_PKGPATH}=${MODPY_EGG_VERSION}
-.if ! ${FLAVOR:Mpython3}
-TEST_DEPENDS +=                devel/py-mock
-.endif
 
-post-install:
-       for i in ${PREFIX}/bin/*; do \
-               mv $${i} $${i}${MODPY_BIN_SUFFIX} ;\
-       done
+TEST_DEPENDS +=                devel/py-mock
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/www/py-gunicorn/distinfo,v
retrieving revision 1.14
diff -u -p -r1.14 distinfo
--- distinfo    24 Apr 2019 20:14:08 -0000      1.14
+++ distinfo    8 Mar 2020 17:56:07 -0000
@@ -1,2 +1,2 @@
-SHA256 (gunicorn-19.9.0.tar.gz) = +iZiCXxm+SD1P3BiHGxYyko8TTQ0IF5gjhIbWztx9PM=
-SIZE (gunicorn-19.9.0.tar.gz) = 415774
+SHA256 (gunicorn-20.0.4.tar.gz) = GQS7K4pDZYgHEI1Zw/PVbCthIacBFh3g3fmtFABzxiY=
+SIZE (gunicorn-20.0.4.tar.gz) = 373841
Index: patches/patch-requirements_test_txt
===================================================================
RCS file: patches/patch-requirements_test_txt
diff -N patches/patch-requirements_test_txt
--- patches/patch-requirements_test_txt 24 Apr 2019 20:14:08 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-$OpenBSD: patch-requirements_test_txt,v 1.4 2019/04/24 20:14:08 sthen Exp $
-
-Relax overly strict requirements
-
-Index: requirements_test.txt
---- requirements_test.txt.orig
-+++ requirements_test.txt
-@@ -1,3 +1,3 @@
--coverage>=4.0,<4.4  # TODO: https://github.com/benoitc/gunicorn/issues/1548
--pytest==3.2.5  # TODO: upgrade to latest version requires drop support to 
Python 2.6
--pytest-cov==2.5.1
-+coverage
-+pytest
-+pytest-cov
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/www/py-gunicorn/pkg/PLIST,v
retrieving revision 1.9
diff -u -p -r1.9 PLIST
--- pkg/PLIST   24 Apr 2019 20:14:08 -0000      1.9
+++ pkg/PLIST   8 Mar 2020 18:04:58 -0000
@@ -1,6 +1,7 @@
 @comment $OpenBSD: PLIST,v 1.9 2019/04/24 20:14:08 sthen Exp $
-bin/gunicorn${MODPY_BIN_SUFFIX}
-bin/gunicorn_paster${MODPY_BIN_SUFFIX}
+@conflict py-gunicorn-*
+@pkgpath www/py-gunicorn
+bin/gunicorn
 lib/python${MODPY_VERSION}/site-packages/gunicorn/
 
lib/python${MODPY_VERSION}/site-packages/gunicorn-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
 
lib/python${MODPY_VERSION}/site-packages/gunicorn-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
@@ -13,21 +14,16 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/gunicorn/__init__.py
 
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}/
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}_compat.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}arbiter.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}argparse_compat.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}debug.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}errors.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}glogging.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}pidfile.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}reloader.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}selectors.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}six.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}sock.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}systemd.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/_compat.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/app/
 lib/python${MODPY_VERSION}/site-packages/gunicorn/app/__init__.py
 
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/gunicorn/app/${MODPY_PYCACHE}/
@@ -39,7 +35,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/gunicorn/app/pasterapp.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/app/wsgiapp.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/arbiter.py
-lib/python${MODPY_VERSION}/site-packages/gunicorn/argparse_compat.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/config.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/debug.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/errors.py
@@ -48,14 +43,12 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/gunicorn/http/__init__.py
 
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}/
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}_sendfile.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}body.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}errors.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}message.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}parser.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}unreader.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/http/${MODPY_PYCACHE}wsgi.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/http/_sendfile.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/http/body.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/http/errors.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/http/message.py
@@ -70,8 +63,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/gunicorn/instrument/statsd.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/pidfile.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/reloader.py
-lib/python${MODPY_VERSION}/site-packages/gunicorn/selectors.py
-lib/python${MODPY_VERSION}/site-packages/gunicorn/six.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/sock.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/systemd.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/util.py
@@ -79,20 +70,16 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/__init__.py
 
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}/
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}_gaiohttp.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}base_async.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}gaiohttp.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}geventlet.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}ggevent.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}gthread.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}gtornado.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}sync.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/${MODPY_PYCACHE}workertmp.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/_gaiohttp.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/base.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/base_async.py
-lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/gaiohttp.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/geventlet.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/ggevent.py
 lib/python${MODPY_VERSION}/site-packages/gunicorn/workers/gthread.py

-- 
Paco Esteban.
0x5818130B8A6DBC03

Reply via email to