public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/mingw-python3] f43: Update to 3.11.16
@ 2026-09-18 17:26 Sandro Mani
  0 siblings, 0 replies; only message in thread
From: Sandro Mani @ 2026-09-18 17:26 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/mingw-python3
Branch : f43
Commit : 2320b787fdf2cacbda927e16b602e1d835fe83fe
Author : Sandro Mani <manisandro@gmail.com>
Date   : 2026-09-18T19:25:37+02:00
Stats  : +159/-655 in 26 file(s)
URL    : https://src.fedoraproject.org/rpms/mingw-python3/c/2320b787fdf2cacbda927e16b602e1d835fe83fe?branch=f43

Log:
Update to 3.11.16

---
diff --git a/.gitignore b/.gitignore
index 5b4c05b..8df5e10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,4 @@
 /Python-3.11.13.tar.xz
 /Python-3.11.14.tar.xz
 /Python-3.11.15.tar.xz
+/Python-3.11.16.tar.xz

diff --git a/146000.patch b/146000.patch
deleted file mode 100644
index 3d93e79..0000000
--- a/146000.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_pyexpat.py Python-3.11.15-new/Lib/test/test_pyexpat.py
---- Python-3.11.15/Lib/test/test_pyexpat.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/test/test_pyexpat.py	2026-03-27 18:42:08.793819558 +0100
-@@ -675,6 +675,24 @@ class ChardataBufferTest(unittest.TestCa
-         parser.Parse(xml2, True)
-         self.assertEqual(self.n, 4)
- 
-+class ElementDeclHandlerTest(unittest.TestCase):
-+    def test_deeply_nested_content_model(self):
-+        # This should raise a RecursionError and not crash.
-+        # See https://github.com/python/cpython/issues/145986.
-+        N = 500_000
-+        data = (
-+            b'<!DOCTYPE root [\n<!ELEMENT root '
-+            + b'(a, ' * N + b'a' + b')' * N
-+            + b'>\n]>\n<root/>\n'
-+        )
-+
-+        parser = expat.ParserCreate()
-+        parser.ElementDeclHandler = lambda _1, _2: None
-+        with support.infinite_recursion():
-+            with self.assertRaises(RecursionError):
-+                parser.Parse(data)
-+
-+
- class MalformedInputTest(unittest.TestCase):
-     def test1(self):
-         xml = b"\0\r\n"
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-14-17-31-39.gh-issue-145986.ifSSr8.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-14-17-31-39.gh-issue-145986.ifSSr8.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-14-17-31-39.gh-issue-145986.ifSSr8.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-14-17-31-39.gh-issue-145986.ifSSr8.rst	2026-03-27 18:42:08.794449487 +0100
-@@ -0,0 +1,4 @@
-+:mod:`xml.parsers.expat`: Fixed a crash caused by unbounded C recursion when
-+converting deeply nested XML content models with
-+:meth:`~xml.parsers.expat.xmlparser.ElementDeclHandler`.
-+This addresses `CVE-2026-4224 <https://www.cve.org/CVERecord?id=CVE-2026-4224>`_.
-diff -rupN --no-dereference Python-3.11.15/Modules/pyexpat.c Python-3.11.15-new/Modules/pyexpat.c
---- Python-3.11.15/Modules/pyexpat.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/pyexpat.c	2026-03-27 18:42:08.794237916 +0100
-@@ -3,6 +3,7 @@
- #endif
- 
- #include "Python.h"
-+#include "pycore_ceval.h"           // _Py_EnterRecursiveCall()
- #include "pycore_runtime.h"         // _Py_ID()
- #include <ctype.h>
- 
-@@ -578,6 +579,10 @@ static PyObject *
- conv_content_model(XML_Content * const model,
-                    PyObject *(*conv_string)(const XML_Char *))
- {
-+    if (_Py_EnterRecursiveCall(" in conv_content_model")) {
-+        return NULL;
-+    }
-+
-     PyObject *result = NULL;
-     PyObject *children = PyTuple_New(model->numchildren);
-     int i;
-@@ -589,7 +594,7 @@ conv_content_model(XML_Content * const m
-                                                  conv_string);
-             if (child == NULL) {
-                 Py_XDECREF(children);
--                return NULL;
-+                goto done;
-             }
-             PyTuple_SET_ITEM(children, i, child);
-         }
-@@ -597,6 +602,8 @@ conv_content_model(XML_Content * const m
-                                model->type, model->quant,
-                                conv_string,model->name, children);
-     }
-+done:
-+    _Py_LeaveRecursiveCall();
-     return result;
- }
- 

