Re: [OE-core][PATCH 0/5 v2] python3: upgrade 3.13.9 -> 3.14.2

Trevor Gamblin
2025-12-22T19:52:14Z

On 2025-12-22 14:33, Alexander Kanavin wrote:
> On Mon, 22 Dec 2025 at 19:36, Trevor Gamblin via
> lists.openembedded.org <tgamblin=baylibre.com@lists.openembedded.org>
> wrote:
>>> Testing 'maturin develop' requires Rust cross-canadian in the SDK
>>> Traceback (most recent call last):
>>> File "/srv/pokybuild/yocto-worker/qemux86/build/layers/openembedded-core/meta/lib/oeqa/sdk/cases/maturin.py", line 30, in test_maturin_list_python
>>> self.assertIn(expected, output)
>>> ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
>>> AssertionError: '3.14 at /srv/pokybuild/yocto-worker/qemux86/build/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0/testsdkext/buildtools/sysroots/x86_64-pokysdk-linux/usr/bin/python3' not found in '🐍 1 python interpreter found:\n - CPython 3.13 at /srv/pokybuild/yocto-worker/qemux86/build/buildtools/sysroots/x86_64-pokysdk-linux/usr/bin/python3.13\n'
>>> ...
>>> RESULTS - maturin.MaturinTest.test_maturin_list_python: FAILED (3.57s)
>> I'm not sure how to address this one - it looks like the problem is that
>> the buildtools tarball has a 3.13.4 binary in it (at least when I try
>> locally). Where does that get updated?
> I think the problem is not in the buildtools. This is the test:
>
> def test_maturin_list_python(self):
> out = self._run(r"""python3 -c 'import sys;
> print(f"{sys.executable}\n{sys.version_info.major}.{sys.version_info.minor}")'""")
> executable, version = out.splitlines()
>
> output = self._run("maturin list-python")
> # The output looks like this:
> # - CPython 3.13 at /usr/bin/python3
> # We don't want to assume CPython so just check for the
> version and path.
> expected = f"{version} at {executable}"
> self.assertIn(expected, output)
>
> So first 'python3' executable from the SDK reports its version (which
> says 3.14 as it should be). Then 'maturin list-python' runs, and for
> some reason it falls through to (or is executed with) earlier python3
> from the buildtools on the host, which doesn't seem correct, as
> maturin should be run by python3 from the SDK, and report that.
Maybe. I tried all of this locally (on a F43 system, which includes
3.14.2 as of writing), and after I sourced the pokysdk script, the
interpreter on my path changed to version 3.13.4. Seems that the
install-buildtools script is (at least for me) resulting in a 3.13.4
version is getting pulled in. I'd think maybe something got contaminated
somehow from my cache, but there'd be newer 3.13.x versions for it to
grab if that were the case.
>
> I also wonder why this hasn't been seen previously, as build hosts
> have all kinds of python versions installed. CC Ross, Tim.
>
> Alex