From 50d2f78f50e5cdf6de281974685a1e8d612fc571 Mon Sep 17 00:00:00 2001 From: Romuald JEANNE Date: Mon, 15 Mar 2021 16:28:09 +0100 Subject: [PATCH] CLASSES: unexport _PYTHON_SYSCONFIGDATA_NAME to allow devtool On Ubuntu 20.04, devtool cannot be used in recipe inheriting python3native. Unexport _PYTHON_SYSCONFIGDATA_NAME as a workaround. To check if it can be revert with next bitbake releases. Signed-off-by: Lionel VITTE Change-Id: I7d73d05e1a5d58dedf69b3aefb3e07c35b92800d --- classes/python3native.bbclass | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 classes/python3native.bbclass diff --git a/classes/python3native.bbclass b/classes/python3native.bbclass new file mode 100644 index 0000000..246bd0a --- /dev/null +++ b/classes/python3native.bbclass @@ -0,0 +1,32 @@ +inherit python3-dir + +PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3" +EXTRANATIVEPATH += "python3-native" +DEPENDS_append = " python3-native " + +# python-config and other scripts are using distutils modules +# which we patch to access these variables +export STAGING_INCDIR +export STAGING_LIBDIR + +# Packages can use +# find_package(PythonInterp REQUIRED) +# find_package(PythonLibs REQUIRED) +# which ends up using libs/includes from build host +# Therefore pre-empt that effort +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" +# Unset these to stop python trying to report the target Python setup +python () { + if bb.data.inherits_class('devtool-source', d): + bb.warn("_PYTHON_SYSCONFIGDATA_NAME unexported for devtool to fix an issue with Python on Ubuntu 20.04. Should be fixed in later version of bitbake") + d.setVarFlag('_PYTHON_SYSCONFIGDATA_NAME', 'unexport', '1') +} + +# suppress host user's site-packages dirs. +export PYTHONNOUSERSITE = "1" + +# autoconf macros will use their internal default preference otherwise +export PYTHON