diff --git a/146026.patch b/146026.patch
deleted file mode 100644
index ceb4885..0000000
--- a/146026.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/http/cookies.py Python-3.11.15-new/Lib/http/cookies.py
---- Python-3.11.15/Lib/http/cookies.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/http/cookies.py	2026-03-27 18:42:08.542717334 +0100
-@@ -335,9 +335,16 @@ class Morsel(dict):
-             key = key.lower()
-             if key not in self._reserved:
-                 raise CookieError("Invalid attribute %r" % (key,))
-+            if _has_control_character(key, val):
-+                raise CookieError("Control characters are not allowed in "
-+                                  f"cookies {key!r} {val!r}")
-             data[key] = val
-         dict.update(self, data)
- 
-+    def __ior__(self, values):
-+        self.update(values)
-+        return self
-+
-     def isReservedKey(self, K):
-         return K.lower() in self._reserved
- 
-@@ -363,9 +370,15 @@ class Morsel(dict):
-         }
- 
-     def __setstate__(self, state):
--        self._key = state['key']
--        self._value = state['value']
--        self._coded_value = state['coded_value']
-+        key = state['key']
-+        value = state['value']
-+        coded_value = state['coded_value']
-+        if _has_control_character(key, value, coded_value):
-+            raise CookieError("Control characters are not allowed in cookies "
-+                              f"{key!r} {value!r} {coded_value!r}")
-+        self._key = key
-+        self._value = value
-+        self._coded_value = coded_value
- 
-     def output(self, attrs=None, header="Set-Cookie:"):
-         return "%s %s" % (header, self.OutputString(attrs))
-@@ -377,13 +390,16 @@ class Morsel(dict):
- 
-     def js_output(self, attrs=None):
-         # Print javascript
-+        output_string = self.OutputString(attrs)
-+        if _has_control_character(output_string):
-+            raise CookieError("Control characters are not allowed in cookies")
-         return """
-         <script type="text/javascript">
-         <!-- begin hiding
-         document.cookie = \"%s\";
-         // end hiding -->
-         </script>
--        """ % (self.OutputString(attrs).replace('"', r'\"'))
-+        """ % (output_string.replace('"', r'\"'))
- 
-     def OutputString(self, attrs=None):
-         # Build up our result
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_http_cookies.py Python-3.11.15-new/Lib/test/test_http_cookies.py
---- Python-3.11.15/Lib/test/test_http_cookies.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/test/test_http_cookies.py	2026-03-27 18:42:08.542915357 +0100
-@@ -527,6 +527,14 @@ class MorselTests(unittest.TestCase):
-             with self.assertRaises(cookies.CookieError):
-                 morsel["path"] = c0
- 
-+            # .__setstate__()
-+            with self.assertRaises(cookies.CookieError):
-+                morsel.__setstate__({'key': c0, 'value': 'val', 'coded_value': 'coded'})
-+            with self.assertRaises(cookies.CookieError):
-+                morsel.__setstate__({'key': 'key', 'value': c0, 'coded_value': 'coded'})
-+            with self.assertRaises(cookies.CookieError):
-+                morsel.__setstate__({'key': 'key', 'value': 'val', 'coded_value': c0})
-+
-             # .setdefault()
-             with self.assertRaises(cookies.CookieError):
-                 morsel.setdefault("path", c0)
-@@ -541,6 +549,18 @@ class MorselTests(unittest.TestCase):
-             with self.assertRaises(cookies.CookieError):
-                 morsel.set("path", "val", c0)
- 
-+            # .update()
-+            with self.assertRaises(cookies.CookieError):
-+                morsel.update({"path": c0})
-+            with self.assertRaises(cookies.CookieError):
-+                morsel.update({c0: "val"})
-+
-+            # .__ior__()
-+            with self.assertRaises(cookies.CookieError):
-+                morsel |= {"path": c0}
-+            with self.assertRaises(cookies.CookieError):
-+                morsel |= {c0: "val"}
-+
-     def test_control_characters_output(self):
-         # Tests that even if the internals of Morsel are modified
-         # that a call to .output() has control character safeguards.
-@@ -561,6 +581,24 @@ class MorselTests(unittest.TestCase):
-             with self.assertRaises(cookies.CookieError):
-                 cookie.output()
- 
-+        # Tests that .js_output() also has control character safeguards.
-+        for c0 in support.control_characters_c0():
-+            morsel = cookies.Morsel()
-+            morsel.set("key", "value", "coded-value")
-+            morsel._key = c0  # Override private variable.
-+            cookie = cookies.SimpleCookie()
-+            cookie["cookie"] = morsel
-+            with self.assertRaises(cookies.CookieError):
-+                cookie.js_output()
-+
-+            morsel = cookies.Morsel()
-+            morsel.set("key", "value", "coded-value")
-+            morsel._coded_value = c0  # Override private variable.
-+            cookie = cookies.SimpleCookie()
-+            cookie["cookie"] = morsel
-+            with self.assertRaises(cookies.CookieError):
-+                cookie.js_output()
-+
- 
- def load_tests(loader, tests, pattern):
-     tests.addTest(doctest.DocTestSuite(cookies))
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-06-17-03-38.gh-issue-145599.kchwZV.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-06-17-03-38.gh-issue-145599.kchwZV.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-06-17-03-38.gh-issue-145599.kchwZV.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-06-17-03-38.gh-issue-145599.kchwZV.rst	2026-03-27 18:42:08.543191372 +0100
-@@ -0,0 +1,4 @@
-+Reject control characters in :class:`http.cookies.Morsel`
-+:meth:`~http.cookies.Morsel.update` and
-+:meth:`~http.cookies.BaseCookie.js_output`.
-+This addresses `CVE-2026-3644 <https://www.cve.org/CVERecord?id=CVE-2026-3644>`_.

diff --git a/146136.patch b/146136.patch
index 6707bf2..a781e80 100644
--- a/146136.patch
+++ b/146136.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/pkgutil.py Python-3.11.15-new/Lib/pkgutil.py
---- Python-3.11.15/Lib/pkgutil.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/pkgutil.py	2026-04-14 11:29:18.141149277 +0200
+diff -rupN --no-dereference Python-3.11.16/Lib/pkgutil.py Python-3.11.16-new/Lib/pkgutil.py
+--- Python-3.11.16/Lib/pkgutil.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/pkgutil.py	2026-09-18 19:23:09.745416470 +0200
 @@ -635,6 +635,9 @@ def get_data(package, resource):
      # signature - an os.path format "filename" starting with the dirname of
      # the package's __file__
@@ -11,9 +11,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/pkgutil.py Python-3.11.15-new/Lib
      parts.insert(0, os.path.dirname(mod.__file__))
      resource_name = os.path.join(*parts)
      return loader.get_data(resource_name)
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_pkgutil.py Python-3.11.15-new/Lib/test/test_pkgutil.py
---- Python-3.11.15/Lib/test/test_pkgutil.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/test/test_pkgutil.py	2026-04-14 11:29:18.141377550 +0200
+diff -rupN --no-dereference Python-3.11.16/Lib/test/test_pkgutil.py Python-3.11.16-new/Lib/test/test_pkgutil.py
+--- Python-3.11.16/Lib/test/test_pkgutil.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/test/test_pkgutil.py	2026-09-18 19:23:09.745919441 +0200
 @@ -57,6 +57,25 @@ class PkgutilTests(unittest.TestCase):
  
          del sys.modules[pkg]
@@ -40,9 +40,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/test/test_pkgutil.py Python-3.11.
      def test_getdata_zipfile(self):
          zip = 'test_getdata_zipfile.zip'
          pkg = 'test_getdata_zipfile'
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst	2026-04-14 11:29:18.141664534 +0200
+diff -rupN --no-dereference Python-3.11.16/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst Python-3.11.16-new/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst
+--- Python-3.11.16/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst	1970-01-01 01:00:00.000000000 +0100
++++ Python-3.11.16-new/Misc/NEWS.d/next/Security/2026-03-16-18-07-00.gh-issue-146121.vRbdro.rst	2026-09-18 19:23:09.746283411 +0200
 @@ -0,0 +1,3 @@
 +:func:`pkgutil.get_data` now raises rejects *resource* arguments containing the
 +parent directory components or that is an absolute path.

diff --git a/148351.patch b/148351.patch
deleted file mode 100644
index 34f5b3c..0000000
--- a/148351.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/http/client.py Python-3.11.15-new/Lib/http/client.py
---- Python-3.11.15/Lib/http/client.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/http/client.py	2026-04-14 11:29:18.368590788 +0200
-@@ -941,12 +941,21 @@ class HTTPConnection:
-         return ip
- 
-     def _tunnel(self):
-+        if _contains_disallowed_url_pchar_re.search(self._tunnel_host):
-+            raise ValueError('Tunnel host can\'t contain control characters %r'
-+                             % (self._tunnel_host,))
-         connect = b"CONNECT %s:%d HTTP/1.0\r\n" % (
-             self._wrap_ipv6(self._tunnel_host.encode("ascii")),
-             self._tunnel_port)
-         headers = [connect]
-         for header, value in self._tunnel_headers.items():
--            headers.append(f"{header}: {value}\r\n".encode("latin-1"))
-+            header_bytes = header.encode("latin-1")
-+            value_bytes = value.encode("latin-1")
-+            if not _is_legal_header_name(header_bytes):
-+                raise ValueError('Invalid header name %r' % (header_bytes,))
-+            if _is_illegal_header_value(value_bytes):
-+                raise ValueError('Invalid header value %r' % (value_bytes,))
-+            headers.append(b"%s: %s\r\n" % (header_bytes, value_bytes))
-         headers.append(b"\r\n")
-         # Making a single send() call instead of one per line encourages
-         # the host OS to use a more optimal packet size instead of
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_httplib.py Python-3.11.15-new/Lib/test/test_httplib.py
---- Python-3.11.15/Lib/test/test_httplib.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/test/test_httplib.py	2026-04-14 11:29:18.368964554 +0200
-@@ -371,6 +371,51 @@ class HeaderTests(TestCase):
-                 with self.assertRaisesRegex(ValueError, 'Invalid header'):
-                     conn.putheader(name, value)
- 
-+    def test_invalid_tunnel_headers(self):
-+        cases = (
-+            ('Invalid\r\nName', 'ValidValue'),
-+            ('Invalid\rName', 'ValidValue'),
-+            ('Invalid\nName', 'ValidValue'),
-+            ('\r\nInvalidName', 'ValidValue'),
-+            ('\rInvalidName', 'ValidValue'),
-+            ('\nInvalidName', 'ValidValue'),
-+            (' InvalidName', 'ValidValue'),
-+            ('\tInvalidName', 'ValidValue'),
-+            ('Invalid:Name', 'ValidValue'),
-+            (':InvalidName', 'ValidValue'),
-+            ('ValidName', 'Invalid\r\nValue'),
-+            ('ValidName', 'Invalid\rValue'),
-+            ('ValidName', 'Invalid\nValue'),
-+            ('ValidName', 'InvalidValue\r\n'),
-+            ('ValidName', 'InvalidValue\r'),
-+            ('ValidName', 'InvalidValue\n'),
-+        )
-+        for name, value in cases:
-+            with self.subTest((name, value)):
-+                conn = client.HTTPConnection('example.com')
-+                conn.set_tunnel('tunnel', headers={
-+                    name: value
-+                })
-+                conn.sock = FakeSocket('')
-+                with self.assertRaisesRegex(ValueError, 'Invalid header'):
-+                    conn._tunnel()  # Called in .connect()
-+
-+    def test_invalid_tunnel_host(self):
-+        cases = (
-+            'invalid\r.host',
-+            '\ninvalid.host',
-+            'invalid.host\r\n',
-+            'invalid.host\x00',
-+            'invalid host',
-+        )
-+        for tunnel_host in cases:
-+            with self.subTest(tunnel_host):
-+                conn = client.HTTPConnection('example.com')
-+                conn.set_tunnel(tunnel_host)
-+                conn.sock = FakeSocket('')
-+                with self.assertRaisesRegex(ValueError, 'Tunnel host can\'t contain control characters'):
-+                    conn._tunnel()  # Called in .connect()
-+
-     def test_headers_debuglevel(self):
-         body = (
-             b'HTTP/1.1 200 OK\r\n'
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst	2026-04-14 11:29:18.369221123 +0200
-@@ -0,0 +1,2 @@
-+Reject CR/LF characters in tunnel request headers for the
-+HTTPConnection.set_tunnel() method.

diff --git a/148520.patch b/148520.patch
deleted file mode 100644
index e4295b5..0000000
--- a/148520.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_webbrowser.py Python-3.11.15-new/Lib/test/test_webbrowser.py
---- Python-3.11.15/Lib/test/test_webbrowser.py	2026-04-18 09:00:31.862458746 +0200
-+++ Python-3.11.15-new/Lib/test/test_webbrowser.py	2026-04-18 09:00:33.033479817 +0200
-@@ -99,6 +99,14 @@ class ChromeCommandTest(CommandTestMixin
-                    options=[],
-                    arguments=[URL])
- 
-+    def test_reject_action_dash_prefixes(self):
-+        browser = self.browser_class(name=CMD_NAME)
-+        with self.assertRaises(ValueError):
-+            browser.open('%action--incognito')
-+        # new=1: action is "--new-window", so "%action" itself expands to
-+        # a dash-prefixed flag even with no dash in the original URL.
-+        with self.assertRaises(ValueError):
-+            browser.open('%action', new=1)
- 
- class MozillaCommandTest(CommandTestMixin, unittest.TestCase):
- 
-diff -rupN --no-dereference Python-3.11.15/Lib/webbrowser.py Python-3.11.15-new/Lib/webbrowser.py
---- Python-3.11.15/Lib/webbrowser.py	2026-04-18 09:00:31.862748897 +0200
-+++ Python-3.11.15-new/Lib/webbrowser.py	2026-04-18 09:00:33.033705528 +0200
-@@ -265,7 +265,6 @@ class UnixBrowser(BaseBrowser):
- 
-     def open(self, url, new=0, autoraise=True):
-         sys.audit("webbrowser.open", url)
--        self._check_url(url)
-         if new == 0:
-             action = self.remote_action
-         elif new == 1:
-@@ -279,7 +278,9 @@ class UnixBrowser(BaseBrowser):
-             raise Error("Bad 'new' parameter to open(); " +
-                         "expected 0, 1, or 2, got %s" % new)
- 
--        args = [arg.replace("%s", url).replace("%action", action)
-+        self._check_url(url.replace("%action", action))
-+
-+        args = [arg.replace("%action", action).replace("%s", url)
-                 for arg in self.remote_args]
-         args = [arg for arg in args if arg]
-         success = self._invoke(args, True, autoraise, url)
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst	2026-04-18 09:00:33.033904098 +0200
-@@ -0,0 +1,2 @@
-+A bypass in :mod:`webbrowser` allowed URLs prefixed with ``%action`` to pass
-+the dash-prefix safety check.

diff --git a/CVE-2026-2297.patch b/CVE-2026-2297.patch
deleted file mode 100644
index 6798d18..0000000
--- a/CVE-2026-2297.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/importlib/_bootstrap_external.py Python-3.11.15-new/Lib/importlib/_bootstrap_external.py
---- Python-3.11.15/Lib/importlib/_bootstrap_external.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/importlib/_bootstrap_external.py	2026-03-27 18:42:08.073911150 +0100
-@@ -1126,7 +1126,7 @@ class FileLoader:
- 
-     def get_data(self, path):
-         """Return the data from path as raw bytes."""
--        if isinstance(self, (SourceLoader, ExtensionFileLoader)):
-+        if isinstance(self, (SourceLoader, SourcelessFileLoader, ExtensionFileLoader)):
-             with _io.open_code(str(path)) as file:
-                 return file.read()
-         else:
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-04-18-59-17.gh-issue-145506.6hwvEh.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-04-18-59-17.gh-issue-145506.6hwvEh.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-03-04-18-59-17.gh-issue-145506.6hwvEh.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-03-04-18-59-17.gh-issue-145506.6hwvEh.rst	2026-03-27 18:42:08.074290216 +0100
-@@ -0,0 +1,2 @@
-+Fixes CVE-2026-2297 by ensuring that ``SourcelessFileLoader`` uses
-+:func:`io.open_code` when opening ``.pyc`` files.

diff --git a/ceac1efc66516ac387eef2c9a0ce671895b44f03.patch b/ceac1efc66516ac387eef2c9a0ce671895b44f03.patch
deleted file mode 100644
index 3c19974..0000000
--- a/ceac1efc66516ac387eef2c9a0ce671895b44f03.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/test/test_webbrowser.py Python-3.11.15-new/Lib/test/test_webbrowser.py
---- Python-3.11.15/Lib/test/test_webbrowser.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/test/test_webbrowser.py	2026-03-27 18:42:08.306960471 +0100
-@@ -59,6 +59,11 @@ class GenericBrowserCommandTest(CommandT
-                    options=[],
-                    arguments=[URL])
- 
-+    def test_reject_dash_prefixes(self):
-+        browser = self.browser_class(name=CMD_NAME)
-+        with self.assertRaises(ValueError):
-+            browser.open(f"--key=val {URL}")
-+
- 
- class BackgroundBrowserCommandTest(CommandTestMixin, unittest.TestCase):
- 
-diff -rupN --no-dereference Python-3.11.15/Lib/webbrowser.py Python-3.11.15-new/Lib/webbrowser.py
---- Python-3.11.15/Lib/webbrowser.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/webbrowser.py	2026-03-27 18:42:08.307212132 +0100
-@@ -155,6 +155,12 @@ class BaseBrowser(object):
-     def open_new_tab(self, url):
-         return self.open(url, 2)
- 
-+    @staticmethod
-+    def _check_url(url):
-+        """Ensures that the URL is safe to pass to subprocesses as a parameter"""
-+        if url and url.lstrip().startswith("-"):
-+            raise ValueError(f"Invalid URL: {url}")
-+
- 
- class GenericBrowser(BaseBrowser):
-     """Class for all browsers started with a command
-@@ -172,6 +178,7 @@ class GenericBrowser(BaseBrowser):
- 
-     def open(self, url, new=0, autoraise=True):
-         sys.audit("webbrowser.open", url)
-+        self._check_url(url)
-         cmdline = [self.name] + [arg.replace("%s", url)
-                                  for arg in self.args]
-         try:
-@@ -192,6 +199,7 @@ class BackgroundBrowser(GenericBrowser):
-         cmdline = [self.name] + [arg.replace("%s", url)
-                                  for arg in self.args]
-         sys.audit("webbrowser.open", url)
-+        self._check_url(url)
-         try:
-             if sys.platform[:3] == 'win':
-                 p = subprocess.Popen(cmdline)
-@@ -257,6 +265,7 @@ class UnixBrowser(BaseBrowser):
- 
-     def open(self, url, new=0, autoraise=True):
-         sys.audit("webbrowser.open", url)
-+        self._check_url(url)
-         if new == 0:
-             action = self.remote_action
-         elif new == 1:
-@@ -358,6 +367,7 @@ class Konqueror(BaseBrowser):
- 
-     def open(self, url, new=0, autoraise=True):
-         sys.audit("webbrowser.open", url)
-+        self._check_url(url)
-         # XXX Currently I know no way to prevent KFM from opening a new win.
-         if new == 2:
-             action = "newTab"
-@@ -442,6 +452,7 @@ class Grail(BaseBrowser):
- 
-     def open(self, url, new=0, autoraise=True):
-         sys.audit("webbrowser.open", url)
-+        self._check_url(url)
-         if new:
-             ok = self._remote("LOADNEW " + url)
-         else:
-@@ -605,6 +616,7 @@ if sys.platform[:3] == "win":
-     class WindowsDefault(BaseBrowser):
-         def open(self, url, new=0, autoraise=True):
-             sys.audit("webbrowser.open", url)
-+            self._check_url(url)
-             try:
-                 os.startfile(url)
-             except OSError:
-@@ -637,6 +649,7 @@ if sys.platform == 'darwin':
- 
-         def open(self, url, new=0, autoraise=True):
-             sys.audit("webbrowser.open", url)
-+            self._check_url(url)
-             assert "'" not in url
-             # hack for local urls
-             if not ':' in url:
-@@ -689,6 +702,7 @@ if sys.platform == 'darwin':
- 
-         def open(self, url, new=0, autoraise=True):
-             sys.audit("webbrowser.open", url)
-+            self._check_url(url)
-             if self.name == 'default':
-                 script = 'open location "%s"' % url.replace('"', '%22') # opens in default browser
-             else:
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-01-16-12-04-49.gh-issue-143930.zYC5x3.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-01-16-12-04-49.gh-issue-143930.zYC5x3.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-01-16-12-04-49.gh-issue-143930.zYC5x3.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-01-16-12-04-49.gh-issue-143930.zYC5x3.rst	2026-03-27 18:42:08.307381873 +0100
-@@ -0,0 +1 @@
-+Reject leading dashes in URLs passed to :func:`webbrowser.open`

