From patchwork Mon Jun 8 21:53:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89499 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64F10CD6E79 for ; Mon, 8 Jun 2026 21:54:44 +0000 (UTC) Received: from mta-64-226.siemens.flowmailer.net (mta-64-226.siemens.flowmailer.net [185.136.64.226]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.66355.1780955680563462550 for ; Mon, 08 Jun 2026 14:54:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=rlZcclyZ; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.226, mailfrom: fm-256628-202606082154379a3fa2a15100020778-86nmmn@rts-flowmailer.siemens.com) Received: by mta-64-226.siemens.flowmailer.net with ESMTPSA id 202606082154379a3fa2a15100020778 for ; Mon, 08 Jun 2026 23:54:38 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc; bh=mi1XNh6Loa6RuVxSvDMqBSS9dcWfHo9ep9U1BIFUKaw=; b=rlZcclyZRE2ez3fRBYu/11x03A9vD0dYbW9XE4oCk8urH1gQm3tE+HIRgNkz05IzmEeNRY dKD+mmxsQ68GF3HhWIITOq6TNl+9WDcPPoD0zWAYCMrWgaP4j/AfNm1h9zFTcJbI2j6rotQW 5ehg5U+5FAH76L3bFEbMuu/9JVRIh/Dmr7rBArVbd5/nHb/8xP2dBQyfhdQPaddvLS6/z3o4 U/gs9Ot2zn+c6ozAER2QUTnBKayI+Ksyd0anihsdXCSqzMneLXQXRkbMCzmb8SqwqeiFUEX0 9mmxXtkfmTbYltH0QXv2tSCplVZ/qChVXJ+Lq3WdRnty6M4yCYk/U9PQ==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 1/6] python3: upgrade 3.14.4 -> 3.14.5 Date: Mon, 8 Jun 2026 23:53:44 +0200 Message-ID: <20260608215354.3664441-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:54:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238259 From: Peter Marko Release notes: [1] and [2]. Resolves following CVEs from reports: * CVE-2026-1502 * CVE-2026-3087 (Windows specific) * CVE-2026-3298 (Windows specific) * CVE-2026-4786 (explicitly set, see Debian security tracker) * CVE-2026-5713 (explicitly set, see Debian security tracker) * CVE-2026-6019 (explicitly set, see Debian security tracker) * CVE-2026-6100 (explicitly set, see Debian security tracker) Also some security issues without CVE assignment. Refresh patches. [1] https://docs.python.org/3/whatsnew/changelog.html#python-3-14-5-final [2] https://docs.python.org/3/whatsnew/changelog.html#python-3-14-5-release-candidate-1 Signed-off-by: Peter Marko Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (From OE-Core rev: 0df68073ebaecb968448dcf516b9085efadc6d29) Signed-off-by: Peter Marko --- ...01-Avoid-shebang-overflow-on-python-config.py.patch | 2 +- ....py-handle-stdin-I-O-errors-same-way-as-maste.patch | 2 +- ...e.pre-use-qemu-wrapper-when-gathering-profile.patch | 2 +- ...ailing-tests-due-to-load-variability-on-YP-AB.patch | 10 +++++----- .../0001-Skip-flaky-test_default_timeout-tests.patch | 4 ++-- ...-Update-test_sysconfig-for-posix_user-purelib.patch | 2 +- ...no_stdout_fileno-test-due-to-load-variability.patch | 2 +- ...01-test_active_children-skip-problematic-test.patch | 2 +- .../0001-test_cmd-skip-bang-completion-test.patch | 2 +- ...-test_ctypes.test_find-skip-without-tools-sdk.patch | 2 +- ...test_locale.py-correct-the-test-output-format.patch | 2 +- ...test_only_active_thread-skip-problematic-test.patch | 2 +- ...repl-skip-test_unix_console.test_cursor_back_.patch | 2 +- .../0001-test_readline-skip-limited-history-test.patch | 6 +++--- ...sconfig-skip-test_sysconfig.test_sysconfigdat.patch | 2 +- meta/recipes-devtools/python/python3/makerace.patch | 2 +- .../python/{python3_3.14.4.bb => python3_3.14.5.bb} | 8 ++++++-- 17 files changed, 29 insertions(+), 25 deletions(-) rename meta/recipes-devtools/python/{python3_3.14.4.bb => python3_3.14.5.bb} (98%) 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 eaf5ea5049..c2106f9437 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 index 9ec3a71..f7d5382 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -2585,6 +2585,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh +@@ -2829,6 +2829,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh @ # Substitution happens here, as the completely-expanded BINDIR @ # is not available in configure sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py diff --git a/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch b/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch index 84ad2abb0b..d9072a36f7 100644 --- a/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch +++ b/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch @@ -32,7 +32,7 @@ diff --git a/Lib/pty.py b/Lib/pty.py index 1d97994..fa8821b 100644 --- a/Lib/pty.py +++ b/Lib/pty.py -@@ -178,7 +178,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read): +@@ -149,7 +149,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read): i_buf = i_buf[n:] if stdin_avail and STDIN_FILENO in rfds: diff --git a/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch b/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch index 39b62f6f26..e25797f57e 100644 --- a/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch +++ b/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch @@ -18,7 +18,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in index 3bd4495f95b..8e8fc60bc76 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -751,8 +751,7 @@ profile-run-stamp: +@@ -857,8 +857,7 @@ profile-run-stamp: # enabled. $(MAKE) profile-gen-stamp # Next, run the profile task to generate the profile information. 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 4a35e8854e..a236268efb 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 @@ -30,7 +30,7 @@ diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing. index 9a72362c022..008e6a505a5 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py -@@ -722,6 +722,7 @@ def test_close(self): +@@ -774,6 +774,7 @@ class _TestProcess(BaseTestCase): close_queue(q) @support.requires_resource('walltime') @@ -38,7 +38,7 @@ index 9a72362c022..008e6a505a5 100644 def test_many_processes(self): if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) -@@ -2345,6 +2346,7 @@ def _test_timeout_f(cls, barrier, results): +@@ -2398,6 +2399,7 @@ class _TestBarrier(BaseTestCase): except threading.BrokenBarrierError: results.append(True) @@ -46,7 +46,7 @@ index 9a72362c022..008e6a505a5 100644 def test_timeout(self): """ Test wait(timeout) -@@ -5459,6 +5461,7 @@ def signal_and_sleep(cls, sem, period): +@@ -5550,6 +5552,7 @@ class TestWait(unittest.TestCase): time.sleep(period) @support.requires_resource('walltime') @@ -58,7 +58,7 @@ diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py index 5312faa5077..36873d9a400 100644 --- a/Lib/test/test_time.py +++ b/Lib/test/test_time.py -@@ -548,6 +548,7 @@ def test_monotonic(self): +@@ -548,6 +548,7 @@ class TimeTestCase(unittest.TestCase): def test_perf_counter(self): time.perf_counter() @@ -66,7 +66,7 @@ index 5312faa5077..36873d9a400 100644 @unittest.skipIf( support.is_wasi, "process_time not available on WASI" ) -@@ -567,6 +568,7 @@ def test_process_time(self): +@@ -567,6 +568,7 @@ class TimeTestCase(unittest.TestCase): self.assertTrue(info.monotonic) self.assertFalse(info.adjustable) diff --git a/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch b/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch index 4e1bd833b4..d41037f9ea 100644 --- a/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch +++ b/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch @@ -27,7 +27,7 @@ diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing. index e8064e7..9ab1f9e 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py -@@ -2259,6 +2259,7 @@ class _TestBarrier(BaseTestCase): +@@ -2424,6 +2424,7 @@ class _TestBarrier(BaseTestCase): """ Test the barrier's default timeout """ @@ -39,7 +39,7 @@ diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py index 8c8f890..43e9b90 100644 --- a/Lib/test/lock_tests.py +++ b/Lib/test/lock_tests.py -@@ -1165,6 +1165,7 @@ class BarrierTests(BaseTestCase): +@@ -1215,6 +1215,7 @@ class BarrierTests(BaseTestCase): """ Test the barrier's default timeout """ diff --git a/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch b/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch index adaca4ff77..6a62c6dc5b 100644 --- a/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch +++ b/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch @@ -25,7 +25,7 @@ diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 1ade492..4e94889 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py -@@ -430,7 +430,7 @@ class TestSysConfig(unittest.TestCase): +@@ -434,7 +434,7 @@ class TestSysConfig(unittest.TestCase, VirtualEnvironmentMixin): expected = os.path.normpath(global_path.replace(base, user, 1)) # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, # whereas posix_prefix does. 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 9bc8b091cc..b186bdcb88 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 index c5394de..ed17fb6 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py -@@ -2474,6 +2474,7 @@ class PtyTests(unittest.TestCase): +@@ -2738,6 +2738,7 @@ class PtyTests(unittest.TestCase): "byte 0xe9 in position 4: ordinal not in " "range(128)") diff --git a/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch index 80aa29faf0..d7202aa575 100644 --- a/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch +++ b/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch @@ -21,7 +21,7 @@ diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing. index 008e6a505a5..746de8945f0 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py -@@ -615,6 +615,7 @@ def test_cpu_count(self): +@@ -667,6 +667,7 @@ class _TestProcess(BaseTestCase): self.assertIsInstance(cpus, int) self.assertGreaterEqual(cpus, 1) diff --git a/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch b/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch index d339e8c198..f1ba044cc3 100644 --- a/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch +++ b/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch @@ -18,7 +18,7 @@ diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py index dbfec42fc21..c33dab8d10d 100644 --- a/Lib/test/test_cmd.py +++ b/Lib/test/test_cmd.py -@@ -295,6 +295,7 @@ def do_tab_completion_test(self, args): +@@ -295,6 +295,7 @@ class CmdTestReadline(unittest.TestCase): self.assertIn(b'ab_completion_test', output) self.assertIn(b'tab completion success', output) diff --git a/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch index 68e277d662..cdcd9302d6 100644 --- a/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch +++ b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch @@ -18,7 +18,7 @@ diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find. index 85b2861..b033203 100644 --- a/Lib/test/test_ctypes/test_find.py +++ b/Lib/test/test_ctypes/test_find.py -@@ -116,10 +116,12 @@ class FindLibraryLinux(unittest.TestCase): +@@ -117,10 +117,12 @@ class FindLibraryLinux(unittest.TestCase): # LD_LIBRARY_PATH) self.assertEqual(find_library(libname), 'lib%s.so' % libname) diff --git a/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch index 189246911b..201271b0c0 100644 --- a/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch +++ b/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch @@ -34,7 +34,7 @@ diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py index da4bd79..fd9e67d 100644 --- a/Lib/test/test_locale.py +++ b/Lib/test/test_locale.py -@@ -501,7 +501,7 @@ class TestRealLocales(unittest.TestCase): +@@ -500,7 +500,7 @@ class TestRealLocales(unittest.TestCase): self.skipTest('test needs Turkish locale') loc = locale.getlocale(locale.LC_CTYPE) if verbose: diff --git a/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch index 4886b7e386..bc436e077a 100644 --- a/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch +++ b/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch @@ -17,7 +17,7 @@ diff --git a/Lib/test/test_external_inspection.py b/Lib/test/test_external_inspe index a709b837161..7a87092c10e 100644 --- a/Lib/test/test_external_inspection.py +++ b/Lib/test/test_external_inspection.py -@@ -1111,6 +1111,7 @@ def test_self_trace(self): +@@ -1154,6 +1154,7 @@ class TestGetStackTrace(unittest.TestCase): ], ) diff --git a/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch b/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch index e886c046cb..97f7871266 100644 --- a/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch +++ b/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch @@ -33,7 +33,7 @@ diff --git a/Lib/test/test_pyrepl/test_unix_console.py b/Lib/test/test_pyrepl/te index 3b0d2637dab..5a3c8952f61 100644 --- a/Lib/test/test_pyrepl/test_unix_console.py +++ b/Lib/test/test_pyrepl/test_unix_console.py -@@ -172,6 +172,7 @@ def test_cursor_up_down(self, _os_write): +@@ -186,6 +186,7 @@ class TestConsole(TestCase): _os_write.assert_any_call(ANY, TERM_CAPABILITIES["cud"] + b":1") con.restore() diff --git a/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch b/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch index a619d51c10..c59c6672e0 100644 --- a/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch +++ b/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch @@ -20,7 +20,7 @@ diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py index 537a9fb..ddf0323 100644 --- a/Lib/test/test_readline.py +++ b/Lib/test/test_readline.py -@@ -71,6 +71,7 @@ class TestHistoryManipulation (unittest.TestCase): +@@ -74,6 +74,7 @@ class TestHistoryManipulation (unittest.TestCase): @unittest.skipUnless(hasattr(readline, "append_history_file"), "append_history not available") @@ -28,7 +28,7 @@ index 537a9fb..ddf0323 100644 def test_write_read_append(self): hfile = tempfile.NamedTemporaryFile(delete=False) hfile.close() -@@ -142,6 +143,7 @@ class TestHistoryManipulation (unittest.TestCase): +@@ -145,6 +146,7 @@ class TestHistoryManipulation (unittest.TestCase): self.assertEqual(readline.get_history_item(1), "entrée 1") self.assertEqual(readline.get_history_item(2), "entrée 22") @@ -36,7 +36,7 @@ index 537a9fb..ddf0323 100644 def test_write_read_limited_history(self): previous_length = readline.get_history_length() self.addCleanup(readline.set_history_length, previous_length) -@@ -390,6 +392,7 @@ readline.write_history_file(history_file) +@@ -393,6 +395,7 @@ readline.write_history_file(history_file) self.assertIn(b"done", output) diff --git a/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch b/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch index 0fe9399bf1..6dfba59a44 100644 --- a/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch +++ b/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch @@ -19,7 +19,7 @@ diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 09eff11179e..14fcdedccba 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py -@@ -685,6 +685,7 @@ def test_makefile_overwrites_config_vars(self): +@@ -689,6 +689,7 @@ class TestSysConfig(unittest.TestCase, VirtualEnvironmentMixin): self.assertNotEqual(data['prefix'], data['base_prefix']) self.assertNotEqual(data['exec_prefix'], data['base_exec_prefix']) diff --git a/meta/recipes-devtools/python/python3/makerace.patch b/meta/recipes-devtools/python/python3/makerace.patch index bf73135e09..b29ea56cc3 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 index be1b9ea..9ec3a71 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -2492,7 +2492,7 @@ COMPILEALL_OPTS=-j0 +@@ -2735,7 +2735,7 @@ COMPILEALL_OPTS=-j0 TEST_MODULES=@TEST_MODULES@ .PHONY: libinstall diff --git a/meta/recipes-devtools/python/python3_3.14.4.bb b/meta/recipes-devtools/python/python3_3.14.5.bb similarity index 98% rename from meta/recipes-devtools/python/python3_3.14.4.bb rename to meta/recipes-devtools/python/python3_3.14.5.bb index 71f590f630..b5c1d6fb3e 100644 --- a/meta/recipes-devtools/python/python3_3.14.4.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -40,8 +40,7 @@ SRC_URI:append:class-native = " \ file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ " -SRC_URI[sha256sum] = "a97d5549e9ad81fe17159ed02c68774ad5d266c72f8d9a0b5a9c371fe85d902b" -SRC_URI[sha256sum] = "d923c51303e38e249136fc1bdf3568d56ecb03214efdef48516176d3d7faaef8" +SRC_URI[sha256sum] = "7e32597b99e5d9a39abed35de4693fa169df3e5850d4c334337ffd6a19a36db6" # exclude pre-releases for both python 2.x and 3.x UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" @@ -522,3 +521,8 @@ SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup" py3_sysroot_cleanup () { rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test } + +CVE_STATUS[CVE-2026-4786] = "cpe-stable-backport: backported to v3.14.5" +CVE_STATUS[CVE-2026-5713] = "cpe-stable-backport: backported to v3.14.5" +CVE_STATUS[CVE-2026-6019] = "cpe-stable-backport: backported to v3.14.5" +CVE_STATUS[CVE-2026-6100] = "cpe-stable-backport: backported to v3.14.5" From patchwork Mon Jun 8 21:56:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89500 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FC9ECD8CA7 for ; Mon, 8 Jun 2026 21:57:14 +0000 (UTC) Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net [185.136.65.225]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.66302.1780955827524370947 for ; Mon, 08 Jun 2026 14:57:08 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=heO5zXJ0; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.225, mailfrom: fm-256628-202606082157058f93f0571000020714-xbkayu@rts-flowmailer.siemens.com) Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 202606082157058f93f0571000020714 for ; Mon, 08 Jun 2026 23:57:05 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=ikGSvFYQ1gtlUxFLnlvpAQ1q6Lo8QuDbl7ND+u0lnvE=; b=heO5zXJ0JpU66qdhoflaMovLGXMQV+FhMbLUfoJ7fJExSxaFAdbpHLA+URO7r9BGYe9Q2I 6CmKrQsV2K5Hov5EBG5fD2pqLufkhZdoo0RWRduduLtxESy0gNUf/lhZGmX0S3ZXB9JU4Nbt as+fikimhlYt/WsTvkF77CBdywsOkGfdMjNkRaBxG0uBCNI1n5+IY2dcsmcr8kWzsVaGKUQF YnIA9H6Rw5uMRK7n0fL6j3eE70MOq0H27emfEVIPfXIz5nstpm7k27VfHCBDh2Ulot8eh9/0 rJkIejcgepJCtVNd2LdVoFQQquk0/AKBsldAL13LgcClQaCQj72llaYw==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 2/6] python3: Fix ThreadingMock call_count race condition Date: Mon, 8 Jun 2026 23:56:48 +0200 Message-ID: <20260608215654.3664494-1-peter.marko@siemens.com> In-Reply-To: <20260608215354.3664441-1-peter.marko@siemens.com> References: <20260608215354.3664441-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:57:14 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238260 From: Sai Sneha ThreadingMock._increment_mock_call() was not thread-safe causing intermittent ptest failures on qemuarm64: FAIL: test_call_count_thread_safe AssertionError: 983 != 1000 Each time a mock is called, Python reads the call_count, adds 1, and writes it back. When multiple threads do this simultaneously, some increments get lost because two threads can read the same value before either writes back. The fix adds a lock around this operation in ThreadingMock so only one thread can update call_count at a time. Reproduction and testing: - x86 stress test (50 threads x 10000 calls x 30 runs): Before fix: 23/30 failures, missing up to 42095 calls After fix: 0/30 failures - qemuarm64 (10 threads x 100 calls x 20 runs): Before fix: 3/20 failures, missing up to 49 calls After fix: 0/20 failures - All 19 existing ThreadingMock tests pass Upstream fix merged into CPython main: https://github.com/python/cpython/pull/150176 Fixes [YOCTO #16213] Signed-off-by: Sai Sneha Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (From OE-Core rev: 6f7af3f76c8ce0a77ddc779a850071a714caff33) Signed-off-by: Peter Marko --- ...eadingMock-call-count-race-condition.patch | 37 +++++++++++++++++++ .../recipes-devtools/python/python3_3.14.5.bb | 1 + 2 files changed, 38 insertions(+) create mode 100644 meta/recipes-devtools/python/python3/0001-Fix-ThreadingMock-call-count-race-condition.patch diff --git a/meta/recipes-devtools/python/python3/0001-Fix-ThreadingMock-call-count-race-condition.patch b/meta/recipes-devtools/python/python3/0001-Fix-ThreadingMock-call-count-race-condition.patch new file mode 100644 index 0000000000..aba3188a59 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Fix-ThreadingMock-call-count-race-condition.patch @@ -0,0 +1,37 @@ +From 388e023fe1197c1ffed374520ed45df4ac72b8f5 Mon Sep 17 00:00:00 2001 +From: Sai Sneha +Date: Thu, 21 May 2026 13:08:07 +0530 +Subject: [PATCH] Fix ThreadingMock call_count race condition + +ThreadingMock._increment_mock_call() was not thread-safe. +Multiple threads calling the mock simultaneously could lose +increments due to race conditions on call_count and other +attributes. + +Fix by overriding _increment_mock_call in ThreadingMixin +and wrapping it with the existing _mock_calls_events_lock. + +Upstream-Status: Backport [https://github.com/python/cpython/pull/150176] + +Signed-off-by: Sai Sneha +--- + Lib/unittest/mock.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py +index 16f3699e89..56cdc37942 100644 +--- a/Lib/unittest/mock.py ++++ b/Lib/unittest/mock.py +@@ -3113,6 +3113,10 @@ def _mock_call(self, *args, **kwargs): + + return ret_value + ++ def _increment_mock_call(self, /, *args, **kwargs): ++ with self._mock_calls_events_lock: ++ super()._increment_mock_call(*args, **kwargs) ++ + def wait_until_called(self, *, timeout=_timeout_unset): + """Wait until the mock object is called. + +-- +2.34.1 diff --git a/meta/recipes-devtools/python/python3_3.14.5.bb b/meta/recipes-devtools/python/python3_3.14.5.bb index b5c1d6fb3e..9e6738997d 100644 --- a/meta/recipes-devtools/python/python3_3.14.5.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -35,6 +35,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-Skip-flaky-test_default_timeout-tests.patch \ file://0001-test_only_active_thread-skip-problematic-test.patch \ file://0001-prefer-valid-entrypoints.patch \ + file://0001-Fix-ThreadingMock-call-count-race-condition.patch \ " SRC_URI:append:class-native = " \ file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ From patchwork Mon Jun 8 21:56:49 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89502 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C1E9CD6E79 for ; Mon, 8 Jun 2026 21:57:24 +0000 (UTC) Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.66410.1780955835492014543 for ; Mon, 08 Jun 2026 14:57:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=r4rWuZfM; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.226, mailfrom: fm-256628-20260608215713418772b48700020718-5ukzyh@rts-flowmailer.siemens.com) Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20260608215713418772b48700020718 for ; Mon, 08 Jun 2026 23:57:13 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=fmWBvYCsbImNrQ7lHh7DSTTST/CXWBIyXCcI790ofIA=; b=r4rWuZfMwUjEpQL1o97k4pPgsHy0nZW3u4OiWi6IJ/lYev3X0dAbMDWxLdYB21Afiip9zQ o3MHRq1CD0UJRi7oVErGC+RH0f/BQonLDb2q2iAhOiE6gUwPMWWzg+N1y+lNuRHYdRXnRjwf inedJb6+VrlWwj/IFDHtEkS5+MQf+oAnh2JrPLi17WY2wESLKVhB0+fgaMKDQiz+ig1YLsjK DV6J4DBMBabk3YxddqrzSoGs9WuAJ8ZuHI+eQOKzO6Q700/W44DjoqmDSeJR10USgWRdJNTh CEFNCySfkkc5F595/pSM01xOM2epZ6K498WwQ13swZ+yBnyVnAG3VWLA==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 3/6] python3: use SKIPPED_TESTS instead of test skip patches Date: Mon, 8 Jun 2026 23:56:49 +0200 Message-ID: <20260608215654.3664494-2-peter.marko@siemens.com> In-Reply-To: <20260608215654.3664494-1-peter.marko@siemens.com> References: <20260608215354.3664441-1-peter.marko@siemens.com> <20260608215654.3664494-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:57:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238261 From: Trevor Gamblin Drop all 13 patches carried for skipping various known ptest failures and replace them with usage of the SKIPPED_TESTS variable, which we have started doing in recent commits (e.g. 40b0815dc9). Most but not all of the test skips are due to load variability, distinguish between them by using multiple SKIPPED_TESTS:append blocks with comments taken from the patch files indicating their purpose. This adds 62 lines to the Python 3 recipe, but it also means that we no longer have to maintain the patch files across version upgrades, where they often break due to changes in the test modules upstream. Results look the same as those from my last upgrade run: |== Tests result: SUCCESS == | |28 tests skipped: | test.test_asyncio.test_windows_events | test.test_asyncio.test_windows_utils test.test_gdb.test_backtrace | test.test_gdb.test_cfunction test.test_gdb.test_cfunction_full | test.test_gdb.test_misc test.test_gdb.test_pretty_print | test_android test_apple test_asdl_parser test_clinic test_devpoll | test_free_threading test_generated_cases test_idle test_kqueue | test_launcher test_msvcrt test_startfile test_tcl test_tkinter | test_ttk test_ttk_textonly test_turtle test_winapi | test_winconsoleio test_winreg test_wmi | |9 tests skipped (resource denied): | test_curses test_peg_generator test_smtpnet test_socketserver | test_urllib2net test_urllibnet test_winsound test_xpickle | test_zipfile64 | |455 tests OK. | |Total duration: 3 min 9 sec |Total tests: run=47,012 (filtered) skipped=2,336 |Total test files: run=483/492 (filtered) skipped=28 resource_denied=9 |Result: SUCCESS |DURATION: 190 |END: /usr/lib/python3/ptest |2026-05-29T02:22 |STOP: ptest-runner |TOTAL: 1 FAIL: 0 Signed-off-by: Trevor Gamblin Signed-off-by: Richard Purdie (From OE-Core rev: a8b2baa6020f96468a98200619ec37c460694c4c) Signed-off-by: Peter Marko --- ...sts-due-to-load-variability-on-YP-AB.patch | 79 ----------------- ...kip-flaky-test_default_timeout-tests.patch | 49 ----------- ..._fileno-test-due-to-load-variability.patch | 29 ------- ...ctive_children-skip-problematic-test.patch | 34 -------- ...1-test_cmd-skip-bang-completion-test.patch | 31 ------- ...pes.test_find-skip-without-tools-sdk.patch | 33 -------- ...-test_deadlock-skip-problematic-test.patch | 27 ------ ..._active_thread-skip-problematic-test.patch | 30 ------- ...-test_unix_console.test_cursor_back_.patch | 46 ---------- ...t_readline-skip-limited-history-test.patch | 46 ---------- ...-test_shutdown-skip-problematic-test.patch | 43 ---------- ...orlines-skip-due-to-load-variability.patch | 29 ------- ...kip-test_sysconfig.test_sysconfigdat.patch | 32 ------- .../recipes-devtools/python/python3_3.14.5.bb | 84 +++++++++++++++---- 14 files changed, 70 insertions(+), 522 deletions(-) delete mode 100644 meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch delete mode 100644 meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch 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 deleted file mode 100644 index a236268efb..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch +++ /dev/null @@ -1,79 +0,0 @@ -From aa32aef19d3a54a25dc16b3b77e29e902ee8abd7 Mon Sep 17 00:00:00 2001 -From: Yi Fan Yu -Date: Thu, 1 Apr 2021 13:08:37 -0700 -Subject: [PATCH] Skip failing tests due to load variability on YP AB - -Skip these tests until AB-INT is solved. - -[YOCTO #14296] - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Yi Fan Yu - -Skip two additional tests due to suspected load variability failures. - -[YOCTO #15131] -[YOCTO #15177] - -Signed-off-by: Trevor Gamblin - -Refresh to apply on top of Python 3.14.0. - -Signed-off-by: Trevor Gamblin ---- - Lib/test/_test_multiprocessing.py | 3 +++ - Lib/test/test_time.py | 2 ++ - 2 files changed, 5 insertions(+) - -diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py -index 9a72362c022..008e6a505a5 100644 ---- a/Lib/test/_test_multiprocessing.py -+++ b/Lib/test/_test_multiprocessing.py -@@ -774,6 +774,7 @@ class _TestProcess(BaseTestCase): - close_queue(q) - - @support.requires_resource('walltime') -+ @unittest.skip('timing related test, dependent on load') - def test_many_processes(self): - if self.TYPE == 'threads': - self.skipTest('test not appropriate for {}'.format(self.TYPE)) -@@ -2398,6 +2399,7 @@ class _TestBarrier(BaseTestCase): - except threading.BrokenBarrierError: - results.append(True) - -+ @unittest.skip('timing related test, dependent on load') - def test_timeout(self): - """ - Test wait(timeout) -@@ -5550,6 +5552,7 @@ class TestWait(unittest.TestCase): - time.sleep(period) - - @support.requires_resource('walltime') -+ @unittest.skip('timing related test, dependent on load') - def test_wait_integer(self): - from multiprocessing.connection import wait - -diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py -index 5312faa5077..36873d9a400 100644 ---- a/Lib/test/test_time.py -+++ b/Lib/test/test_time.py -@@ -548,6 +548,7 @@ class TimeTestCase(unittest.TestCase): - def test_perf_counter(self): - time.perf_counter() - -+ @unittest.skip('timing related test, dependent on load') - @unittest.skipIf( - support.is_wasi, "process_time not available on WASI" - ) -@@ -567,6 +568,7 @@ class TimeTestCase(unittest.TestCase): - self.assertTrue(info.monotonic) - self.assertFalse(info.adjustable) - -+ @unittest.skip('timing related test, dependent on load') - def test_thread_time(self): - if not hasattr(time, 'thread_time'): - if sys.platform.startswith(('linux', 'android', 'win')): --- -2.52.0 - diff --git a/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch b/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch deleted file mode 100644 index d41037f9ea..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Skip-flaky-test_default_timeout-tests.patch +++ /dev/null @@ -1,49 +0,0 @@ -From baf2dda48e51fcb17a716e52cc5c4e162a6bb7d3 Mon Sep 17 00:00:00 2001 -From: Antonin Godard -Date: Mon, 19 Jan 2026 11:38:36 +0100 -Subject: [PATCH] Skip flaky test_default_timeout tests - -We have been observing issues with this test on the Autobuilder: -https://bugzilla.yoctoproject.org/show_bug.cgi?id=15885 - -The logs on the ticket above do not allow us to know which of the two -"test_default_timeout" tests is failing, so disable both with -self.skipTest(). - -Excerpt from `ptest-runner python3`: - - test_default_timeout (test.test_multiprocessing_fork.test_manager.WithManagerTestBarrier.test_default_timeout) - SKIP: Test the barrier's default timeout 'skip flaky timeout test' - -Upstream-Status: Inappropriate [OE specific, but might be related to https://github.com/python/cpython/issues/129266#issuecomment-2613058866] - -Signed-off-by: Antonin Godard ---- - Lib/test/_test_multiprocessing.py | 1 + - Lib/test/lock_tests.py | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py -index e8064e7..9ab1f9e 100644 ---- a/Lib/test/_test_multiprocessing.py -+++ b/Lib/test/_test_multiprocessing.py -@@ -2424,6 +2424,7 @@ class _TestBarrier(BaseTestCase): - """ - Test the barrier's default timeout - """ -+ self.skipTest('skip flaky timeout test') - barrier = self.Barrier(self.N, timeout=0.5) - results = self.DummyList() - self.run_threads(self._test_default_timeout_f, (barrier, results)) -diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py -index 8c8f890..43e9b90 100644 ---- a/Lib/test/lock_tests.py -+++ b/Lib/test/lock_tests.py -@@ -1215,6 +1215,7 @@ class BarrierTests(BaseTestCase): - """ - Test the barrier's default timeout - """ -+ self.skipTest('skip flaky timeout test') - timeout = 0.100 - barrier = self.barriertype(2, timeout=timeout) - def f(): 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 deleted file mode 100644 index b186bdcb88..0000000000 --- a/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c5bdd39f8ebc4e6c58a47d7e424eac028eddb4ff Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Fri, 15 Sep 2023 08:48:33 -0400 -Subject: [PATCH] skip no_stdout_fileno test due to load variability - -Skip test_input_no_stdout_fileno so that it doesn't fail on systems -under heavy load. - -Upstream-Status: Inappropriate [OE-Specific] - -[YOCTO #15210] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_builtin.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py -index c5394de..ed17fb6 100644 ---- a/Lib/test/test_builtin.py -+++ b/Lib/test/test_builtin.py -@@ -2738,6 +2738,7 @@ class PtyTests(unittest.TestCase): - "byte 0xe9 in position 4: ordinal not in " - "range(128)") - -+ @unittest.skip("Test may fail under heavy load") - def test_input_no_stdout_fileno(self): - # Issue #24402: If stdin is the original terminal but stdout.fileno() - # fails, do not use the original stdout file descriptor diff --git a/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch deleted file mode 100644 index d7202aa575..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 9c9aac87f48eaece5b99ea347b639c21eea84e6d Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Thu, 13 Jun 2024 10:54:31 -0400 -Subject: [PATCH] test_active_children: skip problematic test - -This test is failing in some tests on the Autobuilder. Since it's of a -similar nature to other failing/hanging tests, disable it for now. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Trevor Gamblin - -Refresh to apply on top of Python 3.14.0. - -Signed-off-by: Trevor Gamblin ---- - Lib/test/_test_multiprocessing.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py -index 008e6a505a5..746de8945f0 100644 ---- a/Lib/test/_test_multiprocessing.py -+++ b/Lib/test/_test_multiprocessing.py -@@ -667,6 +667,7 @@ class _TestProcess(BaseTestCase): - self.assertIsInstance(cpus, int) - self.assertGreaterEqual(cpus, 1) - -+ @unittest.skip("skipping problematic test") - def test_active_children(self): - self.assertEqual(type(self.active_children()), list) - --- -2.51.0 - diff --git a/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch b/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch deleted file mode 100644 index f1ba044cc3..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_cmd-skip-bang-completion-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 614e3aefec85b51a611f85a55b6760f12e29b953 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Mon, 27 Oct 2025 09:52:46 -0400 -Subject: [PATCH] test_cmd: skip bang completion test - -We compile Python3 with editline support by default, which has tab completion -but not bang completion. If building with readline, -test_bang_completion_without_do_shell() passes. Skip the test because of this. - -Upstream-Status: Inappropriate [embedded-specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_cmd.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py -index dbfec42fc21..c33dab8d10d 100644 ---- a/Lib/test/test_cmd.py -+++ b/Lib/test/test_cmd.py -@@ -295,6 +295,7 @@ class CmdTestReadline(unittest.TestCase): - self.assertIn(b'ab_completion_test', output) - self.assertIn(b'tab completion success', output) - -+ @unittest.skip('no bang completion without readline') - def test_bang_completion_without_do_shell(self): - script = textwrap.dedent(""" - import cmd --- -2.51.0 - diff --git a/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch deleted file mode 100644 index cdcd9302d6..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0e9d0c58e77ef540d9601ce84a1aa79d9ce6ee9b Mon Sep 17 00:00:00 2001 -From: Tim Orling -Date: Fri, 18 Jun 2021 11:56:50 -0700 -Subject: [PATCH] test_ctypes.test_find: skip without tools-sdk - -These tests need full packagegroup-core-buildessential, the -easiest way to dynamically check for that is looking for -'tools-sdk' in IMAGE_FEATURES. - -Upstream-Status: Inappropriate [oe-specific] - -Signed-off-by: Tim Orling ---- - Lib/test/test_ctypes/test_find.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py -index 85b2861..b033203 100644 ---- a/Lib/test/test_ctypes/test_find.py -+++ b/Lib/test/test_ctypes/test_find.py -@@ -117,10 +117,12 @@ class FindLibraryLinux(unittest.TestCase): - # LD_LIBRARY_PATH) - self.assertEqual(find_library(libname), 'lib%s.so' % libname) - -+ @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") - def test_find_library_with_gcc(self): - with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None): - self.assertNotEqual(find_library('c'), None) - -+ @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") - def test_find_library_with_ld(self): - with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \ - unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None): diff --git a/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch deleted file mode 100644 index 3336e2913a..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5a44f74549b32395109342e9299510c32db71068 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Wed, 12 Jun 2024 10:29:03 -0400 -Subject: [PATCH] test_deadlock: skip problematic test - -This test hangs frequently when run on the Autobuilder. Disable it in -testing until the cause can be determined. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_concurrent_futures/test_deadlock.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_concurrent_futures/test_deadlock.py b/Lib/test/test_concurrent_futures/test_deadlock.py -index 3c30c45..008d6c0 100644 ---- a/Lib/test/test_concurrent_futures/test_deadlock.py -+++ b/Lib/test/test_concurrent_futures/test_deadlock.py -@@ -90,6 +90,7 @@ class ErrorAtUnpickle(object): - return _raise_error_ignore_stderr, (UnpicklingError, ) - - -+@unittest.skip("skipping problematic test") - class ExecutorDeadlockTest: - TIMEOUT = support.LONG_TIMEOUT - diff --git a/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch deleted file mode 100644 index bc436e077a..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_only_active_thread-skip-problematic-test.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0524821f8fcbdea2fbd90f199e7fb4950f50530f Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Tue, 3 Mar 2026 09:27:10 -0500 -Subject: [PATCH] test_only_active_thread: skip problematic test - -This test hangs frequently when run on the Autobuilder. Disable it in -testing for now. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_external_inspection.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_external_inspection.py b/Lib/test/test_external_inspection.py -index a709b837161..7a87092c10e 100644 ---- a/Lib/test/test_external_inspection.py -+++ b/Lib/test/test_external_inspection.py -@@ -1154,6 +1154,7 @@ class TestGetStackTrace(unittest.TestCase): - ], - ) - -+ @unittest.skip("skipping problematic test") - @skip_if_not_supported - @unittest.skipIf( - sys.platform == "linux" and not PROCESS_VM_READV_SUPPORTED, --- -2.53.0 - diff --git a/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch b/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch deleted file mode 100644 index 97f7871266..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 66a806ea05ecaf483753de3719041944daae42b0 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Mon, 27 Oct 2025 13:21:14 -0400 -Subject: [PATCH] test_pyrepl: skip test_unix_console.test_cursor_back_write - -This test was not run prior to 3.14 due to Python not having access to -the curses resource. In 3.14, PyREPL's dependency on curses has been -removed, instead relying on the terminfo module. This results in a -terminal capability list that does not include ICH1, resulting in an -"optimization" occurring from PyREPL's side that causes -test_cursor_back_write() to fail. Specifically, the test tests the -following writes in sequence: - -1. b"1" -2. TERM_CAPABILITIES["cub"] + b":1" -3. ANY, b"2" - -The first two writes are read correctly, but the result for the third -write is seeing the equivalent of: - -ANY, b"21" - -Skip this test. - -Upstream-Status: Inappropriate [embedded-specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_pyrepl/test_unix_console.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_pyrepl/test_unix_console.py b/Lib/test/test_pyrepl/test_unix_console.py -index 3b0d2637dab..5a3c8952f61 100644 ---- a/Lib/test/test_pyrepl/test_unix_console.py -+++ b/Lib/test/test_pyrepl/test_unix_console.py -@@ -186,6 +186,7 @@ class TestConsole(TestCase): - _os_write.assert_any_call(ANY, TERM_CAPABILITIES["cud"] + b":1") - con.restore() - -+ @unittest.skip('no ich1 support in vt102 terminfo') - def test_cursor_back_write(self, _os_write): - events = itertools.chain( - code_to_events("1"), --- -2.51.0 - diff --git a/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch b/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch deleted file mode 100644 index c59c6672e0..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 1a0a145261ba4f97aaff3c0c656ac2e0ad9695a8 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Tue, 13 Aug 2024 11:07:05 -0400 -Subject: [PATCH] test_readline: skip limited history test - -This test was added recently and is failing on the ptest image when -using the default PACKAGECONFIG settings (i.e. with editline instead of -readline).. Disable it until the proper fix is determined. - -A bug has been opened upstream: https://github.com/python/cpython/issues/123018 - -Upstream-Status: Inappropriate [OE-specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_readline.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py -index 537a9fb..ddf0323 100644 ---- a/Lib/test/test_readline.py -+++ b/Lib/test/test_readline.py -@@ -74,6 +74,7 @@ class TestHistoryManipulation (unittest.TestCase): - - @unittest.skipUnless(hasattr(readline, "append_history_file"), - "append_history not available") -+ @unittest.skip("Skipping problematic test") - def test_write_read_append(self): - hfile = tempfile.NamedTemporaryFile(delete=False) - hfile.close() -@@ -145,6 +146,7 @@ class TestHistoryManipulation (unittest.TestCase): - self.assertEqual(readline.get_history_item(1), "entrée 1") - self.assertEqual(readline.get_history_item(2), "entrée 22") - -+ @unittest.skip("Skipping problematic test") - def test_write_read_limited_history(self): - previous_length = readline.get_history_length() - self.addCleanup(readline.set_history_length, previous_length) -@@ -393,6 +395,7 @@ readline.write_history_file(history_file) - self.assertIn(b"done", output) - - -+ @unittest.skip("Skipping problematic test") - def test_write_read_limited_history(self): - previous_length = readline.get_history_length() - self.addCleanup(readline.set_history_length, previous_length) diff --git a/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch deleted file mode 100644 index 4e284de613..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b678363156b5d40e09c1d138840180e3ddc7d20b Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Wed, 8 May 2024 11:58:09 -0400 -Subject: [PATCH] test_shutdown: skip problematic test - -This test hangs frequently when run on the Autobuilder. Disable it in -testing until the cause can be determined. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_concurrent_futures/test_shutdown.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/Lib/test/test_concurrent_futures/test_shutdown.py b/Lib/test/test_concurrent_futures/test_shutdown.py -index 7a4065a..6b878a4 100644 ---- a/Lib/test/test_concurrent_futures/test_shutdown.py -+++ b/Lib/test/test_concurrent_futures/test_shutdown.py -@@ -20,6 +20,7 @@ def sleep_and_print(t, msg): - sys.stdout.flush() - - -+@unittest.skip("skipping problematic test") - class ExecutorShutdownTest: - def test_run_after_shutdown(self): - self.executor.shutdown() -@@ -156,6 +157,7 @@ class ExecutorShutdownTest: - signal.signal(signal.SIGALRM, old_handler) - - -+@unittest.skip("skipping problematic test") - class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase): - def test_threads_terminate(self): - def acquire_lock(lock): -@@ -252,6 +254,7 @@ class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase - self.assertIn(out.strip(), [b"apple", b""]) - - -+@unittest.skip("skipping problematic test") - class ProcessPoolShutdownTest(ExecutorShutdownTest): - def test_processes_terminate(self): - def acquire_lock(lock): 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 deleted file mode 100644 index b452c6556f..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9f252a691cd335341938489da32d6e2d4620d8ca Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Fri, 6 Oct 2023 10:59:44 -0400 -Subject: [PATCH] test_storlines: skip due to load variability - -This is yet another test that intermittently fails on the Yocto AB when -a worker is under heavy load, so skip it during testing. - -Upstream-Status: Inappropriate [OE-Specific] - -[YOCTO #14933] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_ftplib.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py -index bed0e6d..36602be 100644 ---- a/Lib/test/test_ftplib.py -+++ b/Lib/test/test_ftplib.py -@@ -630,6 +630,7 @@ class TestFTPClass(TestCase): - self.client.storbinary('stor', f, rest=r) - self.assertEqual(self.server.handler_instance.rest, str(r)) - -+ @unittest.skip('timing related test, dependent on load') - def test_storlines(self): - data = RETR_DATA.replace('\r\n', '\n').encode(self.client.encoding) - f = io.BytesIO(data) diff --git a/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch b/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch deleted file mode 100644 index 6dfba59a44..0000000000 --- a/meta/recipes-devtools/python/python3/0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ac5635821ed9bead45a5bcddc3828e50647fbe77 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin -Date: Mon, 27 Oct 2025 14:24:24 -0400 -Subject: [PATCH] test_sysconfig: skip test_sysconfig.test_sysconfigdata_json - -This test seems new as of 3.14.0 and fails due to various path and flag -differences in variables like CFLAGS. Since the test already has the -precedent of a skip put in place for Android builds due to prefix -changes, skip it for our situation too. - -Upstream-Status: Inappropriate [embedded-specific] - -Signed-off-by: Trevor Gamblin ---- - Lib/test/test_sysconfig.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py -index 09eff11179e..14fcdedccba 100644 ---- a/Lib/test/test_sysconfig.py -+++ b/Lib/test/test_sysconfig.py -@@ -689,6 +689,7 @@ class TestSysConfig(unittest.TestCase, VirtualEnvironmentMixin): - self.assertNotEqual(data['prefix'], data['base_prefix']) - self.assertNotEqual(data['exec_prefix'], data['base_exec_prefix']) - -+ @unittest.skip('OE adds/modifies various flags and paths/prefixes') - @unittest.skipIf(os.name != 'posix', '_sysconfig-vars JSON file is only available on POSIX') - @unittest.skipIf(is_wasi, "_sysconfig-vars JSON file currently isn't available on WASI") - @unittest.skipIf(is_android or is_apple_mobile, 'Android and iOS change the prefix') --- -2.51.0 - diff --git a/meta/recipes-devtools/python/python3_3.14.5.bb b/meta/recipes-devtools/python/python3_3.14.5.bb index 9e6738997d..2f821b130f 100644 --- a/meta/recipes-devtools/python/python3_3.14.5.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -15,25 +15,12 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://reformat_sysconfig.py \ file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ file://0001-test_locale.py-correct-the-test-output-format.patch \ - file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \ - file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \ file://makerace.patch \ file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ file://valid-dists.patch \ file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ - file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ - file://0001-test_storlines-skip-due-to-load-variability.patch \ - file://0001-test_shutdown-skip-problematic-test.patch \ - file://0001-test_deadlock-skip-problematic-test.patch \ - file://0001-test_active_children-skip-problematic-test.patch \ - file://0001-test_readline-skip-limited-history-test.patch \ - file://0001-test_cmd-skip-bang-completion-test.patch \ - file://0001-test_pyrepl-skip-test_unix_console.test_cursor_back_.patch \ - file://0001-test_sysconfig-skip-test_sysconfig.test_sysconfigdat.patch \ - file://0001-Skip-flaky-test_default_timeout-tests.patch \ - file://0001-test_only_active_thread-skip-problematic-test.patch \ file://0001-prefer-valid-entrypoints.patch \ file://0001-Fix-ThreadingMock-call-count-race-condition.patch \ " @@ -252,7 +239,76 @@ do_install:append:class-nativesdk () { create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1' } -SKIPPED_TESTS = "--ignore test.test_os.test_os.TimerfdTests.test_timerfd_TFD_TIMER_ABSTIME" +# Tests failing due to load variability. Bugs were opened at +# https://bugzilla.yoctoproject.org/ to track some of these: +# 14296 (test_many_processes, test_process_time, test_thread_time, test_wait_integer) +# 14933 (test_storlines) +# 15120 (test_input_no_stdout_fileno) +# 15131 (*TestBarrier.test_timeout) +# 15177 (test_thread_time) +# 15743 (test.test_os.test_os.TimerfdTests.test_timerfd_TFD_TIMER_ABSTIME) +# 15885 (test_default_timeout) +SKIPPED_TESTS = " \ + --ignore *TestBarrier.test_timeout \ + --ignore ExecutorDeadlockTest \ + --ignore ExecutorShutdownTest \ + --ignore ProcessPoolShutdownTest \ + --ignore ThreadPoolShutdownTest \ + --ignore test.test_os.test_os.TimerfdTests.test_timerfd_TFD_TIMER_ABSTIME \ + --ignore test_active_children \ + --ignore test_default_timeout \ + --ignore test_input_no_stdout_fileno \ + --ignore test_many_processes \ + --ignore test_only_active_thread \ + --ignore test_process_time \ + --ignore test_storlines \ + --ignore test_thread_time \ + --ignore test_wait_integer \ + --ignore test_write_read_append \ +" + +# We build Python3 with editline support by default, which has tab completion +# but not bang completion. test_bang_completion_without_do_shell() passes if +# building with readline, but we don't want to change the default, so skip the +# test. +SKIPPED_TESTS:append = " \ + --ignore test_bang_completion_without_do_shell \ +" + +# Also fails with editline instead of readline. See: +# https://github.com/python/cpython/issues/123018 +SKIPPED_TESTS:append = " \ + --ignore test_write_read_limited_history \ +" + +# In 3.14+ PyREPL's uses terminfo instead of curses. ICH1, is not in the +# resulting terminal capabilities, in an "optimization" occurring from PyREPL's +# side that causes test_cursor_back_write() to fail. Specifically, the test +# tests the following writes in sequence: +# +# 1. b"1" +# 2. TERM_CAPABILITIES["cub"] + b":1" +# 3. ANY, b"2" +# +# The first two writes are read correctly, but the result for the third +# write is seeing the equivalent of: +# +# ANY, b"21" +SKIPPED_TESTS:append = " \ + --ignore test_cursor_back_write \ +" + +# Needs IMAGE_FEATURE += \"tools-sdk\" +SKIPPED_TESTS:append = " \ + --ignore test_find_library_with_gcc \ + --ignore test_find_library_with_ld \ +" + +# Fails due to differences in CFLAGS as as modified during build +SKIPPED_TESTS:append = " \ + --ignore test_sysconfigdata_json \ +" + SKIPPED_TESTS:append:class-target:libc-musl = " \ -x test__locale \ -x test_c_locale_coercion \ From patchwork Mon Jun 8 21:56:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89501 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B46FCD8CA7 for ; Mon, 8 Jun 2026 21:57:24 +0000 (UTC) Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net [185.136.64.227]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.66311.1780955840857254413 for ; Mon, 08 Jun 2026 14:57:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=bwzugLbu; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.227, mailfrom: fm-256628-202606082157190356e05e4d0002070e-94y4_e@rts-flowmailer.siemens.com) Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 202606082157190356e05e4d0002070e for ; Mon, 08 Jun 2026 23:57:19 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=kmELu4xM5XaHVXmjdXY4hRJ5wfLJZqJiCfgkj6Jxn3I=; b=bwzugLbuiSvQWathAdSPjwY5U7h30g4HJkOKQ3gRqeDNHDavn59D0++TAh8mlFXawjCx/K JU5EosuPNOg+0Dqhg8qFpPIS3SJimpDa73QRIDfDvR79MZGxQF14qeoi/cN9bcyAABy8B24i 7BsPy6bza+1JKHLQsTBRDTstfr6fJ9ayV0tuLyG4c2BTmqN2/N/ODo/cFYdH/QRuLVDlRpKu vVcWTz4GuH4zW0GBLFJQFDlr0u41t46wxFh3pCNsEC+ThmC2id4IkUow2lYNVkoWbC2lNpIN kTNYZwQLCDQ8L6G2nlv37zN/Z5JdtnLCfe1SH0TtjjuX3bhOM3bJ8Ttw==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 4/6] python3: use += instead of :append in SKIPPED_TESTS Date: Mon, 8 Jun 2026 23:56:50 +0200 Message-ID: <20260608215654.3664494-3-peter.marko@siemens.com> In-Reply-To: <20260608215654.3664494-1-peter.marko@siemens.com> References: <20260608215354.3664441-1-peter.marko@siemens.com> <20260608215654.3664494-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:57:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238262 From: Ross Burton += is less computationally intensive than :append so use it unless the semantics of :append are needed. Also remove the class-target override, this is not required as ptests are only used in target builds. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie (From OE-Core rev: 8ba5db86ac364b85fa6c1ee36fa5a037c0ee818a) Signed-off-by: Peter Marko --- meta/recipes-devtools/python/python3_3.14.5.bb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/meta/recipes-devtools/python/python3_3.14.5.bb b/meta/recipes-devtools/python/python3_3.14.5.bb index 2f821b130f..501de75fb1 100644 --- a/meta/recipes-devtools/python/python3_3.14.5.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -271,13 +271,13 @@ SKIPPED_TESTS = " \ # but not bang completion. test_bang_completion_without_do_shell() passes if # building with readline, but we don't want to change the default, so skip the # test. -SKIPPED_TESTS:append = " \ +SKIPPED_TESTS += " \ --ignore test_bang_completion_without_do_shell \ " # Also fails with editline instead of readline. See: # https://github.com/python/cpython/issues/123018 -SKIPPED_TESTS:append = " \ +SKIPPED_TESTS += " \ --ignore test_write_read_limited_history \ " @@ -294,22 +294,22 @@ SKIPPED_TESTS:append = " \ # write is seeing the equivalent of: # # ANY, b"21" -SKIPPED_TESTS:append = " \ +SKIPPED_TESTS += " \ --ignore test_cursor_back_write \ " # Needs IMAGE_FEATURE += \"tools-sdk\" -SKIPPED_TESTS:append = " \ +SKIPPED_TESTS += " \ --ignore test_find_library_with_gcc \ --ignore test_find_library_with_ld \ " # Fails due to differences in CFLAGS as as modified during build -SKIPPED_TESTS:append = " \ +SKIPPED_TESTS += " \ --ignore test_sysconfigdata_json \ " -SKIPPED_TESTS:append:class-target:libc-musl = " \ +SKIPPED_TESTS:append:libc-musl = " \ -x test__locale \ -x test_c_locale_coercion \ -x test_locale \ From patchwork Mon Jun 8 21:56:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89503 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28213CD8CA7 for ; Mon, 8 Jun 2026 21:57:34 +0000 (UTC) Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.66417.1780955847450898100 for ; Mon, 08 Jun 2026 14:57:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=sOgJ0D6E; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.226, mailfrom: fm-256628-20260608215725f6ed228af1000207fe-l51zvy@rts-flowmailer.siemens.com) Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20260608215725f6ed228af1000207fe for ; Mon, 08 Jun 2026 23:57:25 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=F8oNRHzCicMJyjdHufN3WRdlCI/lDsa/GY1ZChbCOsg=; b=sOgJ0D6Efb6gUUMGoVfBYjHBouGzzkjndqJ7/rfmLt1N2sIzqo8IyAyIY5JbWqFFByTTV8 dIrycPNqIC20XrMyl35S40q733TJjTqu8S2x4vGi490KkIxj3kggKSZO2g8EpMyOiMEQSBn9 bE/9LolQ67IlC58C7TxQKSj+UW6uoKs86x+l0s2RDI/myh9syOYqipJyeTtQmQXze8867NbU Dg1Jmc0x4WQv9yN1wMy5VravmKw6jccuLtTr7nPZbFlRV/vVayUNNjgefeEqOrQvbtvhLZOr TSBNuBPZGbB/MnFpoTRYS6A/tLm6Gg3ZE/xr1rdK6QWY4vitmeRmWOTg==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 5/6] python3: sanitize userbase in _sysconfig_vars JSON to avoid host path leak Date: Mon, 8 Jun 2026 23:56:51 +0200 Message-ID: <20260608215654.3664494-4-peter.marko@siemens.com> In-Reply-To: <20260608215654.3664494-1-peter.marko@siemens.com> References: <20260608215354.3664441-1-peter.marko@siemens.com> <20260608215654.3664494-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:57:34 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238263 From: Bin Cao The _sysconfig_vars__linux_x86_64-linux-gnu.json file contains a "userbase" field that is populated from the build host user's $HOME at build time. This leaks the build host user's home directory path into the target rootfs. The existing py_package_preprocess() cleanup for this JSON file only strips known OE build path prefixes (STAGING_DIR_TARGET, RECIPE_SYSROOT, etc.), but the userbase value comes from the build user's $HOME environment variable which doesn't match any of those patterns. Set userbase to an empty string in the packaged JSON. This is safe because at runtime, sysconfig.get_config_vars() always recomputes userbase by calling _getuserbase(), which resolves the actual target user's ~/.local path dynamically. The static value in the JSON is never used for runtime path resolution. Signed-off-by: Bin Cao Signed-off-by: Richard Purdie (From OE-Core rev: beb245ef60c63359cd4f5e285d2f31c5c572b51e) Signed-off-by: Peter Marko --- meta/recipes-devtools/python/python3_3.14.5.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-devtools/python/python3_3.14.5.bb b/meta/recipes-devtools/python/python3_3.14.5.bb index 501de75fb1..919cfde9ae 100644 --- a/meta/recipes-devtools/python/python3_3.14.5.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -390,6 +390,7 @@ py_package_preprocess () { -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ -e 's:${RECIPE_SYSROOT}::g' \ -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ + -e 's|"userbase": ".*"|"userbase": ""|g' \ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfig_vars*.json } From patchwork Mon Jun 8 21:56:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Marko X-Patchwork-Id: 89504 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B0FECD8CA7 for ; Mon, 8 Jun 2026 21:57:44 +0000 (UTC) Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net [185.136.65.227]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.66419.1780955857279868106 for ; Mon, 08 Jun 2026 14:57:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm2 header.b=JuEf5qrE; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.227, mailfrom: fm-256628-20260608215735f137c6e0fb000207ba-zwqp_1@rts-flowmailer.siemens.com) Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 20260608215735f137c6e0fb000207ba for ; Mon, 08 Jun 2026 23:57:35 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=6dJ5/eJMaDroq1nptacssvhhwHxGObFYPx+fN2sGBJ0=; b=JuEf5qrEqLDcoY3BRXt3xo0XBzGQzyQeb2SNKTtxn7uxMZhZlIcsWLlu7e58CCoJuYEXz3 7mte0nAe/QovcJ0vOL9t2yCWyRn55rJNmM4bd0gRkIyDxOtoSUeeVgaK5T+0MeMuKoHSjO0a Ck1EsdXhxPgXa9X+GZJSrZCM5kYLd2/PuVCNstzSJPhXgRAFEd5nAtmxRigq7yRn0uEjIJqe qQrX4wjEpkLAlGNG7z+hIojjik460Nbbd/Ep622dSAS11ljwCMxeLdPDhdj34OLUaA7xNPVU AktwpqptrTeCje4yG9ZqSqzjwPjdppDIXxUMuN4kAP1ngFRM1l0rs+GA==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: peter.marko@siemens.com Subject: [wrynose][PATCH 6/6] python3: reference upstream ticket in a test skip Date: Mon, 8 Jun 2026 23:56:52 +0200 Message-ID: <20260608215654.3664494-5-peter.marko@siemens.com> In-Reply-To: <20260608215654.3664494-1-peter.marko@siemens.com> References: <20260608215354.3664441-1-peter.marko@siemens.com> <20260608215654.3664494-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 08 Jun 2026 21:57:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238264 From: Ross Burton I've filed a ticket upstream for the libedit-related test failure in test_bang_completion_without_do_shell(), add a reference to the comment. Signed-off-by: Ross Burton Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (From OE-Core rev: b5c24e1491dcb9ab0f782df6be6582fbd2151724) Signed-off-by: Peter Marko --- meta/recipes-devtools/python/python3_3.14.5.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-devtools/python/python3_3.14.5.bb b/meta/recipes-devtools/python/python3_3.14.5.bb index 919cfde9ae..02bda8ddcf 100644 --- a/meta/recipes-devtools/python/python3_3.14.5.bb +++ b/meta/recipes-devtools/python/python3_3.14.5.bb @@ -271,6 +271,7 @@ SKIPPED_TESTS = " \ # but not bang completion. test_bang_completion_without_do_shell() passes if # building with readline, but we don't want to change the default, so skip the # test. +# https://github.com/python/cpython/issues/150922 SKIPPED_TESTS += " \ --ignore test_bang_completion_without_do_shell \ "