Giter Site home page Giter Site logo

meta-qt5's Introduction

Qt5 OpenEmbedded/Yocto Project layer

This layer depends on:

URI: https://github.com/openembedded/openembedded-core (branch: master)

When building stuff like qtdeclarative, qtquick, qtwebkit, make sure that you have required PACKAGECONFIG options enabled in qtbase build, see qtbase recipe for detail.

Some recipes like qtwebengine would need 32bit multilib compiler on build host, especially when target to be built is 32bit, e.g. arm since it builds v8 engine which requires $CC -m32 to work, so ensure that host compiler can generate 32bit code, on archlinux distributions this would be

pacman -S lib32-gcc-libs lib32-glibc

Contributing

Please submit any patches against the meta-qt5 layer by using the GitHub pull-request feature. Fork the repo, make a branch, do the work, rebase from upstream, create the pull request, yada-yada.

Maintainers

Yocto Project Compatible

Yocto Project Compatible

meta-qt5 has Yocto Project Compatible status since 2013. Check it at: https://www.yoctoproject.org/product/meta-qt5

meta-qt5's People

Contributors

alistair23 avatar armcc avatar bachp avatar balister avatar darander avatar denix0 avatar fmntf avatar h4nn35 avatar herrie82 avatar huangqy1 avatar jasuonpe avatar jbrianceau avatar jkroon81 avatar jsbronder avatar kraj avatar levonmaa avatar liuming50 avatar lpapp avatar maxkrummenacher avatar migronof avatar morphis avatar mtdcr avatar net147 avatar otavio avatar sapiippo avatar sbinner avatar schnitzeltony avatar shr-project avatar whatsub avatar zonque avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meta-qt5's Issues

qtbase-dev requires GLES headers but does not pull them