diff --git a/e0799352823289fafb8131341abd751923ee9c08.patch b/e0799352823289fafb8131341abd751923ee9c08.patch
index 8938edc..964f450 100644
--- a/e0799352823289fafb8131341abd751923ee9c08.patch
+++ b/e0799352823289fafb8131341abd751923ee9c08.patch
@@ -1,11 +1,11 @@
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst Python-3.11.15-new/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst
---- Python-3.11.15/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst	2026-03-27 18:42:07.804777366 +0100
+diff -rupN --no-dereference Python-3.11.16/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst Python-3.11.16-new/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst
+--- Python-3.11.16/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst	1970-01-01 01:00:00.000000000 +0100
++++ Python-3.11.16-new/Misc/NEWS.d/next/Library/2024-06-04-19-03-25.gh-issue-112672.K2XfZH.rst	2026-09-18 19:23:09.492882068 +0200
 @@ -0,0 +1 @@
 +Support building :mod:`tkinter` with Tcl 9.0.
-diff -rupN --no-dereference Python-3.11.15/Modules/_tkinter.c Python-3.11.15-new/Modules/_tkinter.c
---- Python-3.11.15/Modules/_tkinter.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/_tkinter.c	2026-03-27 18:42:07.804910692 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/_tkinter.c Python-3.11.16-new/Modules/_tkinter.c
+--- Python-3.11.16/Modules/_tkinter.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/_tkinter.c	2026-09-18 19:23:09.493180038 +0200
 @@ -66,6 +66,12 @@ Copyright (C) 1994 Steen Lumholt.
  #define USE_DEPRECATED_TOMMATH_API 1
  #endif

