From 386c5d3f2283bc16cdab32bd4a5397dc0ef0a5c1 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 13 Nov 2020 20:48:50 +0100 Subject: python3: split python target configuration into own class Setting _PYTHON_SYSCONFIGDATA_NAME in python3native class globally was problematic as it was leaking into host python environment, which was causing tracebacks depending on host distro and action (typically anything involving importing sysconfig module). The new class sets the variable only in specific tasks where it is needed, and should be inherited explicitly: - use python3native to run scripts with native python - use python3targetconfig to run scripts with native python if those scripts need to access target config data (such as correct installation directories). This also adds a dependency on target python, so should be used carefully to avoid lengthening builds. Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie (cherry picked from commit 823cbf815d6984e813f0ae812f6a14469150eeff) Signed-off-by: Anuj Mittal --- meta/classes/python3native.bbclass | 2 -- meta/classes/python3targetconfig.bbclass | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 meta/classes/python3targetconfig.bbclass diff --git a/meta/classes/python3native.bbclass b/meta/classes/python3native.bbclass index d98fb4c758..2e3a88c126 100644 --- a/meta/classes/python3native.bbclass +++ b/meta/classes/python3native.bbclass @@ -17,8 +17,6 @@ export STAGING_LIBDIR export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so" export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}" -export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" - # suppress host user's site-packages dirs. export PYTHONNOUSERSITE = "1" diff --git a/meta/classes/python3targetconfig.bbclass b/meta/classes/python3targetconfig.bbclass new file mode 100644 index 0000000000..640d0c97b6 --- /dev/null +++ b/meta/classes/python3targetconfig.bbclass @@ -0,0 +1,15 @@ +inherit python3native + +DEPENDS_append = " python3" + +do_configure_prepend() { + export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" +} + +do_compile_prepend() { + export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" +} + +do_install_prepend() { + export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" +} -- cgit 1.2.3-korg