When attempting to build a Qt5 app on rk3399 target (with the workaround described in #101 to avoid unaccelerated gles3), build fails with:

/usr/include/qt5/QtGui/qopengl.h:110:26: fatal error: GLES2/gl2.h: No such file or directory
 #   include <GLES2/gl2.h>
                          ^
compilation terminated.

Dependency on the package providing the relevant headers seem to be missing, libgles2-dev in this particular case, although I guess it should be libgles3-dev or libgl-dev on other platforms.

Error on linux firmware 4.9

Hello,
I'm building Bitbake images for intel-corei7-64 for old Intel Processors and I've to use linux intel firmware 4.9
I've noticed that the branch THUD a few days ago was shipped with QT 5.11.3 (before was QT5.11.2)
After this branch update I'm not able to launch qt apps on the target computer.

Launching my test app I've got this error:

./Test01: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

after some investigations using the command ldconfig -p I've noticed this:

libQt5Core.so.5 (libc6,x86-64, OS ABI: Linux 4.11.0) => /usr/lib64/libQt5Core.so.5
libQt5Core.so (libc6,x86-64, OS ABI: Linux 4.11.0) => /usr/lib64/libQt5Core.so

Is the only QT5 library that have OS ABI configured.
It mean that the minimum linux firmare is 4.11?

Searching on internet I've found this

strip --remove-section=.note.ABI-tag /usr/lib64/libQt5Core.so

I have not try at the moment

Is there a fix?
Regards
Enrico

widgets are needed by qtcharts

In our case we do not want to build 'widgets'.
But without 'widgets' we can't build 'packagegroup-qt5-toolchain-target'.

This is because of qtcharts, which needs widgets to be in PACKAGECONFIG of 'qtbase'.
So we added a 'packagegroup-qt5-toolchain-target.bbappend' in our layer and removed
'qtcharts-dev', 'qtcharts-mkspecs' and 'qtcharts-qmlplugins' from RDEPENDS.

So far, so good. But now we run into a little tricky problem.
'qtcharts-qmlplugins' will only be in RDEPENDS, if 'opengl' is in DISTRO_FEATURES (in our case it is).
Because of that 'qtcharts-qmlplugins' is in RDEPENDS of 'packagegroup-qt5-toolchain-target', even if we removed it by 'packagegroup-qt5-toolchain-target.bbappend'.
So we run into the error:
"nothing provides qtcharts-qmlplugins needed by packagegroup-qt5-toolchain-target-1.0-r0.all"

I think there should be a mechanism for 'qtcharts' in RDEPENDS of 'packagegroup-qt5-toolchain-target' to check, if 'widgets' are set in PACKAGECONFIG of 'qtbase' or not.
Maybe we could move qtcharts-* to a seperate variable called USE_WIDGETS (like USE_X11 or USE_WAYLAND). This USE_WIDGETS will only be in RDEPENDS, if 'widgets' are set.
We could do this like it is done with 'opengl' and check, if 'widgets' are present in DISTRO_FEATURES.

I know this is not a small thing to change... but it is the only way I found right now.
If that way is okay, I made a patch and send a pull request.
Else, it would be nice to discuss another way to fix this problem.

bitbake meta-toolchain-qt5 fail on qttools compilation [thud branch]

Hi,

I can't compile the toolchain because of an error in qttool.

| make[4]: Entering directory '/home/aridet/oe-core-imx6-i25-new/build/tmp/work/armv7at2hf-neon-tdx-linux-gnueabi/qttools/5.11.3+gitAUTOINC+ddc4fba789-r0/build/src/designer/src/lib'
| make[4]: *** No rule to make target '.uic/ui_qtgradienteditor.h', needed by '../../../../lib/libQt5Designer.so.5.11.3'. Stop.
| make[4]: Leaving directory '/home/aridet/oe-core-imx6-i25-new/build/tmp/work/armv7at2hf-neon-tdx-linux-gnueabi/qttools/5.11.3+gitAUTOINC+ddc4fba789-r0/build/src/designer/src/lib'
| ERROR: oe_runmake failed

I don't understand what to do to get rid of this issue.

Tell me what command I shoud type if you need more debug.

I'm on the head of thud branch.

Regards.

SDK

How can I add qmlcachegen-native to SDK (qtdeclarative-native)?

RPATH issue with qtwebkit

I'm trying to build qtwebkit, but it fails with the following outout:

ERROR: QA Issue: package qtwebkit contains bad RPATH /home/oleg/Projects/willow-build/tmp/work/armv7a-vfp-neon-willow-linux-gnueabi/qtwebkit/5.0.2-r0.0/build/lib in file /home/oleg/Projects/willow-build/tmp/work/armv7a-vfp-neon-willow-linux-gnueabi/qtwebkit/5.0.2-r0.0/packages-split/qtwebkit/usr/lib/qt5/libexec/QtWebPluginProcess
ERROR: QA Issue: package qtwebkit contains bad RPATH /home/oleg/Projects/willow-build/tmp/work/armv7a-vfp-neon-willow-linux-gnueabi/qtwebkit/5.0.2-r0.0/build/lib in file /home/oleg/Projects/willow-build/tmp/work/armv7a-vfp-neon-willow-linux-gnueabi/qtwebkit/5.0.2-r0.0/packages-split/qtwebkit/usr/lib/qt5/libexec/QtWebProcess
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/oleg/Projects/willow-build/tmp/work/armv7a-vfp-neon-willow-linux-gnueabi/qtwebkit/5.0.2-r0.0/temp/log.do_package.25165
ERROR: Task 11 (/home/oleg/Projects/metadata-poky/meta-qt5/recipes-qt/qt5/qtwebkit_5.0.2.bb, do_package) failed with exit code '1'

I've seen a related comment in qtwebkit.inc but looks like that fix doesn't work for me.

I use 28753fa revision of the meta-qt5.

libclang.so: file not recognize: file format not recognized

While trying to compile a sdk-qt5 on my machine, I end up with following error. Something about libclang, but no idea what the cause is...:

| cd lib/ && ( test -e Makefile || /opt/yocto/fsl-community-bsp_warrior/build_m7/tmp/work/cortexa9t2hf-neon-imx-fslc-linux-gnueabi/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/recipe-sysroot-native/usr/bin/qmake -o Makefile /opt/yocto/fsl-community-bsp_warrior/build_m7/tmp/work/cortexa9t2hf-neon-imx-fslc-linux-gnueabi/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/git/src/designer/src/lib/lib.pro CONFIG+=noqtwebkit CONFIG-=config_clang ) && make -f Makefile
| /opt/yocto/fsl-community-bsp_warrior/build_m7/tmp/work/cortexa9t2hf-neon-imx-fslc-linux-gnueabi/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/recipe-sysroot-native/usr/bin/arm-fslc-linux-gnueabi/../../libexec/arm-fslc-linux-gnueabi/gcc/arm-fslc-linux-gnueabi/9.2.0/ld: warning: library search path "/usr/lib/llvm-6.0/lib" is unsafe for cross-compilation
| /usr/lib/llvm-6.0/lib/libclang.so: file not recognized: file format not recognized
| collect2: error: ld returned 1 exit status
| Makefile:211: recipe for target '../../bin/qdoc' failed
| make[2]: *** [../../bin/qdoc] Error 1
| make[2]: Leaving directory '/opt/yocto/fsl-community-bsp_warrior/build_m7/tmp/work/cortexa9t2hf-neon-imx-fslc-linux-gnueabi/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/build/src/qdoc'
| Makefile:231: recipe for target 'sub-qdoc-make_first' failed
| make[1]: *** [sub-qdoc-make_first] Error 2
| make[1]: *** Waiting for unfinished jobs....

Cross compiling qttools for qemuarm64 uses host glibc

When building qttools for RISC-V or AArch64 64-bit I see all sorts of float128 errors like this:

| /scratch/alistair/yocto/oe-master/build/tmp-glibc/work/riscv64-oe-linux/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/recipe-sysroot/usr/include/stdlib.h:152:8: error: '_Float128' does not name a type; did you mean '_Float32x'?
| 152 | extern _Float128 strtof128 (const char *__restrict __nptr,
| | ^~~~~~~~~
| | _Float32x
| /scratch/alistair/yocto/oe-master/build/tmp-glibc/work/riscv64-oe-linux/qttools/5.13.0+gitAUTOINC+cc9250477e-r0/recipe-sysroot/usr/include/stdlib.h:245:4: error: '_Float128' has not been declared
| 245 | _Float128 __f)
| | ^~~~~~~~~

These errors come from the glibc headers and not qttools itself. Looking at the glibc headers all of these float128 defines are protected by

#if __HAVE_FLOAT128

Which is not set for RISC-V, but is set for x86.

It seems like the host libc libraries are being used when building qttools.

These are the steps to reproduce:

git clone git://git.openembedded.org/openembedded-core
cd openembedded-core
git clone git://git.openembedded.org/bitbake
git clone https://github.com/meta-qt5/meta-qt5.git
source oe-init-build-env
bitbake-layers add-layer "$(pwd)/oe-${BRANCH}/meta-openembedded/meta-oe"
MACHINE=qemuarm64 bitbake qttools

error executing a python function

My build of meta-toolchain-qt5 rocko version failed with following errors: Can anyone help resolve this problem?

`ERROR: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function:
0001:
*** 0002:fixup_perms(d)
0003:

File: '/home/rocko/karo-yocto-rocko/sources/poky/meta/classes/package.bbclass', lineno: 801, function: fixup_perms
0797: if len(lsplit) != 8 and not (len(lsplit) == 3 and lsplit[1].lower() == "link"):
0798: msg = "Fixup perms: %s invalid line: %s" % (conf, line)
0799: package_qa_handle_error("perm-line", msg, d)
0800: continue
*** 0801: entry = fs_perms_entry(d.expand(line))
0802: if entry and entry.path:
0803: if entry.link:
0804: fs_link_table[entry.path] = entry
0805: if entry.path in fs_perms_table:
File: '/home/rocko/karo-yocto-rocko/sources/poky/meta/classes/package.bbclass', lineno: 655, function: init
0651: lsplit = line.split()
0652: if len(lsplit) == 3 and lsplit[1].lower() == "link":
0653: self._setlink(lsplit[0], lsplit[2])
0654: elif len(lsplit) == 8:
*** 0655: self._setdir(lsplit[0], lsplit[1], lsplit[2], lsplit[3], lsplit[4], lsplit[5], lsplit[6], lsplit[7])
0656: else:
0657: msg = "Fixup Perms: invalid config line %s" % line
0658: package_qa_handle_error("perm-config", msg, d)
0659: self.path = None
File: '/home/rocko/karo-yocto-rocko/sources/poky/meta/classes/package.bbclass', lineno: 672, function: _setdir
0668: return None
0669: self.path = os.path.normpath(path)
0670: self.link = None
0671: self.mode = self._procmode(mode)
*** 0672: self.uid = self._procuid(uid)
0673: self.gid = self._procgid(gid)
0674: self.walk = walk.lower()
0675: self.fmode = self._procmode(fmode)
0676: self.fuid = self._procuid(fuid)
File: '/home/rocko/karo-yocto-rocko/sources/poky/meta/classes/package.bbclass', lineno: 696, function: _procuid
0692: return -1
0693: elif uid.isdigit():
0694: return int(uid)
0695: else:
*** 0696: return pwd.getpwnam(uid).pw_uid
0697:
0698: def _procgid(self, gid):
0699: if gid is None or gid == "-":
0700: return -1
Exception: KeyError: 'getpwnam(): name not found: messagebus'

DEBUG: Python function fixup_perms finished
DEBUG: Python function do_package finished
ERROR: Function failed: fixup_perms`

qt5-meta-toolchain does not build of no opengl

This is the error for a board where opengl is not in DISTRO_FEATURES

...
| CMake Error at Source/cmake/OptionsQt.cmake:529 (message):
|   Qt with OpenGL support is required for ENABLE_OPENGL
| Call Stack (most recent call first):
|   Source/cmake/WebKitCommon.cmake:50 (include)
|   CMakeLists.txt:137 (include)

The SDK builds okay for boards where opengl is in DISTRO_FEATURES.

Using this patch to get around it.

index d020cc3..2f8d8a2 100755
--- a/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
+++ b/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
@@ -9,7 +9,7 @@ PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"

 # Requires Ruby to work
 USE_RUBY = " \
-    qtwebkit-dev \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebkit-dev', '', d)} \
 "

 # Requires Wayland to work

qtwebengine: warnings: switch -mcpu=cortex-a9 conflicts with -march=armv7-a switch

Tried my fist warrior build and saw a lot of warnings like this:
"cc1plus: warning: switch -mcpu=cortex-a9 conflicts with -march=armv7-a switch" in the build log.
I suspect that this is related to oe-core change "arm-tunes: Remove -march option if mcpu is already added".
There seems to be a fix for this in meta-browser: "chromium-gn: Computer arm_version from overrides" by @kraj

Unable to create a 64 bit toolchain

I am unable to create a 64 bit toochain.
I specify the SDK machine variable to x86_64. But when I try to add a compiler using QT it only recognizes it as a 32 bit.

Has anyone created a 64bit qt toolchain for raspberrypi and was successful in creating a kit for 64 bit?

qtbase built with unsupported GLES3 on rockchip mali-gpu platforms

On a rockchip rk3399 board with latest pyro, compilation on target fails with:

/usr/include/qt5/QtGui/qopengl.h:106:27: fatal error: GLES3/gl31.h: No such file or directory
 #   include <GLES3/gl31.h>

The lack of required header is a separate problem, but that one throws light on an otherwise easy to miss issue: the GLES provider (rockchip-mali) only has GLES2, so something went wrong.

log.do_configure shows:

  OpenGL:
    EGL .................................. yes
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ yes
    OpenGL ES 3.1 ........................ yes

Arguably this comes from using MESA headers instead of MALI ones,as mesa sysroot provides all GLES versions at once, and the qt5 configure script seems to have a flag to enable gles3, but not one to disable it.

The following trick gets rid of the headers that confuse configure. Maybe it would be good to ship it to avoid bad surprises.

do_prepare_recipe_sysroot_append_mali-gpu () {
    # configure will want to use GLES3 if provided, Mali does not support that
    gles3dir = d.expand("${STAGING_DIR_TARGET}/${includedir}/GLES3")
    if os.path.exists(gles3dir):
        import shutil
        shutil.rmtree(gles3dir)
}

This results in expected:

  OpenGL:
    EGL .................................. yes
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no

error on bitbake qtwebengine

Hello.
When bitbake qtwebengine, it occurs error.
target system is arm7i architecture, and my host system is ubuntu 16.04
here's the log msg.

ERROR at //build/config/android/internal_rules.gni:12:1: Assertion failed.
assert(is_android)
^-----
See //build/config/android/rules.gni:8:1: whence it was imported.
import("//build/config/android/internal_rules.gni")
^-------------------------------------------------
See //third_party/android_tools/BUILD.gn:5:1: whence it was imported.
import("//build/config/android/rules.gni")
^----------------------------------------
See //third_party/openmax_dl/dl/BUILD.gn:199:16: which caused the file to be included.
deps = [ "//third_party/android_tools:cpu_features" ]
^-----------------------------------------
Project ERROR: GN run error!
ERROR: oe_runmake failed
Makefile:80: recipe for target 'sub-gn_run-pro-make_first' failed
make[2]: *** [sub-gn_run-pro-make_first] Error 3
make[2]: Leaving directory '/home/ku/yocto/build/tmp/work/armv7ahf-vfp-poky-linux-gnueabi/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core'
Makefile:78: recipe for target 'sub-core-make_first' failed
make[1]: *** [sub-core-make_first] Error 2
make[1]: Leaving directory '/home/ku/yocto/build/tmp/work/armv7ahf-vfp-poky-linux-gnueabi/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src'
Makefile:46: recipe for target 'sub-src-make_first' failed
make: *** [sub-src-make_first] Error 2
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile (log file is located at /home/ku/yocto/build/tmp/work/armv7ahf-vfp-poky-linux-gnueabi/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/temp/log.do_compile.29696)

hellowindow desktop execution path wrong

Since the QT_DIR_NAME has now be set to empty since "thud" the *.desktop execution path still points to /usr/share/qt5/. To fix that we need to remove the qt5 from the execution path.

Thanks,

Mike

Incorrect Qt5OpenGLExtensions.pc file generated

Qt5OpenGLExtensions.pc file doesn't contain a -L before the libGLESv2.so library path.

prefix=/localhome/voipsdk/rohit/yocto/oe-core/dvf101/tmp/work/cortexa9-neon-dspg-linux-gnueabi/qtbase/5.12.3+gitAUTOINC+b527725766-r0/recipe-sysroot/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=/usr/include


Name: Qt5 OpenGLExtensions
Description: Qt OpenGLExtensions module
Version: 5.12.3
Libs: -L${libdir} -lQt5OpenGLExtensions
Libs.private: -L/localhome/voipsdk/rohit/yocto/oe-core/dvf101/tmp/work/cortexa9-neon-dspg-linux-gnueabi/qtbase/5.12.3+gitAUTOINC+b527725766-r0/build/lib -lQt5Gui -lQt5Core -lpthread /localhome/voipsdk/rohit/yocto/oe-core/dvf101/tmp/work/cortexa9-neon-dspg-linux-gnueabi/qtbase/5.12.3+gitAUTOINC+b527725766-r0/recipe-sysroot/usr/lib/libGLESv2.so
Cflags: -DQT_OPENGLEXTENSIONS_LIB -I${includedir}/QtOpenGLExtensions -I${includedir}
Requires: Qt5Core Qt5Gui

Any application, that uses libQt5OpenGLExtensions.so will fail to load because of the incorrect path.

This issue is not seen if thud branch is used.

Disable top-level modules

I'm new to Yocto and I'm try to learn how to customize this layer.
For example I want to build these modules only:

  • qtbase
  • qtserialport
  • qtserialbus
  • qtwebsockets
  • qtwebchannel
  • qtconnectivity

How to disable the others?

QMAKE_AR in qmake.conf

The logic for defining QMAKE_AR in qmake.conf:

# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
QMAKE_AR              = $$(OE_QMAKE_AR) cqs

and in qtbase_git.bb:

# default compiler options which can be overwritten from the environment
echo "isEmpty(QMAKE_AR): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf

If the OE_QMAKE_AR environment variable is not set (which is the case in Qt Creator launched outside the SDK environment, but configured to use the SDK to build a project), QMAKE_AR ends up being set to "cqs". Thus, and when building static libs, one ends up with an error like:

make[3]: cqs: Command not found

Why is QMAKE_AR defined to $OE_QMAKE_AR cqs in two places? Obviously, isEmpty(QMAKE_AR) in the latter never evaluates to true. Would it be possible to add a check to the first one, whether the OE_QMAKE_AR environment variable is actually set, or move "cqs" as part of the OE_QMAKE_AR environment variable?

Thud branch build is failing "protocol_handler_registry.cc:23:10: fatal error: chrome/grit/generated_resources.h"

I tried build thud branch to get latest chrome but failing with fallowing for imx6.

error.yocto/build/tmp/work/cortexa9t2hf-neon-phytec-linux-gnueabi/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot-native/usr/bin/arm-phytec-linux-gnueabi/arm-phytec-linux-gnueabi-g++ -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -fstack-protector-strong -D_FORTIFY_SOURCE=2 --sysroot=/home/ubuntu/workspace/Vortex/vortex_bsp_test/yocto/build/tmp/work/cortexa9t2hf-neon-phytec-linux-gnueabi/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot -MMD -MF obj/qtwebengine_sources/protocol_handler_registry.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../../../git/src/3rdparty/chromium/skia/config -I../../../../git/src/3rdparty/chromium/third_party/boringssl/src/include -I../../../../git/src/3rdparty/chromium/third_party/skia/include/core -Igen -I../../../../git/src/3rdparty/chromium -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -mfpu=neon -mthumb -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -std=gnu++14 -fno-delete-null-pointer-checks -Wno-narrowing -fno-exceptions -fno-rtti --sysroot=../../../../recipe-sysroot -fvisibility-inlines-hidden -c ../../../../git/src/3rdparty/chromium/chrome/browser/custom_handlers/protocol_handler_registry.cc -o obj/qtwebengine_sources/protocol_handler_registry.o
| ../../../../git/src/3rdparty/chromium/chrome/browser/custom_handlers/protocol_handler_registry.cc:23:10: fatal error: chrome/grit/generated_resources.h: No such file or directory

[to be closed] Bad performances of QWebEngine

Hi,

I compile QWebEngine on sumo on top of meta-freescale for the UDOO Neo (CPU i.MX6 SoloX, Vivante GPU) with the Linux kernel 4.1.

The performances are really bad when I display 2 inline SVG. The CPU reaches the maximum temperature and QWebEngine crashes randomly. The CPU usage displayed with top is over 60%.

[16063.864286] System is too hot. GPU3D will work at 16/64 clock.

Here is the code I try to run:

<!DOCTYPE html>
<html>
    <head>

        <title>Machines</title>
        
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" type="text/css">
        <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">
        
        <style>
        svg.machine {
          height: 300px;
          max-width: 100%;
          shape-rendering: geometricPrecision;
          text-rendering: geometricPrecision;
          image-rendering: optimizeQuality;
          fill-rule: evenodd;
          clip-rule: evenodd; }
          svg.machine .machine {
            display: block; }
            svg.machine .machine .label {
              fill: #727272;
              font-family: 'Open Sans Condensed', sans-serif;
              font-weight: 300;
              font-size: 75000px;
              text-align: center;
              text-anchor: middle;
              letter-spacing: -1px; }
            svg.machine .machine .mask {
              fill: white; }
            svg.machine .machine .draw {
              fill: #727272; }
          svg.machine .number polygon {
            fill: #00a627;
            stroke: #fff;
            stroke-width: 4000;
            stroke-linejoin: round; }
          svg.machine .number text {
            fill: white;
            font-weight: bold;
            font-weight: 700;
            font-size: 110000px;
            font-family: 'Open Sans', sans-serif;
            text-align: center;
            text-anchor: start; }
      
        svg.machine.taken > .machine > .draw, svg.machine.taken > .machine > .label, svg.machine.taken > .number polygon {
          fill: #CD2628; }
        svg.machine.taken > .machine > .mask {
          fill: #FAE9E9; }
        </style>
    </head>

    <body>
        <div class="row">
            <div class="col-sm-6 text-center">
                <svg class="machine" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500000 800000">
                    <defs><linearGradient id="shadowgrad" x1="0" y1="0" x2="0" y2="1"><stop offset="0" style="stop-opacity:0; stop-color:black"/><stop offset="1" style="stop-opacity:0.35; stop-color:black"/></linearGradient></defs>
                    <g class="machine">
                        <text class="label" x="250000" y="780000">Washing machine</text>
                        <polygon class="shadow" fill="url(#shadowgrad)" points="381195,596338 500001,596338 447930,686527 381095,686794"/>
                         <polygon class="mask" points="444699,190671 444699,679480 435706,688473 65209,688473 55713,678978 55713,190671 106773,157128 393640,157128"/>
                         
                                <polygon class="mask" points="444699,190671 444699,679480 435706,688473 65209,688473 55713,678978 55713,190671 106773,157128 393640,157128"/>
                                <path class="draw" d="M396677 397755c7052,1566 12381,7889 12381,15409l0 92369c0,7511 -5325,13845 -12381,15412 -24072,57251 -80678,97460 -146676,97460 -87839,0 -159055,-71216 -159055,-159055 0,-87839 71216,-159055 159055,-159055 65998,0 122603,40208 146676,97460zm-146676 -59167c44008,0 82515,23546 103622,58723l33090 0c-7247,-15981 -17433,-30956 -30575,-44098 -58617,-58617 -153657,-58617 -212273,0 -58617,58617 -58617,153656 0,212273 58616,58618 153656,58618 212273,0 13142,-13142 23331,-28116 30577,-44099l-33091 0c-21107,35177 -59614,58725 -103623,58725 -66693,0 -120762,-54069 -120762,-120762 0,-66694 54069,-120762 120762,-120762zm90193 178578c-3278,-3008 -5132,-7123 -5132,-11633l0 -29264c-9208,-6274 -15254,-16842 -15254,-28823 0,19249 -15605,34854 -34856,34854 -19253,0 -34858,-15605 -34858,-34854 0,19249 -15603,34854 -34856,34854 -19251,0 -34856,-15605 -34856,-34854 0,19802 -16430,35561 -36197,34826 11988,47327 54860,82346 105911,82346 37398,0 70404,-18795 90098,-47452zm53082 -110823l-42361 0c-3756,0 -6821,3065 -6821,6821l0 92369c0,3753 3066,6823 6821,6823l42361 0c3755,0 6821,-3070 6821,-6823l0 -92369c0,-3756 -3063,-6821 -6821,-6821zm-323031 -219067l359560 0 -37918 -22749 -283725 0 -37917 22749zm228015 28999l79315 0c2935,0 5336,2401 5336,5337l0 15254c0,2936 -2401,5339 -5336,5339l-79315 0 0 -25930zm-88591 0l80713 0 0 25930 -80713 0 0 -25930zm-87191 0l79313 0 0 25930 -79313 0c-2937,0 -5338,-2403 -5338,-5339l0 -15254c0,-2936 2401,-5337 5338,-5337zm313869 50997l-372644 0 0 412986 372644 0 0 -412986zm-372644 -3942l372644 0 0 -68204 -372644 0 0 68204zm388346 416928c2,8666 -7034,15703 -15702,15703l-372644 0c-8669,0 -15703,-7031 -15703,-15703l0 -489057c0,-6175 3565,-11516 8749,-14081l43378 -26026c2522,-1508 5296,-2225 8035,-2221l283725 -49c3407,0 6561,1086 9134,2929l43361 26015c4897,2929 7614,8113 7619,13433l48 489057z"/>
                            
                    </g><!--/.machine -->
                    
                    
                    <g class="number">
                        <polygon points="105670,539360 146770,563080 187850,586810 187850,634250 187850,681700 146770,705420 105670,729140 64590,705420 23500,681700 23500,634250 23500,586810 64590,563080"/>
                        <g transform="matrix(1.01342,0,0,1,-94145.3,258734)">
                            <text x="164000" y="415990">1</text>
                        </g>
                    </g><!--/.number -->
                </svg>
            </div>

            <div class="col-sm-6 text-center">
                <svg class="machine" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500000 800000">
                    <defs><linearGradient id="shadowgrad" x1="0" y1="0" x2="0" y2="1"><stop offset="0" style="stop-opacity:0; stop-color:black"/><stop offset="1" style="stop-opacity:0.35; stop-color:black"/></linearGradient></defs>
                    <g class="machine">
                        <text class="label" x="250000" y="780000">Dryer</text>
                        <polygon class="shadow" fill="url(#shadowgrad)" points="381195,596338 500001,596338 447930,686527 381095,686794"/>
                         <polygon class="mask" points="444699,190671 444699,679480 435706,688473 65209,688473 55713,678978 55713,190671 106773,157128 393640,157128"/>
                         
                                 <polygon class="mask" points="444699,190671 444699,679480 435706,688473 65209,688473 55713,678978 55713,190671 106773,157128 393640,157128"/>
                                <path class="draw" d="M452049 680258c2,8666 -7034,15703 -15702,15703l-372644 0c-8669,0 -15703,-7031 -15703,-15703l0 -489057c0,-6175 3565,-11516 8749,-14081l43378 -26026c2522,-1508 5296,-2225 8035,-2221l283725 -49c3407,0 6561,1086 9134,2929l43361 26015c4897,2929 7614,8113 7619,13433l48 489057zm-356623 -418726l307356 0c5022,0 9183,4054 9183,9035l0 115489 2261 0c5038,0 9182,4126 9182,9143l0 90262c0,5012 -4143,9143 -9182,9143l-2261 0 0 115490c0,4981 -4162,9035 -9183,9035l-307356 0c-5018,0 -9182,-4051 -9182,-9035l0 -339527c0,-4983 4163,-9035 9182,-9035zm308687 124524l0 -116986 -310017 0 0 342521 310017 0 0 -116987 -18676 0c-5031,0 -9181,-4100 -9181,-9143l0 -90262c0,-5018 4143,-9143 9181,-9143l18676 0zm11263 8079l-31075 0 0 92309 31075 0 0 -92309zm-292898 -177860l79313 0 0 25930 -79313 0c-2937,0 -5338,-2403 -5338,-5339l0 -15254c0,-2936 2401,-5337 5338,-5337zm87191 0l80713 0 0 25930 -80713 0 0 -25930zm88591 0l79315 0c2935,0 5336,2401 5336,5337l0 15254c0,2936 -2401,5339 -5336,5339l-79315 0 0 -25930zm-228015 -28999l359560 0 -37918 -22749 -283725 0 -37917 22749zm366102 7850l-372644 0 0 485132 372644 0 0 -485132z"/>
                            
                    </g><!--/.machine -->
                    
                    
                    <g class="number">
                        <polygon points="105670,539360 146770,563080 187850,586810 187850,634250 187850,681700 146770,705420 105670,729140 64590,705420 23500,681700 23500,634250 23500,586810 64590,563080"/>
                        <g transform="matrix(1.01342,0,0,1,-94145.3,258734)">
                            <text x="164000" y="415990">2</text>
                        </g>
                    </g><!--/.number -->
                </svg>
            </div>
        </div>
    </body>
</html>

I've compared the performances with Chromium Browser on the official UDOObuntu distro. They're OK on it so this is not related to the hardware.

I've done several tests with the imx-gpu-testapps from the meta-freescale-distro layer. They are very demanding for the GPU but the CPU usage is OK.

I've noticed that the galcore module (Vivante driver) uses 4% of the CPU when running the test apps (it's displayed in bold) but uses 0% with QWebEngine. On UDOObuntu, the Vivante driver (CONFIG_MXC_GPU) is built in the kernel (v3.14).

The chrome://gpu page shows:

I'm not able to compile Qt5 for UDOObuntu so far.

Any idea how to make it work?

Edit
I found that the @-webkit-keyframes CSS property applied on hidden part of SVGs was responsible for this issue.

*.cmake files generated from *.cmake.in files can contain paths to recipe sysroot

Encountered this problem when trying to build https://github.com/KDAB/GammaRay with http://code.qt.io/cgit/yocto/meta-boot2qt.git and https://github.com/agherzan/meta-raspberrypi .

meta-boot2qt sets QMAKE_INCDIR_EGL to extra include directories needed for the VC driver which are in turn added to the Qt5::Gui_GLESv2 target in Qt5GuiConfigExtras.cmake . Gammaray uses the Qt5::Gui_GLESv2 target in https://github.com/KDAB/GammaRay/blob/master/plugins/quickinspector/CMakeLists.txt#L48 . If the qtbase recipe-sysroot does not exist, CMake will fail when configuring Gammaray with the error:

Imported target "Qt5::Gui_GLESv2" includes non-existent path

\<path to include directory in qtbase recipe sysroot\>

in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
 
   * The path was deleted, renamed, or moved to another location.
 
   * An install or uninstall procedure did not complete successfully.
 
   * The installation package was faulty and references files it does not
   provide.

Something similar to what is done to *.pc and *.prl files, where it is sed:ed out to the empty string, needs to be done for *.cmake files as well.

Unlike for pkg-config and *.prl files though it can not be replaced with the empty string. The sysroot can be passed to pkg-config through PKG_CONFIG_SYSROOT_DIR and pkg-config will prepend it to all paths when pkg-config extracts them from *.pc. In CMake there is https://cmake.org/cmake/help/latest/variable/CMAKE_SYSROOT.html but it looks like it is not set in Yocto.

recipes-qt/qt5/qt3d_git.bb fails to compile

I'm trying to cross compile some Qt code for aarch64, following https://developer.toradex.com/knowledge-base/how-to-set-up-qt-creator-to-cross-compile-for-embedded-linux. bitbake -k meta-toolchain-qt5 fails when trying to compile qt3d. The complete log file is attached, but the relevant part is here:

make[3]: Entering directory '/data/martin/yocto/build/tmp/work/aarch64-poky-linux/qt3d/5.11.1+gitAUTOINC+3b4a9b5061-r0/build/tests/manual/gltf'
make[3]: Nothing to be done for 'first'.
make[3]: Leaving directory '/data/martin/yocto/build/tmp/work/aarch64-poky-linux/qt3d/5.11.1+gitAUTOINC+3b4a9b5061-r0/build/tests/manual/gltf'
No data signature found
Makefile:460: recipe for target '.rcc/qrc_scene2d.o' failed
make[3]: *** [.rcc/qrc_scene2d.o] Error 1
make[3]: Leaving directory '/data/martin/yocto/build/tmp/work/aarch64-poky-linux/qt3d/5.11.1+gitAUTOINC+3b4a9b5061-r0/build/examples/qt3d/scene2d'
Makefile:490: recipe for target 'sub-scene2d-make_first' failed
make[2]: *** [sub-scene2d-make_first] Error 2
make[2]: Leaving directory '/data/martin/yocto/build/tmp/work/aarch64-poky-linux/qt3d/5.11.1+gitAUTOINC+3b4a9b5061-r0/build/examples/qt3d'
Makefile:44: recipe for target 'sub-qt3d-make_first' failed
make[1]: *** [sub-qt3d-make_first] Error 2
make[1]: Leaving directory '/data/martin/yocto/build/tmp/work/aarch64-poky-linux/qt3d/5.11.1+gitAUTOINC+3b4a9b5061-r0/build/examples'
Makefile:98: recipe for target 'sub-examples-make_first' failed
make: *** [sub-examples-make_first] Error 2
make: *** Waiting for unfinished jobs....

log.do_compile.11434.txt

qtbase glibc 2.28

With latest master for all layers I still see

/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfilesystemengine_unix.cpp:109:12: error: 'int renameat2(int, const char*, int, const char*, unsigned int)' was declared 'extern' and later 'static' [-fpermissive]
static int renameat2(int oldfd, const char oldpath, int newfd, const char newpath, unsigned flags)
^~~~~~~~~
In file included from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/c++/8.2.0/cstdio:42,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/c++/8.2.0/ext/string_conversions.h:43,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/c++/8.2.0/bits/basic_string.h:6391,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/c++/8.2.0/string:52,
from ../../include/QtCore/../../../git/src/corelib/tools/qbytearray.h:52,
from ../../include/QtCore/qbytearray.h:1,
from ../../include/QtCore/../../../git/src/corelib/tools/qstring.h:49,
from ../../include/QtCore/qstring.h:1,
from ../../include/QtCore/../../../git/src/corelib/kernel/qobject.h:47,
from ../../include/QtCore/qobject.h:1,
from ../../include/QtCore/../../../git/src/corelib/io/qiodevice.h:45,
from ../../include/QtCore/qiodevice.h:1,
from ../../include/QtCore/../../../git/src/corelib/io/qfiledevice.h:43,
from ../../include/QtCore/qfiledevice.h:1,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfile.h:44,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfilesystemengine_p.h:54,
from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfilesystemengine_unix.cpp:43:
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/stdio.h:164:12: note: previous declaration of 'int renameat2(int, const char
, int, const char
, unsigned int)'
extern int renameat2 (int __oldfd, const char *__old, int __newfd,
^~~~~~~~~

This is exactly what 0014-Fix-qmake-build-with-glibc-2.28.patch should fix.

@shr-project: Is it possible that you had glibc 2.28 on your build host already when you tested the patch?

Explicit inclusion of runtime files?

This is probably a misunderstanding on my part rather than an issue with the layer, but I don't understand why my recipes (and everybody else's recipes?) need to explicitly set RDEPENDS for the -qmlplugins package for the qml plugin files to populate my images.

For example, if my recipe sets DEPENDS += qtcharts, then the qtcharts_git.bb recipe will be included. That recipe requires qt5.inc, which will add qtcharts-qmlplugins to PACKAGES, set RRECOMMENDS_qtcharts = qtcharts-plugins qtcharts-qmlplugins, and set FILES_qtcharts-qmlplugins = .... I would expect that the RRECOMMENDS_qtcharts value would be sufficient to include the qtcharts-qmlplugins package, which pulls in the runtime files from FILES_qtcharts-qmlplugins. However, I don't see the qml plugin files in the resulting image (at /usr/lib/qt5/qml) unless I also set RDEPENDS_${PN} += qtcharts-qmlplugins in my recipe.

Is this expected? If so, what is the RRECOMMENDS assignment in qt5.inc doing that is different from what I described as the expected behavior? Thanks.

qmake: Syntax error: "(" unexpected

Yocto rocko, meta-qt5 rocko, I have error:
| /home/km/Documents/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/qtbase/5.9.7+gitAUTOINC+81b29a44d2-r0/recipe-sysroot-native/usr/bin/qt5/qmake: 1: /home/km/Documents/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/qtbase/5.9.7+gitAUTOINC+81b29a44d2-r0/recipe-sysroot-native/usr/bin/qt5/**qmake: Syntax error: "(" unexpected** | WARNING: exit code 2 from a shell command. | ERROR: Function failed: do_configure (log file is located at /home/km/Documents/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/qtbase/5.9.7+gitAUTOINC+81b29a44d2-r0/temp/log.do_configure.46637) ERROR: Task (/home/km/Documents/yocto/poky/meta-qt5/recipes-qt/qt5/qtbase_git.bb:do_configure) failed with exit code '1' NOTE: Tasks Summary: Attempted 1895 tasks of which 1890 didn't need to be rerun and 1 failed.

qtwebengine compilation fails for armv6

I'm trying to build image using meta-raspberrypi and meta-qt5 layers. Target machine is raspberrypi0-wifi. Compilation of QtWebEngine fails with this error (on meta-qt5 master branch):

| FAILED: obj/base/base/base_jumbo_37.o
| /home/vagrant/build/tmp/work/arm1176jzfshf-vfp-poky-linux-gnueabi/qtwebengine/5.11.1+gitAUTOINC+fe73e54057_bad02200c6-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -march=armv6 -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -mfpu=vfp --sysroot=/home/vagrant/build/tmp/work/arm1176jzfshf-vfp-poky-linux-gnueabi/qtwebengine/5.11.1+gitAUTOINC+fe73e54057_bad02200c6-r0/recipe-sysroot -MMD -MF obj/base/base/base_jumbo_37.o.d -DUSE_SYMBOLIZE -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -I. -Igen -I../../../../git/src/3rdparty/chromium -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -march=armv6 -mfloat-abi=hard -mfpu=vfp -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -g0 -fvisibility=hidden -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -fno-delete-null-pointer-checks -Wno-narrowing -fno-exceptions -fno-rtti --sysroot=../../../../recipe-sysroot -fvisibility-inlines-hidden -c gen/base/base_jumbo_37.cc -o obj/base/base/base_jumbo_37.o
| {standard input}: Assembler messages:
| {standard input}:2802: Error: selected processor does not support `yield' in ARM mode

I tried older versions of Qt (sumo branch), it fails in different place, but the error is the same: selected processor does not support ``yield' in ARM mode. Meanwhile, build for raspberrypi3 succeeds.

libqofono missing include dir installation

Hello,
I want to be able use libqofono with my Qt installation in Yocto.
Normally, what you would do, afaik, is you would add :

IMAGE_INSTALL_append = " libqofono libqofono-tests" in your image,
and TASK_TOOLCHAIN_TARGET_append = " libqofono-dev " to your SDK,

which means that libqofono-dev should install include directories to /usr/include in order to be able to use it by Yocto's conventional SDK.

As far as I could see this is missing in the recent libqofono recipe, it was available in the previous version:
https://git.congatec.com/yocto/meta-openembedded/blob/2fee321b5b70d3332f7e2c6ea50116017954ae00/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb

I would be glad if someone could give me pointers as to how to install and use this library properly in Yocto, or make the suggested changes to comply with the Yocto SDK.

Thanks in advance.

SRC_URI pointing to local repo not working

I have qt source code downloaded into a local repo . I have written a qtbase_git.bbappend and put the SRC_URI to point to the local git repo. the folder structure under git is
Source
Source/qtbase
Source/qtdecalarative etc..
I have updated Workdirectory
S= ${WORKDIR}/git/${QT_MODULE}
but it doesnot work.
I even wrote a do_unpack_append instead of changing S that copy qtbase folder directly on git folder.
What change do we need to make to get our local repo that has all module installed under single git repo to utilized meta_qt5 for yocto build ?

module "QtMultimedia" is not installed

Embedded linux board with iMX6ULL, I added following items to my image:

   qtbase \
   qtbase-plugins \
   qtserialport \
   qt5-env \
   libxkbcommon \
   qtquickcontrols \
   qtquickcontrols2 \
   qtmultimedia \
   qtmultimedia-plugins \
   qtmultimedia-qmlplugins \
   gstreamer1.0 \
   gstreamer1.0-libav \
   gstreamer1.0-plugins-good \
   gstreamer1.0-plugins-bad \
   gstreamer1.0-plugins-imx \

Building qtbase with:

PACKAGECONFIG_append = " no-opengl accessibility fontconfig linuxfb libinput xkbcommon"
PACKAGECONFIG_remove = " examples tests gbm eglfs gl gles2 kms"

and qtmultimedia with:

PACKAGECONFIG_append = "gstreamer"

camera example with Qt5 widgets works properly.
declarative camera demo or any other QML example with multimedia module doesn't work because of following error:

QQmlApplicationEngine failed to load component
qrc:/main.qml:3 module "QtMultimedia" is not installed

In /usr/lib/qml there are no QtMultimedia related files:

> ls /usr/lib/qml/
Qt  QtQml  QtQuick  QtQuick.2  QtTest  builtins.qmltypes

also

>  opkg files qtmultimedia-qmlplugins
Package qtmultimedia-qmlplugins (5.12.3+git0+64981aee3b-r0) is installed on root and has the following files:

returns no files installed.
How to build QML multimedia plugins with Yocto?

sdk generationg Postinstall failing on qtbase-tools due to rescent commit

Bad commit below has caused sdk generation to fail on the post install with the error stated below.
Working - bd4b0cd
Bad - 7fdddb6

ERROR: arthrex-v2-base-qt-image-1.0-r0 do_populate_sdk: Postinstall scriptlets of ['qtbase-tools'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget_${PN} ().
Deferring to first boot via 'exit 1' is no longer supported.
Details of the failure are in /home/rrengifo/yocto/nano/poky/build-nanoscope/tmp/work/nanoscope-oe-linux-gnueabi/arthrex-v2-base-qt-image/1.0-r0/temp/log.do_populate_sdk.
ERROR: arthrex-v2-base-qt-image-1.0-r0 do_populate_sdk: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /home/rrengifo/yocto/nano/poky/build-nanoscope/tmp/work/nanoscope-oe-linux-gnueabi/arthrex-v2-base-qt-image/1.0-r0/temp/log.do_populate_sdk.45247
ERROR: Task (/home/rrengifo/yocto/nano/poky/build-nanoscope/../meta-act/arthrex/images/arthrex-v2-base-qt-image.bb:do_populate_sdk) failed with exit code '1'

qtwebengine requires 32 bit host environment

When trying to build qtwebengine on a 64 bit system for ARM, bitbake fails with

| ...hosttools/g++ ...  -m32 -msse2 -mfpmath=sse -mmmx -o v8_snapshot/obj/third_party/icu/bundled_icui18n/decContext.o
| In file included from /usr/include/features.h:452,
|                  from /usr/include/bits/libc-header-start.h:33,
|                  from /usr/include/string.h:26,
|                  from ../../../../git/src/3rdparty/chromium/third_party/icu/source/i18n/decContext.cpp:25:
| /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory
|  # include <gnu/stubs-32.h>

src/buildtools/configure_host.pro causes the 64 to 32 bit "downgrade" by

contains(GN_TARGET_CPU, "arm")|contains(GN_TARGET_CPU, "mipsel")|contains(GN_TARGET_CPU, "x86") {
    # The v8 snapshot need a host that matches bitwidth, so we build makesnapshot to 32-bit variants of host.
    contains(GN_V8_HOST_CPU, x64): GN_V8_HOST_CPU = "x86"

Seen in "thud" branch; rev 201fcf2

/usr/lib kicks in when compiling nativesdk-qttools

Trying to compile native sdk from warrior branch.

qttools-native was build successfully.
I have linking errors when trying to build nativesdk-qttools:

linking ../../bin/qdoc
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: warning: library search path "/usr/lib" is unsafe for cross-compilation
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: warning: libicuuc.so.64, needed by /usr/lib/../lib/../lib/libxml2.so.2, not found (try using -rpath or -rpath-link)
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `ucnv_open_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `ucnv_close_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `ucnv_setFromUCallBack_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `ucnv_setToUCallBack_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `UCNV_TO_U_CALLBACK_STOP_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `UCNV_FROM_U_CALLBACK_STOP_64'
| /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/bin/x86_64-pokysdk-linux/../../libexec/x86_64-pokysdk-linux/gcc/x86_64-pokysdk-linux/8.3.0/ld: /usr/lib/../lib/../lib/libxml2.so.2: undefined reference to `ucnv_convertEx_64'
| collect2: error: ld returned 1 exit status

It seems that somehow makefile for qtdoc contains wrong LD_PATH:

tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/build/src/qdoc/Makefile:

LINK          = @echo linking $@ && x86_64-pokysdk-linux-g++  --sysroot=/home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot
LFLAGS        = -Wl,-O1 -Wl,-O1 -Wl,--gc-sections -Wl,-rpath,/usr/lib
LIBS          = $(SUBLIBS) -L/usr/lib -lclang -lQt5QmlDevTools /home/zork/data/yocto-wallscreen-build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot/opt/poky/2.7.1/sysroots/x86_64-pokysdk-linux/usr/lib/libQt5Core.so -lQt5Bootstrap /home/zork/data/yocto-wallscr

Because of this linker is trying to link with my host libxml2, which has lzma and libicuuc compiled in.

There is no libxml2.so binaries in sysroot directory:

tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qttools/5.12.3+gitAUTOINC+1f8d498752-r0/recipe-sysroot-native/usr/lib

Is it a bug? Is there any way to track from what included /usr/lib path in this Makefile?

qtwayland generated header files do not get installed

Qt 5.11.3 and 5.12 versions, current thud and master branches respectively, both suffer from a regression in wayland header file handling -- files generated by wayland scanner during the qtwayland build get skipped in the install. This breaks other projects trying to build against qtwayland

https://bugreports.qt.io/browse/QTBUG-71340

There was a change in handling of the wayland header files between Qt 5.11.1 (last release where it worked) and later versions: there used to be custom install rules for those headers in mkspecs/features/wayland-scanner.prf, but they got removed in qtbase commit a7730793becc. The claim in that commit was that

Generated headers can now be installed using inject_headers and private_headers instead.
however this theory about using inject_headers and private_headers mechanism to install those generated headers wasn't quite working out in practice -- the install and uninstall rules did not end up in the corresponding Makefiles when building the qtwayland recipe.

It turns out that normally qmake expects that header files to be installed will already exist at the time when Makefiles are being generated. Clearly this isn't true for headers created by wayland scanner.

I am currently testing a workaround that is likely not upstreamable: adding "no_check_exist" to private_headers.CONFIG in mkspecs/featuers/qt_installs.prf (since that is the qmake target where the missing qtwayland headers end up being listed).

Are you interested in a pull request for this patch, if it fixes the qtwayland install and doesn't break the other module builds?

python-pyqt5 error in rocko branch

i am using rocko branch and compiling python-pyqt5. its getting below error.
failed to create a makefile from PyQt5.pro. | .8.2-r0/PyQt5_gpl-5.8.2/QtNetwork/QtNetwork.pro | Reading /home/yocto/build/tmp/work/cortexa9hf-neonlinux-gnueabi/python-pyqt5/5.8.2-r0/PyQt5_gpl-5.8.2/QtWidgets/QtWidgets.pro | Project ERROR: Unknown module(s) in QT: widgets
why i am getting this issue. is there any dependencies issue. i am fresher to work on qt5.

packagegroup-qt5-qtcreator-debug build error on "rocko" branch

Build error when trying to build image on "rocko" branch with packagegroup-qt5-qtcreator-debug.

Collected errors:

  • Solver encountered 1 problem(s):
  • Problem 1/1:
    • nothing provides qtdeclarative-plugins needed by packagegroup-qt5-qtcreator-debug-1.0-r0.all
  • Solution 1:
    • do not ask to install a package providing packagegroup-qt5-qtcreator-debug

As "rocko" is using Qt 5.9.7 commit 0fd9104 should be also merged to this branch.

Fails to build rootfs

package hob-image-1.0r0 / task do_rootfs fails with this error:

error: Failed dependencies:
qtjsbackend = 5.0.0-r0.0 is needed by qtjsbackend-dev-5.0.0-r0.0.armv7a_vfp_neon
libQt5Qml.so.5 is needed by qtdeclarative-tools-5.0.0-r0.0.armv7a_vfp_neon
libQt5Quick.so.5 is needed by qtdeclarative-tools-5.0.0-r0.0.armv7a_vfp_neon
libQt5QuickTest.so.5 is needed by qtdeclarative-tools-5.0.0-r0.0.armv7a_vfp_neon
qtdeclarative is needed by qtdeclarative-dev-5.0.0-r0.0.armv7a_vfp_neon
libQt5Quick.so.5 is needed by qtdeclarative-qmltooling-5.0.0-r0.0.armv7a_vfp_neon
libQt5Qml.so.5 is needed by qtdeclarative-qmltooling-5.0.0-r0.0.armv7a_vfp_neon

Any idea what could be causing this?

Qt5WebEngineCore.pc: No such file or directory

Setup:

  • meta-qt5 + meta-odroid
  • thud branch
  • DISTRO_FEATURES_append = " x11 opengl "

When I'm trying to build qtwebengine, the following error occurs:

| DEBUG: Executing python function extend_recipe_sysroot
| NOTE: Direct dependencies are ['/home/vagrant/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-support/libcap/libcap_2.25.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-support/icu/icu_62.1.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-support/libevent/libevent_2.1.8.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-multimedia/libpng/libpng_1.6.35.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-graphics/drm/libdrm_2.4.94.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-devtools/bison/bison_3.0.4.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-devtools/ninja/ninja_1.8.2.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-support/nss/nss_3.39.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-graphics/pango/pango_1.42.4.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-devtools/nasm/nasm_2.13.03.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-extended/gperf/gperf_3.1.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-core/glibc/glibc_2.28.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-multimedia/libpng/libpng_1.6.35.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.6.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtlocation_git.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb:do_populate_sysroot', 'virtual:native:/home/vagrant/poky/meta/recipes-support/nspr/nspr_4.19.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-connectivity/openssl/openssl_1.1.1a.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-devtools/python/python-native_2.7.15.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-devtools/gcc/gcc-cross_8.2.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-devtools/quilt/quilt-native_0.65.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-graphics/cairo/cairo_1.14.12.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-support/nss/nss_3.39.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb:do_populate_sysroot', '/home/vagrant/meta-qt5/recipes-qt/qt5/qtbase_git.bb:do_populate_sysroot', '/home/vagrant/poky/meta/recipes-multimedia/webp/libwebp_1.0.0.bb:do_populate_sysroot']
| NOTE: Installed into sysroot: []
| NOTE: Skipping as already exists in sysroot: ['qtdeclarative', 'libcap', 'pixman', 'gcc-runtime', 'icu', 'libevent', 'qtxmlpatterns', 'libpng', 'libdrm', 'bison-native', 'ninja-native', 'nss-native', 'pango', 'nasm-native', 'gperf-native', 'glibc', 'pciutils', 'qtquickcontrols', 'libpng-native', 'qtbase-native', 'pseudo-native', 'alsa-lib', 'fontconfig', 'qtlocation', 'gettext-native', 'nspr-native', 'openssl', 'qtquickcontrols2', 'python-native', 'gcc-cross-aarch64', 'quilt-native', 'cairo', 'nss', 'qtwebchannel', 'perl-native', 'qtbase', 'libwebp', 'zlib', 'util-macros', 'libgcc', 'linux-libc-headers', 'opkg-utils', 'libpciaccess', 'libpthread-stubs', 'gnu-config-native', 'libtool-native', 'gettext-minimal-native', 'autoconf-native', 'xz-native', 'automake-native', 'texinfo-dummy-native', 'flex-native', 're2c-native', 'sqlite3-native', 'zlib-native', 'gobject-introspection', 'harfbuzz', 'fribidi', 'libxft', 'libx11', 'glib-2.0', 'freetype', 'groff-native', 'kmod', 'pkgconfig-native', 'dbus-native', 'expat', 'expat-native', 'openssl-native', 'readline-native', 'db-native', 'bzip2-native', 'gdbm-native', 'mpfr-native', 'gmp-native', 'libmpc-native', 'binutils-cross-aarch64', 'libxrender', 'mesa-gl', 'libxext', 'libxcb', 'libsm', 'sqlite3', 'nspr', 'qtwebsockets', 'dbus', 'libjpeg-turbo', 'libxkbcommon', 'libxi', 'xcb-util-renderutil', 'eudev', 'xcb-util-keysyms', 'xcb-util-image', 'xcb-util-wm', 'm4-native', 'python3', 'libffi', 'autoconf-archive', 'xorgproto', 'xtrans', 'util-linux', 'libpcre', 'bash-completion', 'ncurses-native', 'libxfixes', 'libxdamage', 'libxxf86vm', 'libxau', 'xcb-proto', 'libxdmcp', 'libice', 'update-rc.d', 'shadow-native', 'shadow-sysroot', 'base-passwd', 'base-files', 'shadow', 'initscripts', 'xkeyboard-config', 'xcb-util', 'xz', 'bzip2', 'gdbm', 'libxcrypt', 'readline', 'ncurses', 'attr']
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_install
| NOTE: make -j 4 MAKEFLAGS=-j 4 OE_QMAKE_COMPILER=aarch64-poky-linux-gcc  -fstack-protector-strong  -D_FORTIFY_SOURCE=2  --sysroot=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot OE_QMAKE_CC=aarch64-poky-linux-gcc  -fstack-protector-strong  -D_FORTIFY_SOURCE=2  --sysroot=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot OE_QMAKE_CXX=aarch64-poky-linux-g++  -fstack-protector-strong  -D_FORTIFY_SOURCE=2  --sysroot=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot OE_QMAKE_CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0=/usr/src/debug/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0 -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot= -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot-native=  OE_QMAKE_CXXFLAGS= -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0=/usr/src/debug/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0 -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot= -fdebug-prefix-map=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot-native=  -fvisibility-inlines-hidden OE_QMAKE_LINK=aarch64-poky-linux-g++  -fstack-protector-strong  -D_FORTIFY_SOURCE=2  --sysroot=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot OE_QMAKE_LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now OE_QMAKE_AR=aarch64-poky-linux-ar OE_QMAKE_STRIP=echo OE_QMAKE_INCDIR_QT=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/recipe-sysroot//usr/include install INSTALL_ROOT=/home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/image
| make: Nothing to be done for 'install'.
| sed: can't read /home/vagrant/build/tmp/work/aarch64-poky-linux/qtwebengine/5.11.3+gitAUTOINC+18412af977_2095a35f30-r0/image/usr/lib/pkgconfig/Qt5WebEngineCore.pc: No such file or directory

For some reason compilation is being skipped by bitbake, and then do_install fails. I found this question on SO: https://stackoverflow.com/questions/36143564/qt-webengine-5-6-recipe-do-install but the answer didn't help.

python3-pyqt5: import error

I'm building an image with PyQt5 installed. On the target machine I get import error:

root@raspberrypi3:~# python3
Python 3.5.6 (default, Jan 23 2019, 13:02:59) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5'

This caused by the fact that PyQt5 is installed to /usr/lib/python3.5m/site-packages/ when all other python packages are in /usr/lib/python3.5/site-packages/ (without m suffix) and it could be fixed by setting the proper path in pyqt.cfg:

pyqt_module_dir = ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages

instead of

pyqt_module_dir = ${D}/${libdir}/python${PYTHON_BASEVERSION}${PYTHON_ABI}/site-packages

Is there a bug or I'm misundestanding something?

Layers used:
meta-oe thud:6094ae18c8a35e5cc9998ac39869390d7f3bb1e2
meta-qt5 thud:201fcf27cf07d60b7d6ab89c7dcefe2190217745

qtbase-native do_configure fails without zlib1g-dev on the build host (5.12 branch)

qtbase-native_git.bb:do_configure fails when zlib1g-dev is not installed on the PC.

My setup:

  • Ubuntu 18.04 build host
  • zlib1g-dev not installed
  • poky thud
  • meta-qt5 5.12

The do_configure step fails with:

Command line: -opensource -confirm-license -sysroot /home/ceresoli/temp/bug-meta-qt5/poky/build/tmp/work/x86_64-linux/qtbase-native/5.12.1+gitAUTOINC+0c49815333-r0/recipe-sysroot-native -no-gcc-sysroot -system-zlib [...]
...
Checking for zlib...
Trying source 0 (type inline) of library zlib ...
=> source failed condition 'config.msvc'.
Trying source 1 (type inline) of library zlib ...
=> source failed condition 'config.msvc'.
Trying source 2 (type inline) of library zlib ...
None of [libz.so libz.a] found in [] and global paths.
=> source produced no result.
Trying source 3 (type inline) of library zlib ...
=> source failed condition 'config.wasm'.
test config.qtbase.libraries.zlib FAILED
...
Using system zlib ...................... no
...
ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed.

Building qtwebengine doesn't honor PARALLEL_MAKE

My build system "only" has 8 Gigs of RAM and building qtwebengine is a constant challange due to its high memory usage. My system has eight CPUs according to the automatic BB_NUMBER_THREADS and PARALLEL_MAKE and in the past I had reduced both to six so the build wouldn't OOM. With Thud and 5.11 those crashes are back, though, and after setting PARALLEL_MAKE to two, I have noticed that the qtwebengine build doesn't seem to honor that:

├─qtwebengine:com───run.do_compile.───make───sh───make───sh───make───sh───make───ninja───10*[sh───arm-target-linu─┬─as]
│                                                                                                                 └─cc1plus]

Please convince ninja to reduce the number of processes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.