Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python311 for openSUSE:Factory checked in at 2025-04-24 17:24:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python311 (Old) and /work/SRC/openSUSE:Factory/.python311.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python311" Thu Apr 24 17:24:53 2025 rev:51 rq:1270996 version:3.11.12 Changes: -------- --- /work/SRC/openSUSE:Factory/python311/python311.changes 2025-04-20 20:08:30.414468468 +0200 +++ /work/SRC/openSUSE:Factory/.python311.new.30101/python311.changes 2025-04-24 17:25:01.308096357 +0200 @@ -2 +2 @@ -Fri Apr 11 08:54:19 UTC 2025 - Matej Cepl <mc...@cepl.eu> +Fri Apr 18 14:05:38 UTC 2025 - Matej Cepl <mc...@cepl.eu> @@ -48,0 +49,4 @@ +- Add gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch + which makes test_ssl not to stop ThreadedEchoServer on OSError, + which makes test_ssl pass with OpenSSL 3.5 (bsc#1241067, + gh#python/cpython!126572) New: ---- gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch BETA DEBUG BEGIN: New: - CVE-2025-0938-sq-brackets-domain-names.patch - Add gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch which makes test_ssl not to stop ThreadedEchoServer on OSError, BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python311.spec ++++++ --- /var/tmp/diff_new_pack.FLILBg/_old 2025-04-24 17:25:02.356140335 +0200 +++ /var/tmp/diff_new_pack.FLILBg/_new 2025-04-24 17:25:02.356140335 +0200 @@ -188,8 +188,12 @@ Patch22: gh120226-fix-sendfile-test-kernel-610.patch # PATCH-FIX-UPSTREAM Add platform triplets for 64-bit LoongArch gh#python/cpython#30939 glaub...@suse.com Patch24: add-loongarch64-support.patch +# PATCH-FIX-UPSTREAM gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch bsc#1241067 mc...@suse.com +# don't stop ThreadedEchoServer on OSError, makes test_ssl fail with OpenSSL 3.5 +Patch25: gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch BuildRequires: autoconf-archive BuildRequires: automake +BuildRequires: crypto-policies-scripts BuildRequires: fdupes BuildRequires: gmp-devel BuildRequires: lzma-devel @@ -451,6 +455,7 @@ %patch -p1 -P 19 %patch -p1 -P 22 %patch -p1 -P 24 +%patch -p1 -P 25 # drop Autoconf version requirement sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac ++++++ gh-126572-test_ssl-no-stop-ThreadedEchoServer-OSError.patch ++++++ >From 3d390148c05a7ea2d401c4633e7d4db75ebf97d9 Mon Sep 17 00:00:00 2001 From: Petr Viktorin <encu...@gmail.com> Date: Thu, 7 Nov 2024 11:07:02 +0100 Subject: [PATCH] gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError in ConnectionHandler; rely on __exit__ (GH-126503) If `read()` in the ConnectionHandler thread raises `OSError` (except `ConnectionError`), the ConnectionHandler shuts down the entire ThreadedEchoServer, preventing further connections. It also does that for `EPROTOTYPE` in `wrap_conn`. As far as I can see, this is done to avoid the server thread getting stuck, forgotten, in its accept loop. However, since 2011 (5b95eb90a7167285b6544b50865227c584943c9a) the server is used as a context manager, and its `__exit__` does `stop()` and `join()`. (I'm not sure if we *always* used `with` since that commit, but currently we do.) Make sure that the context manager *is* used, and remove the `server.stop()` calls from ConnectionHandler. (cherry picked from commit c9cda1608edf7664c10f4f467e24591062c2fe62) Co-authored-by: Petr Viktorin <encu...@gmail.com> --- Lib/test/test_ssl.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) Index: Python-3.11.12/Lib/test/test_ssl.py =================================================================== --- Python-3.11.12.orig/Lib/test/test_ssl.py 2025-04-19 19:55:02.157545844 +0200 +++ Python-3.11.12/Lib/test/test_ssl.py 2025-04-19 19:55:05.014552345 +0200 @@ -2516,7 +2516,6 @@ # See also http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ if e.errno != errno.EPROTOTYPE and sys.platform != "darwin": self.running = False - self.server.stop() self.close() return False else: @@ -2651,10 +2650,6 @@ self.close() self.running = False - # normally, we'd just stop here, but for the test - # harness, we want to stop the server - self.server.stop() - def __init__(self, certificate=None, ssl_version=None, certreqs=None, cacerts=None, chatty=True, connectionchatty=False, starttls_server=False, @@ -2688,21 +2683,33 @@ self.conn_errors = [] threading.Thread.__init__(self) self.daemon = True + self._in_context = False def __enter__(self): + if self._in_context: + raise ValueError('Re-entering ThreadedEchoServer context') + self._in_context = True self.start(threading.Event()) self.flag.wait() return self def __exit__(self, *args): + assert self._in_context + self._in_context = False self.stop() self.join() def start(self, flag=None): + if not self._in_context: + raise ValueError( + 'ThreadedEchoServer must be used as a context manager') self.flag = flag threading.Thread.start(self) def run(self): + if not self._in_context: + raise ValueError( + 'ThreadedEchoServer must be used as a context manager') self.sock.settimeout(1.0) self.sock.listen(5) self.active = True ++++++ python311-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.FLILBg/_old 2025-04-24 17:25:02.564149064 +0200 +++ /var/tmp/diff_new_pack.FLILBg/_new 2025-04-24 17:25:02.568149231 +0200 @@ -1,4 +1,5 @@ addFilter("pem-certificate.*/usr/lib.*/python.*/test/*.pem") addFilter("devel-file-in-non-devel-package.*/usr/lib.*/python.*/tests/*.c") addFilter("devel-file-in-non-devel-package.*/usr/lib.*/python.*/test/*.cpp") +addFilter("python-bytecode-inconsistent-mtime.*\.pyc")