diff --git a/e20c6c9667c99ecaab96e1a2b3767082841ffc8b.patch b/e20c6c9667c99ecaab96e1a2b3767082841ffc8b.patch
deleted file mode 100644
index 16d39e5..0000000
--- a/e20c6c9667c99ecaab96e1a2b3767082841ffc8b.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -rupN --no-dereference Python-3.11.15/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst
---- Python-3.11.15/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst	2026-04-14 11:29:17.908170200 +0200
-@@ -0,0 +1,5 @@
-+Fix a dangling input pointer in :class:`lzma.LZMADecompressor`,
-+and :class:`bz2.BZ2Decompressor`
-+when memory allocation fails with :exc:`MemoryError`, which could let a
-+subsequent :meth:`!decompress` call read or write through a stale pointer to
-+the already-released caller buffer.
-diff -rupN --no-dereference Python-3.11.15/Modules/_bz2module.c Python-3.11.15-new/Modules/_bz2module.c
---- Python-3.11.15/Modules/_bz2module.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/_bz2module.c	2026-04-14 11:29:17.908335500 +0200
-@@ -595,6 +595,7 @@ decompress(BZ2Decompressor *d, char *dat
-     return result;
- 
- error:
-+    bzs->next_in = NULL;
-     Py_XDECREF(result);
-     return NULL;
- }
-diff -rupN --no-dereference Python-3.11.15/Modules/_lzmamodule.c Python-3.11.15-new/Modules/_lzmamodule.c
---- Python-3.11.15/Modules/_lzmamodule.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/_lzmamodule.c	2026-04-14 11:29:17.908579142 +0200
-@@ -1105,6 +1105,7 @@ decompress(Decompressor *d, uint8_t *dat
-     return result;
- 
- error:
-+    lzs->next_in = NULL;
-     Py_XDECREF(result);
-     return NULL;
- }

diff --git a/mingw-python3.spec b/mingw-python3.spec
index 1153cef..fbfa49f 100644
--- a/mingw-python3.spec
+++ b/mingw-python3.spec
@@ -23,8 +23,8 @@
 #global pre rc2
 
 Name:          mingw-%{pkgname}
-Version:       3.11.15
-Release:       5%{?dist}
+Version:       3.11.16
+Release:       1%{?dist}
 Summary:       MinGW Windows %{pkgname}
 
 BuildArch:     noarch
@@ -70,23 +70,8 @@ Patch13:       mingw-python3_module-select.patch
 Patch14:       mingw-python3_pkgconfig.patch
 # Backport: Fix build with tcl9
 Patch15:       https://github.com/python/cpython/commit/e0799352823289fafb8131341abd751923ee9c08.patch
-# Backport proposed fix for CVE-2026-2297
-# https://github.com/python/cpython/pull/145515
-Patch16:       CVE-2026-2297.patch
-# Backport fix for CVE-2026-4519
-Patch20:       https://github.com/python/cpython/commit/ceac1efc66516ac387eef2c9a0ce671895b44f03.patch
-# Backport fix for CVE-2026-3644
-Patch21:       https://github.com/python/cpython/pull/146026.patch
-# Backport fix for CVE-2026-4224
-Patch22:       https://github.com/python/cpython/pull/146000.patch
-# Backport fix for CVE-2026-6100
-Patch23:       https://github.com/python/cpython/commit/e20c6c9667c99ecaab96e1a2b3767082841ffc8b.patch
 # Backport fix for CVE-2026-3479
 Patch24:       https://github.com/python/cpython/pull/146136.patch
-# Backport fix for CVE-2026-1502
-Patch25:       https://github.com/python/cpython/pull/148351.patch
-# Backport fix for CVE-2026-4786
-Patch26:       https://github.com/python/cpython/pull/148520.patch
 
 
 BuildRequires: make
@@ -527,6 +512,9 @@ chmod +x %{buildroot}%{mingw64_bindir}/python3-config
 
 
 %changelog
+* Fri Sep 18 2026 Sandro Mani <manisandro@gmail.com> - 3.11.16-1
+- Update to 3.11.16
+
 * Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.15-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
 

diff --git a/mingw-python3_distutils.patch b/mingw-python3_distutils.patch
index 4738a49..bde816c 100644
--- a/mingw-python3_distutils.patch
+++ b/mingw-python3_distutils.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/distutils/ccompiler.py Python-3.11.15-new/Lib/distutils/ccompiler.py
---- Python-3.11.15/Lib/distutils/ccompiler.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/distutils/ccompiler.py	2026-03-27 18:42:05.843253644 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/distutils/ccompiler.py Python-3.11.16-new/Lib/distutils/ccompiler.py
+--- Python-3.11.16/Lib/distutils/ccompiler.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/distutils/ccompiler.py	2026-09-18 19:23:07.402791820 +0200
 @@ -9,7 +9,7 @@ from distutils.spawn import spawn
  from distutils.file_util import move_file
  from distutils.dir_util import mkpath
@@ -29,9 +29,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/distutils/ccompiler.py Python-3.1
          (module_name, class_name, long_description) = compiler_class[compiler]
      except KeyError:
          msg = "don't know how to compile C/C++ code on platform '%s'" % plat
-diff -rupN --no-dereference Python-3.11.15/Lib/distutils/command/build_ext.py Python-3.11.15-new/Lib/distutils/command/build_ext.py
---- Python-3.11.15/Lib/distutils/command/build_ext.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/distutils/command/build_ext.py	2026-03-27 18:42:05.843594739 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/distutils/command/build_ext.py Python-3.11.16-new/Lib/distutils/command/build_ext.py
+--- Python-3.11.16/Lib/distutils/command/build_ext.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/distutils/command/build_ext.py	2026-09-18 19:23:07.403189683 +0200
 @@ -186,7 +186,7 @@ class build_ext(Command):
          # for extensions under windows use different directories
          # for Release and Debug builds.
@@ -71,9 +71,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/distutils/command/build_ext.py Py
                          link_libpython = True
  
              if link_libpython:
-diff -rupN --no-dereference Python-3.11.15/Lib/distutils/cygwinccompiler.py Python-3.11.15-new/Lib/distutils/cygwinccompiler.py
---- Python-3.11.15/Lib/distutils/cygwinccompiler.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/distutils/cygwinccompiler.py	2026-03-27 18:42:05.843907348 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/distutils/cygwinccompiler.py Python-3.11.16-new/Lib/distutils/cygwinccompiler.py
+--- Python-3.11.16/Lib/distutils/cygwinccompiler.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/distutils/cygwinccompiler.py	2026-09-18 19:23:07.403495499 +0200
 @@ -90,7 +90,8 @@ class CygwinCCompiler(UnixCCompiler):
      compiler_type = 'cygwin'
      obj_extension = ".o"
@@ -134,9 +134,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/distutils/cygwinccompiler.py Pyth
 +    gcc = os.environ.get('CC') or 'gcc'
 +    out_string = check_output([gcc, '-dumpmachine'])
      return out_string.strip().endswith(b'cygwin')
-diff -rupN --no-dereference Python-3.11.15/Lib/distutils/sysconfig.py Python-3.11.15-new/Lib/distutils/sysconfig.py
---- Python-3.11.15/Lib/distutils/sysconfig.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/distutils/sysconfig.py	2026-03-27 18:42:05.844245453 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/distutils/sysconfig.py Python-3.11.16-new/Lib/distutils/sysconfig.py
+--- Python-3.11.16/Lib/distutils/sysconfig.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/distutils/sysconfig.py	2026-09-18 19:23:07.403754788 +0200
 @@ -196,7 +196,7 @@ def customize_compiler(compiler):
      Mainly needed on Unix, so we can plug in the information that
      varies across Unices and is stored in Python's Makefile.
@@ -157,9 +157,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/distutils/sysconfig.py Python-3.1
  
  
  def get_python_inc(plat_specific=0, prefix=None):
