From 679313dd8f10a6aa6976e890165f3dea0e06127f3f39bfc200de7f4b107b9397 Mon Sep 17 00:00:00 2001 From: Todd R Date: Thu, 20 Sep 2018 19:37:19 +0000 Subject: [PATCH 1/3] OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cheroot?expand=0&rev=3 --- python-cheroot.changes | 184 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/python-cheroot.changes b/python-cheroot.changes index ad28fb9..03077fb 100644 --- a/python-cheroot.changes +++ b/python-cheroot.changes @@ -1,3 +1,187 @@ +------------------------------------------------------------------- +Thu Sep 20 19:36:47 UTC 2018 - Todd R + +- Update to version 6.5.2 + + Fix import of + cheroot.ssl.pyopenssl by refactoring and separating + cheroot.makefile's stream wrappers. + + Add initial tests for SSL layer with use + of trustme +- Update to version 6.5.1 + + Improve UNIX socket fs access mode + in cheroot.server.HTTPServer.prepare on a file socket + when starting to listen to it. +- Update to version 6.5.0 + + Add support for + validating client certificates. +- Update to version 6.4.0 + + Factor out parts of + cheroot.server.HTTPServer.start into + prepare() and + serve() +- Update to version 6.3.3 + + Fix bug with returning empty result in + cheroot.ssl.builtin.BuiltinSSLAdapter.wrap +- Update to version 6.3.2 + + Respond with HTTP 400 to malicious + Content-Length in request headers. +- Update to version 6.3.1 + + 1Ignore OpenSSL's 1.0+ Error 0 under Python 2 while + wrapping a socket. +- Update to version 6.3.0 + + Add cheroot command and runpy launcher to + launch a WSGI app from the command-line. +- Update to version 6.2.4 + + Fix missing resolve_peer_creds argument in + cheroot.wsgi.Server being bypassed into + cheroot.server.HTTPServer. + + Revert conditional dependencies. System packagers should + honor the dependencies as declared by cheroot, which are defined + intentionally. +- Update to version 6.2.3 + + Skip installing dependencies from backports namespace under + Python 3. +- Update to version 6.2.2 + + Fix regression, causing + ModuleNotFoundError under cygwin. +- Update to version 6.2.1 + + Fix regression, caused by inverted check for Windows OS. + + Add more URLs to distribution metadata +- Update to version 6.2.0 + + Implement PEERCRED lookup over UNIX-socket HTTP connection. + * Discover connected process' PID/UID/GID + * Respect server switches: peercreds_enabled and + peercreds_resolve_enabled + * get_peer_creds and resolve_peer_creds methods on connection + * peer_pid, peer_uid, peer_gid, peer_user and peer_group + properties on connection + * X_REMOTE_PID, X_REMOTE_UID, X_REMOTE_GID, X_REMOTE_USER + (REMOTE_USER) and X_REMOTE_GROUP WSGI environment variables when + enabled and supported + * Per-connection caching to reduce lookup cost +- Update to version 6.1.2 + + Fix regression + * Restore storing bound socket in Windows broken by use of + socket.AF_UNIX +- Update to version 6.1.1 + + Fix regression introduced by :commit:`68a5769`. + * Get back support for socket.AF_UNIX in stored bound address in + cheroot.server.HTTPServer.bind_addr +- Update to version 6.1.0 + + Refactor testsuite to completely rely on pytest. + * Integrate pytest-testmon and pytest-watch + * Stabilise testing + + Implement input termination flag support as + suggested by mitsuhiko in his + wsgi.input_terminated Proposal + + Fix SSL error bypassing. + + Fix WSGI documentation example to support Python 3. + + Send correct conditional HTTP error in helper function. + + Fix headers being unsent before request + closed. Now we double check that they've been sent. + + Minor docs improvements. + + Minor refactoring. +- Update to version 6.0.0 + + Drop support for Python 2.6, 3.1, 3.2, and 3.3. + + Also drop built-in SSL support for Python 2.7 earlier + than 2.7.9. +- Update to version 5.11.0 + + To support webtest applications that feed + absolute URIs to getPage but expect the scheme/host/port to + be ignored (as cheroot 5.8 and earlier did), provide a + strip_netloc helper and recipe for calling it in a subclass. +- Update to version 5.10.0 + + Minor refactorings of cheroot/server.py to reduce redundancy + of behavior. + + Delinting with fewer exceptions. + + Restored license to BSD. +- Update to version 5.9.2 + + Re-release without spurious files in the distribution. +- Update to version 5.9.1 + + Reverted encoding behavior in wsgi module to correct + regression in CherryPy tests. +- Update to version 5.9.0 + + Avoid using SO_REUSEADDR on Windows + where it has different semantics. + + cheroot.tests.webtest adopts the one method that was unique + in CherryPy, now superseding the implementation there. + + Substantial cleanup around compatibility functions (_compat module). + + License unintentionally changed to MIT. BSD still declared and intended. +- Update to version 5.8.3 + + Improve HTTP request line validation: + * Improve HTTP version parsing + + Fix HTTP CONNECT method processing: + * Respond with 405 Method Not Allowed if proxy_mode is False + * Validate that request-target is in authority-form + + Improve tests in test.test_core + + Fix EPROTOTYPE @ Mac OS +- Update to version 5.8.2 + + Add HTTP request line check: + absolute URI path must start with a + forward slash ("/"). +- Update to version 5.8.1 + + CI improvements: + * Add basic working Circle CI v2 config + + Fix URI encoding bug + * Improve cheroot.test.helper.Controller to properly match + unicode +- Update to version 5.8.0 + + CI improvements: + * Switch to native PyPy support in Travis CI + * Take into account pep257 compliant modules + * Build wheel in Appveyor and store it as an artifact + + Improve urllib support in cheroot._compat + + Improve URI parsing: + * Make it compliant with rfc7230, rfc7231 and rfc2616 + * Fix setting of environ['QUERY_STRING'] in WSGI + * Introduce proxy_mode and strict_mode argument in server.HTTPRequest + * Fix decoding of unicode URIs in WSGI 1.0 gateway +- Update to version 5.7.0 + + CI improvements: + * Don't run tests during deploy stage + * Use VM based build job env only for pyenv envs + * Opt-in for beta trusty image @ Travis CI + * Be verbose when running tests (show test names) + * Show xfail/skip details during test run + + Fix _handle_no_ssl error handler calls + + Fix test_conn tests: + * Improve setup_server def in HTTP connection tests + * Fix HTTP streaming tests + * Fix HTTP/1.1 pipelining test under Python 3 + * Fix test_readall_or_close test + * Fix test_No_Message_Body + * Clarify test_598 fail reason + + Add GitHub templates for PR, issue && contributing + + Default HTTP Server header to Cheroot version str + + Cleanup _compat functions from server module +- Update to version 5.6.0 + + Fix all pep257 related errors in all non-test modules. + cheroot/test/* folder is only one left allowed to fail with this linter. + + :cp-issue:`1602` and Optimize chunked body reader loop by returning + empty data is the size is 0. + + Reset buffer if the body size is unknown + + Add missing size hint to SizeCheckWrapper +- Update to version 5.5.2 + + Ignore "unknown error" and "https proxy request" SSL errors. +- Update to version 5.5.1 + + Make Appveyor list separate tests in corresponding tab. + + Configure Travis CI build stages. + Prioritize tests by stages. + Move deploy stage to be run very last after all other stages finish. + + Ignore "Protocol wrong type for socket" (EPROTOTYPE) @ OSX for non-blocking sockets. +- Update to version 5.5.0 + + Instead of a read_headers function, cheroot now + supplies a HeaderReader class to + perform the same function. + Any HTTPRequest object may override + the header_reader attribute to customize the handling of incoming headers. + The server module also presents a provisional implementation of + a DropUnderscoreHeaderReader that will exclude any headers + containing an underscore. It remains an exercise for the + implementer to demonstrate how this functionality might be + employed in a server such as CherryPy. + + Configured TravisCI to run tests under OS X. + ------------------------------------------------------------------- Fri Mar 31 13:39:53 UTC 2017 - jmatejek@suse.com From 62e6dfaeacdfe3626100d524a5407da15a21442758cace42c386389865be1ee0 Mon Sep 17 00:00:00 2001 From: Todd R Date: Thu, 20 Sep 2018 19:37:51 +0000 Subject: [PATCH 2/3] OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cheroot?expand=0&rev=4 --- python-cheroot.changes | 184 ----------------------------------------- 1 file changed, 184 deletions(-) diff --git a/python-cheroot.changes b/python-cheroot.changes index 03077fb..ad28fb9 100644 --- a/python-cheroot.changes +++ b/python-cheroot.changes @@ -1,187 +1,3 @@ -------------------------------------------------------------------- -Thu Sep 20 19:36:47 UTC 2018 - Todd R - -- Update to version 6.5.2 - + Fix import of - cheroot.ssl.pyopenssl by refactoring and separating - cheroot.makefile's stream wrappers. - + Add initial tests for SSL layer with use - of trustme -- Update to version 6.5.1 - + Improve UNIX socket fs access mode - in cheroot.server.HTTPServer.prepare on a file socket - when starting to listen to it. -- Update to version 6.5.0 - + Add support for - validating client certificates. -- Update to version 6.4.0 - + Factor out parts of - cheroot.server.HTTPServer.start into - prepare() and - serve() -- Update to version 6.3.3 - + Fix bug with returning empty result in - cheroot.ssl.builtin.BuiltinSSLAdapter.wrap -- Update to version 6.3.2 - + Respond with HTTP 400 to malicious - Content-Length in request headers. -- Update to version 6.3.1 - + 1Ignore OpenSSL's 1.0+ Error 0 under Python 2 while - wrapping a socket. -- Update to version 6.3.0 - + Add cheroot command and runpy launcher to - launch a WSGI app from the command-line. -- Update to version 6.2.4 - + Fix missing resolve_peer_creds argument in - cheroot.wsgi.Server being bypassed into - cheroot.server.HTTPServer. - + Revert conditional dependencies. System packagers should - honor the dependencies as declared by cheroot, which are defined - intentionally. -- Update to version 6.2.3 - + Skip installing dependencies from backports namespace under - Python 3. -- Update to version 6.2.2 - + Fix regression, causing - ModuleNotFoundError under cygwin. -- Update to version 6.2.1 - + Fix regression, caused by inverted check for Windows OS. - + Add more URLs to distribution metadata -- Update to version 6.2.0 - + Implement PEERCRED lookup over UNIX-socket HTTP connection. - * Discover connected process' PID/UID/GID - * Respect server switches: peercreds_enabled and - peercreds_resolve_enabled - * get_peer_creds and resolve_peer_creds methods on connection - * peer_pid, peer_uid, peer_gid, peer_user and peer_group - properties on connection - * X_REMOTE_PID, X_REMOTE_UID, X_REMOTE_GID, X_REMOTE_USER - (REMOTE_USER) and X_REMOTE_GROUP WSGI environment variables when - enabled and supported - * Per-connection caching to reduce lookup cost -- Update to version 6.1.2 - + Fix regression - * Restore storing bound socket in Windows broken by use of - socket.AF_UNIX -- Update to version 6.1.1 - + Fix regression introduced by :commit:`68a5769`. - * Get back support for socket.AF_UNIX in stored bound address in - cheroot.server.HTTPServer.bind_addr -- Update to version 6.1.0 - + Refactor testsuite to completely rely on pytest. - * Integrate pytest-testmon and pytest-watch - * Stabilise testing - + Implement input termination flag support as - suggested by mitsuhiko in his - wsgi.input_terminated Proposal - + Fix SSL error bypassing. - + Fix WSGI documentation example to support Python 3. - + Send correct conditional HTTP error in helper function. - + Fix headers being unsent before request - closed. Now we double check that they've been sent. - + Minor docs improvements. - + Minor refactoring. -- Update to version 6.0.0 - + Drop support for Python 2.6, 3.1, 3.2, and 3.3. - + Also drop built-in SSL support for Python 2.7 earlier - than 2.7.9. -- Update to version 5.11.0 - + To support webtest applications that feed - absolute URIs to getPage but expect the scheme/host/port to - be ignored (as cheroot 5.8 and earlier did), provide a - strip_netloc helper and recipe for calling it in a subclass. -- Update to version 5.10.0 - + Minor refactorings of cheroot/server.py to reduce redundancy - of behavior. - + Delinting with fewer exceptions. - + Restored license to BSD. -- Update to version 5.9.2 - + Re-release without spurious files in the distribution. -- Update to version 5.9.1 - + Reverted encoding behavior in wsgi module to correct - regression in CherryPy tests. -- Update to version 5.9.0 - + Avoid using SO_REUSEADDR on Windows - where it has different semantics. - + cheroot.tests.webtest adopts the one method that was unique - in CherryPy, now superseding the implementation there. - + Substantial cleanup around compatibility functions (_compat module). - + License unintentionally changed to MIT. BSD still declared and intended. -- Update to version 5.8.3 - + Improve HTTP request line validation: - * Improve HTTP version parsing - + Fix HTTP CONNECT method processing: - * Respond with 405 Method Not Allowed if proxy_mode is False - * Validate that request-target is in authority-form - + Improve tests in test.test_core - + Fix EPROTOTYPE @ Mac OS -- Update to version 5.8.2 - + Add HTTP request line check: - absolute URI path must start with a - forward slash ("/"). -- Update to version 5.8.1 - + CI improvements: - * Add basic working Circle CI v2 config - + Fix URI encoding bug - * Improve cheroot.test.helper.Controller to properly match - unicode -- Update to version 5.8.0 - + CI improvements: - * Switch to native PyPy support in Travis CI - * Take into account pep257 compliant modules - * Build wheel in Appveyor and store it as an artifact - + Improve urllib support in cheroot._compat - + Improve URI parsing: - * Make it compliant with rfc7230, rfc7231 and rfc2616 - * Fix setting of environ['QUERY_STRING'] in WSGI - * Introduce proxy_mode and strict_mode argument in server.HTTPRequest - * Fix decoding of unicode URIs in WSGI 1.0 gateway -- Update to version 5.7.0 - + CI improvements: - * Don't run tests during deploy stage - * Use VM based build job env only for pyenv envs - * Opt-in for beta trusty image @ Travis CI - * Be verbose when running tests (show test names) - * Show xfail/skip details during test run - + Fix _handle_no_ssl error handler calls - + Fix test_conn tests: - * Improve setup_server def in HTTP connection tests - * Fix HTTP streaming tests - * Fix HTTP/1.1 pipelining test under Python 3 - * Fix test_readall_or_close test - * Fix test_No_Message_Body - * Clarify test_598 fail reason - + Add GitHub templates for PR, issue && contributing - + Default HTTP Server header to Cheroot version str - + Cleanup _compat functions from server module -- Update to version 5.6.0 - + Fix all pep257 related errors in all non-test modules. - cheroot/test/* folder is only one left allowed to fail with this linter. - + :cp-issue:`1602` and Optimize chunked body reader loop by returning - empty data is the size is 0. - + Reset buffer if the body size is unknown - + Add missing size hint to SizeCheckWrapper -- Update to version 5.5.2 - + Ignore "unknown error" and "https proxy request" SSL errors. -- Update to version 5.5.1 - + Make Appveyor list separate tests in corresponding tab. - + Configure Travis CI build stages. - Prioritize tests by stages. - Move deploy stage to be run very last after all other stages finish. - + Ignore "Protocol wrong type for socket" (EPROTOTYPE) @ OSX for non-blocking sockets. -- Update to version 5.5.0 - + Instead of a read_headers function, cheroot now - supplies a HeaderReader class to - perform the same function. - Any HTTPRequest object may override - the header_reader attribute to customize the handling of incoming headers. - The server module also presents a provisional implementation of - a DropUnderscoreHeaderReader that will exclude any headers - containing an underscore. It remains an exercise for the - implementer to demonstrate how this functionality might be - employed in a server such as CherryPy. - + Configured TravisCI to run tests under OS X. - ------------------------------------------------------------------- Fri Mar 31 13:39:53 UTC 2017 - jmatejek@suse.com From e19cdc62c9bb0d66e26dd111f4277798c2edc17f1dfaa06efde785ed441563e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Tue, 5 Mar 2019 12:51:32 +0000 Subject: [PATCH 3/3] - Update to 6.5.4: * too many changes to enumerate see CHANGES.rst - Make sure to execute testsuite OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cheroot?expand=0&rev=5 --- cheroot-5.4.0.tar.gz | 3 --- cheroot-6.5.4.tar.gz | 3 +++ python-cheroot.changes | 7 ++++++ python-cheroot.spec | 48 ++++++++++++++++++++++++++++++------------ 4 files changed, 44 insertions(+), 17 deletions(-) delete mode 100644 cheroot-5.4.0.tar.gz create mode 100644 cheroot-6.5.4.tar.gz diff --git a/cheroot-5.4.0.tar.gz b/cheroot-5.4.0.tar.gz deleted file mode 100644 index 356e340..0000000 --- a/cheroot-5.4.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4b3d2eaa949b8a2f6676e3bca7c68cd358e4aa6bab437362b4bee6781626135 -size 56272 diff --git a/cheroot-6.5.4.tar.gz b/cheroot-6.5.4.tar.gz new file mode 100644 index 0000000..983eaaa --- /dev/null +++ b/cheroot-6.5.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:beb8eb9eeff5746059607e81b72efd6f4ca099111dc13f8961ae9e4f63f7786b +size 81067 diff --git a/python-cheroot.changes b/python-cheroot.changes index ad28fb9..626ffa8 100644 --- a/python-cheroot.changes +++ b/python-cheroot.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Mar 5 12:26:41 UTC 2019 - Tomáš Chvátal + +- Update to 6.5.4: + * too many changes to enumerate see CHANGES.rst +- Make sure to execute testsuite + ------------------------------------------------------------------- Fri Mar 31 13:39:53 UTC 2017 - jmatejek@suse.com diff --git a/python-cheroot.spec b/python-cheroot.spec index 385328c..5fce53f 100644 --- a/python-cheroot.spec +++ b/python-cheroot.spec @@ -1,7 +1,7 @@ # -# spec file for package python-Cheroot +# spec file for package python-cheroot # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,28 +12,43 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-cheroot -Version: 5.4.0 +Version: 6.5.4 Release: 0 -License: BSD-3-Clause Summary: Highly-optimized, pure-python HTTP server -Url: https://github.com/cherrypy/cheroot +License: BSD-3-Clause Group: Development/Languages/Python -Source: https://files.pythonhosted.org/packages/source/C/Cheroot/cheroot-%{version}.tar.gz -BuildRequires: python-rpm-macros +URL: https://github.com/cherrypy/cheroot +Source: https://files.pythonhosted.org/packages/source/c/cheroot/cheroot-%{version}.tar.gz +BuildRequires: %{python_module more-itertools >= 2.6} +BuildRequires: %{python_module pyOpenSSL} +BuildRequires: %{python_module pytest >= 2.8} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module requests-unixsocket} +BuildRequires: %{python_module requests} +BuildRequires: %{python_module setuptools_scm >= 1.15.0} +BuildRequires: %{python_module setuptools_scm_git_archive >= 1.0} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module setuptools_scm} +BuildRequires: %{python_module six >= 1.11.0} +BuildRequires: %{python_module trustme} +BuildRequires: fdupes +BuildRequires: python-backports.functools_lru_cache +BuildRequires: python-rpm-macros +Requires: python-more-itertools >= 2.6 +Requires: python-six >= 1.11.0 # the package and distribution name is lowercase-cheroot, # but PyPI claims the name is capital-Cheroot # *smacks head against desk* Provides: python-Cheroot = %{version} -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch - +%ifpython2 +Requires: python-backports.functools_lru_cache +%endif %python_subpackages %description @@ -41,18 +56,23 @@ Cheroot is the high-performance, pure-Python HTTP server used by CherryPy. %prep %setup -q -n cheroot-%{version} +# do not require cov/xdist/etc +sed -i -e '/addopts/d' pytest.ini %build %python_build %install %python_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} -#%%check -# apparently the test suite is nonfunctional and is exercised by CherryPy only +%check +%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} -v %files %{python_files} -%defattr(-,root,root,-) +%license LICENSE.md +%doc README.rst CHANGES.rst +%python3_only %{_bindir}/cheroot %{python_sitelib}/* %changelog