Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-bottle for openSUSE:Factory 
checked in at 2022-05-30 12:42:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-bottle (Old)
 and      /work/SRC/openSUSE:Factory/.python-bottle.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-bottle"

Mon May 30 12:42:40 2022 rev:19 rq:979443 version:0.12.21

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-bottle/python-bottle.changes      
2020-11-17 21:21:22.457093955 +0100
+++ /work/SRC/openSUSE:Factory/.python-bottle.new.2254/python-bottle.changes    
2022-05-30 12:43:17.284337642 +0200
@@ -1,0 +2,12 @@
+Thu May 26 20:41:56 UTC 2022 - Beno??t Monin <[email protected]>
+
+- update to version 0.12.21: bugfix release
+  * Fix: Bad deprecation warning in cherrypy server adapter
+- update to version 0.12.20: security fix
+  * fix: Multipart file uploads with empty filename not detected
+    as binary
+  * fix auth_basic decorator (#586)
+  * Add ServerAdapter for CherryPy >= 9
+  * Gracefully handle errors during early request binding
+
+-------------------------------------------------------------------

Old:
----
  bottle-0.12.19.tar.gz

New:
----
  bottle-0.12.21.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-bottle.spec ++++++
--- /var/tmp/diff_new_pack.26wJfS/_old  2022-05-30 12:43:18.024338627 +0200
+++ /var/tmp/diff_new_pack.26wJfS/_new  2022-05-30 12:43:18.032338637 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-bottle
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-bottle
-Version:        0.12.19
+Version:        0.12.21
 Release:        0
 Summary:        WSGI framework for small web applications
 License:        MIT
@@ -29,9 +29,9 @@
 Patch0:         fix_cookie_test.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  python-rpm-macros
-BuildArch:      noarch
 Requires(post):   update-alternatives
-Requires(postun):  update-alternatives
+Requires(postun):update-alternatives
+BuildArch:      noarch
 %python_subpackages
 
 %description

++++++ bottle-0.12.19.tar.gz -> bottle-0.12.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bottle-0.12.19/AUTHORS new/bottle-0.12.21/AUTHORS
--- old/bottle-0.12.19/AUTHORS  1970-01-01 01:00:00.000000000 +0100
+++ new/bottle-0.12.21/AUTHORS  2022-05-24 20:27:52.000000000 +0200
@@ -0,0 +1,64 @@
+Bottle is written and maintained by Marcel Hellkamp <[email protected]>.
+
+Thanks to all the people who found bugs, sent patches, spread the word, helped 
each other on the mailing-list and made this project possible. I hope the 
following (alphabetically sorted) list is complete. If you miss your name on 
that list (or want your name removed) please :doc:`tell me <contact>` or add it 
yourself.
+
+* acasajus
+* Adam R. Smith
+* Alexey Borzenkov
+* Alexis Daboville
+* Anton I. Sipos
+* Anton Kolechkin
+* apexi200sx
+* apheage
+* BillMa
+* Brad Greenlee
+* Brandon Gilmore
+* Branko Vukelic
+* Brian Sierakowski
+* Brian Wickman
+* Carl Scharenberg
+* Damien Degois
+* David Buxton
+* Duane Johnson
+* fcamel
+* Frank Murphy
+* Frederic Junod
+* goldfaber3012
+* Greg Milby
+* gstein
+* Ian Davis
+* Itamar Nabriski
+* Iuri de Silvio
+* Jaimie Murdock
+* Jeff Nichols
+* Jeremy Kelley
+* joegester
+* Johannes Krampf
+* Jonas Haag
+* Joshua Roesslein
+* Karl
+* Kevin Zuber
+* Kraken
+* Kyle Fritz
+* m35
+* Marcos Neves
+* masklinn
+* Michael Labbe
+* Michael Soulier
+* `reddit <http://reddit.com/r/python>`_
+* Nicolas Vanhoren
+* Robert Rollins
+* rogererens
+* rwxrwx
+* Santiago Gala
+* Sean M. Collins
+* Sebastian Wollrath
+* Seth
+* Sigurd H??gsbro
+* Stuart Rackham
+* Sun Ning
+* Tom??s A. Schertel
+* Tristan Zajonc
+* voltron
+* Wieland Hoffmann
+* zombat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bottle-0.12.19/PKG-INFO new/bottle-0.12.21/PKG-INFO
--- old/bottle-0.12.19/PKG-INFO 2020-11-11 19:50:24.091900000 +0100
+++ new/bottle-0.12.21/PKG-INFO 2022-05-26 20:46:29.381940000 +0200
@@ -1,23 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: bottle
-Version: 0.12.19
+Version: 0.12.21
 Summary: Fast and simple WSGI-framework for small web-applications.
 Home-page: http://bottlepy.org/
 Author: Marcel Hellkamp
 Author-email: [email protected]
 License: MIT
-Description: 
-        Bottle is a fast and simple micro-framework for small web 
applications. It
-        offers request dispatching (Routes) with url parameter support, 
templates,
-        a built-in HTTP Server and adapters for many third party 
WSGI/HTTP-server and
-        template engines - all in a single file and with no dependencies other 
than the
-        Python Standard Library.
-        
-        Homepage and documentation: http://bottlepy.org/
-        
-        Copyright (c) 2016, Marcel Hellkamp.
-        License: MIT (see LICENSE for details)
-        
 Platform: any
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
@@ -39,3 +27,17 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+License-File: LICENSE
+License-File: AUTHORS
+
+
+Bottle is a fast and simple micro-framework for small web applications. It
+offers request dispatching (Routes) with url parameter support, templates,
+a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and
+template engines - all in a single file and with no dependencies other than the
+Python Standard Library.
+
+Homepage and documentation: http://bottlepy.org/
+
+Copyright (c) 2016, Marcel Hellkamp.
+License: MIT (see LICENSE for details)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bottle-0.12.19/bottle.egg-info/PKG-INFO 
new/bottle-0.12.21/bottle.egg-info/PKG-INFO
--- old/bottle-0.12.19/bottle.egg-info/PKG-INFO 2020-11-11 19:50:24.000000000 
+0100
+++ new/bottle-0.12.21/bottle.egg-info/PKG-INFO 2022-05-26 20:46:28.000000000 
+0200
@@ -1,23 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: bottle
-Version: 0.12.19
+Version: 0.12.21
 Summary: Fast and simple WSGI-framework for small web-applications.
 Home-page: http://bottlepy.org/
 Author: Marcel Hellkamp
 Author-email: [email protected]
 License: MIT
-Description: 
-        Bottle is a fast and simple micro-framework for small web 
applications. It
-        offers request dispatching (Routes) with url parameter support, 
templates,
-        a built-in HTTP Server and adapters for many third party 
WSGI/HTTP-server and
-        template engines - all in a single file and with no dependencies other 
than the
-        Python Standard Library.
-        
-        Homepage and documentation: http://bottlepy.org/
-        
-        Copyright (c) 2016, Marcel Hellkamp.
-        License: MIT (see LICENSE for details)
-        
 Platform: any
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
@@ -39,3 +27,17 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+License-File: LICENSE
+License-File: AUTHORS
+
+
+Bottle is a fast and simple micro-framework for small web applications. It
+offers request dispatching (Routes) with url parameter support, templates,
+a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and
+template engines - all in a single file and with no dependencies other than the
+Python Standard Library.
+
+Homepage and documentation: http://bottlepy.org/
+
+Copyright (c) 2016, Marcel Hellkamp.
+License: MIT (see LICENSE for details)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bottle-0.12.19/bottle.egg-info/SOURCES.txt 
new/bottle-0.12.21/bottle.egg-info/SOURCES.txt
--- old/bottle-0.12.19/bottle.egg-info/SOURCES.txt      2020-11-11 
19:50:24.000000000 +0100
+++ new/bottle-0.12.21/bottle.egg-info/SOURCES.txt      2022-05-26 
20:46:29.000000000 +0200
@@ -1,3 +1,4 @@
+AUTHORS
 LICENSE
 MANIFEST.in
 README.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bottle-0.12.19/bottle.py new/bottle-0.12.21/bottle.py
--- old/bottle-0.12.19/bottle.py        2020-11-11 19:43:12.000000000 +0100
+++ new/bottle-0.12.21/bottle.py        2022-05-26 20:36:26.000000000 +0200
@@ -16,7 +16,7 @@
 from __future__ import with_statement
 
 __author__ = 'Marcel Hellkamp'
-__version__ = '0.12.19'
+__version__ = '0.12.21'
 __license__ = 'MIT'
 
 # The gevent server adapter needs to patch some modules before they are 
imported
@@ -848,17 +848,19 @@
         return tob(template(ERROR_PAGE_TEMPLATE, e=res))
 
     def _handle(self, environ):
-        path = environ['bottle.raw_path'] = environ['PATH_INFO']
-        if py3k:
-            try:
-                environ['PATH_INFO'] = path.encode('latin1').decode('utf8')
-            except UnicodeError:
-                return HTTPError(400, 'Invalid path string. Expected UTF-8')
-
         try:
+
             environ['bottle.app'] = self
             request.bind(environ)
             response.bind()
+
+            path = environ['bottle.raw_path'] = environ['PATH_INFO']
+            if py3k:
+                try:
+                    environ['PATH_INFO'] = path.encode('latin1').decode('utf8')
+                except UnicodeError:
+                    return HTTPError(400, 'Invalid path string. Expected 
UTF-8')
+
             try:
                 self.trigger_hook('before_request')
                 route, args = self.router.match(environ)
@@ -1239,11 +1241,11 @@
         self['_cgi.FieldStorage'] = data 
#http://bugs.python.org/issue18394#msg207958
         data = data.list or []
         for item in data:
-            if item.filename:
+            if item.filename is None:
+                post[item.name] = item.value
+            else:
                 post[item.name] = FileUpload(item.file, item.name,
                                              item.filename, item.headers)
-            else:
-                post[item.name] = item.value
         return post
 
     @property
@@ -2689,6 +2691,7 @@
     ''' Callback decorator to require HTTP auth (basic).
         TODO: Add route(check_auth=...) parameter. '''
     def decorator(func):
+        @functools.wraps(func)
         def wrapper(*a, **ka):
             user, password = request.auth or (None, None)
             if user is None or not check(user, password):
@@ -2792,7 +2795,11 @@
 
 class CherryPyServer(ServerAdapter):
     def run(self, handler): # pragma: no cover
-        from cherrypy import wsgiserver
+        depr("The wsgi server part of cherrypy was split into a new "
+             "project called 'cheroot'. Use the 'cheroot' server "
+             "adapter instead of cherrypy.")
+        from cherrypy import wsgiserver # This will fail for CherryPy >= 9
+
         self.options['bind_addr'] = (self.host, self.port)
         self.options['wsgi_app'] = handler
 
@@ -2815,6 +2822,25 @@
             server.stop()
 
 
+class CherootServer(ServerAdapter):
+    def run(self, handler): # pragma: no cover
+        from cheroot import wsgi
+        from cheroot.ssl import builtin
+        self.options['bind_addr'] = (self.host, self.port)
+        self.options['wsgi_app'] = handler
+        certfile = self.options.pop('certfile', None)
+        keyfile = self.options.pop('keyfile', None)
+        chainfile = self.options.pop('chainfile', None)
+        server = wsgi.Server(**self.options)
+        if certfile and keyfile:
+            server.ssl_adapter = builtin.BuiltinSSLAdapter(
+                    certfile, keyfile, chainfile)
+        try:
+            server.start()
+        finally:
+            server.stop()
+
+
 class WaitressServer(ServerAdapter):
     def run(self, handler):
         from waitress import serve
@@ -2982,7 +3008,9 @@
 
 class AutoServer(ServerAdapter):
     """ Untested. """
-    adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, 
WSGIRefServer]
+    adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer,
+                CherootServer, WSGIRefServer]
+
     def run(self, handler):
         for sa in self.adapters:
             try:
@@ -2996,6 +3024,7 @@
     'wsgiref': WSGIRefServer,
     'waitress': WaitressServer,
     'cherrypy': CherryPyServer,
+    'cheroot': CherootServer,
     'paste': PasteServer,
     'fapws3': FapwsServer,
     'tornado': TornadoServer,

Reply via email to