commit python3-CherryPy for openSUSE:Factory
Hello community, here is the log from the commit of package python3-CherryPy for openSUSE:Factory checked in at 2016-02-08 09:47:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-CherryPy (Old) and /work/SRC/openSUSE:Factory/.python3-CherryPy.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python3-CherryPy" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-CherryPy/python3-CherryPy.changes 2016-02-01 19:57:08.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-CherryPy.new/python3-CherryPy.changes 2016-02-08 09:47:46.000000000 +0100 @@ -1,0 +2,12 @@ +Thu Feb 4 18:00:23 UTC 2016 - arun@gmx.de + +- update to version 5.0.0: + * Removed deprecated support for "ssl_certificate" and + "ssl_private_key" attributes and implicit construction of SSL + adapter on Python 2 WSGI servers. + * Default SSL Adapter on Python 2 is the builtin SSL adapter, + matching Python 3 behavior. + * Pull request #94: In proxy tool, defer to Host header for + resolving the base if no base is supplied. + +------------------------------------------------------------------- Old: ---- CherryPy-4.0.0.tar.gz New: ---- CherryPy-5.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-CherryPy.spec ++++++ --- /var/tmp/diff_new_pack.CiGaGT/_old 2016-02-08 09:47:47.000000000 +0100 +++ /var/tmp/diff_new_pack.CiGaGT/_new 2016-02-08 09:47:47.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-CherryPy -Version: 4.0.0 +Version: 5.0.0 Release: 0 Url: http://www.cherrypy.org Summary: Object-Oriented HTTP framework ++++++ CherryPy-4.0.0.tar.gz -> CherryPy-5.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/CherryPy.egg-info/PKG-INFO new/CherryPy-5.0.0/CherryPy.egg-info/PKG-INFO --- old/CherryPy-4.0.0/CherryPy.egg-info/PKG-INFO 2015-12-20 05:53:24.000000000 +0100 +++ new/CherryPy-5.0.0/CherryPy.egg-info/PKG-INFO 2016-02-04 14:38:54.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: CherryPy -Version: 4.0.0 +Version: 5.0.0 Summary: Object-Oriented HTTP framework Home-page: http://www.cherrypy.org Author: CherryPy Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/PKG-INFO new/CherryPy-5.0.0/PKG-INFO --- old/CherryPy-4.0.0/PKG-INFO 2015-12-20 05:53:24.000000000 +0100 +++ new/CherryPy-5.0.0/PKG-INFO 2016-02-04 14:38:54.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: CherryPy -Version: 4.0.0 +Version: 5.0.0 Summary: Object-Oriented HTTP framework Home-page: http://www.cherrypy.org Author: CherryPy Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/README.txt new/CherryPy-5.0.0/README.txt --- old/CherryPy-4.0.0/README.txt 2014-06-27 22:32:38.000000000 +0200 +++ new/CherryPy-5.0.0/README.txt 2016-02-04 14:15:56.000000000 +0100 @@ -1,10 +1,13 @@ -* To install, change to the directory where setup.py is located and type (python-2.3 or later needed): +* To install, change to the directory where setup.py is located and type + (Python 2.6 or later needed): python setup.py install -* To learn how to use it, look at the examples under cherrypy/tutorial/ or go to http://www.cherrypy.org for more info. +* To learn how to use it, look at the examples under cherrypy/tutorial/ + or go to http://www.cherrypy.org for more info. -* To run the regression tests, just go to the cherrypy/test/ directory and type: +* To run the regression tests, just go to the cherrypy/test/ directory + and type: nosetests -s ./ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/__init__.py new/CherryPy-5.0.0/cherrypy/__init__.py --- old/CherryPy-4.0.0/cherrypy/__init__.py 2015-12-20 05:53:20.000000000 +0100 +++ new/CherryPy-5.0.0/cherrypy/__init__.py 2016-02-04 14:38:50.000000000 +0100 @@ -56,7 +56,7 @@ These API's are described in the `CherryPy specification https://bitbucket.org/cherrypy/cherrypy/wiki/CherryPySpec`_. """ -__version__ = "4.0.0" +__version__ = "5.0.0" from cherrypy._cpcompat import urljoin as _urljoin, urlencode as _urlencode from cherrypy._cpcompat import basestring, unicodestr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/lib/cptools.py new/CherryPy-5.0.0/cherrypy/lib/cptools.py --- old/CherryPy-4.0.0/cherrypy/lib/cptools.py 2015-12-20 05:36:59.000000000 +0100 +++ new/CherryPy-5.0.0/cherrypy/lib/cptools.py 2016-02-04 14:15:56.000000000 +0100 @@ -193,11 +193,9 @@ if lbase is not None: base = lbase.split(',')[0] if not base: - port = request.local.port - if port == 80: - base = '127.0.0.1' - else: - base = '127.0.0.1:%s' % port + base = request.headers.get('Host', '127.0.0.1') + if request.local.port != 80: + base += ':%s' % port if base.find("://") == -1: # add http:// or https:// if needed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/process/servers.py new/CherryPy-5.0.0/cherrypy/process/servers.py --- old/CherryPy-4.0.0/cherrypy/process/servers.py 2015-08-29 14:34:42.000000000 +0200 +++ new/CherryPy-5.0.0/cherrypy/process/servers.py 2016-02-04 14:15:56.000000000 +0100 @@ -183,8 +183,7 @@ if not self.httpserver: return '' host, port = self.bind_addr - if getattr(self.httpserver, 'ssl_certificate', None) or \ - getattr(self.httpserver, 'ssl_adapter', None): + if getattr(self.httpserver, 'ssl_adapter', None): scheme = "https" if port != 443: host += ":%s" % port diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/test/test_core.py new/CherryPy-5.0.0/cherrypy/test/test_core.py --- old/CherryPy-4.0.0/cherrypy/test/test_core.py 2015-08-29 14:34:42.000000000 +0200 +++ new/CherryPy-5.0.0/cherrypy/test/test_core.py 2016-02-04 14:30:16.000000000 +0100 @@ -555,20 +555,15 @@ self.assertBody(data) def testCookies(self): - if sys.version_info >= (2, 5): - header_value = lambda x: x - else: - header_value = lambda x: x + ';' - self.getPage("/cookies/single?name=First", [('Cookie', 'First=Dinsdale;')]) - self.assertHeader('Set-Cookie', header_value('First=Dinsdale')) + self.assertHeader('Set-Cookie', 'First=Dinsdale') self.getPage("/cookies/multiple?names=First&names=Last", [('Cookie', 'First=Dinsdale; Last=Piranha;'), ]) - self.assertHeader('Set-Cookie', header_value('First=Dinsdale')) - self.assertHeader('Set-Cookie', header_value('Last=Piranha')) + self.assertHeader('Set-Cookie', 'First=Dinsdale') + self.assertHeader('Set-Cookie', 'Last=Piranha') self.getPage("/cookies/single?name=Something-With%2CComma", [('Cookie', 'Something-With,Comma=some-value')]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/wsgiserver/ssl_pyopenssl.py new/CherryPy-5.0.0/cherrypy/wsgiserver/ssl_pyopenssl.py --- old/CherryPy-4.0.0/cherrypy/wsgiserver/ssl_pyopenssl.py 2014-06-27 22:32:38.000000000 +0200 +++ new/CherryPy-5.0.0/cherrypy/wsgiserver/ssl_pyopenssl.py 2016-02-04 14:15:56.000000000 +0100 @@ -68,7 +68,7 @@ time.sleep(self.ssl_retry) except SSL.WantWriteError: time.sleep(self.ssl_retry) - except SSL.SysCallError, e: + except SSL.SysCallError as e: if is_reader and e.args == (-1, 'Unexpected EOF'): return "" @@ -76,7 +76,7 @@ if is_reader and errnum in wsgiserver.socket_errors_to_ignore: return "" raise socket.error(errnum) - except SSL.Error, e: + except SSL.Error as e: if is_reader and e.args == (-1, 'Unexpected EOF'): return "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver2.py new/CherryPy-5.0.0/cherrypy/wsgiserver/wsgiserver2.py --- old/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver2.py 2015-12-20 05:53:20.000000000 +0100 +++ new/CherryPy-5.0.0/cherrypy/wsgiserver/wsgiserver2.py 2016-02-04 14:38:50.000000000 +0100 @@ -84,19 +84,33 @@ except: import Queue as queue import re -import rfc822 +import email.utils import socket import sys +import threading +import time +import traceback as traceback_ +import operator +from urllib import unquote +import warnings +import errno +import logging +try: + # prefer slower Python-based io module + import _pyio as io +except ImportError: + # Python 2.6 + import io + + if 'win' in sys.platform and hasattr(socket, "AF_INET6"): if not hasattr(socket, 'IPPROTO_IPV6'): socket.IPPROTO_IPV6 = 41 if not hasattr(socket, 'IPV6_V6ONLY'): socket.IPV6_V6ONLY = 27 -try: - import cStringIO as StringIO -except ImportError: - import StringIO -DEFAULT_BUFFER_SIZE = -1 + + +DEFAULT_BUFFER_SIZE = io.DEFAULT_BUFFER_SIZE class FauxSocket(object): @@ -110,23 +124,6 @@ socket._fileobject(FauxSocket())._rbuf, basestring) del FauxSocket # this class is not longer required for anything. -import threading -import time -import traceback - - -def format_exc(limit=None): - """Like print_exc() but return a string. Backport for Python 2.3.""" - try: - etype, value, tb = sys.exc_info() - return ''.join(traceback.format_exception(etype, value, tb, limit)) - finally: - etype = value = tb = None - -import operator - -from urllib import unquote -import warnings if sys.version_info >= (3, 0): bytestr = bytes @@ -166,8 +163,6 @@ FORWARD_SLASH = ntob('/') quoted_slash = re.compile(ntob("(?i)%2F")) -import errno - def plat_specific_errors(*errnames): """Return error numbers for all errors in errnames on this platform. @@ -211,7 +206,6 @@ ] -import logging if not hasattr(logging, 'statistics'): logging.statistics = {} @@ -975,7 +969,7 @@ self.rfile.read(remaining) if "date" not in hkeys: - self.outheaders.append(("Date", rfc822.formatdate())) + self.outheaders.append(("Date", email.utils.formatdate())) if "server" not in hkeys: self.outheaders.append(("Server", self.server.server_name)) @@ -1056,7 +1050,7 @@ if size < 0: # Read until EOF # reset _rbuf. we consume it via buf. - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() while True: data = self.recv(rbufsize) if not data: @@ -1071,12 +1065,12 @@ # return. buf.seek(0) rv = buf.read(size) - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() self._rbuf.write(buf.read()) return rv # reset _rbuf. we consume it via buf. - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() while True: left = size - buf_len # recv() will malloc the amount of memory given as its @@ -1114,7 +1108,7 @@ buf.seek(0) bline = buf.readline(size) if bline.endswith('\n') or len(bline) == size: - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() self._rbuf.write(buf.read()) return bline del bline @@ -1125,7 +1119,7 @@ buf.seek(0) buffers = [buf.read()] # reset _rbuf. we consume it via buf. - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() data = None recv = self.recv while data != "\n": @@ -1137,7 +1131,7 @@ buf.seek(0, 2) # seek end # reset _rbuf. we consume it via buf. - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() while True: data = self.recv(self._rbufsize) if not data: @@ -1159,11 +1153,11 @@ if buf_len >= size: buf.seek(0) rv = buf.read(size) - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() self._rbuf.write(buf.read()) return rv # reset _rbuf. we consume it via buf. - self._rbuf = StringIO.StringIO() + self._rbuf = io.BytesIO() while True: data = self.recv(self._rbufsize) if not data: @@ -1762,7 +1756,7 @@ timeout = 10 """The timeout in seconds for accepted connections (default 10).""" - version = "CherryPy/4.0.0" + version = "CherryPy/5.0.0" """A version string for the HTTPServer.""" software = None @@ -1889,25 +1883,6 @@ if self.software is None: self.software = "%s Server" % self.version - # SSL backward compatibility - if (self.ssl_adapter is None and - getattr(self, 'ssl_certificate', None) and - getattr(self, 'ssl_private_key', None)): - warnings.warn( - "SSL attributes are deprecated in CherryPy 3.2, and will " - "be removed in CherryPy 3.3. Use an ssl_adapter attribute " - "instead.", - DeprecationWarning - ) - try: - from cherrypy.wsgiserver.ssl_pyopenssl import pyOpenSSLAdapter - except ImportError: - pass - else: - self.ssl_adapter = pyOpenSSLAdapter( - self.ssl_certificate, self.ssl_private_key, - getattr(self, 'ssl_certificate_chain', None)) - # Select the appropriate socket if isinstance(self.bind_addr, basestring): # AF_UNIX socket @@ -1920,7 +1895,7 @@ # So everyone can access the socket... try: - os.chmod(self.bind_addr, 511) # 0777 + os.chmod(self.bind_addr, 0o777) except: pass @@ -1989,7 +1964,7 @@ sys.stderr.write(msg + '\n') sys.stderr.flush() if traceback: - tblines = format_exc() + tblines = traceback_.format_exc() sys.stderr.write(tblines) sys.stderr.flush() @@ -2191,7 +2166,7 @@ } -def get_ssl_adapter_class(name='pyopenssl'): +def get_ssl_adapter_class(name='builtin'): """Return an SSL adapter class for the given name.""" adapter = ssl_adapters[name.lower()] if isinstance(adapter, basestring): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver3.py new/CherryPy-5.0.0/cherrypy/wsgiserver/wsgiserver3.py --- old/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver3.py 2015-12-20 05:53:20.000000000 +0100 +++ new/CherryPy-5.0.0/cherrypy/wsgiserver/wsgiserver3.py 2016-02-04 14:38:50.000000000 +0100 @@ -87,20 +87,28 @@ import email.utils import socket import sys +import threading +import time +import traceback as traceback_ +import errno +import logging +try: + # prefer slower Python-based io module + import _pyio as io +except ImportError: + # Python 2.6 + import io + + if 'win' in sys.platform and hasattr(socket, "AF_INET6"): if not hasattr(socket, 'IPPROTO_IPV6'): socket.IPPROTO_IPV6 = 41 if not hasattr(socket, 'IPV6_V6ONLY'): socket.IPV6_V6ONLY = 27 -if sys.version_info < (3, 1): - import io -else: - import _pyio as io + + DEFAULT_BUFFER_SIZE = io.DEFAULT_BUFFER_SIZE -import threading -import time -from traceback import format_exc if sys.version_info >= (3, 0): bytestr = bytes @@ -140,8 +148,6 @@ FORWARD_SLASH = ntob('/') quoted_slash = re.compile(ntob("(?i)%2F")) -import errno - def plat_specific_errors(*errnames): """Return error numbers for all errors in errnames on this platform. @@ -185,7 +191,6 @@ ] -import logging if not hasattr(logging, 'statistics'): logging.statistics = {} @@ -1473,7 +1478,7 @@ timeout = 10 """The timeout in seconds for accepted connections (default 10).""" - version = "CherryPy/4.0.0" + version = "CherryPy/5.0.0" """A version string for the HTTPServer.""" software = None @@ -1613,7 +1618,7 @@ # So everyone can access the socket... try: - os.chmod(self.bind_addr, 511) # 0777 + os.chmod(self.bind_addr, 0o777) except: pass @@ -1681,7 +1686,7 @@ sys.stderr.write(msg + '\n') sys.stderr.flush() if traceback: - tblines = format_exc() + tblines = traceback_.format_exc() sys.stderr.write(tblines) sys.stderr.flush() @@ -1879,6 +1884,7 @@ # of such classes (in which case they will be lazily loaded). ssl_adapters = { 'builtin': 'cherrypy.wsgiserver.ssl_builtin.BuiltinSSLAdapter', + 'pyopenssl': 'cherrypy.wsgiserver.ssl_pyopenssl.pyOpenSSLAdapter', } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/setup.cfg new/CherryPy-5.0.0/setup.cfg --- old/CherryPy-4.0.0/setup.cfg 2015-12-20 05:53:24.000000000 +0100 +++ new/CherryPy-5.0.0/setup.cfg 2016-02-04 14:38:54.000000000 +0100 @@ -8,7 +8,7 @@ nocapture = True [egg_info] +tag_svn_revision = 0 tag_date = 0 tag_build = -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-4.0.0/setup.py new/CherryPy-5.0.0/setup.py --- old/CherryPy-4.0.0/setup.py 2015-12-20 05:53:20.000000000 +0100 +++ new/CherryPy-5.0.0/setup.py 2016-02-04 14:38:50.000000000 +0100 @@ -36,7 +36,7 @@ # arguments for the setup command ############################################################################### name = "CherryPy" -version = "4.0.0" +version = "5.0.0" desc = "Object-Oriented HTTP framework" long_desc = "CherryPy is a pythonic, object-oriented HTTP framework" classifiers = [ @@ -112,7 +112,7 @@ ) if sys.version_info >= (3, 0): - required_python_version = '3.0' + required_python_version = '3.1' else: required_python_version = '2.6'
participants (1)
-
root@hilbert.suse.de