Skip to content
This repository has been archived by the owner on Oct 25, 2022. It is now read-only.

Commit

Permalink
eventlet: Autospec creation for update from version 0.20.0 to version…
Browse files Browse the repository at this point in the history
… 0.25.1

AGSPhoenix (1):
      Add locals() call to example backdoor invocation

Aayush Kasurde (2):
      Modified pyopenssl example using evenlet
      contributing.md

Anthony Sottile (1):
      Use tox's `TOXENV` environment variable

Chris Kerr (1):
      dns: reading /etc/hosts raised DeprecationWarning for universal lines on Python 3.4+

Daniel Alvarez (1):
      greendns: don't contact nameservers if one entry is returned from hosts file

David Szotten (2):
      workaround for pathlib on py 3.7
      release notes and version bump for 0.25.1

Feng (1):
      greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket

Geoffrey Thomas (1):
      patcher: workaround for monotonic "no suitable implementation"

Gevorg Davoian (1):
      green.zmq: socket.{recv,send}_* signatures did not match recent upstream pyzmq

Haikel Guemar (1):
      Drop OpenSSL.rand support

Hugo (1):
      Add Python 3.6

James Page (1):
      Avoid dependency on enum-compat

Jaume Marhuenda (2):
      support.greendns: ImportError when dns.rdtypes was imported before eventlet
      greendns: resolving over TCP produced ValueError

Jesse (1):
      tpool: exception in tpool-ed call leaked memory via backtrace

Julien Kasarherou (1):
      wsgi: make Expect 100-continue field-value case-insensitive.

