Hello community, here is the log from the commit of package python3-CherryPy for openSUSE:Factory checked in at 2016-02-01 19:56:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-12-17 15:54:47.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-CherryPy.new/python3-CherryPy.changes 2016-02-01 19:57:08.000000000 +0100 @@ -1,0 +2,14 @@ +Sat Jan 30 18:19:46 UTC 2016 - arun@gmx.de + +- specfile: + * update copyright year + +- update to version 4.0.0: + * Drop support for Python 2.5 and earlier. + * No longer build Windows installers by default. + +- changes from version 3.8.2: + * Pull Request #116: Correct InternalServerError when null bytes in + static file path. Now responds with 404 instead. + +------------------------------------------------------------------- Old: ---- CherryPy-3.8.1.tar.gz New: ---- CherryPy-4.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-CherryPy.spec ++++++ --- /var/tmp/diff_new_pack.1XqE4p/_old 2016-02-01 19:57:09.000000000 +0100 +++ /var/tmp/diff_new_pack.1XqE4p/_new 2016-02-01 19:57:09.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-CherryPy # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 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 @@ -17,7 +17,7 @@ Name: python3-CherryPy -Version: 3.8.1 +Version: 4.0.0 Release: 0 Url: http://www.cherrypy.org Summary: Object-Oriented HTTP framework ++++++ CherryPy-3.8.1.tar.gz -> CherryPy-4.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/CherryPy.egg-info/PKG-INFO new/CherryPy-4.0.0/CherryPy.egg-info/PKG-INFO --- old/CherryPy-3.8.1/CherryPy.egg-info/PKG-INFO 2015-12-03 01:13:05.000000000 +0100 +++ new/CherryPy-4.0.0/CherryPy.egg-info/PKG-INFO 2015-12-20 05:53:24.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: CherryPy -Version: 3.8.1 +Version: 4.0.0 Summary: Object-Oriented HTTP framework Home-page: http://www.cherrypy.org Author: CherryPy Team @@ -17,13 +17,14 @@ Classifier: License :: OSI Approved :: BSD License Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.3 -Classifier: Programming Language :: Python :: 2.4 -Classifier: Programming Language :: Python :: 2.5 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: Implementation Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: Jython diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/CherryPy.egg-info/SOURCES.txt new/CherryPy-4.0.0/CherryPy.egg-info/SOURCES.txt --- old/CherryPy-3.8.1/CherryPy.egg-info/SOURCES.txt 2015-12-03 01:13:06.000000000 +0100 +++ new/CherryPy-4.0.0/CherryPy.egg-info/SOURCES.txt 2015-12-20 05:53:24.000000000 +0100 @@ -114,6 +114,7 @@ cherrypy/test/webtest.py cherrypy/test/static/404.html cherrypy/test/static/dirback.jpg +cherrypy/test/static/has space.html cherrypy/test/static/index.html cherrypy/tutorial/README.txt cherrypy/tutorial/__init__.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/PKG-INFO new/CherryPy-4.0.0/PKG-INFO --- old/CherryPy-3.8.1/PKG-INFO 2015-12-03 01:13:06.000000000 +0100 +++ new/CherryPy-4.0.0/PKG-INFO 2015-12-20 05:53:24.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: CherryPy -Version: 3.8.1 +Version: 4.0.0 Summary: Object-Oriented HTTP framework Home-page: http://www.cherrypy.org Author: CherryPy Team @@ -17,13 +17,14 @@ Classifier: License :: OSI Approved :: BSD License Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.3 -Classifier: Programming Language :: Python :: 2.4 -Classifier: Programming Language :: Python :: 2.5 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: Implementation Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: Jython diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/__init__.py new/CherryPy-4.0.0/cherrypy/__init__.py --- old/CherryPy-3.8.1/cherrypy/__init__.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/__init__.py 2015-12-20 05:53:20.000000000 +0100 @@ -56,10 +56,10 @@ These API's are described in the `CherryPy specification https://bitbucket.org/cherrypy/cherrypy/wiki/CherryPySpec`_. """ -__version__ = "3.8.1" +__version__ = "4.0.0" from cherrypy._cpcompat import urljoin as _urljoin, urlencode as _urlencode -from cherrypy._cpcompat import basestring, unicodestr, set +from cherrypy._cpcompat import basestring, unicodestr from cherrypy._cperror import HTTPError, HTTPRedirect, InternalRedirect from cherrypy._cperror import NotFound, CherryPyException, TimeoutError diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/_cpcompat.py new/CherryPy-4.0.0/cherrypy/_cpcompat.py --- old/CherryPy-3.8.1/cherrypy/_cpcompat.py 2015-12-03 00:24:55.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/_cpcompat.py 2015-12-20 05:37:04.000000000 +0100 @@ -111,11 +111,6 @@ raise TypeError("n must be a native str (got %s)" % type(n).__name__) try: - set = set -except NameError: - from sets import Set as set - -try: # Python 3.1+ from base64 import decodebytes as _base64_decodebytes except ImportError: @@ -137,17 +132,6 @@ else: return b -try: - # Python 2.5+ - from hashlib import md5 -except ImportError: - from md5 import new as md5 - -try: - # Python 2.5+ - from hashlib import sha1 as sha -except ImportError: - from sha import new as sha try: sorted = sorted @@ -333,18 +317,10 @@ # In Python 3, pickle is the sped-up C version. import pickle -try: - os.urandom(20) - import binascii - - def random20(): - return binascii.hexlify(os.urandom(20)).decode('ascii') -except (AttributeError, NotImplementedError): - import random - # os.urandom not available until Python 2.4. Fall back to random.random. +import binascii - def random20(): - return sha('%s' % random.random()).hexdigest() +def random20(): + return binascii.hexlify(os.urandom(20)).decode('ascii') try: from _thread import get_ident as get_thread_ident diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/_cpconfig.py new/CherryPy-4.0.0/cherrypy/_cpconfig.py --- old/CherryPy-3.8.1/cherrypy/_cpconfig.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/_cpconfig.py 2015-12-20 05:36:59.000000000 +0100 @@ -119,7 +119,7 @@ """ import cherrypy -from cherrypy._cpcompat import set, basestring +from cherrypy._cpcompat import basestring from cherrypy.lib import reprconf # Deprecated in CherryPy 3.2--remove in 3.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/_cpdispatch.py new/CherryPy-4.0.0/cherrypy/_cpdispatch.py --- old/CherryPy-3.8.1/cherrypy/_cpdispatch.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/_cpdispatch.py 2015-12-20 05:36:59.000000000 +0100 @@ -18,7 +18,6 @@ classtype = type import cherrypy -from cherrypy._cpcompat import set class PageHandler(object): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/daemon.py new/CherryPy-4.0.0/cherrypy/daemon.py --- old/CherryPy-3.8.1/cherrypy/daemon.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/daemon.py 2015-12-20 05:36:06.000000000 +0100 @@ -53,15 +53,12 @@ cherrypy.server.unsubscribe() addr = cherrypy.server.bind_addr - if fastcgi: - f = servers.FlupFCGIServer(application=cherrypy.tree, - bindAddress=addr) - elif scgi: - f = servers.FlupSCGIServer(application=cherrypy.tree, - bindAddress=addr) - else: - f = servers.FlupCGIServer(application=cherrypy.tree, - bindAddress=addr) + cls = ( + servers.FlupFCGIServer if fastcgi else + servers.FlupSCGIServer if scgi else + servers.FlupCGIServer + ) + f = cls(application=cherrypy.tree, bindAddress=addr) s = servers.ServerAdapter(engine, httpserver=f, bind_addr=addr) s.subscribe() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/lib/auth_digest.py new/CherryPy-4.0.0/cherrypy/lib/auth_digest.py --- old/CherryPy-3.8.1/cherrypy/lib/auth_digest.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/lib/auth_digest.py 2015-12-20 05:36:06.000000000 +0100 @@ -23,10 +23,11 @@ import time +from hashlib import md5 from cherrypy._cpcompat import parse_http_list, parse_keqv_list import cherrypy -from cherrypy._cpcompat import md5, ntob +from cherrypy._cpcompat import ntob md5_hex = lambda s: md5(ntob(s)).hexdigest() qop_auth = 'auth' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/lib/cptools.py new/CherryPy-4.0.0/cherrypy/lib/cptools.py --- old/CherryPy-3.8.1/cherrypy/lib/cptools.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/lib/cptools.py 2015-12-20 05:36:59.000000000 +0100 @@ -2,9 +2,10 @@ import logging import re +from hashlib import md5 import cherrypy -from cherrypy._cpcompat import basestring, md5, set, unicodestr +from cherrypy._cpcompat import basestring, unicodestr from cherrypy.lib import httputil as _httputil from cherrypy.lib import is_iterator diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/lib/encoding.py new/CherryPy-4.0.0/cherrypy/lib/encoding.py --- old/CherryPy-3.8.1/cherrypy/lib/encoding.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/lib/encoding.py 2015-12-20 05:36:59.000000000 +0100 @@ -2,7 +2,7 @@ import time import cherrypy -from cherrypy._cpcompat import basestring, BytesIO, ntob, set, unicodestr +from cherrypy._cpcompat import basestring, BytesIO, ntob, unicodestr from cherrypy.lib import file_generator from cherrypy.lib import is_closable_iterator from cherrypy.lib import set_vary_header diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/lib/httpauth.py new/CherryPy-4.0.0/cherrypy/lib/httpauth.py --- old/CherryPy-3.8.1/cherrypy/lib/httpauth.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/lib/httpauth.py 2015-12-20 05:36:06.000000000 +0100 @@ -62,7 +62,9 @@ ########################################################################## import time -from cherrypy._cpcompat import base64_decode, ntob, md5 +from hashlib import md5 + +from cherrypy._cpcompat import base64_decode, ntob from cherrypy._cpcompat import parse_http_list, parse_keqv_list MD5 = "MD5" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/lib/static.py new/CherryPy-4.0.0/cherrypy/lib/static.py --- old/CherryPy-3.8.1/cherrypy/lib/static.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/lib/static.py 2015-12-20 05:46:46.000000000 +0100 @@ -49,7 +49,10 @@ try: st = os.stat(path) - except OSError: + except (OSError, TypeError, ValueError): + # OSError when file fails to stat + # TypeError on Python 2 when there's a null byte + # ValueError on Python 3 when there's a null byte if debug: cherrypy.log('os.stat(%r) failed' % path, 'TOOLS.STATIC') raise cherrypy.NotFound() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/process/plugins.py new/CherryPy-4.0.0/cherrypy/process/plugins.py --- old/CherryPy-3.8.1/cherrypy/process/plugins.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/process/plugins.py 2015-12-20 05:36:59.000000000 +0100 @@ -8,7 +8,7 @@ import threading from cherrypy._cpcompat import basestring, get_daemon, get_thread_ident -from cherrypy._cpcompat import ntob, set, Timer, SetDaemonProperty +from cherrypy._cpcompat import ntob, Timer, SetDaemonProperty # _module__file__base is used by Autoreload to make # absolute any filenames retrieved from sys.modules which are not @@ -200,7 +200,7 @@ """Drop privileges. uid/gid arguments not available on Windows. - Special thanks to `Gavin Baker http://antonym.org/2005/12/dropping-privileges-in-python.html`_ + Special thanks to `Gavin Baker http://antonym.org/2005/12/dropping-privileges-in-python.html`_ """ def __init__(self, bus, umask=None, uid=None, gid=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/process/wspbus.py new/CherryPy-4.0.0/cherrypy/process/wspbus.py --- old/CherryPy-3.8.1/cherrypy/process/wspbus.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/process/wspbus.py 2015-12-20 05:36:59.000000000 +0100 @@ -68,8 +68,6 @@ import traceback as _traceback import warnings -from cherrypy._cpcompat import set - # Here I save the value of os.getcwd(), which, if I am imported early enough, # will be the directory from which the startup script was run. This is needed # by _do_execv(), to change back to the original directory before execv()ing a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/static/has space.html new/CherryPy-4.0.0/cherrypy/test/static/has space.html --- old/CherryPy-3.8.1/cherrypy/test/static/has space.html 1970-01-01 01:00:00.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/static/has space.html 2015-12-20 05:31:00.000000000 +0100 @@ -0,0 +1 @@ +Hello, world diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/test_auth_basic.py new/CherryPy-4.0.0/cherrypy/test/test_auth_basic.py --- old/CherryPy-3.8.1/cherrypy/test/test_auth_basic.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/test_auth_basic.py 2015-12-20 05:36:06.000000000 +0100 @@ -2,8 +2,10 @@ # -*- coding: utf-8 -*- # vim:ts=4:sw=4:expandtab:fileencoding=utf-8 +from hashlib import md5 + import cherrypy -from cherrypy._cpcompat import md5, ntob +from cherrypy._cpcompat import ntob from cherrypy.lib import auth_basic from cherrypy.test import helper diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/test_bus.py new/CherryPy-4.0.0/cherrypy/test/test_bus.py --- old/CherryPy-3.8.1/cherrypy/test/test_bus.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/test_bus.py 2015-12-20 05:37:09.000000000 +0100 @@ -2,8 +2,7 @@ import time import unittest -import cherrypy -from cherrypy._cpcompat import get_daemon, set +from cherrypy._cpcompat import get_daemon from cherrypy.process import wspbus diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/test_http.py new/CherryPy-4.0.0/cherrypy/test/test_http.py --- old/CherryPy-3.8.1/cherrypy/test/test_http.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/test_http.py 2015-12-17 23:07:55.000000000 +0100 @@ -5,6 +5,8 @@ import socket import sys +from mock import patch + import cherrypy from cherrypy._cpcompat import HTTPConnection, HTTPSConnection, ntob, py3k @@ -35,12 +37,12 @@ class HTTPTests(helper.CPWebCase): - + def make_connection(self): if self.scheme == "https": return HTTPSConnection('%s:%s' % (self.interface(), self.PORT)) else: - return HTTPConnection('%s:%s' % (self.interface(), self.PORT)) + return HTTPConnection('%s:%s' % (self.interface(), self.PORT)) def setup_server(): class Root: @@ -78,7 +80,7 @@ summary.append("%s * %d" % (curchar, count)) return ", ".join(summary) post_multipart.exposed = True - + @cherrypy.expose def post_filename(self, myfile): '''Return the name of the file which was uploaded.''' @@ -111,7 +113,8 @@ c = HTTPSConnection('%s:%s' % (self.interface(), self.PORT)) else: c = HTTPConnection('%s:%s' % (self.interface(), self.PORT)) - c.request("POST", "/") + with patch.object(c, '_set_content_length'): + c.request("POST", "/") response = c.getresponse() self.body = response.fp.read() self.status = str(response.status) @@ -140,7 +143,7 @@ self.status = str(response.status) self.assertStatus(200) self.assertBody(", ".join(["%s * 65536" % c for c in alphabet])) - + def test_post_filename_with_commas(self): '''Testing that we can handle filenames with commas. This was reported as a bug in: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/test_httpauth.py new/CherryPy-4.0.0/cherrypy/test/test_httpauth.py --- old/CherryPy-3.8.1/cherrypy/test/test_httpauth.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/test_httpauth.py 2015-12-20 05:36:06.000000000 +0100 @@ -1,5 +1,7 @@ +from hashlib import md5, sha1 + import cherrypy -from cherrypy._cpcompat import md5, sha, ntob +from cherrypy._cpcompat import ntob from cherrypy.lib import httpauth from cherrypy.test import helper @@ -39,10 +41,10 @@ return {'test': 'test'} def sha_password_encrypter(password): - return sha(ntob(password)).hexdigest() + return sha1(ntob(password)).hexdigest() def fetch_password(username): - return sha(ntob('test')).hexdigest() + return sha1(ntob('test')).hexdigest() conf = { '/digest': { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/test/test_static.py new/CherryPy-4.0.0/cherrypy/test/test_static.py --- old/CherryPy-3.8.1/cherrypy/test/test_static.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/test/test_static.py 2015-12-17 23:07:55.000000000 +0100 @@ -119,7 +119,7 @@ pass teardown_server = staticmethod(teardown_server) - def testStatic(self): + def test_static(self): self.getPage("/static/index.html") self.assertStatus('200 OK') self.assertHeader('Content-Type', 'text/html') @@ -333,6 +333,10 @@ self.assertStatus(404) self.assertInBody("I couldn't find that thing") + def test_null_bytes(self): + self.getPage("/static/\x00") + self.assertStatus('404 Not Found') + def error_page_404(status, message, traceback, version): import os.path return static.serve_file(os.path.join(curdir, 'static', '404.html'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/wsgiserver/wsgiserver2.py new/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver2.py --- old/CherryPy-3.8.1/cherrypy/wsgiserver/wsgiserver2.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver2.py 2015-12-20 05:53:20.000000000 +0100 @@ -1762,7 +1762,7 @@ timeout = 10 """The timeout in seconds for accepted connections (default 10).""" - version = "CherryPy/3.8.1" + version = "CherryPy/4.0.0" """A version string for the HTTPServer.""" software = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/cherrypy/wsgiserver/wsgiserver3.py new/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver3.py --- old/CherryPy-3.8.1/cherrypy/wsgiserver/wsgiserver3.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/cherrypy/wsgiserver/wsgiserver3.py 2015-12-20 05:53:20.000000000 +0100 @@ -1473,7 +1473,7 @@ timeout = 10 """The timeout in seconds for accepted connections (default 10).""" - version = "CherryPy/3.8.1" + version = "CherryPy/4.0.0" """A version string for the HTTPServer.""" software = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/setup.cfg new/CherryPy-4.0.0/setup.cfg --- old/CherryPy-3.8.1/setup.cfg 2015-12-03 01:13:06.000000000 +0100 +++ new/CherryPy-4.0.0/setup.cfg 2015-12-20 05:53:24.000000000 +0100 @@ -8,7 +8,7 @@ nocapture = True [egg_info] -tag_build = tag_date = 0 +tag_build = tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-3.8.1/setup.py new/CherryPy-4.0.0/setup.py --- old/CherryPy-3.8.1/setup.py 2015-11-25 07:01:28.000000000 +0100 +++ new/CherryPy-4.0.0/setup.py 2015-12-20 05:53:20.000000000 +0100 @@ -36,7 +36,7 @@ # arguments for the setup command ############################################################################### name = "CherryPy" -version = "3.8.1" +version = "4.0.0" desc = "Object-Oriented HTTP framework" long_desc = "CherryPy is a pythonic, object-oriented HTTP framework" classifiers = [ @@ -49,13 +49,14 @@ "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.3", - "Programming Language :: Python :: 2.4", - "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.1", + "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: Jython", @@ -113,7 +114,7 @@ if sys.version_info >= (3, 0): required_python_version = '3.0' else: - required_python_version = '2.3' + required_python_version = '2.6' ############################################################################### # end arguments for setup