Hello community,

here is the log from the commit of package python-Werkzeug for openSUSE:Factory 
checked in at 2020-02-26 15:01:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Werkzeug (Old)
 and      /work/SRC/openSUSE:Factory/.python-Werkzeug.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Werkzeug"

Wed Feb 26 15:01:24 2020 rev:29 rq:779352 version:0.16.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Werkzeug/python-Werkzeug.changes  
2020-02-25 16:03:32.268255201 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-Werkzeug.new.26092/python-Werkzeug.changes   
    2020-02-26 15:01:25.200757052 +0100
@@ -2,46 +1,0 @@
-Fri Feb 21 04:58:05 UTC 2020 - Steve Kowalik <[email protected]>
-
-- Update to 1.0.0:
-  * Drop support for Python 3.4. (#1478)
-  * Remove code that issued deprecation warnings in version 0.15. (#1477)
-  * Remove most top-level attributes provided by the werkzeug module in favor 
of direct imports. For example, instead of import werkzeug; werkzeug.url_quote, 
do from werkzeug.urls import url_quote. Install version 0.16 first to see 
deprecation warnings while upgrading. #2, #1640
-  * Added utils.invalidate_cached_property() to invalidate cached properties. 
(#1474)
-  * Directive keys for the Set-Cookie response header are not ignored when 
parsing the Cookie request header. This allows cookies with names such as 
“expires” and “version”. (#1495)
-  * Request cookies are parsed into a MultiDict to capture all values for 
cookies with the same key. cookies[key] returns the first value rather than the 
last. Use cookies.getlist(key) to get all values. parse_cookie also defaults to 
a MultiDict. #1562, #1458
-  * Add charset=utf-8 to an HTTP exception response’s CONTENT_TYPE header. 
(#1526)
-  * The interactive debugger handles outer variables in nested scopes such as 
lambdas and comprehensions. #913, #1037, #1532
-  * The user agent for Opera 60 on Mac is correctly reported as “opera” 
instead of “chrome”. #1556
-  * The platform for Crosswalk on Android is correctly reported as “android” 
instead of “chromeos”. (#1572)
-  * Issue a warning when the current server name does not match the configured 
server name. #760
-  * A configured server name with the default port for a scheme will match the 
current server name without the port if the current scheme matches. #1584
-  * InternalServerError has a original_exception attribute that frameworks can 
use to track the original cause of the error. #1590
-  * Headers are tested for equality independent of the header key case, such 
that X-Foo is the same as x-foo. #1605
-  * http.dump_cookie() accepts 'None' as a value for samesite. #1549
-  * set_cookie() accepts a samesite argument. #1705
-  * Support the Content Security Policy header through the 
Response.content_security_policy data structure. #1617
-  * LanguageAccept will fall back to matching “en” for “en-US” or “en-US” for 
“en” to better support clients or translations that only match at the primary 
language tag. #450, #1507
-  * MIMEAccept uses MIME parameters for specificity when matching. #458, #1574
-  * If the development server is started with an SSLContext configured to 
verify client certificates, the certificate in PEM format will be available as 
environ["SSL_CLIENT_CERT"]. #1469
-  * is_resource_modified will run for methods other than GET and HEAD, rather 
than always returning False. #409
-  * SharedDataMiddleware returns 404 rather than 500 when trying to access a 
directory instead of a file with the package loader. The dependency on 
setuptools and pkg_resources is removed. #1599
-  * Add a response.cache_control.immutable flag. Keep in mind that browser 
support for this Cache-Control header option is still experimental and may not 
be implemented. #1185
-  * Optional request log highlighting with the development server is handled 
by Click instead of termcolor. #1235
-  * Optional ad-hoc TLS support for the development server is handled by 
cryptography instead of pyOpenSSL. #1555
-  * FileStorage.save() supports pathlib and PEP 519 PathLike objects. #1653
-  * The debugger security pin is unique in containers managed by Podman. #1661
-  * Building a URL when host_matching is enabled takes into account the 
current host when there are duplicate endpoints with different hosts. #488
-  * The 429 TooManyRequests and 503 ServiceUnavailable HTTP exceptions takes a 
retry_after parameter to set the Retry-After header. #1657
-  * Map and Rule have a merge_slashes option to collapse multiple slashes into 
one, similar to how many HTTP servers behave. This is enabled by default. 
#1286, #1694
-  * Add HTTP 103, 208, 306, 425, 506, 508, and 511 to the list of status 
codes. #1678
-  * Add update, setlist, and setlistdefault methods to the Headers data 
structure. extend method can take MultiDict and kwargs. #1687, #1697
-  * The development server accepts paths that start with two slashes, rather 
than stripping off the first path segment. #491
-  * Add access control (Cross Origin Request Sharing, CORS) header properties 
to the Request and Response wrappers. #1699
-  * Accept values are no longer ordered alphabetically for equal quality tags. 
Instead the initial order is preserved. #1686
-  * Added Map.lock_class attribute for alternative implementations. #1702
-  * Support matching and building WebSocket rules in the routing system, for 
use by async frameworks. #1709
-  * Range requests that span an entire file respond with 206 instead of 200, 
to be more compliant with RFC 7233. This may help serving media to older 
browsers. #410, #1704
-  * The SharedDataMiddleware default fallback_mimetype is 
application/octet-stream. If a filename looks like a text mimetype, the utf-8 
charset is added to it. This matches the behavior of BaseResponse and Flask’s 
send_file(). #1689
-- Remove patch 0001_create_a_thread_to_reap_death_process.patch, not required
-- Add pytest-timeout to BuildRequires
-
--------------------------------------------------------------------

Old:
----
  Werkzeug-1.0.0.tar.gz

New:
----
  0001_create_a_thread_to_reap_death_process.patch
  Werkzeug-0.16.0.tar.gz

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

Other differences:
------------------
++++++ python-Werkzeug.spec ++++++
--- /var/tmp/diff_new_pack.36HSJ2/_old  2020-02-26 15:01:26.236759119 +0100
+++ /var/tmp/diff_new_pack.36HSJ2/_new  2020-02-26 15:01:26.240759127 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-Werkzeug
 #
-# Copyright (c) 2020 SUSE LLC
+# 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
@@ -19,15 +19,16 @@
 %define oldpython python
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-Werkzeug
-Version:        1.0.0
+Version:        0.16.0
 Release:        0
 Summary:        The Swiss Army knife of Python web development
 License:        BSD-3-Clause
 Group:          Development/Languages/Python
 URL:            http://werkzeug.pocoo.org/
 Source:         
https://files.pythonhosted.org/packages/source/W/Werkzeug/Werkzeug-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM 0001_create_a_thread_to_reap_death_process.patch 
bsc#954591
+Patch0:         0001_create_a_thread_to_reap_death_process.patch
 BuildRequires:  %{python_module hypothesis}
-BuildRequires:  %{python_module pytest-timeout}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module requests}
 BuildRequires:  %{python_module setuptools}
@@ -65,6 +66,7 @@
 %prep
 %setup -q -n Werkzeug-%{version}
 sed -i "1d" 
examples/manage-{i18nurls,simplewiki,shorty,couchy,cupoftee,webpylike,plnt,coolmagic}.py
 # Fix non-executable scripts
+%patch0 -p1
 
 %build
 %python_build

++++++ 0001_create_a_thread_to_reap_death_process.patch ++++++
>From 676bc5fa4b6aa9d153c9805cdbad0ff0450bade6 Mon Sep 17 00:00:00 2001
From: Alberto Planas <[email protected]>
Date: Wed, 3 Feb 2016 11:56:23 +0100
Subject: [PATCH] Create a thread to reap death process

ForkingWSGIServer use `SocketServer.ForkingMixIn` to implement a
multiprocess server.  This class provides a workflow that collect
death process (process in Zombie status) before the
`process_request`.  This means that this process itself will be
in Zombie status at the end of the request, that will be eventually
collected during the next `process_request`.

To minimize transient Zombie process, `ForkingWSGIServer` is
creating a daemon thread (via `threading.Timer`) to call the
collector every (by default) 5 seconds.

Fixes #810
---
 werkzeug/serving.py | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

Index: Werkzeug-0.16.0/src/werkzeug/serving.py
===================================================================
--- Werkzeug-0.16.0.orig/src/werkzeug/serving.py
+++ Werkzeug-0.16.0/src/werkzeug/serving.py
@@ -40,6 +40,7 @@ import os
 import signal
 import socket
 import sys
+import threading
 
 from ._compat import PY2
 from ._compat import reraise
@@ -776,6 +777,7 @@ class ForkingWSGIServer(ForkingMixIn, Ba
         passthrough_errors=False,
         ssl_context=None,
         fd=None,
+        frequency=5,
     ):
         if not can_fork:
             raise ValueError("Your platform does not support forking.")
@@ -784,6 +786,23 @@ class ForkingWSGIServer(ForkingMixIn, Ba
         )
         self.max_children = processes
 
+        if frequency:
+            self.frequency = frequency
+            self.setup_reap_children()
+
+    def setup_reap_children(self):
+        """Create a thread to collect death children."""
+        t = threading.Timer(self.frequency, self.reap_children)
+        # Set daemon mode to provide a clean termination of the thread
+        # when the system ends
+        t.daemon = True
+        t.start()
+
+    def reap_children(self):
+        """Reap or collect death children."""
+        self.collect_children()
+        self.setup_reap_children()
+
 
 def make_server(
     host=None,
++++++ Werkzeug-1.0.0.tar.gz -> Werkzeug-0.16.0.tar.gz ++++++
++++ 10910 lines of diff (skipped)


Reply via email to