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


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#242937): 
https://lists.openembedded.org/g/openembedded-core/message/242937
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]]
-=-=-=-=-=-=-=-=-=-=-=-

  • [OE-core] [PATCH ... Alejandro Hernandez Samaniego via lists.openembedded.org
    • [OE-core] [P... Alejandro Hernandez Samaniego via lists.openembedded.org
      • Re: [OE-... Richard Purdie via lists.openembedded.org
        • Re: ... Alejandro Hernandez Samaniego via lists.openembedded.org
          • ... Richard Purdie via lists.openembedded.org
            • ... Alejandro Hernandez Samaniego via lists.openembedded.org
    • [OE-core] [P... Alejandro Hernandez Samaniego via lists.openembedded.org
    • [OE-core] [P... Alejandro Hernandez Samaniego via lists.openembedded.org
      • Re: [OE-... Mathieu Dubois-Briand via lists.openembedded.org
        • Re: ... Alejandro Hernandez Samaniego via lists.openembedded.org
      • Re: [OE-... Richard Purdie via lists.openembedded.org
        • Re: ... Alejandro Hernandez Samaniego via lists.openembedded.org
          • ... Richard Purdie via lists.openembedded.org

Reply via email to