Junyi (2):
      [bug] reimport submodule as well in patcher.inject (#540)
      Fix compatibility with Python 3.7 ssl.SSLSocket  (#531)

Konstantin Enchant (1):
      websocket: fd leak when client did not close connection properly

Lon Hohberger (4):
      Fix bad ipv6 comparison
      greendns udp: Fix infinite loop when source address mismatch
      tests: Add ipv6 tests for greendns udp() function
      tests: Add ipv4 udp tests for greendns

Marcel Plch (1):
      Fix for Python 3.7 (#506)

Matt Bennett (1):
      greendns: be explicit about expecting bytes from sock.recv

Miguel Grinberg (1):
      socket: context manager support

Miro Hrončok (1):
      Stop using deprecated cgi.parse_qs() to support Python 3.8

Ondřej Kobližek (1):
      Fixed tests.greendns_test.TestGetaddrinfo eventlet/eventlet#373

Ondřej Nový (1):
      Regenerate test crt

Quan Tian (1):
      patcher: set locked RLocks' owner only when patching existing locks

Ralf Haferkamp (1):
      greendns: Treat /etc/hosts entries case-insensitive

Sam Merritt (1):
      pools: put to empty pool would block sometimes

Sergey Shepelev (59):
      zmq: autogenerated documentation was missing
      Explicit environ flag for importing eventlet.__version__ without ignoring import errors
      release: use twine for PyPI upload
      readme: latest dev version was pointing to bitbucket
      tests: patcher_import_patched_defaults was failing in presence of pyopenssl package
      dns: try unqualified queries as top level
      Type check Semaphore, GreenPool arguments; Thanks to Matthew D. Pagel
      test_import_patched_defaults bended to play with pyopenssl>=16.1.0
      v0.20.1 release
      test coverage reports
      tests cleanup, CI with Python 3.6
      python3.6: http.client.request support chunked_encoding
      New timeout error API: .is_timeout=True on exception object
      support: upgrade bundled six to 1.10 (dbfbfc818e3d)
      green.profile: Python3 compatibility; Thanks to Artur Stawiarski
      Timeout was marked deprecated along with TimeoutError by mistake
      tests: socket_resolve_green was giving false fails
      dns: hosts file was consulted after nameservers
      hubs: use monotonic clock by default (bundled package); Thanks to Roman Podoliaka and Victor Stinner
      dns: EVENTLET_NO_GREENDNS option is back, green is still default
      dns: EAI_NODATA was removed from RFC3493 and FreeBSD
      db_pool: proxy Connection.set_isolation_level()
      ssl: RecursionError on Python3.6+; Thanks to justdoit0823@github and Gevent developers
      wsgi: log_output=False was not disabling startup and accepted messages
      v0.21.0 release
      update monotonic 1.3 5c0322dc559bf961f7e111d97cd3ed9ab5c1a73b
      queue: empty except was catching too much
      wsgi: push deprecated options one step
      wsgi: close idle connections (also applies to websockets)
      convenience: skip SO_REUSEPORT for bind on random port (0)
      convenience: SO_REUSEPORT is not available on WSL platform (Linux on Windows)
      green.subprocess: keep CalledProcessError identity; Thanks to Linbing@github
      support: upgrade bundled dnspython to 1.16.0 (22e9de1d7957e)
      convenience: (SO_REUSEPORT) socket.error is not OSError on Python 2; Thanks to JacoFourie@github
      travis: codecov flags format was running `tr` with invalid arguments
      greendns: early socket.timeout was breaking IO retry loops
      init: second workaround for monotonic "no suitable implementation"; Thanks to Geoffrey Thomas
      Travis broke ipv6, allow failure; test against Python 2.7
      travis: crutch to get ipv6 back
      v0.22.0 release
      event: Event.wait() timeout=None argument to be compatible with upstream CPython
      v0.22.1 release
      support: psycopg2_patcher import module, not function
      travis: update test dependencies, use psycopg2-binary
      moved function eventlet.support.capture_stderr to tests
      travis: allow fail python 3.7 see issue eventlet/eventlet#475
      wsgi: latin-1 encoding dance for environ[PATH_INFO]
      green.threading: current_thread() did not see new monkey-patched threads; Thanks to Jake Tesler
      v0.23.0 release
      Drop support for Python2.6 and python-epoll package
      Drop support for Python3.3
      website: link to PyPI project page w/o version; reflect current state of installation and development
      v0.24.0 release
      v0.24.1 release
      ssl: connect used non-monotonic time.time() for timeout (#520)
      New benchmarks runner
      greenthread: optimize _exit_funcs getattr/del dance; Thanks to Alex Kashirin
      IMPORTANT: late import in `use_hub()` + thread race caused using epolls even when it is unsupported on current platform
      maintainers list

Sourabh Deshmukh (1):
      typo

Stefan Nica (1):
      wsgi: handle remote connection resets

Tim Burke (10):
      wsgi: Don't strip all Unicode whitespace from headers on py3 (#504)
      wsgi: Use byte strings on py2 and unicode strings on py3
      wsgi: Catch and swallow IOErrors during discard() (#532)
      wsgi: Stop replacing invalid UTF-8 on py3
      wsgi: fix Input.readline on Python 3
      wsgi: fix Input.readlines when dealing with chunked input
      wsgi: Return 400 on negative Content-Length request headers (#537)
      wsgi: Only send 100 Continue response if no response has been sent yet (#557)
      wsgi: minimize API changes for 100-continue fix (#569)
      v0.25.0 release

Yuichi Bando (1):
      New feature: Add zipkin tracing to eventlet

costasgambit (1):
      websocket: support permessage-deflate extension; Thanks to Costas Christofi and Peter Kovary

jaimefrites (1):
      green.select: fix mark_as_closed() wrong number of args

nat-goodspeed (5):
      greendns: full comment lines were not skipped; Thanks to nat-goodspeed
      external dependencies for six, monotonic, dnspython
      Issue 535: use Python 2 compatible syntax for keyword-only args. (#536)
      Increase Travis slop factor for ZMQ CPU usage.  (#542)
      #53: Make a GreenPile with no spawn()s an empty sequence. (#555)

orishoshan (1):
      Issue #405: GreenSocket.accept does not notify_open (#406)

talwrii (1):
      green.zmq: support RCVTIMEO (receive timeout)

0.25.1
* wsgi (tests): Stop using deprecated cgi.parse_qs() to support Python 3.8; Thanks to Miro Hrončok
* os: Add workaround to `open` for pathlib on py 3.7; Thanks to David Szotten

0.25.0
======
* wsgi: Only send 100 Continue response if no response has been sent yet; Thanks to Tim Burke
* wsgi: Return 400 on negative Content-Length request headers; Thanks to Tim Burke
* Make a GreenPile with no spawn()s an empty sequence; Thanks to nat-goodspeed
* wsgi: fix Input.readlines when dealing with chunked input; Thanks to Tim Burke
* wsgi: fix Input.readline on Python 3; Thanks to Tim Burke
* wsgi: Stop replacing invalid UTF-8 on py3; Thanks to Tim Burke
* ssl: Fix compatibility with Python 3.7 ssl.SSLSocket; Thanks to Junyi
* reimport submodule as well in patcher.inject; Thanks to Junyi
* use Python 2 compatible syntax for keyword-only args; Thanks to nat-goodspeed

(NEWS truncated at 15 lines)
  • Loading branch information
phmccarty authored and clrpackages committed Mar 20, 2020
1 parent cda07d9 commit 3c67765
Show file tree
Hide file tree
Showing 11 changed files with 136 additions and 211 deletions.
96 changes: 0 additions & 96 deletions 0001-Logging-speedy.patch

This file was deleted.

33 changes: 0 additions & 33 deletions 0002-Replace-enum-compat-dependency-to-enum34.patch

This file was deleted.

2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME := eventlet
URL = https://files.pythonhosted.org/packages/8b/c3/310059af7f77d18ac92d0927fea4e84b55ed0e9ddc57ae13937bd0c44187/eventlet-0.20.0.tar.gz
URL = https://files.pythonhosted.org/packages/5a/e3/466d72d12a09cef2b80dea685141afd65914fd1cdea0be0609779be05e92/eventlet-0.25.1.tar.gz
ARCHIVES =

include ../common/Makefile.common
104 changes: 104 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,107 @@
0.25.1
* wsgi (tests): Stop using deprecated cgi.parse_qs() to support Python 3.8; Thanks to Miro Hrončok
* os: Add workaround to `open` for pathlib on py 3.7; Thanks to David Szotten

0.25.0
======
* wsgi: Only send 100 Continue response if no response has been sent yet; Thanks to Tim Burke
* wsgi: Return 400 on negative Content-Length request headers; Thanks to Tim Burke
* Make a GreenPile with no spawn()s an empty sequence; Thanks to nat-goodspeed
* wsgi: fix Input.readlines when dealing with chunked input; Thanks to Tim Burke
* wsgi: fix Input.readline on Python 3; Thanks to Tim Burke
* wsgi: Stop replacing invalid UTF-8 on py3; Thanks to Tim Burke
* ssl: Fix compatibility with Python 3.7 ssl.SSLSocket; Thanks to Junyi
* reimport submodule as well in patcher.inject; Thanks to Junyi
* use Python 2 compatible syntax for keyword-only args; Thanks to nat-goodspeed
* wsgi: Catch and swallow IOErrors during discard(); Thanks to Tim Burke
* Fix for Python 3.7; Thanks to Marcel Plch
* Fix race that could cause using epolls as default hub even when platform does not support it; Thanks to Sergey Shepelev
* wsgi: make Expect 100-continue field-value case-insensitive; Thanks to Julien Kasarherou
* greenthread: optimize _exit_funcs getattr/del dance; Thanks to Alex Kashirin
* New benchmarks runner; Thanks to Sergey Shepelev
* ssl: fix connect to use monotonic clock for timeout; Thanks to Sergey Shepelev

0.24.1
======
* greendns: don't contact nameservers if one entry is returned from hosts file; Thanks to Daniel Alvarez

0.24.0
======
* greendns: Fix infinite loop when UDP source address mismatch; Thanks to Lon Hohberger
* greendns: Fix bad ipv6 comparison; Thanks to Lon Hohberger
* wsgi: Use byte strings on py2 and unicode strings on py3; Thanks to Tim Burke
* pools: put to empty pool would block sometimes; Thanks to Sam Merritt
* greendns: resolving over TCP produced ValueError; Thanks to Jaume Marhuenda
* support.greendns: ImportError when dns.rdtypes was imported before eventlet; Thanks to Jaume Marhuenda
* greendns: full comment lines were not skipped; Thanks to nat-goodspeed
* Drop support for Python3.3; Python2.6 and python-epoll package
* external dependencies for six, monotonic, dnspython; Thanks to nat-goodspeed
* wsgi: Don't strip all Unicode whitespace from headers on py3; Thanks to Tim Burke

0.23.0
======
* green.threading: current_thread() did not see new monkey-patched threads; Thanks to Jake Tesler
* tpool: exception in tpool-ed call leaked memory via backtrace
* wsgi: latin-1 encoding dance for environ[PATH_INFO]

0.22.1
======
* Fixed issue installing excess enum34 on Python3.4+ (rebuild with updated setuptools)
* event: Event.wait() timeout=None argument to be compatible with upstream CPython
* greendns: Treat /etc/hosts entries case-insensitive; Thanks to Ralf Haferkamp


0.22.0
======
* convenience: (SO_REUSEPORT) socket.error is not OSError on Python 2; Thanks to JacoFourie@github
* convenience: SO_REUSEPORT is not available on WSL platform (Linux on Windows)
* convenience: skip SO_REUSEPORT for bind on random port (0)
* dns: reading /etc/hosts raised DeprecationWarning for universal lines on Python 3.4+; Thanks to Chris Kerr
* green.openssl: Drop OpenSSL.rand support; Thanks to Haikel Guemar
* green.subprocess: keep CalledProcessError identity; Thanks to Linbing@github
* greendns: be explicit about expecting bytes from sock.recv; Thanks to Matt Bennett
* greendns: early socket.timeout was breaking IO retry loops
* GreenSocket.accept does not notify_open; Thanks to orishoshan
* patcher: set locked RLocks' owner only when patching existing locks; Thanks to Quan Tian
* patcher: workaround for monotonic "no suitable implementation"; Thanks to Geoffrey Thomas
* queue: empty except was catching too much
* socket: context manager support; Thanks to Miguel Grinberg
* support: update monotonic 1.3 (5c0322dc559bf)
* support: upgrade bundled dnspython to 1.16.0 (22e9de1d7957e) https://github.com/eventlet/eventlet/issues/427
* websocket: fd leak when client did not close connection properly; Thanks to Konstantin Enchant
* websocket: support permessage-deflate extension; Thanks to Costas Christofi and Peter Kovary
* wsgi: close idle connections (also applies to websockets)
* wsgi: deprecated options are one step closer to removal
* wsgi: handle remote connection resets; Thanks to Stefan Nica

0.21.0
======
* New timeout error API: .is_timeout=True on exception object
It's now easy to test if network error is transient and retry is appropriate.
Please spread the word and invite other libraries to support this interface.
* hubs: use monotonic clock by default (bundled package); Thanks to Roman Podoliaka and Victor Stinner
* dns: EVENTLET_NO_GREENDNS option is back, green is still default
* dns: hosts file was consulted after nameservers
* ssl: RecursionError on Python3.6+; Thanks to justdoit0823@github and Gevent developers
* wsgi: log_output=False was not disabling startup and accepted messages
* greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket
* dns: EAI_NODATA was removed from RFC3493 and FreeBSD
* green.select: fix mark_as_closed() wrong number of args
* green.zmq: socket.{recv,send}_* signatures did not match recent upstream pyzmq
* New feature: Add zipkin tracing to eventlet
* db_pool: proxy Connection.set_isolation_level()
* green.zmq: support RCVTIMEO (receive timeout)
* green.profile: Python3 compatibility; Thanks to Artur Stawiarski
* support: upgrade bundled six to 1.10 (dbfbfc818e3d)
* python3.6: http.client.request support chunked_encoding

0.20.1
======
* dns: try unqualified queries as top level
* test_import_patched_defaults bended to play with pyopenssl>=16.1.0
* Explicit environ flag for importing eventlet.__version__ without ignoring import errors
* Type check Semaphore, GreenPool arguments; Thanks to Matthew D. Pagel

0.20.0
======
* IMPORTANT: removed select.poll() function
Expand Down
97 changes: 22 additions & 75 deletions eventlet.spec
Original file line number Diff line number Diff line change
Expand Up @@ -3,90 +3,35 @@
# Generated by: autospec.py
#
Name : eventlet
Version : 0.20.0
Release : 50
URL : https://files.pythonhosted.org/packages/8b/c3/310059af7f77d18ac92d0927fea4e84b55ed0e9ddc57ae13937bd0c44187/eventlet-0.20.0.tar.gz
Source0 : https://files.pythonhosted.org/packages/8b/c3/310059af7f77d18ac92d0927fea4e84b55ed0e9ddc57ae13937bd0c44187/eventlet-0.20.0.tar.gz
Version : 0.25.1
Release : 51
URL : https://files.pythonhosted.org/packages/5a/e3/466d72d12a09cef2b80dea685141afd65914fd1cdea0be0609779be05e92/eventlet-0.25.1.tar.gz
Source0 : https://files.pythonhosted.org/packages/5a/e3/466d72d12a09cef2b80dea685141afd65914fd1cdea0be0609779be05e92/eventlet-0.25.1.tar.gz
Summary : Highly concurrent networking library
Group : Development/Tools
License : MIT
Requires: eventlet-license = %{version}-%{release}
Requires: eventlet-python = %{version}-%{release}
Requires: eventlet-python3 = %{version}-%{release}
Requires: dnspython
Requires: greenlet
Requires: monotonic
Requires: six
BuildRequires : buildreq-distutils3
BuildRequires : dnspython
BuildRequires : greenlet
BuildRequires : greenlet-python
BuildRequires : monotonic
BuildRequires : nose
BuildRequires : nose-python
Patch1: 0002-Replace-enum-compat-dependency-to-enum34.patch
BuildRequires : six

%description
Eventlet is a concurrent networking library for Python that allows you to change how you run your code, not how you write it.

It uses epoll or libevent for highly scalable non-blocking I/O. Coroutines ensure that the developer uses a blocking style of programming that is similar to threading, but provide the benefits of non-blocking I/O. The event dispatch is implicit, which means you can easily use Eventlet from the Python interpreter, or as a small part of a larger application.

It's easy to get started using Eventlet, and easy to convert existing
applications to use it. Start off by looking at the `examples`_,
`common design patterns`_, and the list of `basic API primitives`_.

.. _examples: http://eventlet.net/doc/examples.html
.. _common design patterns: http://eventlet.net/doc/design_patterns.html
.. _basic API primitives: http://eventlet.net/doc/basic_usage.html


Quick Example
===============

Here's something you can try right on the command line::

% python
>>> import eventlet
>>> from eventlet.green import urllib2
>>> gt = eventlet.spawn(urllib2.urlopen, 'http://eventlet.net')
>>> gt2 = eventlet.spawn(urllib2.urlopen, 'http://secondlife.com')
>>> gt2.wait()
>>> gt.wait()


Getting Eventlet
==================

The easiest way to get Eventlet is to use pip::

pip install eventlet

The development `tip`_ is available as well::

pip install 'eventlet==dev'

.. _tip: http://bitbucket.org/eventlet/eventlet/get/tip.zip#egg=eventlet-dev


Building the Docs Locally
=========================

To build a complete set of HTML documentation, you must have Sphinx, which can be found at http://sphinx.pocoo.org/ (or installed with `pip install Sphinx`)::

cd doc
make html

The built html files can be found in doc/_build/html afterward.


Twisted
=======

Eventlet had Twisted hub in the past, but community interest to this integration has dropped over time,
now it is not supported, so with apologies for any inconvenience we discontinue Twisted integration.

If you have a project that uses Eventlet with Twisted, your options are:

* use last working release eventlet==0.14
* start a new project with only Twisted hub code, identify and fix problems. As of eventlet 0.13, `EVENTLET_HUB` environment variable can point to external modules.
* fork Eventlet, revert Twisted removal, identify and fix problems. This work may be merged back into main project.

Apologies for any inconvenience.

It's easy to get started using Eventlet, and easy to convert existing
applications to use it. Start off by looking at the `examples`_,
`common design patterns`_, and the list of `basic API primitives`_.

%package license
Summary: license components for the eventlet package.
Expand All @@ -110,23 +55,25 @@ Summary: python3 components for the eventlet package.
Group: Default
Requires: python3-core
Provides: pypi(eventlet)
Requires: pypi(dnspython)
Requires: pypi(greenlet)
Requires: pypi(monotonic)
Requires: pypi(six)

%description python3
python3 components for the eventlet package.


%prep
%setup -q -n eventlet-0.20.0
cd %{_builddir}/eventlet-0.20.0
%patch1 -p1
%setup -q -n eventlet-0.25.1
cd %{_builddir}/eventlet-0.25.1

%build
export http_proxy=http://127.0.0.1:9/
export https_proxy=http://127.0.0.1:9/
export no_proxy=localhost,127.0.0.1,0.0.0.0
export LANG=C.UTF-8
export SOURCE_DATE_EPOCH=1582922085
# -Werror is for werrorists
export SOURCE_DATE_EPOCH=1584641338
export GCC_IGNORE_WERROR=1
export CFLAGS="$CFLAGS -fno-lto "
export FCFLAGS="$CFLAGS -fno-lto "
Expand All @@ -139,7 +86,7 @@ python3 setup.py build
export MAKEFLAGS=%{?_smp_mflags}
rm -rf %{buildroot}
mkdir -p %{buildroot}/usr/share/package-licenses/eventlet
cp %{_builddir}/eventlet-0.20.0/LICENSE %{buildroot}/usr/share/package-licenses/eventlet/ad33faded4baaba18a31704973874c531e94d910
cp %{_builddir}/eventlet-0.25.1/LICENSE %{buildroot}/usr/share/package-licenses/eventlet/ad33faded4baaba18a31704973874c531e94d910
python3 -tt setup.py build install --root=%{buildroot}
echo ----[ mark ]----
cat %{buildroot}/usr/lib/python3*/site-packages/*/requires.txt || :
Expand Down

0 comments on commit 3c67765

Please sign in to comment.