From 0c5437b2baf2a8241665a5bdfcb7dd0e88ad9f34 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Fri, 19 Jan 2018 17:13:54 +0100 Subject: qtivi: Fix the broken python3 binary inside an yocto SDK QtIvi creates a virtualenv using the python3 binary from the native sysroot. This virtualenv is also used for the SDK. As it is not intended for the SDK it is using the wrong interpreter location. This workaround installs the python3 binary into the nativesdk sysroot where the qtivi nativesdk recipe can pick it up and copy it into its virtualenv. This needs to be improved in future versions and is discussed here: AUTOSUITE-176 Task-number: AUTOSUITE-179 Change-Id: Ib134231204cc8c6a56f2a93bedb553ecbcbd9123 Reviewed-by: Samuli Piippo Reviewed-by: Tobias Olausson --- recipes-qt/automotive/qtivi_git.bb | 13 +++++++++++++ recipes/python/python3_%.bbappend | 10 ++++++++++ 2 files changed, 23 insertions(+) diff --git a/recipes-qt/automotive/qtivi_git.bb b/recipes-qt/automotive/qtivi_git.bb index 40cfbf1..b5536a4 100644 --- a/recipes-qt/automotive/qtivi_git.bb +++ b/recipes-qt/automotive/qtivi_git.bb @@ -89,6 +89,19 @@ do_install_prepend() { set_python_paths } +# This needs a modified python3 recipe which copies the binary into a path where this recipe can pick it up +# This is needed to provide a proper executable using the correct interpreter in the SDK. +# See https://bugreports.qt.io/browse/AUTOSUITE-176 +do_install_append_class-nativesdk() { + export IVIGENERATOR_ENABLED="${@bb.utils.contains("PACKAGECONFIG", "ivigenerator-native", "1", "0", d)}" + + if [ "${IVIGENERATOR_ENABLED}" = "1" ]; then + cp ${STAGING_BINDIR}/qt5/python3* ${D}/${OE_QMAKE_PATH_BINS}/ivigenerator/qtivi_qface_virtualenv/bin/ + rm -f ${D}/${OE_QMAKE_PATH_BINS}/ivigenerator/qtivi_qface_virtualenv/bin/python + ln -sf python3 ${D}/${OE_QMAKE_PATH_BINS}/ivigenerator/qtivi_qface_virtualenv/bin/python + fi +} + BBCLASSEXTEND += "native nativesdk" diff --git a/recipes/python/python3_%.bbappend b/recipes/python/python3_%.bbappend index 9015f3f..b3a5eb7 100644 --- a/recipes/python/python3_%.bbappend +++ b/recipes/python/python3_%.bbappend @@ -1 +1,11 @@ SRC_URI_remove = "file://python-3.3-multilib.patch" + +# We need to install the python3 binary into the sysroot to let qtivi install that binary +# into the correct location. +# We can't install it directly into ${bindir} as this would be picked up by other recipes +# and produce a lot of errors. Instead put it inside a qt5 folder where only qtivi picks it up +# This is a workaround and needs to be replaced by a proper solution discussed here: +# https://bugreports.qt.io/browse/AUTOSUITE-176 +sysroot_stage_all_append_class-nativesdk () { + sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir}/qt5 +} -- cgit v1.2.3-54-g00ecf