Hi,
Due to some development reason we need to build yocto for out target board (imx8mp-lpddr4-evk) with 5.15-kirkstone. Following below steps to build
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.71-2.2.2.xml
Repo sync
$ DISTRO="fsl-imx-xwayland" MACHINE="imx8mp-lpddr4-evk" source imx-setup-release.sh -b build
$ bitbake imx-image-full
lab3@daikokunw-Server:~/k/build$ bitbake qtdeclarative-native Loading cache: 100% |###############################################################################################################################################################################| Time: 0:00:00 Loaded 5106 entries from dependency cache. Parsing recipes: 100% |#############################################################################################################################################################################| Time: 0:00:01 Parsing of 3539 .bb files complete (3537 cached, 2 parsed). 5108 targets, 312 skipped, 3 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Build Configuration: BB_VERSION = "2.0.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "aarch64-poky-linux" MACHINE = "imx8mp-lpddr4-evk" DISTRO = "fsl-imx-xwayland" DISTRO_VERSION = "5.15-kirkstone" TUNE_FEATURES = "aarch64 armv8a crc crypto" TARGET_FPU = "" meta meta-poky = "HEAD:24a3f7b3648185e33133f5d96b184a6cb6524f3d" meta-oe meta-multimedia meta-python = "HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3" meta-freescale = "HEAD:c82d4634e7aba8bc0de73ce1dfc997b630051571" meta-freescale-3rdparty = "HEAD:5977197340c7a7db17fe3e02a4e014ad997565ae" meta-freescale-distro = "HEAD:d5bbb487b2816dfc74984a78b67f7361ce404253" meta-bsp meta-sdk meta-ml meta-v2x = "HEAD:ca68ab5d25322b51f54564275c84ab8de3c74ea6" meta-nxp-demo-experience = "HEAD:52eaf8bf42f8eda2917a1c8c046003c8c2c8f629" meta-chromium = "HEAD:e232c2e21b96dc092d9af8bea4b3a528e7a46dd6" meta-clang = "HEAD:c728c3f9168c8a4ed05163a51dd48ca1ad8ac21d" meta-gnome meta-networking meta-filesystems = "HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3" meta-qt6 = "HEAD:ed785a25d12e365d1054700d4fc94a053176eb14" meta-virtualization = "HEAD:9482648daf0bb42ff3475e7892542cf99f3b8d48" meta-luneui meta-luneos-backports-4.3 = "kirkstone:8209aaa4957e1352919291839711bc2619f1a1d2" meta-android = "kirkstone:22d3dc95c56163a2cb72a94496eb6892da0238b8" meta-luneos = "kirkstone:8209aaa4957e1352919291839711bc2619f1a1d2" Initialising tasks: 100% |##########################################################################################################################################################################| Time: 0:00:01 Sstate summary: Wanted 6 Local 0 Mirrors 0 Missed 6 Current 145 (0% match, 96% complete) NOTE: Executing Tasks ERROR: qtdeclarative-native-6.3.2-r0 do_patch: Applying patch '0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch' on target directory '/home/lab3/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0/git' BBHandledException("Applying '0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch' failed: stdout: checking file src/quick/util/qquickdeliveryagent.cpp Hunk #1 succeeded at 270 (offset 34 lines). Hunk #2 succeeded at 1730 (offset 2 lines). checking file src/quick/util/qquickdeliveryagent_p_p.h Hunk #1 FAILED at 76. 1 out of 1 hunk FAILED stderr: ") ERROR: Logfile of failure stored in: /home/lab3/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0/temp/log.do_patch.3911602 ERROR: Task (virtual:native:/home/lab3/k/sources/meta-qt6/recipes-qt/qt6/qtdeclarative_git.bb:do_patch) failed with exit code '1' NOTE: Tasks Summary: Attempted 680 tasks of which 664 didn't need to be rerun and 1 failed. Summary: 1 task failed: virtual:native:/home/lab3/k/sources/meta-qt6/recipes-qt/qt6/qtdeclarative_git.bb:do_patch Summary: There was 1 ERROR message, returning a non-zero exit code. lab3@daikokunw-Server:~/k/build$
$bitbake -c cleanall qtdeclarative-native
after no. attempts still we are facing this error, Please guide us to fix this.
is this your own patch? it seems some error in the patch, you can open this patch and check the patch and cpp file mentioned in your error message
No its not newly created patch, it was by default in the build.
actual file qtdeclarative_git.bb
lab3@daikokunw-Server:~/k/sources/meta-qt6/recipes-qt/qt6$ cat qtdeclarative_git.bb
LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0-or-later | LGPL-3.0-only ) | The-Qt-Company-Commercial"
LIC_FILES_CHKSUM = " \
file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
SRC_URI += "\
file://0001-tests-disable-failing-tests.patch \
"
DEPENDS += "qtbase qtshadertools qtshadertools-native qtdeclarative-native qtlanguageserver"
BBCLASSEXTEND = "native nativesdk"
lab3@daikokunw-Server:~/k/sources/meta-qt6/recipes-qt/qt6$
Tried by adding file into src_uri has bellow (but still the same error)
lab3@daikokunw-Server:~/k/sources/meta-qt6/recipes-qt/qt6$ cat qtdeclarative_git.bb
LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0-or-later | LGPL-3.0-only ) | The-Qt-Company-Commercial"
LIC_FILES_CHKSUM = " \
file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
SRC_URI += "\
file://0001-tests-disable-failing-tests.patch \
file://0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch \
"
DEPENDS += "qtbase qtshadertools qtshadertools-native qtdeclarative-native qtlanguageserver"
BBCLASSEXTEND = "native nativesdk"
Patch file
lab3@daikokunw-Server:~/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0$ cat 0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch
From 497acf3efa91441291ccf2588c4fda4afe5b5bb5 Mon Sep 17 00:00:00 2001
From: Jaeyoon Jung <jaeyoon.jung@lge.com>
Date: Tue, 15 Jun 2021 13:49:55 +0900
Subject: [PATCH] Check if a device in knownPointingDevices is destroyed before
use
Use QPointer for QPointingDevice pointers in knownPointingDevices and
check if it is null before use. QPointingDevice objects destroyed are
removed after knownPointingDevices is scanned. This fixes a crash issue
where the commit b567c38 wanted to address. It actually takes no effect
in case a QPointingDevice is destroyed in a different thread.
Pick-to: 6.2 6.1
Change-Id: I8690e71d897021e63af6d452ceae6176a99cb716
---
Upstream-Status: Submitted [https://codereview.qt-project.org/c/qt/qtdeclarative/+/354315]
src/quick/util/qquickdeliveryagent.cpp | 14 ++++++++++----
src/quick/util/qquickdeliveryagent_p_p.h | 2 +-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/quick/util/qquickdeliveryagent.cpp b/src/quick/util/qquickdeliveryagent.cpp
index 2bb0d52b09..8990cc040b 100644
--- a/src/quick/util/qquickdeliveryagent.cpp
+++ b/src/quick/util/qquickdeliveryagent.cpp
@@ -236,9 +236,16 @@ void QQuickDeliveryAgentPrivate::removeGrabber(QQuickItem *grabber, bool mouse,
Q_Q(QQuickDeliveryAgent);
if (eventsInDelivery.isEmpty()) {
// do it the expensive way
- for (auto dev : knownPointingDevices) {
- auto devPriv = QPointingDevicePrivate::get(const_cast<QPointingDevice *>(dev));
- devPriv->removeGrabber(grabber, cancel);
+ for (auto dev : std::as_const(knownPointingDevices)) {
+ if (!dev.isNull()) {
+ auto devPriv = QPointingDevicePrivate::get(const_cast<QPointingDevice *>(dev.get()));
+ devPriv->removeGrabber(grabber, cancel);
+ }
+ }
+ // clean up destroyed devices
+ for (int i = knownPointingDevices.size() - 1; i >= 0; --i) {
+ if (knownPointingDevices.at(i).isNull())
+ knownPointingDevices.removeAt(i);
}
return;
}
@@ -1721,7 +1728,6 @@ void QQuickDeliveryAgentPrivate::ensureDeviceConnected(const QPointingDevice *de
return;
knownPointingDevices.append(dev);
connect(dev, &QPointingDevice::grabChanged, this, &QQuickDeliveryAgentPrivate::onGrabChanged);
- QObject::connect(dev, &QObject::destroyed, q, [this, dev] {this->knownPointingDevices.removeAll(dev);});
}
void QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent *event)
diff --git a/src/quick/util/qquickdeliveryagent_p_p.h b/src/quick/util/qquickdeliveryagent_p_p.h
index 66249f69c8..b40b681246 100644
--- a/src/quick/util/qquickdeliveryagent_p_p.h
+++ b/src/quick/util/qquickdeliveryagent_p_p.h
@@ -76,7 +76,7 @@ public:
QVector<QQuickItem *> skipDelivery; // during delivery of one event to all receivers, Items to which we know delivery is no longer necessary
std::unique_ptr<QMutableTouchEvent> delayedTouch;
- QList<const QPointingDevice *> knownPointingDevices;
+ QList<QPointer<const QPointingDevice> > knownPointingDevices;
uint currentHoverId = 0;
#if QT_CONFIG(wheelevent)
lab3@daikokunw-Server:~/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0$
Initialising tasks: 100% |#######################################################################################################################################################################################################################################| Time: 0:00:05
Sstate summary: Wanted 4000 Local 9 Mirrors 0 Missed 3991 Current 551 (0% match, 12% complete)
NOTE: Executing Tasks
ERROR: qtdeclarative-native-6.3.2-r0 do_patch: Applying patch '0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch' on target directory '/home/lab3/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0/git'
BBHandledException("Applying '0001-Check-if-a-device-in-knownPointingDevices-is-destroy.patch' failed:
stdout: checking file src/quick/util/qquickdeliveryagent.cpp
Hunk #1 succeeded at 270 (offset 34 lines).
Hunk #2 succeeded at 1730 (offset 2 lines).
checking file src/quick/util/qquickdeliveryagent_p_p.h
Hunk #1 FAILED at 76.
1 out of 1 hunk FAILED
stderr: ")
ERROR: Logfile of failure stored in: /home/lab3/k/build/tmp/work/x86_64-linux/qtdeclarative-native/6.3.2-r0/temp/log.do_patch.3919939
ERROR: Task (virtual:native:/home/lab3/k/sources/meta-qt6/recipes-qt/qt6/qtdeclarative_git.bb:do_patch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2178 tasks of which 2151 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
virtual:native:/home/lab3/k/sources/meta-qt6/recipes-qt/qt6/qtdeclarative_git.bb:do_patch
Summary: There was 1 ERROR message, returning a non-zero exit code.
lab3@daikokunw-Server:~/k/build$
so you just build the bsp according to the yocto user guide without any modification, then you get this error?
Actually i'm trying to get anbox with the yocto build.
Below are the layers which are dependent to include anbox.
lab3@daikokunw-Server:~/an/imx-yocto-bsp/build$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer path priority
==========================================================================
meta /home/lab3/an/imx-yocto-bsp/sources/poky/meta 5
meta-poky /home/lab3/an/imx-yocto-bsp/sources/poky/meta-poky 5
meta-oe /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-oe 5
meta-multimedia /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-multimedia 5
meta-python /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-python 5
meta-freescale /home/lab3/an/imx-yocto-bsp/sources/meta-freescale 5
meta-freescale-3rdparty /home/lab3/an/imx-yocto-bsp/sources/meta-freescale-3rdparty 4
meta-freescale-distro /home/lab3/an/imx-yocto-bsp/sources/meta-freescale-distro 4
meta-bsp /home/lab3/an/imx-yocto-bsp/sources/meta-imx/meta-bsp 8
meta-sdk /home/lab3/an/imx-yocto-bsp/sources/meta-imx/meta-sdk 8
meta-ml /home/lab3/an/imx-yocto-bsp/sources/meta-imx/meta-ml 8
meta-v2x /home/lab3/an/imx-yocto-bsp/sources/meta-imx/meta-v2x 9
meta-nxp-demo-experience /home/lab3/an/imx-yocto-bsp/sources/meta-nxp-demo-experience 7
meta-chromium /home/lab3/an/imx-yocto-bsp/sources/meta-browser/meta-chromium 7
meta-clang /home/lab3/an/imx-yocto-bsp/sources/meta-clang 7
meta-gnome /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-gnome 5
meta-networking /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-networking 5
meta-filesystems /home/lab3/an/imx-yocto-bsp/sources/meta-openembedded/meta-filesystems 5
meta-qt6 /home/lab3/an/imx-yocto-bsp/sources/meta-qt6 5
meta-virtualization /home/lab3/an/imx-yocto-bsp/sources/meta-virtualization 8
meta-luneui /home/lab3/an/imx-yocto-bsp/sources/meta-webos-ports/meta-luneui 15
meta-luneos-backports-4.3 /home/lab3/an/imx-yocto-bsp/sources/meta-webos-ports/meta-luneos-backports-4.3 32
meta-android /home/lab3/an/imx-yocto-bsp/sources/meta-smartphone/meta-android 7
meta-luneos /home/lab3/an/imx-yocto-bsp/sources/meta-webos-ports/meta-luneos 20
lab3@daikokunw-Server:~/an/imx-yocto-bsp/build$
~/an/imx-yocto-bsp/sources/meta-webos-ports/meta-luneos/ // after removing recipe-qt and recipe-graphics from meta-luneos
The build got completed but i am facing issue while including anbox
lab3@daikokunw-Server:~/an/imx-yocto-bsp/build$ bitbake imx-image-full
Loading cache: 100% |###############################################################################################################################################################################| Time: 0:00:00
Loaded 5106 entries from dependency cache.
Parsing recipes: 100% |#############################################################################################################################################################################| Time: 0:00:01
Parsing of 3529 .bb files complete (3527 cached, 2 parsed). 5094 targets, 307 skipped, 3 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing RPROVIDES 'anbox' (but /home/lab3/an/imx-yocto-bsp/sources/meta-imx/meta-sdk/dynamic-layers/qt6-layer/recipes-fsl/images/imx-image-full.bb RDEPENDS on or otherwise requires it)
anbox was skipped: incompatible with machine imx8mp-lpddr4-evk (not in COMPATIBLE_MACHINE)
NOTE: Runtime target 'anbox' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['anbox']
ERROR: Required build target 'imx-image-full' has no buildable providers.
Missing or unbuildable dependency chain was: ['imx-image-full', 'anbox']
Summary: There were 2 ERROR messages, returning a non-zero exit code.
lab3@daikokunw-Server:~/an/imx-yocto-bsp/build$
I have set machine COMPATIBLE_MACHINE_imx8mp-lpddr4-evk = "(.*)" // but still i am facing the same error.
This is anbox recipe
lab3@daikokunw-Server:~/an/imx-yocto-bsp/sources/meta-webos-ports/meta-luneos/recipes-support/anbox$ cat anbox.bb
SUMMARY = "Android in a Box"
DESCRIPTION = "Runtime for Android applications which runs a full Android system \
in a container using Linux namespaces (user, ipc, net, mount) to \
separate the Android system fully from the host."
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949"
SECTION = "webos/support"
SRCREV_FORMAT = "main"
SRCREV_main = "9de4e87cdd05135e1c71e6eadb68bf82719cebdf"
SRCREV_cpu-features = "b9593c8b395318bb2bc42683a94f962564cc4664"
SRCREV_sdbus-cpp = "3b735bf1aad65277f56e65c828a22455cbaf5245"
PV = "3.0+git${SRCPV}"
DEPENDS += "dbus-cpp libsdl2 libsdl2-image lxc glm protobuf protobuf-native gtest elfutils sdbus-c++-tools-native"
RDEPENDS:${PN} += "anbox-data"
# these modules are directly included in android-flavored kernels
# Note: Anbox requires kernel >= 3.18 !
RRECOMMENDS:${PN} += " \
kernel-module-ashmem-linux \
kernel-module-binder-linux \
kernel-module-squashfs \
"
SRC_URI = "git://github.com/anbox/anbox;name=main;branch=master;protocol=https \
git://github.com/google/cpu_features.git;name=cpu-features;destsuffix=git/external/cpu_features;branch=master;protocol=https \
git://github.com/Kistler-Group/sdbus-cpp.git;name=sdbus-cpp;destsuffix=git/external/sdbus-cpp;branch=master;protocol=https \
file://0001-Fix-dependencies-for-LuneOS.patch \
file://0002-Fix-native-binaries-build.patch \
file://0003-Fix-emugl-build.patch \
file://0004-external-pass-CMAKE_TOOLCHAIN_FILE.patch \
file://0005-CMakeLists.txt-use-sdbus-c-from-native-build.patch \
file://0006-Fix-build-with-gcc-11.patch \
file://0001-Fix-build-with-glibc-2.34.patch \
file://anbox-container-manager.service \
file://anbox-session-manager.service \
file://anbox-bridge.network \
file://anbox-bridge.netdev \
"
S = "${WORKDIR}/git"
# Needs quite new kernel (probably >= 3.18) and from LuneOS supported machines
# only qemux86, qemux86-64 and rpi (later hammerhead-mainline) MACHINEs have it
# Unlink ashmem, binder drop qemux86 here, because anbox-data is available only
# for following 4 archs (x86-64, armv7a, armv7ve, aarch64)
COMPATIBLE_MACHINE_imx8mp-lpddr4-evk = "(.*)"
COMPATIBLE_MACHINE ?= "(^$)"
# COMPATIBLE_MACHINE:qemux86-64 = "(.*)"
# COMPATIBLE_MACHINE:rpi = "(.*)"
PACKAGECONFIG ??= "wayland"
PACKAGECONFIG[x11] = "-DENABLE_X11=ON,-DENABLE_X11=OFF,virtual/libx11"
PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND=ON,-DENABLE_WAYLAND=OFF,virtual/egl"
EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=debug"
EXTRA_OECMAKE += "-DHOST_CMAKE_C_COMPILER='${BUILD_CC}'"
EXTRA_OECMAKE += "-DHOST_CMAKE_CXX_COMPILER='${BUILD_CXX}'"
EXTRA_OECMAKE += "-DHOST_CMAKE_CXX_LINK_FLAGS='${BUILD_LDFLAGS}'"
inherit webos_cmake
inherit pkgconfig
inherit systemd
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "anbox-container-manager.service anbox-session-manager.service"
do_configure:prepend() {
sed -i 's@^#!/usr/bin/env python2$@#!/usr/bin/env python3@g' ${S}/scripts/gen-emugl-entries.py
}
do_install:append() {
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/anbox-container-manager.service ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/anbox-session-manager.service ${D}${systemd_unitdir}/system/
install -d ${D}${systemd_unitdir}/network
install -Dm 644 ${WORKDIR}/anbox-bridge.network ${D}${systemd_unitdir}/network/80-anbox-bridge.network
install -Dm 644 ${WORKDIR}/anbox-bridge.netdev ${D}${systemd_unitdir}/network/80-anbox-bridge.netdev
}
FILES:${PN} += "${systemd_unitdir}"
FILES:${PN}-dev += "${libdir}/backward/BackwardConfig.cmake"
"can u please guide me to get anbox into my yocto build"
pls share the detailed build steps, let check and reproduce this