-diff -rupN --no-dereference Python-3.11.15/Lib/distutils/util.py Python-3.11.15-new/Lib/distutils/util.py
---- Python-3.11.15/Lib/distutils/util.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/distutils/util.py	2026-03-27 18:42:05.844455175 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/distutils/util.py Python-3.11.16-new/Lib/distutils/util.py
+--- Python-3.11.16/Lib/distutils/util.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/distutils/util.py	2026-09-18 19:23:07.403995140 +0200
 @@ -37,6 +37,8 @@ def get_host_platform():
  
      """

diff --git a/mingw-python3_frozenmain.patch b/mingw-python3_frozenmain.patch
index b449b30..3a2d505 100644
--- a/mingw-python3_frozenmain.patch
+++ b/mingw-python3_frozenmain.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/configure.ac
---- Python-3.11.15/configure.ac	2026-03-27 18:42:04.634968740 +0100
-+++ Python-3.11.15-new/configure.ac	2026-03-27 18:42:04.876514969 +0100
+diff -rupN --no-dereference Python-3.11.16/configure.ac Python-3.11.16-new/configure.ac
+--- Python-3.11.16/configure.ac	2026-09-18 19:23:06.024979888 +0200
++++ Python-3.11.16-new/configure.ac	2026-09-18 19:23:06.313392165 +0200
 @@ -6411,6 +6411,16 @@ do
    THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
  done
@@ -18,9 +18,9 @@ diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/confi
  AC_SUBST(SRCDIRS)
  SRCDIRS="\
    Modules \
-diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Makefile.pre.in
---- Python-3.11.15/Makefile.pre.in	2026-03-27 18:42:04.636404136 +0100
-+++ Python-3.11.15-new/Makefile.pre.in	2026-03-27 18:42:04.877349769 +0100
+diff -rupN --no-dereference Python-3.11.16/Makefile.pre.in Python-3.11.16-new/Makefile.pre.in
+--- Python-3.11.16/Makefile.pre.in	2026-09-18 19:23:06.027882195 +0200
++++ Python-3.11.16-new/Makefile.pre.in	2026-09-18 19:23:06.313963638 +0200
 @@ -390,7 +390,7 @@ PYTHON_OBJS=	\
  		Python/dynamic_annotations.o \
  		Python/errors.o \

diff --git a/mingw-python3_make-sysconfigdata.py-relocatable.patch b/mingw-python3_make-sysconfigdata.py-relocatable.patch
index 682645a..e41cf88 100644
--- a/mingw-python3_make-sysconfigdata.py-relocatable.patch
+++ b/mingw-python3_make-sysconfigdata.py-relocatable.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/sysconfig.py Python-3.11.15-new/Lib/sysconfig.py
---- Python-3.11.15/Lib/sysconfig.py	2026-03-27 18:42:04.635905283 +0100
-+++ Python-3.11.15-new/Lib/sysconfig.py	2026-03-27 18:42:06.082598258 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/sysconfig.py Python-3.11.16-new/Lib/sysconfig.py
+--- Python-3.11.16/Lib/sysconfig.py	2026-09-18 19:23:06.027339246 +0200
++++ Python-3.11.16-new/Lib/sysconfig.py	2026-09-18 19:23:07.662043432 +0200
 @@ -2,6 +2,7 @@
  
  import os

diff --git a/mingw-python3_mods-failed.patch b/mingw-python3_mods-failed.patch
index 4da41ee..98dd7f2 100644
--- a/mingw-python3_mods-failed.patch
+++ b/mingw-python3_mods-failed.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/setup.py Python-3.11.15-new/setup.py
---- Python-3.11.15/setup.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/setup.py	2026-03-27 18:42:05.594341031 +0100
+diff -rupN --no-dereference Python-3.11.16/setup.py Python-3.11.16-new/setup.py
+--- Python-3.11.16/setup.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/setup.py	2026-09-18 19:23:07.149346892 +0200
 @@ -577,6 +577,8 @@ class PyBuildExt(build_ext):
              print("Failed to build these modules:")
              print_three_column(failed)

diff --git a/mingw-python3_module-select.patch b/mingw-python3_module-select.patch
index a9b650a..8055ce6 100644
--- a/mingw-python3_module-select.patch
+++ b/mingw-python3_module-select.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Modules/selectmodule.c Python-3.11.15-new/Modules/selectmodule.c
---- Python-3.11.15/Modules/selectmodule.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/selectmodule.c	2026-03-27 18:42:07.328909881 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/selectmodule.c Python-3.11.16-new/Modules/selectmodule.c
+--- Python-3.11.16/Modules/selectmodule.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/selectmodule.c	2026-09-18 19:23:08.972073826 +0200
 @@ -146,9 +146,9 @@ seq2set(PyObject *seq, fd_set *set, pyli
          v = PyObject_AsFileDescriptor( o );
          if (v == -1) goto finally;

diff --git a/mingw-python3_module-socket.patch b/mingw-python3_module-socket.patch
index f1674aa..e7b706c 100644
--- a/mingw-python3_module-socket.patch
+++ b/mingw-python3_module-socket.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/configure.ac
---- Python-3.11.15/configure.ac	2026-03-27 18:42:05.110906096 +0100
-+++ Python-3.11.15-new/configure.ac	2026-03-27 18:42:07.088909472 +0100
+diff -rupN --no-dereference Python-3.11.16/configure.ac Python-3.11.16-new/configure.ac
+--- Python-3.11.16/configure.ac	2026-09-18 19:23:06.604947276 +0200
++++ Python-3.11.16-new/configure.ac	2026-09-18 19:23:08.711828946 +0200
 @@ -4646,8 +4646,8 @@ AC_CHECK_FUNCS([ \
    faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \
    fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \
@@ -49,9 +49,9 @@ diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/confi
  ])])
  
  PY_CHECK_SOCKET_FUNC([inet_aton])
-diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modules/Setup
---- Python-3.11.15/Modules/Setup	2026-03-27 18:42:07.084108342 +0100
-+++ Python-3.11.15-new/Modules/Setup	2026-03-27 18:42:07.089387858 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/Setup Python-3.11.16-new/Modules/Setup
+--- Python-3.11.16/Modules/Setup	2026-09-18 19:23:08.707327744 +0200
++++ Python-3.11.16-new/Modules/Setup	2026-09-18 19:23:08.713488385 +0200
 @@ -144,7 +144,7 @@ PYTHONPATH=$(COREPYTHONPATH)
  #_pickle _pickle.c
  #_queue _queuemodule.c
@@ -61,9 +61,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modu
  #_statistics _statisticsmodule.c
  #_struct _struct.c
  #_typing _typingmodule.c
-diff -rupN --no-dereference Python-3.11.15/Modules/socketmodule.c Python-3.11.15-new/Modules/socketmodule.c
---- Python-3.11.15/Modules/socketmodule.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/socketmodule.c	2026-03-27 18:42:07.089954650 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/socketmodule.c Python-3.11.16-new/Modules/socketmodule.c
+--- Python-3.11.16/Modules/socketmodule.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/socketmodule.c	2026-09-18 19:23:08.714180901 +0200
 @@ -274,7 +274,7 @@ shutdown(how) -- shut down traffic in on
  # endif
  

diff --git a/mingw-python3_modules.patch b/mingw-python3_modules.patch
index 036ada8..d5204d2 100644
--- a/mingw-python3_modules.patch
+++ b/mingw-python3_modules.patch
@@ -1,7 +1,7 @@
-diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Makefile.pre.in
---- Python-3.11.15/Makefile.pre.in	2026-03-27 18:42:05.350488655 +0100
-+++ Python-3.11.15-new/Makefile.pre.in	2026-03-27 18:42:06.314929415 +0100
-@@ -758,7 +758,7 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c
+diff -rupN --no-dereference Python-3.11.16/Makefile.pre.in Python-3.11.16-new/Makefile.pre.in
+--- Python-3.11.16/Makefile.pre.in	2026-09-18 19:23:06.890144870 +0200
++++ Python-3.11.16-new/Makefile.pre.in	2026-09-18 19:23:07.941849004 +0200
+@@ -761,7 +761,7 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c
  # -s, --silent or --quiet is always the first char.
  # Under BSD make, MAKEFLAGS might be " -s -v x=y".
  # Ignore macros passed by GNU make, passed after --
@@ -10,9 +10,9 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  	@case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \
  	    *\ -s*|s*) quiet="-q";; \
  	    *) quiet="";; \
-diff -rupN --no-dereference Python-3.11.15/Modules/_ctypes/_ctypes.c Python-3.11.15-new/Modules/_ctypes/_ctypes.c
---- Python-3.11.15/Modules/_ctypes/_ctypes.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/_ctypes/_ctypes.c	2026-03-27 18:42:06.315601740 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/_ctypes/_ctypes.c Python-3.11.16-new/Modules/_ctypes/_ctypes.c
+--- Python-3.11.16/Modules/_ctypes/_ctypes.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/_ctypes/_ctypes.c	2026-09-18 19:23:07.942688687 +0200
 @@ -109,6 +109,7 @@ bytes(cdata)
  // windows.h must be included before pycore internal headers
  #ifdef MS_WIN32
@@ -21,9 +21,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/_ctypes/_ctypes.c Python-3.11
  #endif
  
  #include "pycore_call.h"          // _PyObject_CallNoArgs()
-diff -rupN --no-dereference Python-3.11.15/Modules/_multiprocessing/semaphore.c Python-3.11.15-new/Modules/_multiprocessing/semaphore.c
---- Python-3.11.15/Modules/_multiprocessing/semaphore.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/_multiprocessing/semaphore.c	2026-03-27 18:42:06.316137169 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/_multiprocessing/semaphore.c Python-3.11.16-new/Modules/_multiprocessing/semaphore.c
+--- Python-3.11.16/Modules/_multiprocessing/semaphore.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/_multiprocessing/semaphore.c	2026-09-18 19:23:07.943395929 +0200
 @@ -8,6 +8,9 @@
   */
  
@@ -34,9 +34,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/_multiprocessing/semaphore.c 
  
  #ifdef HAVE_MP_SEMAPHORE
  
-diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modules/Setup
---- Python-3.11.15/Modules/Setup	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/Setup	2026-03-27 18:42:06.316748078 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/Setup Python-3.11.16-new/Modules/Setup
+--- Python-3.11.16/Modules/Setup	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/Setup	2026-09-18 19:23:07.943700091 +0200
 @@ -154,7 +154,7 @@ PYTHONPATH=$(COREPYTHONPATH)
  #binascii binascii.c
  #cmath cmathmodule.c
@@ -46,9 +46,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modu
  #select selectmodule.c
  
  # XML
-diff -rupN --no-dereference Python-3.11.15/setup.py Python-3.11.15-new/setup.py
---- Python-3.11.15/setup.py	2026-03-27 18:42:05.838959372 +0100
-+++ Python-3.11.15-new/setup.py	2026-03-27 18:42:06.316976733 +0100
+diff -rupN --no-dereference Python-3.11.16/setup.py Python-3.11.16-new/setup.py
+--- Python-3.11.16/setup.py	2026-09-18 19:23:07.399039714 +0200
++++ Python-3.11.16-new/setup.py	2026-09-18 19:23:07.943995754 +0200
 @@ -977,7 +977,10 @@ class PyBuildExt(build_ext):
          self.addext(Extension('spwd', ['spwdmodule.c']))
  

diff --git a/mingw-python3_pkgconfig.patch b/mingw-python3_pkgconfig.patch
index 0eeee7a..386d5d8 100644
--- a/mingw-python3_pkgconfig.patch
+++ b/mingw-python3_pkgconfig.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Misc/python.pc.in Python-3.11.15-new/Misc/python.pc.in
---- Python-3.11.15/Misc/python.pc.in	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Misc/python.pc.in	2026-03-27 18:42:07.561467669 +0100
+diff -rupN --no-dereference Python-3.11.16/Misc/python.pc.in Python-3.11.16-new/Misc/python.pc.in
+--- Python-3.11.16/Misc/python.pc.in	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Misc/python.pc.in	2026-09-18 19:23:09.231255000 +0200
 @@ -9,5 +9,5 @@ Description: Build a C extension for Pyt
  Requires:
  Version: @VERSION@

diff --git a/mingw-python3_platform-mingw.patch b/mingw-python3_platform-mingw.patch
index 5eaebe9..74d9e23 100644
--- a/mingw-python3_platform-mingw.patch
+++ b/mingw-python3_platform-mingw.patch
@@ -1,12 +1,12 @@
-diff -rupN --no-dereference Python-3.11.15/config.site-mingw Python-3.11.15-new/config.site-mingw
---- Python-3.11.15/config.site-mingw	1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.11.15-new/config.site-mingw	2026-03-27 18:42:04.378266825 +0100
+diff -rupN --no-dereference Python-3.11.16/config.site-mingw Python-3.11.16-new/config.site-mingw
+--- Python-3.11.16/config.site-mingw	1970-01-01 01:00:00.000000000 +0100
++++ Python-3.11.16-new/config.site-mingw	2026-09-18 19:23:05.744813901 +0200
 @@ -0,0 +1,2 @@
 +ac_cv_file__dev_ptmx=no
 +ac_cv_file__dev_ptc=no
-diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/configure.ac
---- Python-3.11.15/configure.ac	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/configure.ac	2026-03-27 18:42:04.378904844 +0100
+diff -rupN --no-dereference Python-3.11.16/configure.ac Python-3.11.16-new/configure.ac
+--- Python-3.11.16/configure.ac	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/configure.ac	2026-09-18 19:23:05.745344198 +0200
 @@ -528,6 +528,15 @@ AC_DEFINE_UNQUOTED(_PYTHONFRAMEWORK, "${
  # Set name for machine-dependent library files
  AC_ARG_VAR([MACHDEP], [name for machine-dependent library files])
@@ -165,9 +165,9 @@ diff -rupN --no-dereference Python-3.11.15/configure.ac Python-3.11.15-new/confi
  # ssl module default cipher suite string
  AH_TEMPLATE(PY_SSL_DEFAULT_CIPHERS,
    [Default cipher suites list for ssl module.
-diff -rupN --no-dereference Python-3.11.15/Include/pyport.h Python-3.11.15-new/Include/pyport.h
---- Python-3.11.15/Include/pyport.h	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Include/pyport.h	2026-03-27 18:42:04.379518292 +0100
+diff -rupN --no-dereference Python-3.11.16/Include/pyport.h Python-3.11.16-new/Include/pyport.h
+--- Python-3.11.16/Include/pyport.h	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Include/pyport.h	2026-09-18 19:23:05.746311934 +0200
 @@ -347,7 +347,8 @@ extern "C" {
      _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
  #define _Py_COMP_DIAG_POP _Pragma("clang diagnostic pop")
@@ -178,9 +178,9 @@ diff -rupN --no-dereference Python-3.11.15/Include/pyport.h Python-3.11.15-new/I
  #define _Py_COMP_DIAG_PUSH _Pragma("GCC diagnostic push")
  #define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \
      _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
-diff -rupN --no-dereference Python-3.11.15/Lib/sysconfig.py Python-3.11.15-new/Lib/sysconfig.py
---- Python-3.11.15/Lib/sysconfig.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/sysconfig.py	2026-03-27 18:42:04.379764546 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/sysconfig.py Python-3.11.16-new/Lib/sysconfig.py
+--- Python-3.11.16/Lib/sysconfig.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/sysconfig.py	2026-09-18 19:23:05.746699688 +0200
 @@ -737,6 +737,8 @@ def get_platform():
  
      """
