On Thu, 2026-08-06 at 09:51 -0600, Alejandro Hernandez wrote:
>
>
>
>
>
>
>
> On 8/6/2026 6:26 AM, Richard Purdie via lists.openembedded.org wrote:
>
>
>
>
> >
> >
> > On Tue, 2026-08-04 at 22:04 +0000, Alejandro Hernandez Samaniego via
> > lists.openembedded.org wrote:
> >
> >
> > >
> > >
> > > python distutils/sysconfig.get_platform() falls back to
> > > distutils.util.get_platform() when the _PYTHON_HOST_PLATFORM
> > > environment variable is unset, and returns the *build host* arch.
> > > The result is baked into the produced wheel's filename
> > > (pkg-<ver>-cp3XX-cp3XX-<PLAT>.whl) and its <pkg>.dist-info/WHEEL
> > > metadata.
> > >
> > > Without this export, extension-module wheels tag themselves with
> > > whichever arch the autobuilder worker happens to have, which makes
> > > the resulting rpm non-reproducible across mixed-arch autobuilder
> > > pools.
> > >
> > > Since python 3.14 + wheel >=0.44 also rejects wheels with an empty
> > > platform tag ("Bad wheel filename"), the value has to be non-empty
> > > in every class scope. HOST_ARCH is class-scoped by bitbake
> > > (target/native/cross/nativesdk), so `linux-${HOST_ARCH}` covers
> > > every case with a single unconditional assignment. Setting per-class
> > > overrides to "" (as an earlier draft did) trips the wheel filename
> > > check and must be avoided.
> > >
> > > Pure-python wheels ignore _PYTHON_HOST_PLATFORM and remain tagged
> > > "any", so this change only affects wheels that ship compiled
> > > extensions (cffi, cryptography, numpy, bcrypt, markupsafe, psutil,
> > > rpds-py, websockets, ...).
> > >
> > > Assisted-by: AI - OpenAI
> > > Signed-off-by: Alejandro Hernandez <[email protected]>
> > > ---
> > > meta/classes-recipe/python_pep517.bbclass | 16 ++++++++++++++++
> > > 1 file changed, 16 insertions(+)
> > >
> > > diff --git a/meta/classes-recipe/python_pep517.bbclass
> > > b/meta/classes-recipe/python_pep517.bbclass
> > > index d6246af5c2..06b23d3cba 100644
> > > --- a/meta/classes-recipe/python_pep517.bbclass
> > > +++ b/meta/classes-recipe/python_pep517.bbclass
> > > @@ -30,6 +30,22 @@ PEP517_INSTALL_PYTHON:class-native = "nativepython3"
> > > # pypa/installer option to control the bytecode compilation
> > > INSTALL_WHEEL_COMPILE_BYTECODE ?= "--compile-bytecode=0"
> > >
> > > +# Force the wheel's platform tag to reflect the target machine rather
> > > than the
> > > +# build host. Without this, extension-module wheels bake the build
> > > host's arch
> > > +# (e.g. linux_x86_64) into <pkg>.dist-info/WHEEL via
> > > distutils/sysconfig's
> > > +# get_platform(), which breaks reproducibility across autobuilder
> > > workers of
> > > +# different architectures. Pure-python wheels ignore this variable and
> > > remain
> > > +# tagged "any".
> > > +#
> > > +# HOST_ARCH is class-scoped by bitbake:
> > > +# - target: HOST_ARCH == TARGET_ARCH (reproducible across workers)
> > > +# - native: HOST_ARCH == BUILD_ARCH (matches worker arch,
> > > unpackaged)
> > > +# - cross: HOST_ARCH == BUILD_ARCH
> > > +# - nativesdk: HOST_ARCH == SDK_ARCH
> > > +# so a single expression covers every class without producing an empty
> > > tag
> > > +# (which python 3.14 + wheel >=0.44 rejects with "Bad wheel filename").
> > > +export _PYTHON_HOST_PLATFORM = "linux-${HOST_ARCH}"
> > >
> > >
> >
> >
> > The fix looks right, thanks!
> >
> > I'm not sure we need the 10+ lines of explanation from AI ;-) The
> > commit message could be more concise too. We're seening way too much
> > text being added by AI in general and it will make the codebase harder
> > to understand in the long run :(.
> >
> > Cheers,
> >
> > Richard
> >
> >
>
>
> I agree, I can send a v2 or just keep it in mind for next time, let me know.
v2 please, it is too verbose and I would have to manually trim it...
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#242955):
https://lists.openembedded.org/g/openembedded-core/message/242955
Mute This Topic: https://lists.openembedded.org/mt/120602086/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-