diff options
| author | Peter Marko <peter.marko@siemens.com> | 2025-06-08 23:43:27 +0200 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2025-06-13 08:58:01 -0700 |
| commit | c4f82e3fd561ac83c8c836e43d701cff36ca2f42 (patch) | |
| tree | 27711273b06a4a06364b1e56b0392f3df8a1856d | |
| parent | 82e8f8c2e08c48229154ce3fbc599e4112b72d58 (diff) | |
| download | poky-c4f82e3fd561ac83c8c836e43d701cff36ca2f42.tar.gz | |
python3: upgrade 3.12.9 -> 3.12.11
Drop upstreamed patch and refresh remaining patches.
* https://www.python.org/downloads/release/python-31210/
Python 3.12.10 is the latest maintenance release of Python 3.12, and
the last full maintenance release. Subsequent releases of 3.12 will be
security-fixes only.
* https://www.python.org/downloads/release/python-31211/
Security content in this release
* gh-135034: [CVE 2024-12718] [CVE 2025-4138] [CVE 2025-4330]
[CVE 2025-4435] [CVE 2025-4517] Fixes multiple issues that allowed
tarfile extraction filters (filter="data" and filter="tar") to be
bypassed using crafted symlinks and hard links.
* gh-133767: Fix use-after-free in the “unicode-escape” decoder with a
non-“strict” error handler.
* gh-128840: Short-circuit the processing of long IPv6 addresses early
in ipaddress to prevent excessive memory consumption and a minor
denial-of-service.
gh-133767 got meawhile CVE-2025-4516 assigned.
(From OE-Core rev: 6cca08b2857efd5481e837ecd6bb295cb8a99ee1)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
9 files changed, 10 insertions, 64 deletions
diff --git a/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch index 6e4930b9ec..a8f98d873e 100644 --- a/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch +++ b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch | |||
| @@ -19,7 +19,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in | |||
| 19 | index 2d235d2..1ac2263 100644 | 19 | index 2d235d2..1ac2263 100644 |
| 20 | --- a/Makefile.pre.in | 20 | --- a/Makefile.pre.in |
| 21 | +++ b/Makefile.pre.in | 21 | +++ b/Makefile.pre.in |
| 22 | @@ -2355,6 +2355,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh | 22 | @@ -2356,6 +2356,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh |
| 23 | @ # Substitution happens here, as the completely-expanded BINDIR | 23 | @ # Substitution happens here, as the completely-expanded BINDIR |
| 24 | @ # is not available in configure | 24 | @ # is not available in configure |
| 25 | sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py | 25 | sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py |
diff --git a/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch index 1b9f3565d3..c42a56bcb3 100644 --- a/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch +++ b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch | |||
| @@ -17,7 +17,7 @@ diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py | |||
| 17 | index 6258b68..d59ec6e 100644 | 17 | index 6258b68..d59ec6e 100644 |
| 18 | --- a/Lib/sysconfig.py | 18 | --- a/Lib/sysconfig.py |
| 19 | +++ b/Lib/sysconfig.py | 19 | +++ b/Lib/sysconfig.py |
| 20 | @@ -668,6 +668,11 @@ def _init_config_vars(): | 20 | @@ -675,6 +675,11 @@ def _init_config_vars(): |
| 21 | _CONFIG_VARS['VPATH'] = sys._vpath | 21 | _CONFIG_VARS['VPATH'] = sys._vpath |
| 22 | if os.name == 'posix': | 22 | if os.name == 'posix': |
| 23 | _init_posix(_CONFIG_VARS) | 23 | _init_posix(_CONFIG_VARS) |
diff --git a/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch b/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch index ec3bb9cbbd..051ec2c635 100644 --- a/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch +++ b/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch | |||
| @@ -26,7 +26,7 @@ diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing. | |||
| 26 | index 3b4415b..1f94dec 100644 | 26 | index 3b4415b..1f94dec 100644 |
| 27 | --- a/Lib/test/_test_multiprocessing.py | 27 | --- a/Lib/test/_test_multiprocessing.py |
| 28 | +++ b/Lib/test/_test_multiprocessing.py | 28 | +++ b/Lib/test/_test_multiprocessing.py |
| 29 | @@ -688,6 +688,7 @@ class _TestProcess(BaseTestCase): | 29 | @@ -692,6 +692,7 @@ class _TestProcess(BaseTestCase): |
| 30 | close_queue(q) | 30 | close_queue(q) |
| 31 | 31 | ||
| 32 | @support.requires_resource('walltime') | 32 | @support.requires_resource('walltime') |
| @@ -34,7 +34,7 @@ index 3b4415b..1f94dec 100644 | |||
| 34 | def test_many_processes(self): | 34 | def test_many_processes(self): |
| 35 | if self.TYPE == 'threads': | 35 | if self.TYPE == 'threads': |
| 36 | self.skipTest('test not appropriate for {}'.format(self.TYPE)) | 36 | self.skipTest('test not appropriate for {}'.format(self.TYPE)) |
| 37 | @@ -2211,6 +2212,7 @@ class _TestBarrier(BaseTestCase): | 37 | @@ -2223,6 +2224,7 @@ class _TestBarrier(BaseTestCase): |
| 38 | except threading.BrokenBarrierError: | 38 | except threading.BrokenBarrierError: |
| 39 | results.append(True) | 39 | results.append(True) |
| 40 | 40 | ||
| @@ -42,7 +42,7 @@ index 3b4415b..1f94dec 100644 | |||
| 42 | def test_timeout(self): | 42 | def test_timeout(self): |
| 43 | """ | 43 | """ |
| 44 | Test wait(timeout) | 44 | Test wait(timeout) |
| 45 | @@ -5208,6 +5210,7 @@ class TestWait(unittest.TestCase): | 45 | @@ -5220,6 +5222,7 @@ class TestWait(unittest.TestCase): |
| 46 | time.sleep(period) | 46 | time.sleep(period) |
| 47 | 47 | ||
| 48 | @support.requires_resource('walltime') | 48 | @support.requires_resource('walltime') |
diff --git a/meta/recipes-devtools/python/python3/0001-ctypes-correct-gcc-check-in-test.patch b/meta/recipes-devtools/python/python3/0001-ctypes-correct-gcc-check-in-test.patch deleted file mode 100644 index 3dd762e519..0000000000 --- a/meta/recipes-devtools/python/python3/0001-ctypes-correct-gcc-check-in-test.patch +++ /dev/null | |||
| @@ -1,53 +0,0 @@ | |||
| 1 | From 2e2a0c8593a38f2020cc2baeeaa7972eb86773f9 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Peter Marko <peter.marko@siemens.com> | ||
| 3 | Date: Sat, 8 Feb 2025 23:57:17 +0100 | ||
| 4 | Subject: [PATCH] ctypes: correct gcc check in test | ||
| 5 | |||
| 6 | In case gcc is not available, it will throw exception and test fails. | ||
| 7 | So chatch the exception to skip the test correctly. | ||
| 8 | |||
| 9 | ====================================================================== | ||
| 10 | ERROR: test_null_dlsym (test.test_ctypes.test_dlerror.TestNullDlsym.test_null_dlsym) | ||
| 11 | ---------------------------------------------------------------------- | ||
| 12 | Traceback (most recent call last): | ||
| 13 | File "/usr/lib/python3.12/test/test_ctypes/test_dlerror.py", line 61, in test_null_dlsym | ||
| 14 | retcode = subprocess.call(["gcc", "--version"], | ||
| 15 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| 16 | File "/usr/lib/python3.12/subprocess.py", line 391, in call | ||
| 17 | with Popen(*popenargs, **kwargs) as p: | ||
| 18 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| 19 | File "/usr/lib/python3.12/subprocess.py", line 1028, in __init__ | ||
| 20 | self._execute_child(args, executable, preexec_fn, close_fds, | ||
| 21 | File "/usr/lib/python3.12/subprocess.py", line 1963, in _execute_child | ||
| 22 | raise child_exception_type(errno_num, err_msg, err_filename) | ||
| 23 | FileNotFoundError: [Errno 2] No such file or directory: 'gcc' | ||
| 24 | |||
| 25 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/129872] | ||
| 26 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
| 27 | --- | ||
| 28 | Lib/test/test_ctypes/test_dlerror.py | 11 +++++++---- | ||
| 29 | 1 file changed, 7 insertions(+), 4 deletions(-) | ||
| 30 | |||
| 31 | diff --git a/Lib/test/test_ctypes/test_dlerror.py b/Lib/test/test_ctypes/test_dlerror.py | ||
| 32 | index 6bf492399cb..56eb7622b4d 100644 | ||
| 33 | --- a/Lib/test/test_ctypes/test_dlerror.py | ||
| 34 | +++ b/Lib/test/test_ctypes/test_dlerror.py | ||
| 35 | @@ -58,11 +58,14 @@ def test_null_dlsym(self): | ||
| 36 | import subprocess | ||
| 37 | import tempfile | ||
| 38 | |||
| 39 | - retcode = subprocess.call(["gcc", "--version"], | ||
| 40 | - stdout=subprocess.DEVNULL, | ||
| 41 | - stderr=subprocess.DEVNULL) | ||
| 42 | - if retcode != 0: | ||
| 43 | + try: | ||
| 44 | + retcode = subprocess.call(["gcc", "--version"], | ||
| 45 | + stdout=subprocess.DEVNULL, | ||
| 46 | + stderr=subprocess.DEVNULL) | ||
| 47 | + except: | ||
| 48 | self.skipTest("gcc is missing") | ||
| 49 | + if retcode != 0: | ||
| 50 | + self.skipTest("gcc is not working") | ||
| 51 | |||
| 52 | pipe_r, pipe_w = os.pipe() | ||
| 53 | self.addCleanup(os.close, pipe_r) | ||
diff --git a/meta/recipes-devtools/python/python3/0001-gh-107811-tarfile-treat-overflow-in-UID-GID-as-failu.patch b/meta/recipes-devtools/python/python3/0001-gh-107811-tarfile-treat-overflow-in-UID-GID-as-failu.patch index 5c74443e62..1cffdd6e05 100644 --- a/meta/recipes-devtools/python/python3/0001-gh-107811-tarfile-treat-overflow-in-UID-GID-as-failu.patch +++ b/meta/recipes-devtools/python/python3/0001-gh-107811-tarfile-treat-overflow-in-UID-GID-as-failu.patch | |||
| @@ -16,7 +16,7 @@ diff --git a/Lib/tarfile.py b/Lib/tarfile.py | |||
| 16 | index 0a0f31e..4dfb67d 100755 | 16 | index 0a0f31e..4dfb67d 100755 |
| 17 | --- a/Lib/tarfile.py | 17 | --- a/Lib/tarfile.py |
| 18 | +++ b/Lib/tarfile.py | 18 | +++ b/Lib/tarfile.py |
| 19 | @@ -2590,7 +2590,8 @@ class TarFile(object): | 19 | @@ -2685,7 +2685,8 @@ class TarFile(object): |
| 20 | os.lchown(targetpath, u, g) | 20 | os.lchown(targetpath, u, g) |
| 21 | else: | 21 | else: |
| 22 | os.chown(targetpath, u, g) | 22 | os.chown(targetpath, u, g) |
diff --git a/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch b/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch index e105f36eca..4920cb9ad9 100644 --- a/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch +++ b/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch | |||
| @@ -19,7 +19,7 @@ diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py | |||
| 19 | index c71c568..e41ab5e 100644 | 19 | index c71c568..e41ab5e 100644 |
| 20 | --- a/Lib/test/test_builtin.py | 20 | --- a/Lib/test/test_builtin.py |
| 21 | +++ b/Lib/test/test_builtin.py | 21 | +++ b/Lib/test/test_builtin.py |
| 22 | @@ -2352,6 +2352,7 @@ class PtyTests(unittest.TestCase): | 22 | @@ -2375,6 +2375,7 @@ class PtyTests(unittest.TestCase): |
| 23 | # Check stdin/stdout error handler is used when invoking PyOS_Readline() | 23 | # Check stdin/stdout error handler is used when invoking PyOS_Readline() |
| 24 | self.check_input_tty("prompté", b"quux\xe9", "ascii") | 24 | self.check_input_tty("prompté", b"quux\xe9", "ascii") |
| 25 | 25 | ||
diff --git a/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch b/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch index 22aabbb2ed..88cd93a51f 100644 --- a/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch +++ b/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch | |||
| @@ -19,7 +19,7 @@ diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py | |||
| 19 | index 4c4a449..b8c79a4 100644 | 19 | index 4c4a449..b8c79a4 100644 |
| 20 | --- a/Lib/test/test_ftplib.py | 20 | --- a/Lib/test/test_ftplib.py |
| 21 | +++ b/Lib/test/test_ftplib.py | 21 | +++ b/Lib/test/test_ftplib.py |
| 22 | @@ -626,6 +626,7 @@ class TestFTPClass(TestCase): | 22 | @@ -629,6 +629,7 @@ class TestFTPClass(TestCase): |
| 23 | self.client.storbinary('stor', f, rest=r) | 23 | self.client.storbinary('stor', f, rest=r) |
| 24 | self.assertEqual(self.server.handler_instance.rest, str(r)) | 24 | self.assertEqual(self.server.handler_instance.rest, str(r)) |
| 25 | 25 | ||
diff --git a/meta/recipes-devtools/python/python3/makerace.patch b/meta/recipes-devtools/python/python3/makerace.patch index 862b648685..fbe12a5fca 100644 --- a/meta/recipes-devtools/python/python3/makerace.patch +++ b/meta/recipes-devtools/python/python3/makerace.patch | |||
| @@ -20,7 +20,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in | |||
| 20 | index dce36a5..2d235d2 100644 | 20 | index dce36a5..2d235d2 100644 |
| 21 | --- a/Makefile.pre.in | 21 | --- a/Makefile.pre.in |
| 22 | +++ b/Makefile.pre.in | 22 | +++ b/Makefile.pre.in |
| 23 | @@ -2266,7 +2266,7 @@ COMPILEALL_OPTS=-j0 | 23 | @@ -2267,7 +2267,7 @@ COMPILEALL_OPTS=-j0 |
| 24 | TEST_MODULES=@TEST_MODULES@ | 24 | TEST_MODULES=@TEST_MODULES@ |
| 25 | 25 | ||
| 26 | .PHONY: libinstall | 26 | .PHONY: libinstall |
diff --git a/meta/recipes-devtools/python/python3_3.12.9.bb b/meta/recipes-devtools/python/python3_3.12.11.bb index 8e03ff5f2b..706dabb5cd 100644 --- a/meta/recipes-devtools/python/python3_3.12.9.bb +++ b/meta/recipes-devtools/python/python3_3.12.11.bb | |||
| @@ -34,14 +34,13 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ | |||
| 34 | file://0001-test_deadlock-skip-problematic-test.patch \ | 34 | file://0001-test_deadlock-skip-problematic-test.patch \ |
| 35 | file://0001-test_active_children-skip-problematic-test.patch \ | 35 | file://0001-test_active_children-skip-problematic-test.patch \ |
| 36 | file://0001-test_readline-skip-limited-history-test.patch \ | 36 | file://0001-test_readline-skip-limited-history-test.patch \ |
| 37 | file://0001-ctypes-correct-gcc-check-in-test.patch \ | ||
| 38 | " | 37 | " |
| 39 | 38 | ||
| 40 | SRC_URI:append:class-native = " \ | 39 | SRC_URI:append:class-native = " \ |
| 41 | file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ | 40 | file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ |
| 42 | " | 41 | " |
| 43 | 42 | ||
| 44 | SRC_URI[sha256sum] = "7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112" | 43 | SRC_URI[sha256sum] = "c30bb24b7f1e9a19b11b55a546434f74e739bb4c271a3e3a80ff4380d49f7adb" |
| 45 | 44 | ||
| 46 | # exclude pre-releases for both python 2.x and 3.x | 45 | # exclude pre-releases for both python 2.x and 3.x |
| 47 | UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" | 46 | UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" |