@@ -190,9 +190,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/sysconfig.py Python-3.11.15-new/L
          if 'amd64' in sys.version.lower():
              return 'win-amd64'
          if '(arm)' in sys.version.lower():
-diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Makefile.pre.in
---- Python-3.11.15/Makefile.pre.in	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Makefile.pre.in	2026-03-27 18:42:04.382904851 +0100
+diff -rupN --no-dereference Python-3.11.16/Makefile.pre.in Python-3.11.16-new/Makefile.pre.in
+--- Python-3.11.16/Makefile.pre.in	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Makefile.pre.in	2026-09-18 19:23:05.747124274 +0200
 @@ -118,7 +118,7 @@ CFLAGSFORSHARED=@CFLAGSFORSHARED@
  # C flags used for building the interpreter object files
  PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)
@@ -202,9 +202,9 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  # Linker flags used for building the interpreter object files
  PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST)
  # Strict or non-strict aliasing flags used to compile dtoa.c, see above
-diff -rupN --no-dereference Python-3.11.15/Modules/posixmodule.c Python-3.11.15-new/Modules/posixmodule.c
---- Python-3.11.15/Modules/posixmodule.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/posixmodule.c	2026-03-27 18:42:04.383904852 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/posixmodule.c Python-3.11.16-new/Modules/posixmodule.c
+--- Python-3.11.16/Modules/posixmodule.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/posixmodule.c	2026-09-18 19:23:05.748264616 +0200
 @@ -343,7 +343,7 @@ corresponding Unix manual entries for mo
  #  define HAVE_SYSTEM     1
  #  include <process.h>
@@ -250,9 +250,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/posixmodule.c Python-3.11.15-
      return _listdir_windows_no_opendir(path, NULL);
  #else
      return _posix_listdir(path, NULL);
-diff -rupN --no-dereference Python-3.11.15/Objects/exceptions.c Python-3.11.15-new/Objects/exceptions.c
---- Python-3.11.15/Objects/exceptions.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Objects/exceptions.c	2026-03-27 18:42:04.384935289 +0100
+diff -rupN --no-dereference Python-3.11.16/Objects/exceptions.c Python-3.11.16-new/Objects/exceptions.c
+--- Python-3.11.16/Objects/exceptions.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Objects/exceptions.c	2026-09-18 19:23:05.749862570 +0200
 @@ -1648,7 +1648,9 @@ MiddlingExtendsException(PyExc_ImportErr
   */
  
@@ -264,9 +264,9 @@ diff -rupN --no-dereference Python-3.11.15/Objects/exceptions.c Python-3.11.15-n
  #endif
  
  /* Where a function has a single filename, such as open() or some
-diff -rupN --no-dereference Python-3.11.15/Python/dynload_win.c Python-3.11.15-new/Python/dynload_win.c
---- Python-3.11.15/Python/dynload_win.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Python/dynload_win.c	2026-03-27 18:42:04.385907377 +0100
+diff -rupN --no-dereference Python-3.11.16/Python/dynload_win.c Python-3.11.16-new/Python/dynload_win.c
+--- Python-3.11.16/Python/dynload_win.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Python/dynload_win.c	2026-09-18 19:23:05.750484571 +0200
 @@ -21,9 +21,9 @@
  #endif
  
@@ -288,9 +288,9 @@ diff -rupN --no-dereference Python-3.11.15/Python/dynload_win.c Python-3.11.15-n
  _Py_CheckPython3(void)
  {
      static int python3_checked = 0;
-diff -rupN --no-dereference Python-3.11.15/Python/sysmodule.c Python-3.11.15-new/Python/sysmodule.c
---- Python-3.11.15/Python/sysmodule.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Python/sysmodule.c	2026-03-27 18:42:04.386281882 +0100
+diff -rupN --no-dereference Python-3.11.16/Python/sysmodule.c Python-3.11.16-new/Python/sysmodule.c
+--- Python-3.11.16/Python/sysmodule.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Python/sysmodule.c	2026-09-18 19:23:05.750871477 +0200
 @@ -2982,7 +2982,8 @@ _PySys_InitCore(PyThreadState *tstate, P
              goto type_init_failed;
          }

diff --git a/mingw-python3_posix-layout.patch b/mingw-python3_posix-layout.patch
index a764ff9..c8a7592 100644
--- a/mingw-python3_posix-layout.patch
+++ b/mingw-python3_posix-layout.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Lib/site.py Python-3.11.15-new/Lib/site.py
---- Python-3.11.15/Lib/site.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Lib/site.py	2026-03-27 18:42:06.551352931 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/site.py Python-3.11.16-new/Lib/site.py
+--- Python-3.11.16/Lib/site.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Lib/site.py	2026-09-18 19:23:08.207027150 +0200
 @@ -371,7 +371,7 @@ def getsitepackages(prefixes=None):
              continue
          seen.add(prefix)
@@ -10,9 +10,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/site.py Python-3.11.15-new/Lib/si
              libdirs = [sys.platlibdir]
              if sys.platlibdir != "lib":
                  libdirs.append("lib")
-diff -rupN --no-dereference Python-3.11.15/Lib/sysconfig.py Python-3.11.15-new/Lib/sysconfig.py
---- Python-3.11.15/Lib/sysconfig.py	2026-03-27 18:42:06.310886411 +0100
-+++ Python-3.11.15-new/Lib/sysconfig.py	2026-03-27 18:42:06.551677628 +0100
+diff -rupN --no-dereference Python-3.11.16/Lib/sysconfig.py Python-3.11.16-new/Lib/sysconfig.py
+--- Python-3.11.16/Lib/sysconfig.py	2026-09-18 19:23:07.937613448 +0200
++++ Python-3.11.16-new/Lib/sysconfig.py	2026-09-18 19:23:08.207525622 +0200
 @@ -48,13 +48,13 @@ _INSTALL_SCHEMES = {
          'data': '{base}',
          },
@@ -62,9 +62,9 @@ diff -rupN --no-dereference Python-3.11.15/Lib/sysconfig.py Python-3.11.15-new/L
      vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable))
      vars['TZPATH'] = ''
  
-diff -rupN --no-dereference Python-3.11.15/Modules/getpath.c Python-3.11.15-new/Modules/getpath.c
---- Python-3.11.15/Modules/getpath.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/getpath.c	2026-03-27 18:42:06.551968223 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/getpath.c Python-3.11.16-new/Modules/getpath.c
+--- Python-3.11.16/Modules/getpath.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/getpath.c	2026-09-18 19:23:08.207860759 +0200
 @@ -883,7 +883,11 @@ _PyConfig_InitPathConfig(PyConfig *confi
  
      if (
@@ -77,10 +77,10 @@ diff -rupN --no-dereference Python-3.11.15/Modules/getpath.c Python-3.11.15-new/
  #elif defined(__APPLE__)
          !decode_to_dict(dict, "os_name", "darwin") ||
  #else
-diff -rupN --no-dereference Python-3.11.15/Modules/getpath.py Python-3.11.15-new/Modules/getpath.py
---- Python-3.11.15/Modules/getpath.py	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/getpath.py	2026-03-27 18:42:06.552253069 +0100
-@@ -186,6 +186,19 @@ if os_name == 'posix' or os_name == 'dar
+diff -rupN --no-dereference Python-3.11.16/Modules/getpath.py Python-3.11.16-new/Modules/getpath.py
+--- Python-3.11.16/Modules/getpath.py	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/getpath.py	2026-09-18 19:23:08.208149326 +0200
+@@ -184,6 +184,19 @@ if os_name == 'posix' or os_name == 'dar
      DELIM = ':'
      SEP = '/'
  
@@ -99,8 +99,8 @@ diff -rupN --no-dereference Python-3.11.15/Modules/getpath.py Python-3.11.15-new
 +
  elif os_name == 'nt':
      BUILDDIR_TXT = 'pybuilddir.txt'
-     BUILD_LANDMARK = f'{VPATH}\\Modules\\Setup.local'
-@@ -456,7 +469,7 @@ if not py_setpath and not home_was_set:
+     DEFAULT_PROGRAM_NAME = f'python'
+@@ -453,7 +466,7 @@ if not py_setpath and not home_was_set:
      # ._pth file, but it cannot override the library's one.
      for p in [library, executable, real_executable]:
          if p:

diff --git a/mingw-python3_pthread_threadid.patch b/mingw-python3_pthread_threadid.patch
index b955d98..57c17cb 100644
--- a/mingw-python3_pthread_threadid.patch
+++ b/mingw-python3_pthread_threadid.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Python/thread_pthread.h Python-3.11.15-new/Python/thread_pthread.h
---- Python-3.11.15/Python/thread_pthread.h	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Python/thread_pthread.h	2026-03-27 18:42:05.355309981 +0100
+diff -rupN --no-dereference Python-3.11.16/Python/thread_pthread.h Python-3.11.16-new/Python/thread_pthread.h
+--- Python-3.11.16/Python/thread_pthread.h	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Python/thread_pthread.h	2026-09-18 19:23:06.895330721 +0200
 @@ -352,6 +352,9 @@ PyThread_get_thread_native_id(void)
  #elif defined(__NetBSD__)
      lwpid_t native_id;

diff --git a/mingw-python3_pythonw.patch b/mingw-python3_pythonw.patch
index 1588ae7..2f869ac 100644
--- a/mingw-python3_pythonw.patch
+++ b/mingw-python3_pythonw.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Makefile.pre.in
---- Python-3.11.15/Makefile.pre.in	2026-03-27 18:42:05.111906097 +0100
-+++ Python-3.11.15-new/Makefile.pre.in	2026-03-27 18:42:05.115906104 +0100
+diff -rupN --no-dereference Python-3.11.16/Makefile.pre.in Python-3.11.16-new/Makefile.pre.in
+--- Python-3.11.16/Makefile.pre.in	2026-09-18 19:23:06.606947164 +0200
++++ Python-3.11.16-new/Makefile.pre.in	2026-09-18 19:23:06.618200502 +0200
 @@ -284,6 +284,7 @@ LIBOBJS=	@LIBOBJS@
  
  PYTHON=		python$(EXE)
@@ -9,7 +9,7 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  
  HOSTRUNNER= @HOSTRUNNER@
  
-@@ -585,7 +586,7 @@ LIBEXPAT_HEADERS= \
+@@ -588,7 +589,7 @@ LIBEXPAT_HEADERS= \
  
  # Default target
  all:		@DEF_MAKE_ALL_RULE@
@@ -18,7 +18,7 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  		gdbhooks Programs/_testembed python-config
  build_wasm: check-clean-src $(BUILDPYTHON) platform oldsharedmods python-config
  
-@@ -704,9 +705,29 @@ coverage-report: regen-token regen-froze
+@@ -707,9 +708,29 @@ coverage-report: regen-token regen-froze
  clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
  	$(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir)
  
@@ -50,7 +50,7 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  
  platform: $(PYTHON_FOR_BUILD_DEPS) pybuilddir.txt
  	$(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
-@@ -810,10 +831,10 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION
+@@ -813,10 +834,10 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION
  
  # This rule builds the Cygwin Python DLL and import library if configured
  # for a shared core library; otherwise, this rule is a noop.
@@ -63,7 +63,7 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  	else true; \
  	fi
  
-@@ -1805,6 +1826,7 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORK
+@@ -1810,6 +1831,7 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORK
  	done
  	if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
  		$(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
@@ -71,9 +71,9 @@ diff -rupN --no-dereference Python-3.11.15/Makefile.pre.in Python-3.11.15-new/Ma
  	else \
  		$(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
  	fi
-diff -rupN --no-dereference Python-3.11.15/PC/python_exe.rc Python-3.11.15-new/PC/python_exe.rc
---- Python-3.11.15/PC/python_exe.rc	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/PC/python_exe.rc	2026-03-27 18:42:05.116325800 +0100
+diff -rupN --no-dereference Python-3.11.16/PC/python_exe.rc Python-3.11.16-new/PC/python_exe.rc
+--- Python-3.11.16/PC/python_exe.rc	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/PC/python_exe.rc	2026-09-18 19:23:06.619725166 +0200
 @@ -12,7 +12,7 @@
  // current versions of Windows.
  1 RT_MANIFEST "python.manifest"
@@ -83,9 +83,9 @@ diff -rupN --no-dereference Python-3.11.15/PC/python_exe.rc Python-3.11.15-new/P
  
  
  /////////////////////////////////////////////////////////////////////////////
-diff -rupN --no-dereference Python-3.11.15/PC/python_nt.rc Python-3.11.15-new/PC/python_nt.rc
---- Python-3.11.15/PC/python_nt.rc	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/PC/python_nt.rc	2026-03-27 18:42:05.116467348 +0100
+diff -rupN --no-dereference Python-3.11.16/PC/python_nt.rc Python-3.11.16-new/PC/python_nt.rc
+--- Python-3.11.16/PC/python_nt.rc	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/PC/python_nt.rc	2026-09-18 19:23:06.620293734 +0200
 @@ -39,7 +39,7 @@ BEGIN
              VALUE "FileVersion", PYTHON_VERSION
              VALUE "InternalName", "Python DLL\0"
@@ -95,9 +95,9 @@ diff -rupN --no-dereference Python-3.11.15/PC/python_nt.rc Python-3.11.15-new/PC
              VALUE "ProductName", "Python\0"
              VALUE "ProductVersion", PYTHON_VERSION
          END
-diff -rupN --no-dereference Python-3.11.15/PC/python_ver_rc.h Python-3.11.15-new/PC/python_ver_rc.h
---- Python-3.11.15/PC/python_ver_rc.h	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/PC/python_ver_rc.h	2026-03-27 18:42:05.116637379 +0100
+diff -rupN --no-dereference Python-3.11.16/PC/python_ver_rc.h Python-3.11.16-new/PC/python_ver_rc.h
+--- Python-3.11.16/PC/python_ver_rc.h	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/PC/python_ver_rc.h	2026-09-18 19:23:06.620824836 +0200
 @@ -3,6 +3,7 @@
  //
  #pragma code_page(1252)
@@ -106,9 +106,9 @@ diff -rupN --no-dereference Python-3.11.15/PC/python_ver_rc.h Python-3.11.15-new
  
  #define PYTHON_COMPANY   "Python Software Foundation"
  #define PYTHON_COPYRIGHT "Copyright \xA9 2001-2023 Python Software Foundation. Copyright \xA9 2000 BeOpen.com. Copyright \xA9 1995-2001 CNRI. Copyright \xA9 1991-1995 SMC."
-diff -rupN --no-dereference Python-3.11.15/PC/pythonw_exe.rc Python-3.11.15-new/PC/pythonw_exe.rc
---- Python-3.11.15/PC/pythonw_exe.rc	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/PC/pythonw_exe.rc	2026-03-27 18:42:05.116765435 +0100
+diff -rupN --no-dereference Python-3.11.16/PC/pythonw_exe.rc Python-3.11.16-new/PC/pythonw_exe.rc
+--- Python-3.11.16/PC/pythonw_exe.rc	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/PC/pythonw_exe.rc	2026-09-18 19:23:06.621350873 +0200
 @@ -12,7 +12,7 @@
  // current versions of Windows.
  1 RT_MANIFEST "python.manifest"
@@ -118,9 +118,9 @@ diff -rupN --no-dereference Python-3.11.15/PC/pythonw_exe.rc Python-3.11.15-new/
  
  
  /////////////////////////////////////////////////////////////////////////////
-diff -rupN --no-dereference Python-3.11.15/Programs/python.c Python-3.11.15-new/Programs/python.c
---- Python-3.11.15/Programs/python.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Programs/python.c	2026-03-27 18:42:05.116940518 +0100
+diff -rupN --no-dereference Python-3.11.16/Programs/python.c Python-3.11.16-new/Programs/python.c
+--- Python-3.11.16/Programs/python.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Programs/python.c	2026-09-18 19:23:06.621947191 +0200
 @@ -8,10 +8,9 @@ wmain(int argc, wchar_t **argv)
  {
      return Py_Main(argc, argv);

diff --git a/mingw-python3_setenv.patch b/mingw-python3_setenv.patch
index 5b13b07..cb8c0cb 100644
--- a/mingw-python3_setenv.patch
+++ b/mingw-python3_setenv.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Python/pylifecycle.c Python-3.11.15-new/Python/pylifecycle.c
---- Python-3.11.15/Python/pylifecycle.c	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Python/pylifecycle.c	2026-03-27 18:42:04.644434761 +0100
+diff -rupN --no-dereference Python-3.11.16/Python/pylifecycle.c Python-3.11.16-new/Python/pylifecycle.c
+--- Python-3.11.16/Python/pylifecycle.c	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Python/pylifecycle.c	2026-09-18 19:23:06.036851690 +0200
 @@ -61,6 +61,27 @@ extern void _PyIO_Fini(void);
  
  #define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str))

diff --git a/mingw-python3_win-modules.patch b/mingw-python3_win-modules.patch
index 6a72666..7b2848d 100644
--- a/mingw-python3_win-modules.patch
+++ b/mingw-python3_win-modules.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modules/Setup
---- Python-3.11.15/Modules/Setup	2026-03-27 18:42:06.547165649 +0100
-+++ Python-3.11.15-new/Modules/Setup	2026-03-27 18:42:06.824901457 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/Setup Python-3.11.16-new/Modules/Setup
+--- Python-3.11.16/Modules/Setup	2026-09-18 19:23:08.202833836 +0200
++++ Python-3.11.16-new/Modules/Setup	2026-09-18 19:23:08.460113755 +0200
 @@ -270,6 +270,12 @@ mmap mmapmodule.c
  # macOS specific module, needs SystemConfiguration and CoreFoundation framework
  # _scproxy _scproxy.c
@@ -14,9 +14,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/Setup Python-3.11.15-new/Modu
  # Examples
  
  #xx xxmodule.c
-diff -rupN --no-dereference Python-3.11.15/Modules/Setup.bootstrap.in Python-3.11.15-new/Modules/Setup.bootstrap.in
---- Python-3.11.15/Modules/Setup.bootstrap.in	2026-03-03 01:52:57.000000000 +0100
-+++ Python-3.11.15-new/Modules/Setup.bootstrap.in	2026-03-27 18:42:06.825860003 +0100
+diff -rupN --no-dereference Python-3.11.16/Modules/Setup.bootstrap.in Python-3.11.16-new/Modules/Setup.bootstrap.in
+--- Python-3.11.16/Modules/Setup.bootstrap.in	2026-08-13 01:03:19.000000000 +0200
++++ Python-3.11.16-new/Modules/Setup.bootstrap.in	2026-09-18 19:23:08.460569376 +0200
 @@ -8,15 +8,15 @@
  # module C APIs are used in core
  atexit atexitmodule.c
@@ -42,9 +42,9 @@ diff -rupN --no-dereference Python-3.11.15/Modules/Setup.bootstrap.in Python-3.1
  @MODULE_PWD_TRUE@pwd pwdmodule.c
 +
 +winreg ../PC/winreg.c
-diff -rupN --no-dereference Python-3.11.15/setup.py Python-3.11.15-new/setup.py
---- Python-3.11.15/setup.py	2026-03-27 18:42:06.547436682 +0100
-+++ Python-3.11.15-new/setup.py	2026-03-27 18:42:06.826909025 +0100
+diff -rupN --no-dereference Python-3.11.16/setup.py Python-3.11.16-new/setup.py
+--- Python-3.11.16/setup.py	2026-09-18 19:23:08.203119714 +0200
++++ Python-3.11.16-new/setup.py	2026-09-18 19:23:08.460918402 +0200
 @@ -1382,6 +1382,15 @@ class PyBuildExt(build_ext):
          self.addext(Extension('xxlimited', ['xxlimited.c']))
          self.addext(Extension('xxlimited_35', ['xxlimited_35.c']))

diff --git a/sources b/sources
index 56f68f4..d270a50 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.11.15.tar.xz) = 1667f4839acfd23d05917a12993983b7dc3ab4438a37c72496fd040ac6981f4dea9dc95461ca701a6862beedb56c423fb83398b8b18e39e1efe12f539fced1c1
+SHA512 (Python-3.11.16.tar.xz) = f4e168d35596c2df080663d8e8b3472f03bace987d46b49b8410f2425ba193215b9880c7d03d4653ec31c83b72209d95866fc1cb6d666799145075b092f64a48

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-18 17:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-18 17:26 [rpms/mingw-python3] f43: Update to 3.11.16 Sandro Mani

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox