aboutsummaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2018-04-25 21:03:54 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2019-03-24 11:13:28 +0100
commitc44fc9b620f762ce68441f834e1a157288a488e6 (patch)
tree6d6c8d22c68c02b30e5f9240fa8fe84015e3586d /meta
parentc639a01c7a3ecf1a127fa43fa780fd6328c1367e (diff)
downloadopenembedded-core-contrib-c44fc9b620f762ce68441f834e1a157288a488e6.tar.gz
openembedded-core-contrib-c44fc9b620f762ce68441f834e1a157288a488e6.tar.bz2
openembedded-core-contrib-c44fc9b620f762ce68441f834e1a157288a488e6.zip
qt5: import recipes which often reproduce Yocto #12434 from meta-qt5
* just temporary to make it easier to reproduce, import big part of meta-qt5 * qtquickcontrols-5.9.5+gitAUTOINC+75e9561d4f-r0 do_package_qa: QA Issue: qtquickcontrols: /qtquickcontrols-qmlplugins/usr/lib/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qml is owned by uid 1101, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] * to reproduce this you can try to use something like this: export COMP=qtquickcontrols; for i in `seq -w 1 999`; do echo $i; bitbake -v -v -DDDD -f -c package ${COMP} 2>${COMP}-logerr.$i >${COMP}-log.$i; bitbake -v -v -DDDD -f -c package_qa ${COMP} 2>${COMP}-logerr.qa.$i >${COMP}-log.qa.$i || { cp -ra BUILD/work/i586-oe-linux/${COMP}/ ${COMP}-workdir-$i; bitbake -c cleansstate ${COMP} ; } done Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/qmake5.bbclass19
-rw-r--r--meta/classes/qmake5_base.bbclass252
-rw-r--r--meta/classes/qmake5_paths.bbclass52
-rw-r--r--meta/conf/bitbake.conf5
-rw-r--r--meta/recipes-qt/qt5/nativesdk-qt5.inc12
-rw-r--r--meta/recipes-qt/qt5/nativesdk-qtbase_git.bb215
-rw-r--r--meta/recipes-qt/qt5/ptest/run-ptest6
-rw-r--r--meta/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch51
-rw-r--r--meta/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch44
-rw-r--r--meta/recipes-qt/qt5/qt3d_git.bb42
-rw-r--r--meta/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch91
-rw-r--r--meta/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch35
-rw-r--r--meta/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch38
-rw-r--r--meta/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch30
-rw-r--r--meta/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in10
-rw-r--r--meta/recipes-qt/qt5/qt5-creator_3.5.1.bb93
-rw-r--r--meta/recipes-qt/qt5/qt5-git.inc17
-rw-r--r--meta/recipes-qt/qt5/qt5-native.inc12
-rw-r--r--meta/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb27
-rw-r--r--meta/recipes-qt/qt5/qt5-ptest.inc22
-rw-r--r--meta/recipes-qt/qt5/qt5.inc208
-rw-r--r--meta/recipes-qt/qt5/qtbase-native_git.bb140
-rw-r--r--meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch133
-rw-r--r--meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch86
-rw-r--r--meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch36
-rw-r--r--meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch34
-rw-r--r--meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch25
-rw-r--r--meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch63
-rw-r--r--meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch25
-rw-r--r--meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch60
-rw-r--r--meta/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch69
-rw-r--r--meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch32
-rw-r--r--meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch25
-rw-r--r--meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch33
-rw-r--r--meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch28
-rw-r--r--meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch27
-rw-r--r--meta/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake1
-rw-r--r--meta/recipes-qt/qt5/qtbase_git.bb247
-rw-r--r--meta/recipes-qt/qt5/qtcanvas3d_git.bb13
-rw-r--r--meta/recipes-qt/qt5/qtcharts_git.bb15
-rw-r--r--meta/recipes-qt/qt5/qtconnectivity_git.bb22
-rw-r--r--meta/recipes-qt/qt5/qtdatavis3d_git.bb11
-rw-r--r--meta/recipes-qt/qt5/qtdeclarative_git.bb35
-rw-r--r--meta/recipes-qt/qt5/qtenginio_git.bb16
-rw-r--r--meta/recipes-qt/qt5/qtgamepad_git.bb17
-rw-r--r--meta/recipes-qt/qt5/qtgraphicaleffects_git.bb21
-rw-r--r--meta/recipes-qt/qt5/qtimageformats_git.bb29
-rw-r--r--meta/recipes-qt/qt5/qtknx_git.bb14
-rw-r--r--meta/recipes-qt/qt5/qtlocation_git.bb37
-rw-r--r--meta/recipes-qt/qt5/qtmqtt_git.bb14
-rw-r--r--meta/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch100
-rw-r--r--meta/recipes-qt/qt5/qtmultimedia_git.bb39
-rw-r--r--meta/recipes-qt/qt5/qtnetworkauth_git.bb12
-rw-r--r--meta/recipes-qt/qt5/qtpurchasing_git.bb13
-rw-r--r--meta/recipes-qt/qt5/qtquick1_git.bb29
-rw-r--r--meta/recipes-qt/qt5/qtquickcontrols2_git.bb13
-rw-r--r--meta/recipes-qt/qt5/qtquickcontrols_git.bb20
-rw-r--r--meta/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch37
-rw-r--r--meta/recipes-qt/qt5/qtremoteobjects_git.bb29
-rw-r--r--meta/recipes-qt/qt5/qtscript_git.bb33
-rw-r--r--meta/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch28
-rw-r--r--meta/recipes-qt/qt5/qtscxml_git.bb24
-rw-r--r--meta/recipes-qt/qt5/qtsensors_git.bb15
-rw-r--r--meta/recipes-qt/qt5/qtserialbus_git.bb14
-rw-r--r--meta/recipes-qt/qt5/qtserialport_git.bb18
-rw-r--r--meta/recipes-qt/qt5/qtsvg_git.bb16
-rw-r--r--meta/recipes-qt/qt5/qtsystems_git.bb34
-rw-r--r--meta/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch48
-rw-r--r--meta/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch60
-rw-r--r--meta/recipes-qt/qt5/qttools/run-ptest4
-rw-r--r--meta/recipes-qt/qt5/qttools_git.bb41
-rw-r--r--meta/recipes-qt/qt5/qttranslations_git.bb109
-rw-r--r--meta/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch25
-rw-r--r--meta/recipes-qt/qt5/qtvirtualkeyboard_git.bb56
-rw-r--r--meta/recipes-qt/qt5/qtwayland/0001-fix-build-without-xkbcommon-evdev.patch68
-rw-r--r--meta/recipes-qt/qt5/qtwayland_git.bb53
-rw-r--r--meta/recipes-qt/qt5/qtwebchannel_git.bb15
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0001-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch23
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0001-chromium-Force-host-toolchain-configuration.patch33
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0002-Include-dependency-to-QCoreApplication-translate.patch23
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0002-chromium-workaround-for-too-long-.rps-file-name.patch42
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0003-Force-host-toolchain-configuration.patch71
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0003-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch33
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0004-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch67
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0004-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch37
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0005-chromium-musl-include-fcntl.h-for-loff_t.patch22
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0005-musl-link-against-libexecinfo.patch24
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0006-chromium-musl-use-off64_t-instead-of-the-internal-__.patch62
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0007-chromium-musl-linux-glibc-make-the-distinction.patch23
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0008-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch24
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0009-chromium-musl-Use-correct-member-name-__si_fields-fr.patch24
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Match-syscalls-to-match-musl.patch44
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch79
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch26
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Adjust-default-pthread-stack-size.patch47
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch22
-rw-r--r--meta/recipes-qt/qt5/qtwebengine/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch23
-rw-r--r--meta/recipes-qt/qt5/qtwebengine_git.bb169
-rw-r--r--meta/recipes-qt/qt5/qtwebkit-examples_git.bb22
-rw-r--r--meta/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch27
-rw-r--r--meta/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch35
-rw-r--r--meta/recipes-qt/qt5/qtwebkit_git.bb100
-rw-r--r--meta/recipes-qt/qt5/qtwebsockets_git.bb14
-rw-r--r--meta/recipes-qt/qt5/qtwebview_git.bb22
-rw-r--r--meta/recipes-qt/qt5/qtx11extras_git.bb16
-rw-r--r--meta/recipes-qt/qt5/qtxmlpatterns_git.bb20
106 files changed, 4716 insertions, 0 deletions
diff --git a/meta/classes/qmake5.bbclass b/meta/classes/qmake5.bbclass
new file mode 100644
index 0000000000..1a960e8f32
--- /dev/null
+++ b/meta/classes/qmake5.bbclass
@@ -0,0 +1,19 @@
+#
+# QMake variables for Qt
+#
+inherit qmake5_base
+
+QT5TOOLSDEPENDS ?= "qtbase-native"
+DEPENDS_prepend = "${QT5TOOLSDEPENDS} "
+
+do_configure() {
+ qmake5_base_do_configure
+}
+
+do_install() {
+ qmake5_base_do_install
+}
+
+do_install_class-native() {
+ qmake5_base_native_do_install
+}
diff --git a/meta/classes/qmake5_base.bbclass b/meta/classes/qmake5_base.bbclass
new file mode 100644
index 0000000000..8f1d143a30
--- /dev/null
+++ b/meta/classes/qmake5_base.bbclass
@@ -0,0 +1,252 @@
+# hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds
+XPLATFORM_toolchain-clang = "linux-oe-clang"
+XPLATFORM ?= "linux-oe-g++"
+
+OE_QMAKE_PLATFORM_NATIVE = "${XPLATFORM}"
+OE_QMAKE_PLATFORM = "${XPLATFORM}"
+
+# Add -d to show debug output from every qmake call, but it prints *a lot*, better to add it only to debugged recipe
+OE_QMAKE_DEBUG_OUTPUT ?= ""
+
+# Look through supplied directories recursively by default
+OE_QMAKE_RECURSIVE ?= "-r"
+
+# Paths in .prl files contain SYSROOT value
+SSTATE_SCAN_FILES += "*.pri *.prl *.prf"
+
+# drop default -e and add needed OE_QMAKE vars explicitly
+# the problem is that when generated Makefile has:
+# CFLAGS = -pipe $(OE_QMAKE_CFLAGS) -O2 -pthread -D_REENTRANT -Wall -W -fPIC $(DEFINES)
+# then OE_QMAKE_CFLAGS are exported and used correctly, but then whole CFLAGS is overwritten from env (and -fPIC lost and build fails)
+EXTRA_OEMAKE = " \
+ MAKEFLAGS='${PARALLEL_MAKE}' \
+ OE_QMAKE_COMPILER='${OE_QMAKE_COMPILER}' \
+ OE_QMAKE_CC='${OE_QMAKE_CC}' \
+ OE_QMAKE_CXX='${OE_QMAKE_CXX}' \
+ OE_QMAKE_CFLAGS='${OE_QMAKE_CFLAGS}' \
+ OE_QMAKE_CXXFLAGS='${OE_QMAKE_CXXFLAGS}' \
+ OE_QMAKE_LINK='${OE_QMAKE_LINK}' \
+ OE_QMAKE_LDFLAGS='${OE_QMAKE_LDFLAGS}' \
+ OE_QMAKE_AR='${OE_QMAKE_AR}' \
+ OE_QMAKE_STRIP='${OE_QMAKE_STRIP}' \
+ OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \
+"
+
+OE_QMAKE_QMAKE = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake"
+export OE_QMAKE_COMPILER = "${CC}"
+export OE_QMAKE_CC = "${CC}"
+export OE_QMAKE_CFLAGS = "${CFLAGS}"
+export OE_QMAKE_CXX = "${CXX}"
+export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}"
+export OE_QMAKE_LINK = "${CXX}"
+export OE_QMAKE_LDFLAGS = "${LDFLAGS}"
+export OE_QMAKE_AR = "${AR}"
+export OE_QMAKE_STRIP = "echo"
+
+# qmake reads if from shell environment
+export OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf"
+
+inherit qmake5_paths remove-libtool
+
+generate_target_qt_config_file() {
+ qtconf="$1"
+ cat > "${qtconf}" <<EOF
+[Paths]
+Prefix = ${OE_QMAKE_PATH_PREFIX}
+Headers = ${OE_QMAKE_PATH_HEADERS}
+Libraries = ${OE_QMAKE_PATH_LIBS}
+ArchData = ${OE_QMAKE_PATH_ARCHDATA}
+Data = ${OE_QMAKE_PATH_DATA}
+Binaries = ${OE_QMAKE_PATH_BINS}
+LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}
+Plugins = ${OE_QMAKE_PATH_PLUGINS}
+Imports = ${OE_QMAKE_PATH_IMPORTS}
+Qml2Imports = ${OE_QMAKE_PATH_QML}
+Translations = ${OE_QMAKE_PATH_TRANSLATIONS}
+Documentation = ${OE_QMAKE_PATH_DOCS}
+Settings = ${OE_QMAKE_PATH_SETTINGS}
+Examples = ${OE_QMAKE_PATH_EXAMPLES}
+Tests = ${OE_QMAKE_PATH_TESTS}
+HostBinaries = ${OE_QMAKE_PATH_BINS}
+HostData = ${OE_QMAKE_PATH_ARCHDATA}
+HostLibraries = ${OE_QMAKE_PATH_LIBS}
+HostSpec = ${OE_QMAKE_PLATFORM}
+TargetSpec = ${OE_QMAKE_PLATFORM}
+ExternalHostBinaries = ${OE_QMAKE_PATH_BINS}
+Sysroot =
+EOF
+}
+
+do_generate_qt_config_file() {
+ generate_qt_config_file_paths
+ generate_qt_config_file_effective_paths
+}
+
+generate_qt_config_file_paths() {
+ cat > ${OE_QMAKE_QTCONF_PATH} <<EOF
+[Paths]
+Prefix = ${OE_QMAKE_PATH_PREFIX}
+Headers = ${OE_QMAKE_PATH_HEADERS}
+Libraries = ${OE_QMAKE_PATH_LIBS}
+ArchData = ${OE_QMAKE_PATH_ARCHDATA}
+Data = ${OE_QMAKE_PATH_DATA}
+Binaries = ${OE_QMAKE_PATH_BINS}
+LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}
+Plugins = ${OE_QMAKE_PATH_PLUGINS}
+Imports = ${OE_QMAKE_PATH_IMPORTS}
+Qml2Imports = ${OE_QMAKE_PATH_QML}
+Translations = ${OE_QMAKE_PATH_TRANSLATIONS}
+Documentation = ${OE_QMAKE_PATH_DOCS}
+Settings = ${OE_QMAKE_PATH_SETTINGS}
+Examples = ${OE_QMAKE_PATH_EXAMPLES}
+Tests = ${OE_QMAKE_PATH_TESTS}
+HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
+HostData = ${OE_QMAKE_PATH_HOST_DATA}
+HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
+HostSpec = ${OE_QMAKE_PLATFORM_NATIVE}
+TargetSpec = ${OE_QMAKE_PLATFORM}
+ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
+Sysroot = ${STAGING_DIR_TARGET}
+EOF
+}
+
+generate_qt_config_file_effective_paths() {
+ cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
+[EffectivePaths]
+HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
+HostData = ${OE_QMAKE_PATH_HOST_DATA}
+HostPrefix = ${STAGING_DIR_NATIVE}
+EOF
+}
+#
+# Allows to override following values (as in version 5.0.1)
+# Prefix The default prefix for all paths.
+# Documentation The location for documentation upon install.
+# Headers The location for all headers.
+# Libraries The location of installed libraries.
+# LibraryExecutables The location of installed executables required by libraries at runtime.
+# Binaries The location of installed Qt binaries (tools and applications).
+# Plugins The location of installed Qt plugins.
+# Imports The location of installed QML extensions to import (QML 1.x).
+# Qml2Imports The location of installed QML extensions to import (QML 2.x).
+# ArchData The location of general architecture-dependent Qt data.
+# Data The location of general architecture-independent Qt data.
+# Translations The location of translation information for Qt strings.
+# Examples The location for examples upon install.
+# Tests The location of installed Qt testcases.
+# Settings The location for Qt settings. Not applicable on Windows.
+
+# For bootstrapped
+# Sysroot The location of target sysroot
+# HostPrefix The prefix for host tools when cross compiling (building tools for both systems)
+# HostBinaries The location where to install host tools
+# HostData The location where to install host data
+# ExternalHostBinaries The location where we already have host tools (when cross compiling, but reusing existing tools)
+# TargetSpec The location where to install target mkspec
+# HostSpec The location where to install host mkspec
+
+# qmake works fine with separate B, use it by default
+SEPB = "${WORKDIR}/build"
+B = "${SEPB}"
+
+CONFIGURESTAMPFILE = "${WORKDIR}/qmake5_base_configure.sstate"
+
+qmake5_base_preconfigure() {
+ if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
+ if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${S}" != "${B}" ]; then
+ echo "Previously configured separate build directory detected, cleaning ${B}"
+ rm -rf ${B}
+ mkdir ${B}
+ fi
+ fi
+}
+
+qmake5_base_postconfigure(){
+ if [ -n "${CONFIGURESTAMPFILE}" ]; then
+ echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
+ fi
+}
+
+EXTRAQCONFFUNCS ??= ""
+
+do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}"
+do_configure[postfuncs] += "qmake5_base_postconfigure"
+
+addtask generate_qt_config_file after do_patch before do_configure
+
+qmake5_base_do_configure () {
+ if [ -z "${QMAKE_PROFILES}" ]; then
+ PROFILES="`ls ${S}/*.pro`"
+ else
+ PROFILES="${QMAKE_PROFILES}"
+ bbnote "qmake using profiles: '${QMAKE_PROFILES}'"
+ fi
+
+ if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then
+ AFTER="-after"
+ QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}"
+ bbnote "qmake postvar substitution: '${EXTRA_QMAKEVARS_POST}'"
+ fi
+
+ if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then
+ QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}"
+ bbnote "qmake prevar substitution: '${EXTRA_QMAKEVARS_PRE}'"
+ fi
+
+ if [ ! -z "${EXTRA_QMAKEVARS_CONFIGURE}" ]; then
+ QMAKE_VARSUBST_CONFIGURE="${EXTRA_QMAKEVARS_CONFIGURE}"
+ bbnote "qmake configure substitution: '${EXTRA_QMAKEVARS_CONFIGURE}'"
+ fi
+
+ # for config.tests to read this
+ export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}"
+
+ CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST -- $QMAKE_VARSUBST_CONFIGURE"
+ ${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST -- $QMAKE_VARSUBST_CONFIGURE || die "Error calling $CMD"
+}
+
+qmake5_base_native_do_install() {
+ oe_runmake install INSTALL_ROOT=${D}
+ find "${D}" -ignore_readdir_race -name "*.la" -delete
+ if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>/dev/null; then
+ sed -i "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" ${D}${libdir}/pkgconfig/Qt5*.pc
+ fi
+}
+
+qmake5_base_fix_install() {
+ STAGING_PATH=$1
+ if [ -d ${D}${STAGING_PATH} ] ; then
+ echo "Some files are installed in wrong directory ${D}${STAGING_PATH}"
+ cp -ra ${D}${STAGING_PATH}/* ${D}
+ rm -rf ${D}${STAGING_PATH}
+ # remove empty dirs
+ TMP=`dirname ${D}${STAGING_PATH}`
+ while test ${TMP} != ${D}; do
+ rmdir ${TMP}
+ TMP=`dirname ${TMP}`;
+ done
+ fi
+}
+
+qmake5_base_do_install() {
+ # Fix install paths for all
+ find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g"
+ find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_HOST},(INSTALL_ROOT),g"
+ find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE},(INSTALL_ROOT),g"
+
+ oe_runmake install INSTALL_ROOT=${D}
+
+ # everything except HostData and HostBinaries is prefixed with sysroot value,
+ # but we cannot remove sysroot override, because that's useful for pkg-config etc
+ # concurrent builds may cause qmake to regenerate Makefiles and override the above
+ # sed changes. If that happens, move files manually to correct location.
+ qmake5_base_fix_install ${STAGING_DIR_TARGET}
+ qmake5_base_fix_install ${STAGING_DIR_HOST}
+ qmake5_base_fix_install ${STAGING_DIR_NATIVE}
+
+ if ls ${D}${libdir}/pkgconfig/*.pc >/dev/null 2>/dev/null; then
+ sed -i ${D}${libdir}/pkgconfig/*.pc \
+ -e "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" \
+ -e "s@${STAGING_DIR_TARGET}@@g"
+ fi
+}
diff --git a/meta/classes/qmake5_paths.bbclass b/meta/classes/qmake5_paths.bbclass
new file mode 100644
index 0000000000..e1101a9c48
--- /dev/null
+++ b/meta/classes/qmake5_paths.bbclass
@@ -0,0 +1,52 @@
+# If your distribution supports only qt5, or you don't care
+# about conflicts with qt4, then you can add qmake5_paths.bbclass
+# to your distro layer and flatten all QT_DIR_NAME directories
+
+QT_DIR_NAME ?= "/qt5"
+
+# This is useful for target recipes to reference native mkspecs
+QMAKE_MKSPEC_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}${QT_DIR_NAME}"
+QMAKE_MKSPEC_PATH_TARGET = "${STAGING_LIBDIR}${QT_DIR_NAME}"
+
+QMAKE_MKSPEC_PATH = "${QMAKE_MKSPEC_PATH_TARGET}"
+QMAKE_MKSPEC_PATH_class-native = "${QMAKE_MKSPEC_PATH_NATIVE}"
+QMAKE_MKSPEC_PATH_class-nativesdk = "${QMAKE_MKSPEC_PATH_NATIVE}"
+
+OE_QMAKE_PATH_PREFIX = "${prefix}"
+OE_QMAKE_PATH_HEADERS = "${includedir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_LIBS = "${libdir}"
+OE_QMAKE_PATH_ARCHDATA = "${libdir}"
+OE_QMAKE_PATH_DATA = "${datadir}"
+OE_QMAKE_PATH_BINS = "${bindir}"
+OE_QMAKE_PATH_LIBEXECS = "${libdir}${QT_DIR_NAME}/libexec"
+OE_QMAKE_PATH_PLUGINS = "${libdir}${QT_DIR_NAME}/plugins"
+OE_QMAKE_PATH_IMPORTS = "${libdir}${QT_DIR_NAME}/imports"
+OE_QMAKE_PATH_QML = "${libdir}${QT_DIR_NAME}/qml"
+OE_QMAKE_PATH_TRANSLATIONS = "${datadir}/translations"
+OE_QMAKE_PATH_DOCS = "${docdir}"
+OE_QMAKE_PATH_SETTINGS = "${sysconfdir}"
+OE_QMAKE_PATH_EXAMPLES = "${datadir}/examples"
+OE_QMAKE_PATH_TESTS = "${datadir}/tests"
+OE_QMAKE_PATH_HOST_PREFIX = ""
+OE_QMAKE_PATH_HOST_PREFIX_class-target = "${STAGING_DIR_NATIVE}"
+OE_QMAKE_PATH_HOST_BINS = "${bindir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_HOST_DATA = "${QMAKE_MKSPEC_PATH_TARGET}"
+OE_QMAKE_PATH_HOST_LIBS = "${STAGING_LIBDIR}"
+OE_QMAKE_PATH_EXTERNAL_HOST_BINS = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}"
+
+# for qt5 components we're using QT_DIR_NAME subdirectory in more
+# variables, because we don't want conflicts with qt4
+# This block is usefull for components which install their
+# own files without QT_DIR_NAME but need to reference paths e.g.
+# with QT headers
+OE_QMAKE_PATH_QT_HEADERS = "${includedir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_ARCHDATA = "${libdir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_DATA = "${datadir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_BINS = "${bindir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_TRANSLATIONS = "${datadir}${QT_DIR_NAME}/translations"
+OE_QMAKE_PATH_QT_DOCS = "${docdir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_SETTINGS = "${sysconfdir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_QT_EXAMPLES = "${datadir}${QT_DIR_NAME}/examples"
+OE_QMAKE_PATH_QT_TESTS = "${datadir}${QT_DIR_NAME}/tests"
+
+OE_QMAKE_PATH_QT_FONTS = "${OE_QMAKE_PATH_LIBS}/fonts"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 7f8b043cc4..a311405012 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -898,3 +898,8 @@ BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
MLPREFIX ??= ""
MULTILIB_VARIANTS ??= ""
+
+QT_GIT_PROJECT ?= "qt"
+QT_GIT ?= "git://code.qt.io/${QT_GIT_PROJECT}"
+QT_GIT_PROTOCOL ?= "git"
+QT_EDITION ?= "opensource"
diff --git a/meta/recipes-qt/qt5/nativesdk-qt5.inc b/meta/recipes-qt/qt5/nativesdk-qt5.inc
new file mode 100644
index 0000000000..2eb8c1423e
--- /dev/null
+++ b/meta/recipes-qt/qt5/nativesdk-qt5.inc
@@ -0,0 +1,12 @@
+inherit nativesdk qmake5_base
+
+# we don't want conflicts with qt4
+OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}"
+OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}"
+OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}"
+OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}"
+OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}"
+OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}"
+OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}"
+OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}"
+OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}"
diff --git a/meta/recipes-qt/qt5/nativesdk-qtbase_git.bb b/meta/recipes-qt/qt5/nativesdk-qtbase_git.bb
new file mode 100644
index 0000000000..87da66e44f
--- /dev/null
+++ b/meta/recipes-qt/qt5/nativesdk-qtbase_git.bb
@@ -0,0 +1,215 @@
+DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]"
+DEPENDS = "nativesdk-zlib qtbase-native"
+SECTION = "libs"
+HOMEPAGE = "http://qt-project.org"
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \
+ file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+QT_MODULE = "qtbase"
+
+require nativesdk-qt5.inc
+require qt5-git.inc
+
+# it's already included with newer oe-core, but include it here for dylan
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:"
+
+# common for qtbase-native, qtbase-nativesdk and qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-shared
+# 5.10.meta-qt5-shared.2
+SRC_URI += "\
+ file://0001-Add-linux-oe-g-platform.patch \
+ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \
+ file://0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
+ file://0004-configure-bump-path-length-from-256-to-512-character.patch \
+ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \
+ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
+ file://0007-Delete-qlonglong-and-qulonglong.patch \
+ file://0008-Replace-pthread_yield-with-sched_yield.patch \
+ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \
+ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \
+ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \
+ file://0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch \
+"
+
+# common for qtbase-native and nativesdk-qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-native
+# 5.10.meta-qt5-native.2
+SRC_URI += " \
+ file://0013-Always-build-uic-and-qvkgen.patch \
+"
+
+# CMake's toolchain configuration of nativesdk-qtbase
+SRC_URI += " \
+ file://OEQt5Toolchain.cmake \
+"
+
+PACKAGES = "${PN}-tools-dbg ${PN}-tools-dev ${PN}-tools-staticdev ${PN}-tools"
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES_${PN}-tools-dev = " \
+ ${includedir} \
+ ${FILES_SOLIBSDEV} ${libdir}/*.la \
+ ${libdir}/*.prl \
+ ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \
+ ${OE_QMAKE_PATH_LIBS}/*.prl \
+"
+
+FILES_${PN}-tools-staticdev = " \
+ ${OE_QMAKE_PATH_LIBS}/*.a \
+"
+
+FILES_${PN}-tools-dbg = " \
+ ${libdir}/.debug \
+ ${OE_QMAKE_PATH_BINS}/.debug \
+"
+
+FILES_${PN}-tools = " \
+ ${libdir}/lib*${SOLIBS} \
+ ${OE_QMAKE_PATH_BINS}/* \
+ ${SDKPATHNATIVE}/environment-setup.d \
+ ${datadir}/cmake \
+"
+
+# qttools binaries are placed in a subdir of bin in order to avoid
+# collisions with qt4. This would trigger debian.bbclass to rename the
+# package, since it doesn't detect binaries in subdirs. Explicitly
+# disable package auto-renaming for the tools-package.
+DEBIAN_NOAUTONAME_${PN}-tools = "1"
+
+QT_CONFIG_FLAGS += " \
+ -shared \
+ -silent \
+ -no-pch \
+ -no-rpath \
+ -pkg-config \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+# qtbase is exception, as these are used as install path for sysroots
+OE_QMAKE_PATH_HOST_DATA = "${libdir}${QT_DIR_NAME}"
+OE_QMAKE_PATH_HOST_LIBS = "${libdir}"
+
+# for qtbase configuration we need default settings
+# since we cannot set empty set filename to a not existent file
+deltask generate_qt_config_file
+
+do_configure() {
+ # Regenerate header files when they are included in source tarball
+ # Otherwise cmake files don't set PRIVATE_HEADERS correctly
+ rm -rf ${S}/include
+ mkdir -p ${S}/.git || true
+
+ ${S}/configure -v \
+ -${QT_EDITION} -confirm-license \
+ -sysroot ${STAGING_DIR_TARGET} \
+ -no-gcc-sysroot \
+ -system-zlib \
+ -dbus-runtime \
+ -no-libjpeg \
+ -no-libpng \
+ -no-gif \
+ -no-accessibility \
+ -no-cups \
+ -no-gui \
+ -no-qml-debug \
+ -no-sql-mysql \
+ -no-sql-sqlite \
+ -no-opengl \
+ -no-openssl \
+ -no-xcb \
+ -no-feature-bearermanagement \
+ -no-icu \
+ -verbose \
+ -release \
+ -prefix ${OE_QMAKE_PATH_PREFIX} \
+ -bindir ${OE_QMAKE_PATH_BINS} \
+ -libdir ${OE_QMAKE_PATH_LIBS} \
+ -datadir ${OE_QMAKE_PATH_DATA} \
+ -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \
+ -docdir ${OE_QMAKE_PATH_DOCS} \
+ -headerdir ${OE_QMAKE_PATH_HEADERS} \
+ -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \
+ -libexecdir ${OE_QMAKE_PATH_LIBEXECS} \
+ -plugindir ${OE_QMAKE_PATH_PLUGINS} \
+ -importdir ${OE_QMAKE_PATH_IMPORTS} \
+ -qmldir ${OE_QMAKE_PATH_QML} \
+ -translationdir ${OE_QMAKE_PATH_TRANSLATIONS} \
+ -testsdir ${OE_QMAKE_PATH_TESTS} \
+ -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \
+ -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
+ -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
+ -no-glib \
+ -no-iconv \
+ -silent \
+ -nomake examples \
+ -nomake tests \
+ -no-compile-examples \
+ -no-rpath \
+ -platform ${OE_QMAKE_PLATFORM_NATIVE} \
+ -xplatform ${OE_QMAKE_PLATFORM} \
+ ${QT_CONFIG_FLAGS}
+}
+
+do_install() {
+ qmake5_base_do_install
+
+ # remove things unused in nativesdk, we need the headers and libs
+ rm -rf ${D}${datadir} \
+ ${D}/${OE_QMAKE_PATH_PLUGINS} \
+ ${D}${libdir}/cmake \
+ ${D}${libdir}/pkgconfig
+
+ # Install CMake's toolchain configuration
+ mkdir -p ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/
+ install -m 644 ${WORKDIR}/OEQt5Toolchain.cmake ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/
+
+ # Fix up absolute paths in scripts
+ grep -lr /usr/bin/python ${D}${OE_QMAKE_PATH_QT_ARCHDATA}/ | \
+ xargs -r sed -i -e '1s,#!.*python,#! ${USRBINPATH}/env python,'
+}
+
+fakeroot do_generate_qt_environment_file() {
+ mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d/
+ script=${D}${SDKPATHNATIVE}/environment-setup.d/qt5.sh
+
+ echo 'export PATH=${OE_QMAKE_PATH_HOST_BINS}:$PATH' > $script
+ echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script
+ echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script
+ echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script
+ echo 'export OE_QMAKE_CC=$CC' >> $script
+ echo 'export OE_QMAKE_CXX=$CXX' >> $script
+ echo 'export OE_QMAKE_LINK=$CXX' >> $script
+ echo 'export OE_QMAKE_AR=$AR' >> $script
+ echo 'export OE_QMAKE_STRIP=$STRIP' >> $script
+ echo 'export QT_CONF_PATH=${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script
+ echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script
+ echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script
+ echo 'export OE_QMAKE_MOC=${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script
+ echo 'export OE_QMAKE_UIC=${OE_QMAKE_PATH_HOST_BINS}/uic' >> $script
+ echo 'export OE_QMAKE_RCC=${OE_QMAKE_PATH_HOST_BINS}/rcc' >> $script
+ echo 'export OE_QMAKE_QDBUSCPP2XML=${OE_QMAKE_PATH_HOST_BINS}/qdbuscpp2xml' >> $script
+ echo 'export OE_QMAKE_QDBUSXML2CPP=${OE_QMAKE_PATH_HOST_BINS}/qdbusxml2cpp' >> $script
+ echo 'export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
+ echo 'export OE_QMAKE_PATH_HOST_BINS=${OE_QMAKE_PATH_HOST_BINS}' >> $script
+ echo 'export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`${QT_DIR_NAME}/mkspecs/linux-oe-g++' >> $script
+
+ # Use relocable sysroot
+ sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script
+}
+
+do_generate_qt_environment_file[umask] = "022"
+addtask generate_qt_environment_file after do_install before do_package
+
+SRCREV = "6c6ace9d23f90845fd424e474d38fe30f070775e"
diff --git a/meta/recipes-qt/qt5/ptest/run-ptest b/meta/recipes-qt/qt5/ptest/run-ptest
new file mode 100644
index 0000000000..044f834d68
--- /dev/null
+++ b/meta/recipes-qt/qt5/ptest/run-ptest
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+for x in ` awk '{print $1}' tst_list `;do
+ ./${x};
+done
+
diff --git a/meta/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch b/meta/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch
new file mode 100644
index 0000000000..66c8017329
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch
@@ -0,0 +1,51 @@
+From 05562960b7a3ed7753c9a39a7032fea873fc4098 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@theqtcompany.com>
+Date: Wed, 10 Feb 2016 09:02:09 +0200
+Subject: [PATCH] Allow a tools-only build
+
+---
+ qt3d.pro | 7 ++++++-
+ src/3rdparty/assimp/assimp_dependency.pri | 2 +-
+ tools/tools.pro | 2 +-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/qt3d.pro b/qt3d.pro
+index 2cc347a..81cdeef 100644
+--- a/qt3d.pro
++++ b/qt3d.pro
+@@ -1,4 +1,4 @@
+-requires(qtConfig(opengl))
++!tools-only:requires(qtConfig(opengl))
+
+ CONFIG += examples_need_tools
+ load(qt_parts)
+@@ -14,3 +14,8 @@ load(qt_parts)
+
+ OTHER_FILES += \
+ sync.profile
++
++tools-only {
++ sub_tools.depends -= sub_src
++ SUBDIRS = sub_tools
++}
+diff --git a/src/3rdparty/assimp/assimp_dependency.pri b/src/3rdparty/assimp/assimp_dependency.pri
+index 8ba2d9a..e973d93 100644
+--- a/src/3rdparty/assimp/assimp_dependency.pri
++++ b/src/3rdparty/assimp/assimp_dependency.pri
+@@ -1,5 +1,5 @@
+ QT_FOR_CONFIG += 3dcore-private
+-qtConfig(system-assimp):!if(cross_compile:host_build) {
++!tools-only:qtConfig(system-assimp):!if(cross_compile:host_build) {
+ QMAKE_USE_PRIVATE += assimp
+ } else {
+ include(assimp.pri)
+diff --git a/tools/tools.pro b/tools/tools.pro
+index 8e973ae..ad51db5 100644
+--- a/tools/tools.pro
++++ b/tools/tools.pro
+@@ -1,4 +1,4 @@
+ TEMPLATE = subdirs
+ QT_FOR_CONFIG += 3dcore-private
+-!android:qtConfig(assimp):qtConfig(commandlineparser): \
++!android:tools-only|qtConfig(assimp):qtConfig(commandlineparser): \
+ SUBDIRS += qgltf
diff --git a/meta/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch b/meta/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch
new file mode 100644
index 0000000000..3357fa3e85
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch
@@ -0,0 +1,44 @@
+From fc23039612ab9aed4f994b4390016e71ceee8165 Mon Sep 17 00:00:00 2001
+From: Kim Kulling <kim.kulling@googlemail.com>
+Date: Mon, 7 Nov 2016 17:19:49 +0100
+Subject: [PATCH] Fix BlenderDNA for clang cross compiler.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/3rdparty/assimp/code/BlenderDNA.cpp | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/3rdparty/assimp/code/BlenderDNA.cpp b/src/3rdparty/assimp/code/BlenderDNA.cpp
+index 18ec9f2..5b0b209 100644
+--- a/src/3rdparty/assimp/code/BlenderDNA.cpp
++++ b/src/3rdparty/assimp/code/BlenderDNA.cpp
+@@ -55,10 +55,10 @@ using namespace Assimp::Formatter;
+
+ bool match4(StreamReaderAny& stream, const char* string) {
+ char tmp[] = {
+- (stream).GetI1(),
+- (stream).GetI1(),
+- (stream).GetI1(),
+- (stream).GetI1()
++ (const char)(stream).GetI1(),
++ (const char)(stream).GetI1(),
++ (const char)(stream).GetI1(),
++ (const char)(stream).GetI1()
+ };
+ return (tmp[0]==string[0] && tmp[1]==string[1] && tmp[2]==string[2] && tmp[3]==string[3]);
+ }
+@@ -345,10 +345,10 @@ void SectionParser :: Next()
+ stream.SetCurrentPos(current.start + current.size);
+
+ const char tmp[] = {
+- stream.GetI1(),
+- stream.GetI1(),
+- stream.GetI1(),
+- stream.GetI1()
++ (const char)stream.GetI1(),
++ (const char)stream.GetI1(),
++ (const char)stream.GetI1(),
++ (const char)stream.GetI1()
+ };
+ current.id = std::string(tmp,tmp[3]?4:tmp[2]?3:tmp[1]?2:1);
+
diff --git a/meta/recipes-qt/qt5/qt3d_git.bb b/meta/recipes-qt/qt5/qt3d_git.bb
new file mode 100644
index 0000000000..dbd1b27916
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt3d_git.bb
@@ -0,0 +1,42 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "LGPL-3.0 | GPL-2.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv3;md5=8211fde12cc8a4e2477602f5953f5b71 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.GPL;md5=c96076271561b0e3785dad260634eaa8 \
+"
+
+DEPENDS += "qtbase"
+DEPENDS_class-target += "qtdeclarative qt3d-native"
+
+# Patches from https://github.com/meta-qt5/qt3d/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += " \
+ file://0001-Allow-a-tools-only-build.patch \
+ file://0002-Fix-BlenderDNA-for-clang-cross-compiler.patch \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG_class-native ??= "tools-only"
+PACKAGECONFIG_class-nativesdk ??= "tools-only"
+PACKAGECONFIG[tools-only] = ""
+PACKAGECONFIG[system-assimp] = "-feature-system-assimp,-no-feature-system-assimp,assimp"
+PACKAGECONFIG[qtgamepad] = ",,qtgamepad"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tools-only', 'CONFIG+=tools-only QMAKE_USE_PRIVATE+=zlib', '', d)}"
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtgamepad', 'CONFIG+=OE_QTGAMEPAD_ENABLED', '', d)}"
+
+do_configure_prepend() {
+ # disable qtgamepad test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/^\(qtHaveModule(gamepad)\)/OE_QTGAMEPAD_ENABLED:\1/' -i \
+ ${S}/src/input/frontend/frontend.pri \
+ ${S}/src/quick3d/imports/input/importsinput.pro
+}
+
+SRCREV = "31f424bb81cd2583920d3d521e1e01f01c2d28e2"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch b/meta/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
new file mode 100644
index 0000000000..c4ee34bf9d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
@@ -0,0 +1,91 @@
+From 056bc88a15df06443a4a6bdea2b1ead045f89bf6 Mon Sep 17 00:00:00 2001
+From: Greg Nietsky <gregory@distrotech.co.za>
+Date: Tue, 4 Mar 2014 11:33:40 +0200
+Subject: [PATCH] Fix: Allow qt-creator to build on arm aarch32 and aarch64
+
+Botan is imported hardwired for x86 this small patch allows it
+too operate on arm other platforms could be added.
+
+Task-number: QTCREATORBUG-8107
+Change-Id: Iddea28f21c9fa1afd2fdd5d16a44e6c96a516a7a
+---
+ src/libs/3rdparty/botan/botan.cpp | 16 +++++++++++++++-
+ src/libs/3rdparty/botan/botan.h | 2 ++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp
+index e6a5f22..7b625ac 100644
+--- a/src/libs/3rdparty/botan/botan.cpp
++++ b/src/libs/3rdparty/botan/botan.cpp
+@@ -1101,6 +1101,8 @@ class Montgomery_Exponentiator : public Modular_Exponentiator
+
+ #if (BOTAN_MP_WORD_BITS != 32)
+ #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32
++#elif !defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
++typedef Botan::u64bit dword;
+ #endif
+
+ #ifdef Q_OS_UNIX
+@@ -1118,6 +1120,7 @@ extern "C" {
+ */
+ inline word word_madd2(word a, word b, word* c)
+ {
++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+ asm(
+ ASM("mull %[b]")
+ ASM("addl %[c],%[a]")
+@@ -1127,6 +1130,11 @@ inline word word_madd2(word a, word b, word* c)
+ : "0"(a), "1"(b), [c]"g"(*c) : "cc");
+
+ return a;
++#else
++ dword z = (dword)a * b + *c;
++ *c = (word)(z >> BOTAN_MP_WORD_BITS);
++ return (word)z;
++#endif
+ }
+
+ /*
+@@ -1134,6 +1142,7 @@ inline word word_madd2(word a, word b, word* c)
+ */
+ inline word word_madd3(word a, word b, word c, word* d)
+ {
++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+ asm(
+ ASM("mull %[b]")
+
+@@ -1147,6 +1156,11 @@ inline word word_madd3(word a, word b, word c, word* d)
+ : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc");
+
+ return a;
++#else
++ dword z = (dword)a * b + c + *d;
++ *d = (word)(z >> BOTAN_MP_WORD_BITS);
++ return (word)z;
++#endif
+ }
+
+ }
+@@ -2315,7 +2329,7 @@ namespace Botan {
+
+ extern "C" {
+
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+ /*
+ * Helper Macros for x86 Assembly
+ */
+diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h
+index 2caa4a3..39b8079 100644
+--- a/src/libs/3rdparty/botan/botan.h
++++ b/src/libs/3rdparty/botan/botan.h
+@@ -85,7 +85,9 @@
+ #endif
+
+ #define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN
++#if !defined(__arm__) && !defined(__aarch64__)
+ #define BOTAN_TARGET_CPU_IS_X86_FAMILY
++#endif
+ #define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1
+
+ #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \
diff --git a/meta/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch b/meta/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch
new file mode 100644
index 0000000000..8d953c99d9
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch
@@ -0,0 +1,35 @@
+From fbae8e85e74976b79308c203d38839b364757302 Mon Sep 17 00:00:00 2001
+From: Eike Ziller <eike.ziller@qt.io>
+Date: Fri, 24 Jun 2016 10:23:24 +0200
+Subject: [PATCH] Fix compilation with QT_NO_ACCESSIBILITY
+
+Task-number: QTCREATORBUG-16446
+Change-Id: If75122c23a697f26ccf56391fe2e8d316aad6367
+Reviewed-by: hjk <hjk@theqtcompany.com>
+---
+ src/libs/utils/fancymainwindow.cpp | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
+index 9477f17..1ee425f 100644
+--- a/src/libs/utils/fancymainwindow.cpp
++++ b/src/libs/utils/fancymainwindow.cpp
+@@ -159,13 +159,16 @@ public:
+
+ m_floatButton = new DockWidgetTitleButton(this);
+ m_floatButton->setIcon(q->style()->standardIcon(QStyle::SP_TitleBarNormalButton, &opt, q));
+- m_floatButton->setAccessibleName(QDockWidget::tr("Float"));
+- m_floatButton->setAccessibleDescription(QDockWidget::tr("Undocks and re-attaches the dock widget"));
+
+ m_closeButton = new DockWidgetTitleButton(this);
+ m_closeButton->setIcon(q->style()->standardIcon(QStyle::SP_TitleBarCloseButton, &opt, q));
++
++#ifndef QT_NO_ACCESSIBILITY
++ m_floatButton->setAccessibleName(QDockWidget::tr("Float"));
++ m_floatButton->setAccessibleDescription(QDockWidget::tr("Undocks and re-attaches the dock widget"));
+ m_closeButton->setAccessibleName(QDockWidget::tr("Close"));
+ m_closeButton->setAccessibleDescription(QDockWidget::tr("Closes the dock widget"));
++#endif
+
+ setActive(false);
+
diff --git a/meta/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch b/meta/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch
new file mode 100644
index 0000000000..e64b6d9aa2
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch
@@ -0,0 +1,38 @@
+From 896624d715e20e658344ac85db91cd55d25e7211 Mon Sep 17 00:00:00 2001
+From: Marco Benelli <marco.benelli@qt.io>
+Date: Thu, 6 Jul 2017 09:31:41 +0200
+Subject: [PATCH] Qmlpuppet: add missing includes
+
+Task-number: QTCREATORBUG-18498
+Change-Id: Ie40a066508bb52f53b8ad528f9d4cf6969fc0632
+Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
+---
+ .../qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp | 2 ++
+ .../qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp
+index 3f9f148..160e5c4 100644
+--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp
++++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp
+@@ -29,6 +29,8 @@
+ ****************************************************************************/
+ #include "layoutnodeinstance.h"
+
++#include <QCoreApplication>
++
+ namespace QmlDesigner {
+ namespace Internal {
+
+diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
+index 5a9342f..bacbc12 100644
+--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
++++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
+@@ -33,6 +33,7 @@
+ #include <enumeration.h>
+ #include <qmlprivategate.h>
+
++#include <QDebug>
+ #include <QEvent>
+ #include <QQmlContext>
+ #include <QQmlError>
diff --git a/meta/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch b/meta/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch
new file mode 100644
index 0000000000..59687e5516
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch
@@ -0,0 +1,30 @@
+From 7fb65b82d247123c7fdb61436183f1d76067b66b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 16 Jan 2018 13:26:57 +0000
+Subject: [PATCH] Link with libexecinfo on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/plugins/debugger/debugger.pro | 1 +
+ src/plugins/qmldesigner/config.pri | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
+index c40bd63..96ab542 100644
+--- a/src/plugins/debugger/debugger.pro
++++ b/src/plugins/debugger/debugger.pro
+@@ -148,3 +148,4 @@ include(qml/qml.pri)
+ include(namedemangler/namedemangler.pri)
+
+ include(shared/shared.pri)
++LIBS *= -lexecinfo
+diff --git a/src/plugins/qmldesigner/config.pri b/src/plugins/qmldesigner/config.pri
+index 1b559b2..b485b63 100644
+--- a/src/plugins/qmldesigner/config.pri
++++ b/src/plugins/qmldesigner/config.pri
+@@ -9,3 +9,4 @@ equals(TMP_BAUHAUS_NO_OUTPUT, true):DEFINES += QT_NO_DEBUG_OUTPUT \
+ DEFINES += ENABLE_TEXT_VIEW
+
+ isEmpty($$(BAUHAUS_OUTPUT_IN_TEST)):DEFINES += QDEBUG_IN_TESTS WARNINGS_IN_TESTS
++LIBS *= -lexecinfo
diff --git a/meta/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in b/meta/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in
new file mode 100644
index 0000000000..64f7c6ba08
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Exec=sh -c "PATH=$PATH:@QT5_QMAKE@ qtcreator %F"
+Name=Qt Creator
+GenericName=C++ IDE for developing Qt applications
+X-KDE-StartupNotify=true
+Icon=QtProject-qtcreator
+Terminal=false
+Categories=Development;IDE;Qt;
+MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource;
diff --git a/meta/recipes-qt/qt5/qt5-creator_3.5.1.bb b/meta/recipes-qt/qt5/qt5-creator_3.5.1.bb
new file mode 100644
index 0000000000..fe9cb41404
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-creator_3.5.1.bb
@@ -0,0 +1,93 @@
+SUMMARY = "Qt Creator is a new cross-platform Qt IDE"
+
+# Note:
+# The toolchain auto detection does not work completely yet. To compile/debug
+# open menu 'Tools/Options and select 'Build & Run'. In tab 'Kits' select 'Desktop'
+# 'Compiler/Manage...' and add local gcc'. At 'Debugger' select
+# 'System GDB at /usr/bin/gdb.
+
+HOMEPAGE = "https://qt-project.org/"
+LICENSE = "LGPLv2.1 | GPLv3"
+LIC_FILES_CHKSUM = " \
+ file://LGPL_EXCEPTION.TXT;md5=f4748b0d1a72c5c8fb5dab2dd1f7fa46 \
+ file://LICENSE.LGPLv21;md5=825920de5f6db2eeb1bebe625476346d \
+ file://LICENSE.LGPLv3;md5=0786418af032b9e608909874f334a2d1 \
+"
+
+inherit qmake5
+
+DEPENDS = "qtbase qtscript qtwebkit qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg qtquick1"
+DEPENDS_append_libc-musl = " libexecinfo"
+
+# Patches from https://github.com/meta-qt5/qtcreator/commits/b5.3.1
+# 5.3.1.meta-qt5.1
+SRC_URI = " \
+ http://download.qt.io/official_releases/qtcreator/3.5/${PV}/qt-creator-opensource-src-${PV}.tar.gz \
+ file://0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch \
+ file://0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch \
+ file://0003-Qmlpuppet-add-missing-includes.patch \
+ file://qtcreator.desktop.in \
+"
+
+SRC_URI_append_libc-musl = " file://0004-Link-with-libexecinfo-on-musl.patch"
+
+
+SRC_URI[md5sum] = "77aef7df837eba07c7ce6037ee504c05"
+SRC_URI[sha256sum] = "5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65"
+
+S = "${WORKDIR}/qt-creator-opensource-src-${PV}"
+
+EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME}"
+
+LDFLAGS_append_libc-musl = " -lexecinfo "
+do_configure_append() {
+ # Find native tools
+ sed -i 's:${STAGING_BINDIR}.*/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile
+ sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile
+
+ # see qtbase-native.inc
+ # sed -i 's:QT_INSTALL_DOCS=${docdir}:QT_INSTALL_DOCS=${STAGING_DATADIR_NATIVE}${QT_DIR_NAME}/doc:g' ${B}/Makefile
+}
+
+do_compile_append() {
+ # build docs
+ #oe_runmake docs_online
+}
+
+do_install() {
+ oe_runmake install INSTALL_ROOT=${D}${prefix}
+ oe_runmake install_inst_qch_docs INSTALL_ROOT=${D}${prefix}
+ # install desktop and ensure that qt-creator finds qmake
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/qtcreator.desktop.in ${D}${datadir}/applications/qtcreator.desktop
+ sed -i 's:@QT5_QMAKE@:${OE_QMAKE_PATH_QT_BINS}:g' ${D}${datadir}/applications/qtcreator.desktop
+}
+
+FILES_${PN} += " \
+ ${datadir}/qtcreator \
+ ${datadir}/icons \
+ ${libdir}${QT_DIR_NAME}/qtcreator \
+"
+FILES_${PN}-dbg += " \
+ ${libdir}${QT_DIR_NAME}/qtcreator/.debug \
+ ${libdir}${QT_DIR_NAME}/qtcreator/plugins/.debug \
+ ${libdir}${QT_DIR_NAME}/qtcreator/plugins/qmldesigner/.debug \
+ ${libdir}${QT_DIR_NAME}/qtcreator/plugins/qbs/plugins/.debug \
+"
+
+FILES_${PN}-dev += " \
+ ${libdir}${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \
+"
+
+RDEPENDS_${PN} += "perl"
+RCONFLICTS_${PN} = "qt-creator"
+
+# To give best user experience out of the box..
+RRECOMMENDS_${PN} += " \
+ packagegroup-qt5-toolchain-target \
+ binutils \
+ ccache \
+ make \
+ gcc-symlinks g++-symlinks cpp-symlinks \
+ gdb \
+"
diff --git a/meta/recipes-qt/qt5/qt5-git.inc b/meta/recipes-qt/qt5/qt5-git.inc
new file mode 100644
index 0000000000..beba913547
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-git.inc
@@ -0,0 +1,17 @@
+# Copyright (C) 2012-2016 O.S. Systems Software LTDA.
+# Copyright (C) 2013-2018 Martin Jansa <martin.jansa@gmail.com>
+
+QT_MODULE ?= "${BPN}"
+QT_MODULE_BRANCH ?= "5.10.1"
+QT_MODULE_BRANCH_PARAM ?= "branch=${QT_MODULE_BRANCH}"
+
+# each module needs to define valid SRCREV
+SRC_URI = " \
+ ${QT_GIT}/${QT_MODULE}.git;name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL} \
+"
+
+CVE_PRODUCT = "qt"
+
+S = "${WORKDIR}/git"
+
+PV = "5.10.1+git${SRCPV}"
diff --git a/meta/recipes-qt/qt5/qt5-native.inc b/meta/recipes-qt/qt5/qt5-native.inc
new file mode 100644
index 0000000000..76816027fe
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-native.inc
@@ -0,0 +1,12 @@
+inherit native qmake5_base
+
+# we don't want conflicts with qt4
+OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}"
+OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}"
+OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}"
+OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}"
+OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}"
+OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}"
+OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}"
+OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}"
+OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}"
diff --git a/meta/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb b/meta/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb
new file mode 100644
index 0000000000..383145beb3
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "This driver extends Qt's platform support (QPA) for Virtualbox guests. \
+It uses the integrated pointer feature to create a smooth conversion from \
+the host pointer to touchscreen events in the guest, without grabbing the \
+host pointer."
+SUMMARY = "Touchscreen driver for integrated mouse pointer in VirtualBox"
+LICENSE = "LGPL-2.1 & GPL-3.0"
+LIC_FILES_CHKSUM = " \
+ file://vboxtouch.cpp;beginline=1;endline=22;md5=ca51db8f7c0606c77f702dcee4cf31d9 \
+ file://evdevmousehandler.cpp;beginline=1;endline=40;md5=9081062f6e7f74b6e62ad7ecee4a71be \
+"
+
+PV = "1.1.4+gitr${SRCPV}"
+
+DEPENDS = "qtbase"
+
+# Needed with gcc-5.2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65801
+CXXFLAGS += "-Wno-narrowing"
+
+SRC_URI = "git://github.com/nemomobile/qt5-plugin-generic-vboxtouch.git"
+SRCREV = "3f2bdb5a1d346f02d5ab185522271ba2288a42bb"
+S = "${WORKDIR}/git/vboxtouch"
+
+inherit qmake5
+
+FILES_${PN} += "${OE_QMAKE_PATH_PLUGINS}/generic/libvboxtouchplugin.so"
+FILES_${PN}-dbg += "${OE_QMAKE_PATH_PLUGINS}/generic/.debug/"
+FILES_${PN}-dev += "${OE_QMAKE_PATH_LIBS}/cmake/*"
diff --git a/meta/recipes-qt/qt5/qt5-ptest.inc b/meta/recipes-qt/qt5/qt5-ptest.inc
new file mode 100644
index 0000000000..56efe10688
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5-ptest.inc
@@ -0,0 +1,22 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/ptest"
+SRC_URI += "file://run-ptest"
+
+inherit ptest
+
+do_compile_ptest() {
+ mkdir -p ${B}/tests
+ cd ${B}/tests
+ ${OE_QMAKE_QMAKE} -o Makefile ${S}/tests/tests.pro
+ oe_runmake
+}
+
+fakeroot do_install_ptest() {
+ mkdir -p ${D}${PTEST_PATH}
+ t=${D}${PTEST_PATH}
+ for var in ` find ${B}/tests/auto/ -name tst_*`; do
+ if [ -z ` echo ${var##*/} | grep '\.'` ]; then
+ echo ${var##*/} >> ${t}/tst_list
+ install -m 0644 ${var} ${t}
+ fi
+ done
+}
diff --git a/meta/recipes-qt/qt5/qt5.inc b/meta/recipes-qt/qt5/qt5.inc
new file mode 100644
index 0000000000..95e3854cb2
--- /dev/null
+++ b/meta/recipes-qt/qt5/qt5.inc
@@ -0,0 +1,208 @@
+# Copyright (C) 2012, 2014 O.S. Systems Software LTDA.
+# Copyright (C) 2013 Martin Jansa <martin.jansa@gmail.com>
+
+inherit qmake5
+
+PACKAGECONFIG_OPENSSL ?= "openssl"
+
+PACKAGECONFIG[examples] = ""
+PACKAGECONFIG[tests] = ""
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'QT_BUILD_PARTS+=examples', '', d)}"
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tests', 'QT_BUILD_PARTS+=tests', '', d)}"
+
+# we don't want conflicts with qt4
+OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}"
+OE_QMAKE_PATH_ARCHDATA = "${OE_QMAKE_PATH_QT_ARCHDATA}"
+OE_QMAKE_PATH_DATA = "${OE_QMAKE_PATH_QT_DATA}"
+OE_QMAKE_PATH_BINS = "${OE_QMAKE_PATH_QT_BINS}"
+OE_QMAKE_PATH_TRANSLATIONS = "${OE_QMAKE_PATH_QT_TRANSLATIONS}"
+OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}"
+OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}"
+OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}"
+OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}"
+
+OE_QMAKE_RECURSIVE = ""
+
+# If Qt5 (qtbase) is machine specific, then everything will be,
+# because the (initial) qtbase configuration becomes part of Qt5/qmake
+python __anonymous() {
+ barch = d.getVar("BUILD_ARCH", True) or ''
+ tarch = d.getVar("TARGET_ARCH", True) or ''
+ # do not do anything if we are building a native package
+ if barch != tarch:
+ tarch = d.getVar("QT_PACKAGES_ARCH", True) or ''
+ if tarch:
+ d.setVar("PACKAGE_ARCH", tarch)
+}
+
+# Many examples come with libraries installed outside of standard libdir,
+# suppress QA check complaining
+INSANE_SKIP_${PN}-dbg += "libdir"
+INSANE_SKIP_${PN}-examples += "libdir"
+INSANE_SKIP_${PN}-examples-dbg += "libdir"
+INSANE_SKIP_${PN}-examples-dev += "libdir dev-elf"
+
+PACKAGES =. "${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmldesigner ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples "
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-dbg = "1"
+
+RRECOMMENDS_${PN} = " \
+ ${PN}-plugins \
+ ${PN}-qmlplugins \
+ "
+RRECOMMENDS_${PN}_class-native = ""
+
+RRECOMMENDS_${PN}-dev = " \
+ ${PN} \
+ ${PN}-mkspecs \
+ ${PN}-qmldesigner \
+ "
+
+RRECOMMENDS_${PN}-dbg = " \
+ ${PN}-plugins-dbg \
+ ${PN}-qmlplugins-dbg \
+ "
+
+# extra -dbg packages
+FILES_${PN}-qmlplugins-dbg = " \
+ ${OE_QMAKE_PATH_QML}/*/.debug \
+ ${OE_QMAKE_PATH_QML}/*/*/.debug \
+ ${OE_QMAKE_PATH_QML}/*/*/*/.debug \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/.debug \
+ ${OE_QMAKE_PATH_IMPORTS}/*/.debug \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/.debug \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*/.debug \
+"
+FILES_${PN}-tools-dbg = " \
+ ${OE_QMAKE_PATH_BINS}/.debug \
+"
+FILES_${PN}-plugins-dbg = " \
+ ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \
+ ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \
+ ${OE_QMAKE_PATH_PLUGINS}/*/*/*/.debug/* \
+"
+
+# extra packages
+FILES_${PN}-qmldesigner += " \
+ ${OE_QMAKE_PATH_QML}/*/designer \
+ ${OE_QMAKE_PATH_QML}/*/*/designer \
+ ${OE_QMAKE_PATH_QML}/*/*/*/designer \
+"
+
+# qmlplugins 1-4 levels of subdirs qmldir + *{.so,*.qmltypes,*.qml,*.qmlc,*.js,*.jsc}
+FILES_${PN}-qmlplugins = " \
+ ${OE_QMAKE_PATH_QML}/*.qmltypes \
+ ${OE_QMAKE_PATH_QML}/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_QML}/*/qmldir \
+ ${OE_QMAKE_PATH_QML}/*/*.qmltypes \
+ ${OE_QMAKE_PATH_QML}/*/*.qml \
+ ${OE_QMAKE_PATH_QML}/*/*.qmlc \
+ ${OE_QMAKE_PATH_QML}/*/*.js \
+ ${OE_QMAKE_PATH_QML}/*/*.jsc \
+ ${OE_QMAKE_PATH_QML}/*/*.png \
+ ${OE_QMAKE_PATH_QML}/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_QML}/*/*/qmldir \
+ ${OE_QMAKE_PATH_QML}/*/*/*.qmltypes \
+ ${OE_QMAKE_PATH_QML}/*/*/*.qml \
+ ${OE_QMAKE_PATH_QML}/*/*/*.qmlc \
+ ${OE_QMAKE_PATH_QML}/*/*/*.js \
+ ${OE_QMAKE_PATH_QML}/*/*/*.jsc \
+ ${OE_QMAKE_PATH_QML}/*/*/*.png \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_QML}/*/*/*/qmldir \
+ ${OE_QMAKE_PATH_QML}/*/*/*/images \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.qmltypes \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.qml \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.qmlc \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.js \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.jsc \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.png \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*.metainfo \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/qmldir \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qmltypes \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qml \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.qmlc \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.js \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.jsc \
+ ${OE_QMAKE_PATH_QML}/*/*/*/*/*/*.png \
+ ${OE_QMAKE_PATH_IMPORTS}/*.qmltypes \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*.qmltypes \
+ ${OE_QMAKE_PATH_IMPORTS}/*/qmldir \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*.qmltypes \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/qmldir \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*.qmltypes \
+ ${OE_QMAKE_PATH_IMPORTS}/*/*/*/qmldir \
+"
+
+FILES_${PN}-tools = " \
+ ${OE_QMAKE_PATH_BINS}/* \
+"
+FILES_${PN}-plugins = " \
+ ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_PLUGINS}/*/*/*/*${SOLIBSDEV} \
+"
+FILES_${PN}-mkspecs = "\
+ ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \
+"
+
+# modifications to normal packages
+FILES_${PN} += " \
+ ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBS} \
+ ${OE_QMAKE_PATH_LIBEXECS} \
+"
+FILES_${PN}-dev += " \
+ ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_LIBS}/pkgconfig \
+ ${OE_QMAKE_PATH_LIBS}/cmake/* \
+ ${OE_QMAKE_PATH_LIBS}/*.prl \
+ ${OE_QMAKE_PATH_LIBS}/*.la \
+ ${OE_QMAKE_PATH_HEADERS}/* \
+"
+FILES_${PN}-dbg += " \
+ ${OE_QMAKE_PATH_LIBS}/.debug \
+ ${OE_QMAKE_PATH_LIBEXECS}/.debug \
+"
+FILES_${PN}-staticdev += " \
+ ${OE_QMAKE_PATH_LIBS}/*.a \
+"
+FILES_${PN}-examples = " \
+ ${OE_QMAKE_PATH_EXAMPLES}/* \
+"
+FILES_${PN}-examples-dev = " \
+ ${OE_QMAKE_PATH_EXAMPLES}/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*${SOLIBSDEV} \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*${SOLIBSDEV} \
+"
+FILES_${PN}-examples-dbg = " \
+ ${OE_QMAKE_PATH_EXAMPLES}/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/.debug \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/.debug \
+"
+FILES_${PN}-examples-staticdev = " \
+ ${OE_QMAKE_PATH_EXAMPLES}/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*.a \
+ ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*.a \
+"
+
+PATH_prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:"
diff --git a/meta/recipes-qt/qt5/qtbase-native_git.bb b/meta/recipes-qt/qt5/qtbase-native_git.bb
new file mode 100644
index 0000000000..36eeae8936
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase-native_git.bb
@@ -0,0 +1,140 @@
+DESCRIPTION = "Native version of Qt/[X11|Mac|Embedded]"
+DEPENDS = "zlib-native dbus-native"
+SECTION = "libs"
+HOMEPAGE = "http://qt-project.org"
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \
+ file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+require qt5-native.inc
+require qt5-git.inc
+
+# common for qtbase-native, qtbase-nativesdk and qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-shared
+# 5.10.meta-qt5-shared.2
+SRC_URI += "\
+ file://0001-Add-linux-oe-g-platform.patch \
+ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \
+ file://0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
+ file://0004-configure-bump-path-length-from-256-to-512-character.patch \
+ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \
+ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
+ file://0007-Delete-qlonglong-and-qulonglong.patch \
+ file://0008-Replace-pthread_yield-with-sched_yield.patch \
+ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \
+ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \
+ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \
+ file://0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch \
+"
+
+# common for qtbase-native and nativesdk-qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-native
+# 5.10.meta-qt5-native.2
+SRC_URI += " \
+ file://0013-Always-build-uic-and-qvkgen.patch \
+"
+
+# only for qtbase-native
+SRC_URI += " \
+ file://0014-Bootstrap-without-linkat-feature.patch \
+"
+
+CLEANBROKEN = "1"
+
+XPLATFORM_toolchain-clang = "linux-oe-clang"
+XPLATFORM ?= "linux-oe-g++"
+
+PACKAGECONFIG_CONFARGS = " \
+ -sysroot ${STAGING_DIR_NATIVE} \
+ -no-gcc-sysroot \
+ -system-zlib \
+ -qt-pcre \
+ -no-libjpeg \
+ -no-libpng \
+ -no-gif \
+ -no-accessibility \
+ -no-cups \
+ -no-gui \
+ -no-qml-debug \
+ -no-sql-mysql \
+ -no-sql-sqlite \
+ -no-opengl \
+ -no-openssl \
+ -no-xcb \
+ -no-icu \
+ -verbose \
+ -release \
+ -prefix ${OE_QMAKE_PATH_PREFIX} \
+ -hostprefix ${OE_QMAKE_PATH_PREFIX} \
+ -bindir ${OE_QMAKE_PATH_BINS} \
+ -hostbindir ${OE_QMAKE_PATH_BINS} \
+ -libdir ${OE_QMAKE_PATH_LIBS} \
+ -hostlibdir ${OE_QMAKE_PATH_LIBS} \
+ -headerdir ${OE_QMAKE_PATH_HEADERS} \
+ -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \
+ -datadir ${OE_QMAKE_PATH_DATA} \
+ -hostdatadir ${QMAKE_MKSPEC_PATH_NATIVE} \
+ -docdir ${OE_QMAKE_PATH_DOCS} \
+ -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \
+ -no-glib \
+ -no-iconv \
+ -silent \
+ -nomake examples \
+ -nomake tests \
+ -no-rpath \
+ -no-feature-linkat \
+ -platform ${XPLATFORM} \
+"
+
+# for qtbase configuration we need default settings
+# since we cannot set empty set filename to a not existent file
+deltask generate_qt_config_file
+
+do_configure_prepend() {
+ # Regenerate header files when they are included in source tarball
+ # Otherwise cmake files don't set PRIVATE_HEADERS correctly
+ rm -rf ${S}/include
+ mkdir -p ${S}/.git || true
+
+ # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory"
+ touch ${S}/mkspecs/oe-device-extra.pri
+
+ MAKEFLAGS="${PARALLEL_MAKE}" ${S}/configure -${QT_EDITION} -confirm-license ${PACKAGECONFIG_CONFARGS} || die "Configuring qt failed. PACKAGECONFIG_CONFARGS was ${PACKAGECONFIG_CONFARGS}"
+}
+
+do_install() {
+ # Fix install paths for all
+ find . -name "Makefile*" | xargs sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE},(INSTALL_ROOT)${STAGING_DIR_NATIVE},g"
+
+ oe_runmake install INSTALL_ROOT=${D}
+
+ if [ -d ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE} ] ; then
+ echo "Some files are installed in wrong directory ${D}${STAGING_DIR_NATIVE}"
+ cp -ra ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE}/* ${D}${STAGING_DIR_NATIVE}
+ rm -rf ${D}${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE}
+ # remove empty dirs
+ TMP=`dirname ${D}/${STAGING_DIR_NATIVE}${STAGING_DIR_NATIVE}`
+ while test ${TMP} != ${D}${STAGING_DIR_NATIVE}; do
+ rmdir ${TMP}
+ TMP=`dirname ${TMP}`;
+ done
+ fi
+
+ install -m 755 ${B}/bin/qfloat16-tables ${D}${OE_QMAKE_PATH_BINS}
+
+ # since 5.9.2 something sets a very strange path to mkspec ("${_qt5Core_install_prefix}/../../../../../../../../../../usr/lib/qt5//mkspecs/linux-oe-g++")
+ # override this until somebody finds a better way
+ echo 'set(_qt5_corelib_extra_includes "${_qt5Core_install_prefix}/lib${QT_DIR_NAME}/mkspecs/linux-oe-g++")' > ${D}${libdir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake
+}
+
+SRCREV = "6c6ace9d23f90845fd424e474d38fe30f070775e"
diff --git a/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
new file mode 100644
index 0000000000..07fc2f77b7
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
@@ -0,0 +1,133 @@
+From 1ed7a2e9a883fe1240d89b7b70fb0f296bb2b54f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 15 Apr 2013 04:29:32 +0200
+Subject: [PATCH] Add linux-oe-g++ platform
+
+* This qmake.conf unlike other platforms reads most variables from
+ shell environment, because it's easier for qt recipes to export
+ *FLAGS or CC specific for given recipe
+
+* configure: extend setBootstrapVariable to convert $$(...) operator
+ to $(...) operator to work in qmake's Makefiles
+
+* configure.prf: Allow to add extra arguments to make
+ sometimes we would like to add -e or define some variable and respect it from both
+ Makefiles used in configure tests and also Makefiles to build the application
+
+Upstream-Status: Inappropriate [embedded specific]
+ too OE specific, probably cannot be upstreamed
+
+Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure | 2 +-
+ mkspecs/features/configure.prf | 4 ++--
+ mkspecs/features/qt_functions.prf | 2 +-
+ mkspecs/linux-oe-g++/qmake.conf | 42 ++++++++++++++++++++++++++++++++++++
+ mkspecs/linux-oe-g++/qplatformdefs.h | 1 +
+ 5 files changed, 47 insertions(+), 4 deletions(-)
+ create mode 100644 mkspecs/linux-oe-g++/qmake.conf
+ create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
+
+diff --git a/configure b/configure
+index 08b49a8..5876721 100755
+--- a/configure
++++ b/configure
+@@ -712,7 +712,7 @@ fi
+ # is where the resulting variable is written to
+ setBootstrapVariable()
+ {
+- getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
++ getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
+ }
+
+ # build qmake
+diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
+index 934a18a..0f5b1b6 100644
+--- a/mkspecs/features/configure.prf
++++ b/mkspecs/features/configure.prf
+@@ -46,14 +46,14 @@ defineTest(qtCompileTest) {
+ }
+
+ # Clean up after previous run
+- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
++ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
+
+ mkpath($$test_out_dir)|error()
+
+ !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF
+
+ qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qtconfarg -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
+- qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") {
++ qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
+ log("yes$$escape_expand(\\n)")
+ msg = "test $$1 succeeded"
+ write_file($$QMAKE_CONFIG_LOG, msg, append)
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 1903e50..c093dd4 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -69,7 +69,7 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+ cmd = $$eval(QT_TOOL.$${2}.binary)
+ isEmpty(cmd) {
+- cmd = $$[QT_HOST_BINS]/$$2
++ cmd = $$[QT_HOST_BINS/get]/$$2
+ exists($${cmd}.pl) {
+ $${1}_EXE = $${cmd}.pl
+ cmd = perl -w $$system_path($${cmd}.pl)
+diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
+new file mode 100644
+index 0000000..30d31ed
+--- /dev/null
++++ b/mkspecs/linux-oe-g++/qmake.conf
+@@ -0,0 +1,42 @@
++#
++# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
++#
++
++MAKEFILE_GENERATOR = UNIX
++CONFIG += incremental
++QMAKE_INCREMENTAL_STYLE = sublib
++
++include(../common/linux.conf)
++
++# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
++QMAKE_AR = $$(OE_QMAKE_AR) cqs
++QMAKE_STRIP = $$(OE_QMAKE_STRIP)
++
++include(../common/gcc-base-unix.conf)
++
++# *FLAGS from gcc-base.conf
++QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
++QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
++QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
++
++include(../common/g++-unix.conf)
++
++# tc settings from g++-base.conf
++QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc
++QMAKE_CC = $$(OE_QMAKE_CC)
++QMAKE_CXX = $$(OE_QMAKE_CXX)
++
++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS)
++
++QMAKE_LINK = $$(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
++
++# for the SDK
++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
++
++include(../oe-device-extra.pri)
++
++load(device_config)
++load(qt_config)
+diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
+new file mode 100644
+index 0000000..5d22fb4
+--- /dev/null
++++ b/mkspecs/linux-oe-g++/qplatformdefs.h
+@@ -0,0 +1 @@
++#include "../linux-g++/qplatformdefs.h"
diff --git a/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
new file mode 100644
index 0000000000..fa59883490
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
@@ -0,0 +1,86 @@
+From c7dd4e5de1fac8c35df79a86418b6cd552024bd0 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 6 Apr 2013 13:15:07 +0200
+Subject: [PATCH] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS
+
+... to determine path to host binaries
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Simon Busch <morphis@gravedo.de>
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2
+---
+ src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
+ src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
+ src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
+index 545b9a3..c991a9b 100644
+--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
+index 1d94715..301af8f 100644
+--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_DBus_check_file_exists(${imported_location})
+
+@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_DBus_check_file_exists(${imported_location})
+
+diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+index 99d87e2..5621dc0 100644
+--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Widgets_check_file_exists(${imported_location})
+
diff --git a/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
new file mode 100644
index 0000000000..cc0a330517
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
@@ -0,0 +1,36 @@
+From f1d359e60e76867cee1df636c5c834fe829f5316 Mon Sep 17 00:00:00 2001
+From: Holger Freyther <zecke@selfish.org>
+Date: Wed, 26 Sep 2012 17:22:30 +0200
+Subject: [PATCH] qlibraryinfo: allow to set qt.conf from the outside using the
+ environment
+
+Allow to set a qt.conf from the outside using the environment. This allows
+to inject new prefixes and other paths into qmake. This is needed when using
+the same qmake binary to build qt/x11 and qt/embedded
+
+Upstream-Status: Inappropriate [embedded specific]
+ again very OE specific to read everything from environment (reusing the same
+ qmake from sstate and replacing all configured paths in it with qt.conf from
+ environment).
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/corelib/global/qlibraryinfo.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
+index b4ba0b5..11d4c00 100644
+--- a/src/corelib/global/qlibraryinfo.cpp
++++ b/src/corelib/global/qlibraryinfo.cpp
+@@ -172,7 +172,10 @@ void QLibrarySettings::load()
+ QSettings *QLibraryInfoPrivate::findConfiguration()
+ {
+ #ifdef QT_BUILD_QMAKE
+- QString qtconfig = qmake_libraryInfoFile();
++ QByteArray config = getenv("OE_QMAKE_QTCONF_PATH");
++ QString qtconfig = QFile::decodeName(config);
++ if(!QFile::exists(qtconfig))
++ qtconfig = qmake_libraryInfoFile();
+ if (QFile::exists(qtconfig))
+ return new QSettings(qtconfig, QSettings::IniFormat);
+ #else
diff --git a/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch b/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch
new file mode 100644
index 0000000000..5a3dfea2f5
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch
@@ -0,0 +1,34 @@
+From cb813ec552f965208ecfc9750a0fbf10841322fb Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Tue, 25 Aug 2015 10:05:15 -0400
+Subject: [PATCH] configure: bump path length from 256 to 512 characters
+
+Increase the path length that gets hardcoded into generated config.cpp file
+from 256 to 512 characters, as nativesdk path can be quite long.
+
+Also update length of EXT_PREFIX and HOST_PREFIX now.
+
+Change-Id: If98dd57160efe9c98c36148cdf872f50b3d38118
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ configure.pri | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.pri b/configure.pri
+index ea48255..0699701 100644
+--- a/configure.pri
++++ b/configure.pri
+@@ -796,10 +796,10 @@ defineTest(qtConfOutput_preparePaths) {
+ "static const char qt_configure_installation [12+11] = \"qt_instdate=2012-12-20\";" \
+ "" \
+ "/* Installation Info */" \
+- "static const char qt_configure_prefix_path_str [12+256] = \"qt_prfxpath=$$config.input.prefix\";" \
++ "static const char qt_configure_prefix_path_str [12+512] = \"qt_prfxpath=$$config.input.prefix\";" \
+ "$${LITERAL_HASH}ifdef QT_BUILD_QMAKE" \
+- "static const char qt_configure_ext_prefix_path_str [12+256] = \"qt_epfxpath=$$config.input.extprefix\";" \
+- "static const char qt_configure_host_prefix_path_str [12+256] = \"qt_hpfxpath=$$config.input.hostprefix\";" \
++ "static const char qt_configure_ext_prefix_path_str [12+512] = \"qt_epfxpath=$$config.input.extprefix\";" \
++ "static const char qt_configure_host_prefix_path_str [12+512] = \"qt_hpfxpath=$$config.input.hostprefix\";" \
+ "$${LITERAL_HASH}endif" \
+ "" \
+ "static const short qt_configure_str_offsets[] = {" \
diff --git a/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch b/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch
new file mode 100644
index 0000000000..2e261b813e
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch
@@ -0,0 +1,25 @@
+From 6cd8e808e0eb8fa26976da66dd3dfdd58c1d026a Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Mon, 24 Oct 2016 09:45:18 +0300
+Subject: [PATCH] Disable all unknown features instead of erroring out
+
+Task-number: QTBUG-56656
+Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447
+---
+ mkspecs/features/qt_configure.prf | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
+index d5dcda2..501151d 100644
+--- a/mkspecs/features/qt_configure.prf
++++ b/mkspecs/features/qt_configure.prf
+@@ -1251,7 +1251,8 @@ defineReplace(qtConfEvaluateSingleExpression) {
+ error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.")
+ return($$result)
+ }
+- error("Unknown feature object $${feature} in expression '$${1}'.")
++ warning("Unknown feature object $${feature} in expression '$${1}'.")
++ result = false
+ }
+ !qtConfCheckFeature($$feature): \
+ error("Expression '$$1' is accessing non-emitted feature $${feature}.")
diff --git a/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch b/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch
new file mode 100644
index 0000000000..cf1a716f6e
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch
@@ -0,0 +1,63 @@
+From e3fe48be51aa67227ac1b34c01e4c913d82866c2 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Wed, 11 May 2016 15:20:41 +0200
+Subject: [PATCH] Pretend Qt5 wasn't found if OE_QMAKE_PATH_EXTERNAL_HOST_BINS
+ isn't set
+
+This prevents errors like:
+
+| The imported target "Qt5::Core" references the file
+|
+| "/qmake"
+|
+| but this file does not exist. Possible reasons include:
+
+Which happen if CMake is used without setting OE_QMAKE_PATH_EXTERNAL_HOST_BINS.
+To achieve this a check for OE_QMAKE_PATH_EXTERNAL_HOST_BINS is added to each Qt5*Config.cmake
+file. And in the case where the variable is not set we just return which is basically
+equal to telling CMake that Qt5 wasn't found.
+
+Upstream-Status: Pending
+ The patch only makes sense in connection with other patches included here.
+ Specifically this are:
+ - 0003-Add-external-hostbindir-option.patch
+ - 0010-Add-external-hostbindir-option-for-native-sdk.patch
+
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+---
+ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 5 +++++
+ src/corelib/Qt5Config.cmake.in | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 55c74aa..f9ec328 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -9,6 +9,11 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0)
+ endif()
+ !!ENDIF
+
++if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS)
++ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined")
++ return()
++endif()
++
+ !!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+ !!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+ set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in
+index 75b5348..ed31888 100644
+--- a/src/corelib/Qt5Config.cmake.in
++++ b/src/corelib/Qt5Config.cmake.in
+@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 2.8.9)
+ message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\")
+ endif()
+
++if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS)
++ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined")
++ return()
++endif()
++
+ if (NOT Qt5_FIND_COMPONENTS)
+ set(Qt5_NOT_FOUND_MESSAGE \"The Qt5 package requires at least one component\")
+ set(Qt5_FOUND False)
diff --git a/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch b/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch
new file mode 100644
index 0000000000..fd9a9e5a56
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch
@@ -0,0 +1,25 @@
+From efaae3535a1ac006ec1b3003258b83d905265fd3 Mon Sep 17 00:00:00 2001
+From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+Date: Wed, 7 Jun 2017 21:00:49 +0900
+Subject: [PATCH] Delete qlonglong and qulonglong
+
+Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+---
+ tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro
+index 09458bd..59a120e 100644
+--- a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro
++++ b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro
+@@ -5,10 +5,8 @@ SUBDIRS=\
+ char32_t \
+ int \
+ long \
+- qlonglong \
+ qptrdiff \
+ quintptr \
+- qulonglong \
+ schar \
+ short \
+ uchar \
diff --git a/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch b/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch
new file mode 100644
index 0000000000..81269d2e87
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch
@@ -0,0 +1,60 @@
+From d79fecb4e8d2040efdc295d06c5e24bdf3cf6b60 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 27 Jul 2017 08:02:51 -0700
+Subject: [PATCH] Replace pthread_yield with sched_yield
+
+On Linux pthead_yield is same as sched_yield implementation wise
+and sched_yield is available on all libc
+implementations on Linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 4 ++--
+ tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp | 5 +++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+index 076610a..cb8431f 100644
+--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
++++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+@@ -34,7 +34,7 @@
+ #include "tst_qvariant_common.h"
+
+ #ifdef Q_OS_LINUX
+-# include <pthread.h>
++# include <sched.h>
+ #endif
+
+ #include <algorithm>
+@@ -199,7 +199,7 @@ protected:
+ const char *nm = name.constData();
+ int tp = qRegisterMetaType<Bar>(nm);
+ #if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
+- pthread_yield();
++ sched_yield();
+ #endif
+ QMetaType info(tp);
+ if (!info.isValid()) {
+diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+index e45eda2..e64f329 100644
+--- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
++++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+@@ -78,6 +78,7 @@
+ #include <stdlib.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <sched.h>
+ #endif
+
+ #include "private/qhostinfo_p.h"
+@@ -2136,8 +2137,8 @@ public slots:
+
+ #if defined(Q_OS_MAC)
+ pthread_yield_np();
+-#elif defined Q_OS_LINUX && !defined Q_OS_ANDROID
+- pthread_yield();
++#elif defined Q_OS_LINUX
++ sched_yield();
+ #endif
+ if (!sock->waitForConnected()) {
+ networkTimeout = true;
diff --git a/meta/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch b/meta/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch
new file mode 100644
index 0000000000..c210d644b6
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch
@@ -0,0 +1,69 @@
+From aaeadb4326f1f9df7bbafa0b9fa6937504a1c035 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2017 09:11:44 -0700
+Subject: [PATCH] Add OE specific specs for clang compiler
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkspecs/linux-oe-clang/qmake.conf | 43 ++++++++++++++++++++++++++++++++++
+ mkspecs/linux-oe-clang/qplatformdefs.h | 1 +
+ 2 files changed, 44 insertions(+)
+ create mode 100644 mkspecs/linux-oe-clang/qmake.conf
+ create mode 100644 mkspecs/linux-oe-clang/qplatformdefs.h
+
+diff --git a/mkspecs/linux-oe-clang/qmake.conf b/mkspecs/linux-oe-clang/qmake.conf
+new file mode 100644
+index 0000000..ffc9f05
+--- /dev/null
++++ b/mkspecs/linux-oe-clang/qmake.conf
+@@ -0,0 +1,43 @@
++#
++# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
++#
++
++MAKEFILE_GENERATOR = UNIX
++CONFIG += incremental
++QMAKE_INCREMENTAL_STYLE = sublib
++
++include(../common/linux.conf)
++
++# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
++QMAKE_AR = $$(OE_QMAKE_AR) cqs
++QMAKE_STRIP = $$(OE_QMAKE_STRIP)
++QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER)
++
++include(../common/gcc-base-unix.conf)
++
++# *FLAGS from gcc-base.conf
++QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
++QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
++QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
++
++include(../common/clang.conf)
++
++# tc settings from g++-base.conf
++QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) clang
++QMAKE_CC = $$(OE_QMAKE_CC)
++QMAKE_CXX = $$(OE_QMAKE_CXX)
++
++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS)
++
++QMAKE_LINK = $$(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
++
++# for the SDK
++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
++
++include(../oe-device-extra.pri)
++
++load(device_config)
++load(qt_config)
+diff --git a/mkspecs/linux-oe-clang/qplatformdefs.h b/mkspecs/linux-oe-clang/qplatformdefs.h
+new file mode 100644
+index 0000000..880c927
+--- /dev/null
++++ b/mkspecs/linux-oe-clang/qplatformdefs.h
+@@ -0,0 +1 @@
++#include "../linux-clang/qplatformdefs.h"
diff --git a/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch b/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch
new file mode 100644
index 0000000000..5fed2ff891
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch
@@ -0,0 +1,32 @@
+From 7c7545fc64e78b2a4a411aa392df6f424ee27c5a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2017 09:44:48 -0700
+Subject: [PATCH] linux-clang: Invert conditional for defining QT_SOCKLEN_T
+
+This helps to make sure that QT_SOCKLEN_T is defined to be 'int'
+only when its glibc < 2 and not for other libcswhich may define
+it as per standards but are not glibc, e.g. musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkspecs/linux-clang/qplatformdefs.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mkspecs/linux-clang/qplatformdefs.h b/mkspecs/linux-clang/qplatformdefs.h
+index d29225f..a0cdb57 100644
+--- a/mkspecs/linux-clang/qplatformdefs.h
++++ b/mkspecs/linux-clang/qplatformdefs.h
+@@ -84,10 +84,10 @@
+
+ #undef QT_SOCKLEN_T
+
+-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
+-#define QT_SOCKLEN_T socklen_t
+-#else
++#if defined(__GLIBC__) && (__GLIBC__ < 2)
+ #define QT_SOCKLEN_T int
++#else
++#define QT_SOCKLEN_T socklen_t
+ #endif
+
+ #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
diff --git a/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch b/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch
new file mode 100644
index 0000000000..a0aaa520ee
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch
@@ -0,0 +1,25 @@
+From ba70f3ca46d921c20bebb5cb9d4b41e64bd02d8b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2017 10:11:50 -0700
+Subject: [PATCH] tst_qlocale: Enable QT_USE_FENV only on glibc
+
+musl does not have feenableexcept function
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
+index d424e60..3eae828 100644
+--- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
++++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
+@@ -46,7 +46,7 @@
+ #include <private/qlocale_tools_p.h>
+ #include <qnumeric.h>
+
+-#if defined(Q_OS_LINUX) && !defined(__UCLIBC__)
++#if defined(Q_OS_LINUX) && defined(__GLIBC__)
+ # define QT_USE_FENV
+ #endif
+
diff --git a/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch b/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch
new file mode 100644
index 0000000000..fe1fcf57ae
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch
@@ -0,0 +1,33 @@
+From 81fc64f7f3a8b0554fd8d1b96b113bc04b5f0b5c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 14 Feb 2018 17:08:43 -0800
+Subject: [PATCH] mkspecs/common/gcc-base.conf: Use -I instead of -isystem
+
+-isystem fails to build when code uses include_next on certain files e.g.
+
+qtbase/5.10.0+gitAUTOINC+50117d738a-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
+ #include_next <stdlib.h>
+ ^~~~~~~~~~
+compilation terminated.
+make[2]: *** [Makefile:11592: .obj/qgenericpluginfactory.o] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkspecs/common/gcc-base.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
+index 234f71d..ee3da02 100644
+--- a/mkspecs/common/gcc-base.conf
++++ b/mkspecs/common/gcc-base.conf
+@@ -46,7 +46,7 @@ QMAKE_CFLAGS_DEBUG += -g
+ QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
+-QMAKE_CFLAGS_ISYSTEM = -isystem
++QMAKE_CFLAGS_ISYSTEM = -I
+ QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
+ QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
+ QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
diff --git a/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch b/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch
new file mode 100644
index 0000000000..3d40515f1a
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch
@@ -0,0 +1,28 @@
+From 2ea3a1612452f1dc9c2febb4ae610194f67e39d6 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 16 Nov 2013 00:32:30 +0100
+Subject: [PATCH] Always build uic and qvkgen
+
+Even if we are not building gui or widgets. This tool is needed later
+as a native tool when compiling the target.
+
+Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6
+Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/src.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/src.pro b/src/src.pro
+index a73729a..c7668b5 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -213,7 +213,7 @@ qtConfig(gui) {
+ }
+ }
+ }
+-SUBDIRS += src_plugins
++SUBDIRS += src_plugins src_tools_uic src_tools_qvkgen
+
+ nacl: SUBDIRS -= src_network src_testlib
+
diff --git a/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch b/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch
new file mode 100644
index 0000000000..c733c1566d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch
@@ -0,0 +1,27 @@
+From 77365eda4dd1c4c26803b3f0d1f411b7416ad531 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Fri, 24 Nov 2017 15:16:31 +0200
+Subject: [PATCH] Bootstrap without linkat feature
+
+qmake does not work together with pseudo when unnamed temporary files
+are used with linkat.
+
+Upstream-Status: Inappropriate [OE specific]
+[YOCTO #11996]
+---
+ src/corelib/global/qconfig-bootstrapped.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h
+index dabb715..5b4ff86 100644
+--- a/src/corelib/global/qconfig-bootstrapped.h
++++ b/src/corelib/global/qconfig-bootstrapped.h
+@@ -88,7 +88,7 @@
+ #define QT_FEATURE_futimes -1
+ #define QT_FEATURE_library -1
+ #ifdef __linux__
+-# define QT_FEATURE_linkat 1
++# define QT_FEATURE_linkat -1
+ #else
+ # define QT_FEATURE_linkat -1
+ #endif
diff --git a/meta/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake b/meta/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
new file mode 100644
index 0000000000..6f0042b251
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
@@ -0,0 +1 @@
+set( OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS} )
diff --git a/meta/recipes-qt/qt5/qtbase_git.bb b/meta/recipes-qt/qt5/qtbase_git.bb
new file mode 100644
index 0000000000..6532dde212
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase_git.bb
@@ -0,0 +1,247 @@
+require qt5.inc
+require qt5-git.inc
+require qt5-ptest.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \
+ file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+# common for qtbase-native, qtbase-nativesdk and qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-shared
+# 5.10.meta-qt5-shared.2
+SRC_URI += "\
+ file://0001-Add-linux-oe-g-platform.patch \
+ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \
+ file://0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
+ file://0004-configure-bump-path-length-from-256-to-512-character.patch \
+ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \
+ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
+ file://0007-Delete-qlonglong-and-qulonglong.patch \
+ file://0008-Replace-pthread_yield-with-sched_yield.patch \
+ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \
+ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \
+ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \
+ file://0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch \
+"
+
+# LGPL-3.0 is used only in src/plugins/platforms/android/extract.cpp
+
+# for syncqt
+RDEPENDS_${PN}-tools += "perl"
+
+# workaround for gold bug:
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842304
+# https://sourceware.org/bugzilla/show_bug.cgi?id=21712
+# it's triggered only in combination of gold and security_flags.inc,
+# because security_flags.inc now enable pie by default.
+# Adding -no-pie or changing -fuse-ld=gold to -fuse-ld=bfd
+# works around this issue, will use -fuse-ld=bfd as it's considered
+# binutils bug.
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+# .obj/tst_qmetatype.o(.qtversion+0x0): error: unexpected reloc 3 against global symbol qt_version_tag without base register in object file when generating a position-independent output file
+# collect2: error: ld returned 1 exit status
+#
+# with -no-pie:
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -no-pie -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+#
+# with -fuse-ld=gold replaced with -fuse-ld=bfd:
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=bfd -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+#
+# http://errors.yoctoproject.org/Errors/Details/150329/
+QT_CONFIG_FLAGS_GOLD_x86 = "-no-use-gold-linker"
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+# separate some parts of PACKAGECONFIG which are often changed
+PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}"
+PACKAGECONFIG_FB ?= "${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+PACKAGECONFIG_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb xinput2 glib xkb xkbcommon-evdev', '', d)}"
+PACKAGECONFIG_FONTS ?= ""
+PACKAGECONFIG_SYSTEM ?= "jpeg libpng zlib"
+PACKAGECONFIG_DISTRO ?= ""
+# Either release or debug, can be overridden in bbappends
+PACKAGECONFIG_RELEASE ?= "release"
+# This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency
+# PACKAGECONFIG_OPENSSL ?= "openssl"
+PACKAGECONFIG_DEFAULT ?= "dbus udev evdev widgets tools libs freetype tests \
+ ${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size', '', d)} \
+"
+
+PACKAGECONFIG ?= " \
+ ${PACKAGECONFIG_RELEASE} \
+ ${PACKAGECONFIG_DEFAULT} \
+ ${PACKAGECONFIG_OPENSSL} \
+ ${PACKAGECONFIG_GL} \
+ ${PACKAGECONFIG_FB} \
+ ${PACKAGECONFIG_X11} \
+ ${PACKAGECONFIG_FONTS} \
+ ${PACKAGECONFIG_SYSTEM} \
+ ${PACKAGECONFIG_DISTRO} \
+"
+
+PACKAGECONFIG[release] = "-release,-debug"
+PACKAGECONFIG[debug] = ""
+PACKAGECONFIG[developer] = "-developer-build"
+PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug"
+PACKAGECONFIG[optimize-size] = "-optimize-size"
+PACKAGECONFIG[sm] = "-sm,-no-sm"
+PACKAGECONFIG[tests] = "-make tests,-nomake tests"
+PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples"
+PACKAGECONFIG[tools] = "-make tools,-nomake tools"
+# only for completeness, configure will add libs even if you try to explicitly remove it
+PACKAGECONFIG[libs] = "-make libs"
+# accessibility is required to compile qtquickcontrols
+PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility"
+PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0"
+# use either system freetype or bundled freetype, if you disable freetype completely
+# fontdatabases/basic/qbasicfontdatabase.cpp will fail to build and system freetype
+# works only together with fontconfig
+PACKAGECONFIG[freetype] = "-system-freetype,-qt-freetype,freetype"
+PACKAGECONFIG[harfbuzz] = "-system-harfbuzz,-no-harfbuzz,harfbuzz"
+PACKAGECONFIG[jpeg] = "-system-libjpeg,-no-libjpeg,jpeg"
+PACKAGECONFIG[libpng] = "-system-libpng,-no-libpng,libpng"
+PACKAGECONFIG[gif] = "-gif,-no-gif"
+PACKAGECONFIG[ico] = "-ico,-no-ico"
+PACKAGECONFIG[zlib] = "-system-zlib,-qt-zlib,zlib"
+PACKAGECONFIG[pcre] = "-system-pcre,-qt-pcre,pcre2"
+PACKAGECONFIG[eglfs] = "-eglfs,-no-eglfs,drm"
+PACKAGECONFIG[gl] = "-opengl desktop,,virtual/libgl"
+PACKAGECONFIG[gles2] = "-opengl es2,,virtual/libgles2 virtual/egl"
+PACKAGECONFIG[no-opengl] = "-no-opengl"
+PACKAGECONFIG[tslib] = "-tslib,-no-tslib,tslib"
+PACKAGECONFIG[cups] = "-cups,-no-cups,cups"
+PACKAGECONFIG[dbus] = "-dbus,-no-dbus,dbus"
+PACKAGECONFIG[xcb] = "-xcb -xcb-xlib -system-xcb,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil"
+PACKAGECONFIG[sql-ibase] = "-sql-ibase,-no-sql-ibase"
+PACKAGECONFIG[sql-mysql] = "-sql-mysql,-no-sql-mysql,mysql5"
+PACKAGECONFIG[sql-psql] = "-sql-psql,-no-sql-psql,postgresql"
+PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc"
+PACKAGECONFIG[sql-oci] = "-sql-oci,-no-sql-oci"
+PACKAGECONFIG[sql-tds] = "-sql-tds,-no-sql-tds"
+PACKAGECONFIG[sql-db2] = "-sql-db2,-no-sql-db2"
+PACKAGECONFIG[sql-sqlite2] = "-sql-sqlite2,-no-sql-sqlite2,sqlite"
+PACKAGECONFIG[sql-sqlite] = "-sql-sqlite -system-sqlite,-no-sql-sqlite,sqlite3"
+PACKAGECONFIG[xinput2] = "-xinput2,-no-xinput2,libxi"
+PACKAGECONFIG[iconv] = "-iconv,-no-iconv,virtual/libiconv"
+PACKAGECONFIG[xkb] = "-xkb,-no-xkb -no-xkbcommon,libxkbcommon"
+PACKAGECONFIG[xkbcommon-evdev] = "-xkbcommon-evdev,-no-xkbcommon-evdev,libxkbcommon,xkeyboard-config"
+PACKAGECONFIG[evdev] = "-evdev,-no-evdev"
+PACKAGECONFIG[mtdev] = "-mtdev,-no-mtdev,mtdev"
+# depends on glib
+PACKAGECONFIG[fontconfig] = "-fontconfig,-no-fontconfig,fontconfig"
+PACKAGECONFIG[gtk] = "-gtk,-no-gtk,gtk+3"
+PACKAGECONFIG[directfb] = "-directfb,-no-directfb,directfb"
+PACKAGECONFIG[linuxfb] = "-linuxfb,-no-linuxfb"
+PACKAGECONFIG[kms] = "-kms,-no-kms,drm virtual/egl"
+PACKAGECONFIG[gbm] = "-gbm,-no-gbm,virtual/mesa"
+PACKAGECONFIG[icu] = "-icu,-no-icu,icu"
+PACKAGECONFIG[udev] = "-libudev,-no-libudev,udev"
+PACKAGECONFIG[openssl] = "-openssl,-no-openssl,openssl,libssl"
+PACKAGECONFIG[widgets] = "-widgets,-no-widgets"
+PACKAGECONFIG[libproxy] = "-libproxy,-no-libproxy,libproxy"
+PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput"
+PACKAGECONFIG[journald] = "-journald,-no-journald,systemd"
+
+QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}"
+QT_CONFIG_FLAGS += " \
+ ${QT_CONFIG_FLAGS_GOLD} \
+ -shared \
+ -silent \
+ -no-pch \
+ -no-rpath \
+ -pkg-config \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+# for qtbase configuration we need default settings
+# since we cannot set empty set filename to a not existent file
+deltask generate_qt_config_file
+
+XPLATFORM_toolchain-clang = "linux-oe-clang"
+XPLATFORM ?= "linux-oe-g++"
+
+do_configure() {
+ # Regenerate header files when they are included in source tarball
+ # Otherwise cmake files don't set PRIVATE_HEADERS correctly
+ rm -rf ${S}/include
+ mkdir -p ${S}/.git || true
+
+ # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" during configuration
+ touch ${S}/mkspecs/oe-device-extra.pri
+
+ ${S}/configure -v \
+ -${QT_EDITION} -confirm-license \
+ -sysroot ${STAGING_DIR_TARGET} \
+ -prefix ${OE_QMAKE_PATH_PREFIX} \
+ -bindir ${OE_QMAKE_PATH_BINS} \
+ -libdir ${OE_QMAKE_PATH_LIBS} \
+ -datadir ${OE_QMAKE_PATH_DATA} \
+ -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \
+ -docdir ${OE_QMAKE_PATH_DOCS} \
+ -headerdir ${OE_QMAKE_PATH_HEADERS} \
+ -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \
+ -libexecdir ${OE_QMAKE_PATH_LIBEXECS} \
+ -plugindir ${OE_QMAKE_PATH_PLUGINS} \
+ -importdir ${OE_QMAKE_PATH_IMPORTS} \
+ -qmldir ${OE_QMAKE_PATH_QML} \
+ -translationdir ${OE_QMAKE_PATH_TRANSLATIONS} \
+ -testsdir ${OE_QMAKE_PATH_TESTS} \
+ -examplesdir ${OE_QMAKE_PATH_EXAMPLES} \
+ -hostprefix ${OE_QMAKE_PATH_HOST_PREFIX} \
+ -hostlibdir ${OE_QMAKE_PATH_HOST_LIBS} \
+ -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \
+ -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
+ -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
+ -platform ${OE_QMAKE_PLATFORM_NATIVE} \
+ -xplatform ${XPLATFORM} \
+ ${QT_CONFIG_FLAGS}
+}
+
+do_install_append() {
+ # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory"
+ touch ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/oe-device-extra.pri
+
+ # Replace host paths with qmake built-in properties
+ sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \
+ -e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \
+ ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/*.pri
+
+ # Update the mkspecs to include the default OE toolchain config for the target
+ conf=${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/${XPLATFORM}/qmake.conf
+
+ # qmake already knows the sysroot, see above $$[QT_SYSROOT], so remove the hardcoded sysroot
+ OE_QMAKE_CC_NO_SYSROOT=$(echo ${OE_QMAKE_CC} | sed -e 's!--sysroot=[^ ]*!!g')
+ OE_QMAKE_CXX_NO_SYSROOT=$(echo ${OE_QMAKE_CXX} | sed -e 's!--sysroot=[^ ]*!!g')
+ OE_QMAKE_LINK_NO_SYSROOT=$(echo ${OE_QMAKE_LINK} | sed -e 's!--sysroot=[^ ]*!!g')
+
+ echo "" >> $conf
+ echo "# default compiler options which can be overwritten from the environment" >> $conf
+ echo "isEmpty(QMAKE_AR): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf
+ echo "isEmpty(QMAKE_CC): QMAKE_CC = $OE_QMAKE_CC_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${OE_QMAKE_CFLAGS}" >> $conf
+ echo "isEmpty(QMAKE_CXX): QMAKE_CXX = $OE_QMAKE_CXX_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${OE_QMAKE_CXXFLAGS}" >> $conf
+ echo "isEmpty(QMAKE_LINK): QMAKE_LINK = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_LINK_SHLIB): QMAKE_LINK_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_LINK_C): QMAKE_LINK_C = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_LINK_C_SHLIB): QMAKE_LINK_C_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf
+ echo "isEmpty(QMAKE_LFLAGS): QMAKE_LFLAGS = ${OE_QMAKE_LDFLAGS}" >> $conf
+ echo "isEmpty(QMAKE_STRIP): QMAKE_STRIP = ${TARGET_PREFIX}strip" >> $conf
+
+ generate_target_qt_config_file ${D}${OE_QMAKE_PATH_BINS}/qt.conf
+}
+
+# mkspecs have mac specific scripts that depend on perl and bash
+INSANE_SKIP_${PN}-mkspecs += "file-rdeps"
+
+RRECOMMENDS_${PN}-plugins += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', '', d)}"
+
+SRCREV = "6c6ace9d23f90845fd424e474d38fe30f070775e"
diff --git a/meta/recipes-qt/qt5/qtcanvas3d_git.bb b/meta/recipes-qt/qt5/qtcanvas3d_git.bb
new file mode 100644
index 0000000000..af0b1186ce
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtcanvas3d_git.bb
@@ -0,0 +1,13 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "LGPL-3.0 | GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+"
+
+DEPENDS = "qtdeclarative"
+
+SRCREV = "0eecd96a7b83e8b1fc2811ec366b4ca1980296e0"
diff --git a/meta/recipes-qt/qt5/qtcharts_git.bb b/meta/recipes-qt/qt5/qtcharts_git.bb
new file mode 100644
index 0000000000..a2d4ced2b0
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtcharts_git.bb
@@ -0,0 +1,15 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+DEPENDS += "qtbase qtdeclarative qtmultimedia"
+
+SRCREV = "9a4f99f518a49716cc9cc300eb456c6b13f9e8d1"
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Details/152641/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
diff --git a/meta/recipes-qt/qt5/qtconnectivity_git.bb b/meta/recipes-qt/qt5/qtconnectivity_git.bb
new file mode 100644
index 0000000000..32ccdced5b
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtconnectivity_git.bb
@@ -0,0 +1,22 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtbase qtdeclarative"
+
+inherit bluetooth
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
+PACKAGECONFIG[bluez] = "-feature-bluez,-no-feature-bluez,${BLUEZ}"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+SRCREV = "2331b915d207fe794a07b834ec2bf8578965bc4d"
diff --git a/meta/recipes-qt/qt5/qtdatavis3d_git.bb b/meta/recipes-qt/qt5/qtdatavis3d_git.bb
new file mode 100644
index 0000000000..ea0ba59d27
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtdatavis3d_git.bb
@@ -0,0 +1,11 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+DEPENDS += "qtbase qtdeclarative qtmultimedia qtxmlpatterns"
+
+SRCREV = "397e50147407c16a16b6505558992ca3180f9aff"
diff --git a/meta/recipes-qt/qt5/qtdeclarative_git.bb b/meta/recipes-qt/qt5/qtdeclarative_git.bb
new file mode 100644
index 0000000000..d6f468fc2d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtdeclarative_git.bb
@@ -0,0 +1,35 @@
+require qt5.inc
+require qt5-git.inc
+require qt5-ptest.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtbase"
+
+PACKAGECONFIG ??= "qtxmlpatterns"
+PACKAGECONFIG[qtxmlpatterns] = ",,qtxmlpatterns"
+
+do_configure_prepend() {
+ # disable qtxmlpatterns test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/^\(qtHaveModule(xmlpatterns)\)/OE_QTXMLPATTERNS_ENABLED:\1/' -i ${S}/src/imports/imports.pro
+ sed -e 's/^\(!qtHaveModule(xmlpatterns)\)/!OE_QTXMLPATTERNS_ENABLED|\1/' -i ${S}/tests/auto/quick/quick.pro
+}
+
+do_install_append_class-nativesdk() {
+ # qml files not needed in nativesdk
+ rm -rf ${D}${OE_QMAKE_PATH_QML}
+}
+
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}"
+
+SRCREV = "3e91062877c0853aff693799bc5e33cdf7aaad42"
+
+BBCLASSEXTEND =+ "native nativesdk"
diff --git a/meta/recipes-qt/qt5/qtenginio_git.bb b/meta/recipes-qt/qt5/qtenginio_git.bb
new file mode 100644
index 0000000000..30d5eeae06
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtenginio_git.bb
@@ -0,0 +1,16 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=f70ee9a6c44ae8917586fea34dff0ab5 \
+"
+
+DEPENDS += "qtbase qtdeclarative qtxmlpatterns"
+
+QT_MODULE_BRANCH = "dev"
+SRCREV = "23603a3b088178d8ec92fddb240e5a5c55d77d5a"
diff --git a/meta/recipes-qt/qt5/qtgamepad_git.bb b/meta/recipes-qt/qt5/qtgamepad_git.bb
new file mode 100644
index 0000000000..e91754cd36
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtgamepad_git.bb
@@ -0,0 +1,17 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GPL-3.0 | LGPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv3;md5=c4fe8c6de4eef597feec6e90ed62e962 \
+ file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+DEPENDS += "qtbase qtxmlpatterns qtdeclarative"
+
+PACKAGECONFIG ??= "sdl2"
+PACKAGECONFIG[sdl2] = "-feature-sdl2,-no-feature-sdl2,libsdl2"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+SRCREV = "e6f366618dc9a3d232446197d6fea7c814e53828"
diff --git a/meta/recipes-qt/qt5/qtgraphicaleffects_git.bb b/meta/recipes-qt/qt5/qtgraphicaleffects_git.bb
new file mode 100644
index 0000000000..658420b522
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtgraphicaleffects_git.bb
@@ -0,0 +1,21 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+DEPENDS += "qtdeclarative"
+
+RDEPENDS_${PN}-dev = ""
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Build/44912/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+SRCREV = "a38c4da7b598f5a185d7c9f824482d418353e6bf"
diff --git a/meta/recipes-qt/qt5/qtimageformats_git.bb b/meta/recipes-qt/qt5/qtimageformats_git.bb
new file mode 100644
index 0000000000..d804b0194d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtimageformats_git.bb
@@ -0,0 +1,29 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+DEPENDS += "qtbase"
+
+PACKAGECONFIG ?= "libtiff"
+# Currently we don't have recipe for libmng, but lock it anyway so qtimageformats stay deterministic even when libmng is introduced
+PACKAGECONFIG[jasper] = ",CONFIG+=done_config_jasper,jasper"
+PACKAGECONFIG[libmng] = ",CONFIG+=done_config_libmng,libmng"
+PACKAGECONFIG[libtiff] = ",CONFIG+=done_config_libtiff,tiff"
+PACKAGECONFIG[libwebp] = ",CONFIG+=done_config_libwebp,libwebp"
+
+EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
+
+SRCREV = "892d4a0df7dccc6e70586835bb1211cf1b79bc69"
diff --git a/meta/recipes-qt/qt5/qtknx_git.bb b/meta/recipes-qt/qt5/qtknx_git.bb
new file mode 100644
index 0000000000..fa981abb73
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtknx_git.bb
@@ -0,0 +1,14 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "(GPL-3.0 & The-Qt-Company-GPL-Exception-1.0) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+"
+
+DEPENDS += "qtbase"
+
+QT_MODULE_BRANCH = "5.10"
+
+SRCREV = "29c34e8f072afd01002ed3847d752b4e065f977e"
diff --git a/meta/recipes-qt/qt5/qtlocation_git.bb b/meta/recipes-qt/qt5/qtlocation_git.bb
new file mode 100644
index 0000000000..03f3aca097
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtlocation_git.bb
@@ -0,0 +1,37 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "Apache-2.0 & MIT & openssl & BSL-1.0 & GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://src/3rdparty/mapbox-gl-native/LICENSE.md;md5=0ab9025299bcee16858021d557f09449 \
+"
+
+DEPENDS += "qtbase qtxmlpatterns qtdeclarative qtquickcontrols"
+
+PACKAGECONFIG ??= ""
+# older geoclue 0.12.99 is needed
+PACKAGECONFIG[geoclue] = ",,geoclue"
+PACKAGECONFIG[gypsy] = "-feature-gypsy,-no-feature-gypsy,gconf gypsy"
+PACKAGECONFIG[geoservices_mapboxgl] = "-feature-geoservices_mapboxgl,-no-feature-geoservices_mapboxgl"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Details/152640/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+SRC_URI += " \
+ ${QT_GIT}/qtlocation-mapboxgl.git;name=qtlocation-mapboxgl;branch=upstream/qt-staging;protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/mapbox-gl-native \
+"
+
+SRCREV_qtlocation = "ec00ff89bee900a1b8925e227a892bc57839cd60"
+SRCREV_qtlocation-mapboxgl = "8c1be4ec01ef46bf453856531ebf53b48ce3dbe7"
+
+SRCREV_FORMAT = "qtlocation_qtlocation-mapboxgl"
diff --git a/meta/recipes-qt/qt5/qtmqtt_git.bb b/meta/recipes-qt/qt5/qtmqtt_git.bb
new file mode 100644
index 0000000000..90c255d721
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtmqtt_git.bb
@@ -0,0 +1,14 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "(GPL-3.0 & The-Qt-Company-GPL-Exception-1.0) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+"
+
+DEPENDS += "qtbase"
+
+QT_MODULE_BRANCH = "5.10"
+
+SRCREV = "2c3c2a41c55a179332ec2a076856990f36dd5ef9"
diff --git a/meta/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch b/meta/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch
new file mode 100644
index 0000000000..4fb0f7241f
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch
@@ -0,0 +1,100 @@
+From ec1740a7bce48435e65ede530e0b96593ac619ea Mon Sep 17 00:00:00 2001
+From: Wenlin Kang <wenlin.kang@windriver.com>
+Date: Thu, 8 Sep 2016 12:18:13 +0800
+Subject: [PATCH] qtmultimedia: fix a conflicting declaration
+
+Use lgl2.h instead of gl2.h and gl2ext.h,
+fix a "conflicting declaration" error.
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ src/plugins/videonode/imx6/lgl2.h | 46 ++++++++++++++++++++++
+ .../videonode/imx6/qsgvivantevideomaterial.cpp | 5 ++-
+ src/plugins/videonode/imx6/qsgvivantevideonode.cpp | 5 ++-
+ 3 files changed, 52 insertions(+), 4 deletions(-)
+ create mode 100644 src/plugins/videonode/imx6/lgl2.h
+
+diff --git a/src/plugins/videonode/imx6/lgl2.h b/src/plugins/videonode/imx6/lgl2.h
+new file mode 100644
+index 0000000..2423697
+--- /dev/null
++++ b/src/plugins/videonode/imx6/lgl2.h
+@@ -0,0 +1,46 @@
++#ifndef __L_GL2_H__
++#define __L_GL2_H__
++
++// this file comes from <GLES2/gl2.h> and <GLES2/gl2ext.h>,
++// it's a light gl2.h.
++
++/*-------------------------------------------------------------------------
++ * Definition of KHRONOS_APIENTRY
++ *-------------------------------------------------------------------------
++ * This follows the return type of the function and precedes the function
++ * name in the function prototype.
++ */
++#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
++ /* Win32 but not WinCE */
++# define KHRONOS_APIENTRY __stdcall
++#else
++# define KHRONOS_APIENTRY
++#endif
++
++#ifndef GL_APIENTRY
++# define GL_APIENTRY KHRONOS_APIENTRY
++#endif
++
++#ifndef GL_APIENTRYP
++# define GL_APIENTRYP GL_APIENTRY*
++#endif
++
++typedef void GLvoid;
++typedef unsigned int GLenum;
++typedef unsigned int GLuint;
++typedef int GLsizei;
++
++#define GL_VIV_YV12 0x8FC0
++#define GL_VIV_NV12 0x8FC1
++#define GL_VIV_YUY2 0x8FC2
++#define GL_VIV_UYVY 0x8FC3
++#define GL_VIV_NV21 0x8FC4
++#define GL_VIV_I420 0x8FC5
++
++typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVMAPPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical);
++typedef void (GL_APIENTRYP PFNGLTEXDIRECTMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical);
++typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Pixels);
++typedef void (GL_APIENTRYP PFNGLTEXDIRECTINVALIDATEVIVPROC) (GLenum Target);
++typedef void (GL_APIENTRYP PFNGLTEXDIRECTTILEDMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical);
++
++#endif
+diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
+index 465ccfa..40e7592 100644
+--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
++++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
+@@ -37,8 +37,9 @@
+ **
+ ****************************************************************************/
+
+-#include <GLES2/gl2.h>
+-#include <GLES2/gl2ext.h>
++// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>,
++// fixes a conflicting declaration issue.
++#include "lgl2.h"
+
+ #include "qsgvivantevideomaterial.h"
+ #include "qsgvivantevideomaterialshader.h"
+diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
+index c8d83b4..5b1b8f2 100644
+--- a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
++++ b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
+@@ -37,8 +37,9 @@
+ **
+ ****************************************************************************/
+
+-#include <GLES2/gl2.h>
+-#include <GLES2/gl2ext.h>
++// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>,
++// fixes a conflicting declaration issue.
++#include "lgl2.h"
+
+ #include "qsgvivantevideonode.h"
+ #include "qsgvivantevideomaterialshader.h"
diff --git a/meta/recipes-qt/qt5/qtmultimedia_git.bb b/meta/recipes-qt/qt5/qtmultimedia_git.bb
new file mode 100644
index 0000000000..efe848f005
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtmultimedia_git.bb
@@ -0,0 +1,39 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtdeclarative"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
+PACKAGECONFIG[alsa] = "-alsa,-no-alsa,alsa-lib"
+PACKAGECONFIG[pulseaudio] = "-pulseaudio,-no-pulseaudio,pulseaudio"
+PACKAGECONFIG[openal] = "-feature-openal,-no-feature-openal,openal-soft"
+PACKAGECONFIG[gstreamer] = "-gstreamer 1.0,,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
+PACKAGECONFIG[gstreamer010] = "-gstreamer 0.10,,gstreamer gst-plugins-base gst-plugins-bad"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+# Disable GStreamer if completely disabled
+EXTRA_QMAKEVARS_CONFIGURE += "${@bb.utils.contains_any('PACKAGECONFIG', 'gstreamer gstreamer010', '', '-no-gstreamer', d)}"
+
+CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DMESA_EGL_NO_X11_HEADERS=1', d)}"
+# Patches from https://github.com/meta-qt5/qtmultimedia/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += "\
+ file://0001-qtmultimedia-fix-a-conflicting-declaration.patch \
+"
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Build/44914/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+SRCREV = "038716bb1f2d9b95f2d638e2d61d297563343af9"
diff --git a/meta/recipes-qt/qt5/qtnetworkauth_git.bb b/meta/recipes-qt/qt5/qtnetworkauth_git.bb
new file mode 100644
index 0000000000..0180376e3e
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtnetworkauth_git.bb
@@ -0,0 +1,12 @@
+LICENSE = "BSD & GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+require qt5.inc
+require qt5-git.inc
+
+DEPENDS += "qtbase"
+
+SRCREV = "8f4f2e0cae642ff5eb0b87ae1d4e9c5e6ccf2bd8"
diff --git a/meta/recipes-qt/qt5/qtpurchasing_git.bb b/meta/recipes-qt/qt5/qtpurchasing_git.bb
new file mode 100644
index 0000000000..adda211c13
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtpurchasing_git.bb
@@ -0,0 +1,13 @@
+require qt5.inc
+require qt5-git.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "Apache-2.0 & BSD & ( LGPL-3.0 | GPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv3;md5=b8c75190712063cde04e1f41b6fdad98 \
+ file://LICENSE.GPLv3;md5=40f9bf30e783ddc201497165dfb32afb \
+"
+
+DEPENDS += "qtbase qtdeclarative"
+
+SRCREV = "d925245573a76b23b231a93fa4674fb340f226a7"
diff --git a/meta/recipes-qt/qt5/qtquick1_git.bb b/meta/recipes-qt/qt5/qtquick1_git.bb
new file mode 100644
index 0000000000..85b8462931
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtquick1_git.bb
@@ -0,0 +1,29 @@
+require qt5.inc
+require qt5-git.inc
+require qt5-ptest.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+DEPENDS += "qtscript qtsvg qtxmlpatterns"
+# qttools
+
+PACKAGECONFIG ??= "webkit"
+PACKAGECONFIG[webkit] = ",,qtwebkit"
+
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'webkit', '', 'CONFIG+=noqtwebkit', d)}"
+
+do_configure_prepend() {
+ sed -i 's#^qtHaveModule(webkitwidgets):#qtHaveModule(webkitwidgets):!contains(CONFIG, noqtwebkit):#g' ${S}/src/imports/imports.pro
+}
+
+QT_MODULE_BRANCH = "dev"
+
+SRCREV = "b2476dcd53f0dea1e9eb38df5add3a771d64c4a1"
diff --git a/meta/recipes-qt/qt5/qtquickcontrols2_git.bb b/meta/recipes-qt/qt5/qtquickcontrols2_git.bb
new file mode 100644
index 0000000000..d922cd68cb
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtquickcontrols2_git.bb
@@ -0,0 +1,13 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & LGPL-3.0 | GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.LGPLv3;md5=382747d0119037529ec2b98b24038eb0 \
+ file://LICENSE.GPLv3;md5=dce746aa5261707df6d6999ab9958d8b \
+"
+
+DEPENDS += "qtdeclarative"
+
+SRCREV = "e693ad2c4ae22f8813befd5fe825c855537497ed"
diff --git a/meta/recipes-qt/qt5/qtquickcontrols_git.bb b/meta/recipes-qt/qt5/qtquickcontrols_git.bb
new file mode 100644
index 0000000000..17dd0fc1d0
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtquickcontrols_git.bb
@@ -0,0 +1,20 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtdeclarative"
+
+FILES_${PN}-qmlplugins += " \
+ ${OE_QMAKE_PATH_QML}/QtQuick/Controls/Shaders \
+ ${OE_QMAKE_PATH_QML}/QtQuick/Dialogs/qml/icons.ttf \
+"
+
+SRCREV = "09ebb25aa686fc3f47f860905c2abb32a95c75d1"
diff --git a/meta/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch b/meta/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch
new file mode 100644
index 0000000000..19b526c992
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch
@@ -0,0 +1,37 @@
+From 6235a3fdd0807205c818d70582033970ee008013 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Wed, 7 Jun 2017 15:17:12 +0300
+Subject: [PATCH] Allow a tools-only build
+
+Change-Id: I3b33fc1c8877fc82568bd386b063e7a0aa57b706
+---
+ mkspecs/features/repccommon.pri | 2 +-
+ qtremoteobjects.pro | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/mkspecs/features/repccommon.pri b/mkspecs/features/repccommon.pri
+index 5e88bf8..6efd19e 100644
+--- a/mkspecs/features/repccommon.pri
++++ b/mkspecs/features/repccommon.pri
+@@ -3,7 +3,7 @@ cmd = $${QT.remoteobjects.bins}/repc
+ contains(QMAKE_HOST.os, Windows) {
+ cmd = $$system_path($${cmd}.exe)
+ }
+-exists($$cmd): QT_TOOL.repc.binary = $$cmd
++false:exists($$cmd): QT_TOOL.repc.binary = $$cmd
+
+ # qtPrepareTool honors QT_TOOL.repc.binary if set
+ qtPrepareTool(QMAKE_REPC, repc)
+diff --git a/qtremoteobjects.pro b/qtremoteobjects.pro
+index c2e2b6b..93c2bb5 100644
+--- a/qtremoteobjects.pro
++++ b/qtremoteobjects.pro
+@@ -2,3 +2,8 @@ CONFIG += examples_need_tools tests_need_tools
+ load(qt_parts)
+
+ SUBDIRS += mkspecs
++
++tools-only {
++ sub_tools.depends -= sub_src
++ SUBDIRS = sub_tools
++}
diff --git a/meta/recipes-qt/qt5/qtremoteobjects_git.bb b/meta/recipes-qt/qt5/qtremoteobjects_git.bb
new file mode 100644
index 0000000000..e70579abcf
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtremoteobjects_git.bb
@@ -0,0 +1,29 @@
+LICENSE = "BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+require qt5.inc
+require qt5-git.inc
+
+DEPENDS += "qtbase qtdeclarative qtremoteobjects-native"
+
+# Patches from https://github.com/meta-qt5/qtremoteobjects/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += " \
+ file://0001-Allow-a-tools-only-build.patch \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG_class-native ??= "tools-only"
+PACKAGECONFIG_class-nativesdk ??= "tools-only"
+PACKAGECONFIG[tools-only] = "CONFIG+=tools-only"
+
+EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
+
+SRCREV = "61d2de26db7b90ad0ed3923b5deecd1c5b3be46a"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-qt/qt5/qtscript_git.bb b/meta/recipes-qt/qt5/qtscript_git.bb
new file mode 100644
index 0000000000..d73eb44eb6
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtscript_git.bb
@@ -0,0 +1,33 @@
+require qt5.inc
+require qt5-git.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+# qemuarm build fails with:
+# /OE/build/oe-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/qtscript/5.4.1+gitAUTOINC+822df36f25-r0/git/src/3rdparty/javascriptcore/JavaScriptCore/assembler/AssemblerBuffer.h: In member function 'void QTJSC::AssemblerBuffer::putInt64Unchecked(int64_t)':
+#/OE/build/oe-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/qtscript/5.4.1+gitAUTOINC+822df36f25-r0/git/src/3rdparty/javascriptcore/JavaScriptCore/assembler/AssemblerBuffer.h:106:58: warning: cast from 'char*' to 'int64_t* {aka long long int*}' increases required alignment of target type [-Wcast-align]
+# *reinterpret_cast<int64_t*>(&m_buffer[m_size]) = value;
+# ^
+#{standard input}: Assembler messages:
+#{standard input}:22: Error: selected processor does not support Thumb mode `stmdb sp!,{r1-r3}'
+#{standard input}:23: Error: selected processor does not support Thumb mode `stmdb sp!,{r4-r8,lr}'
+#{standard input}:30: Error: lo register required -- `ldmia sp!,{r4-r8,lr}'
+#{standard input}:43: Error: lo register required -- `ldmia sp!,{r4-r8,lr}'
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+DEPENDS += "qtbase"
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Build/44915/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+SRCREV = "76bcf9b526f96edb35469e9de4b032a112a2b1c0"
diff --git a/meta/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch b/meta/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch
new file mode 100644
index 0000000000..e734cf32f2
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch
@@ -0,0 +1,28 @@
+From f83817b29477f33ee3b4abf8468a7b01bb347d2b Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Tue, 10 Jan 2017 15:28:26 +0200
+Subject: [PATCH] Use external host bin path for cmake file
+
+Need to use ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} for cmake to find the
+qscxmlc tool from correct sysroot path.
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+Change-Id: Idb814be705e9cbaad7f1e68b5d7cdb79c4b65008
+---
+ src/scxml/Qt5ScxmlConfigExtras.cmake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scxml/Qt5ScxmlConfigExtras.cmake.in b/src/scxml/Qt5ScxmlConfigExtras.cmake.in
+index edb320a..ce7f2df 100644
+--- a/src/scxml/Qt5ScxmlConfigExtras.cmake.in
++++ b/src/scxml/Qt5ScxmlConfigExtras.cmake.in
+@@ -40,7 +40,7 @@ if (NOT TARGET Qt5::qscxmlc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Scxml_install_prefix}/$${CMAKE_BIN_DIR}qscxmlc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qscxmlc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qscxmlc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Scxml_check_file_exists(${imported_location})
+
diff --git a/meta/recipes-qt/qt5/qtscxml_git.bb b/meta/recipes-qt/qt5/qtscxml_git.bb
new file mode 100644
index 0000000000..feb333fe20
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtscxml_git.bb
@@ -0,0 +1,24 @@
+LICENSE = "LGPL-3.0 & BSD & GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+require qt5.inc
+require qt5-git.inc
+
+DEPENDS += "qtbase qtdeclarative qtxmlpatterns qtscxml-native"
+
+SRCREV = "d9b2f8c56d162c108d5427769a8e496dd7a3b62e"
+
+# Patches from https://github.com/meta-qt5/qtscxml/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += "file://0001-Use-external-host-bin-path-for-cmake-file.patch"
+
+do_install_append_class-nativesdk() {
+ # qml files not needed in nativesdk
+ rm -rf ${D}${OE_QMAKE_PATH_QML}
+}
+
+BBCLASSEXTEND =+ "native nativesdk"
diff --git a/meta/recipes-qt/qt5/qtsensors_git.bb b/meta/recipes-qt/qt5/qtsensors_git.bb
new file mode 100644
index 0000000000..09e8e8b9f6
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtsensors_git.bb
@@ -0,0 +1,15 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+DEPENDS += "qtbase qtdeclarative"
+
+SRCREV = "d5a94c5595170fed9a0f7d3d42ef4b0216909d0d"
diff --git a/meta/recipes-qt/qt5/qtserialbus_git.bb b/meta/recipes-qt/qt5/qtserialbus_git.bb
new file mode 100644
index 0000000000..85c4669ff9
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtserialbus_git.bb
@@ -0,0 +1,14 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & (LGPL-3.0 | GPL-2.0+) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.FDL;md5=f70ee9a6c44ae8917586fea34dff0ab5 \
+"
+
+DEPENDS += "qtbase qtserialport"
+
+SRCREV = "d5d35d64d06729322c80327de40badaf553df87e"
diff --git a/meta/recipes-qt/qt5/qtserialport_git.bb b/meta/recipes-qt/qt5/qtserialport_git.bb
new file mode 100644
index 0000000000..ddc6957ad4
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtserialport_git.bb
@@ -0,0 +1,18 @@
+require qt5.inc
+require qt5-git.inc
+
+# text of LGPL_EXCEPTION.txt and LICENSE.FDL is slightly different than what
+# other qt* components use :/
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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://LGPL_EXCEPTION.txt;md5=bb426f3367c4805d1e12fad05bd0b750 \
+ file://LICENSE.FDL;md5=3801d7932fdc07fd9efe89f9854a6caa \
+"
+
+DEPENDS += "qtbase"
+
+SRCREV = "fa688ac5c36a16aa3b44d4ca1509f9386e670a89"
diff --git a/meta/recipes-qt/qt5/qtsvg_git.bb b/meta/recipes-qt/qt5/qtsvg_git.bb
new file mode 100644
index 0000000000..12fcff1f4e
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtsvg_git.bb
@@ -0,0 +1,16 @@
+require qt5.inc
+require qt5-git.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+DEPENDS += "qtbase"
+
+SRCREV = "af35137016f082c3fa15e61414f3c78c73ac322f"
diff --git a/meta/recipes-qt/qt5/qtsystems_git.bb b/meta/recipes-qt/qt5/qtsystems_git.bb
new file mode 100644
index 0000000000..0bda2e9970
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtsystems_git.bb
@@ -0,0 +1,34 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+DEPENDS += "qtbase qtdeclarative udev gconf"
+
+inherit bluetooth
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
+PACKAGECONFIG[bluez] = "CONFIG+=OE_BLUEZ_ENABLED,,${BLUEZ}"
+
+EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
+
+do_configure_prepend() {
+ # disable bluez test if it isn't enabled by PACKAGECONFIG
+ sed -i 's/^ qtCompileTest(bluez)/ OE_BLUEZ_ENABLED:qtCompileTest(bluez)/g' ${S}/qtsystems.pro
+}
+
+do_install_append() {
+ # Remove example.pro file as it is useless
+ rm -f ${D}${OE_QMAKE_PATH_EXAMPLES}/examples.pro
+}
+
+QT_MODULE_BRANCH = "dev"
+
+SRCREV = "66e45676f5f5c6251ccab36906c6324fd0065e08"
diff --git a/meta/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch b/meta/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch
new file mode 100644
index 0000000000..7a081a1cfe
--- /dev/null
+++ b/meta/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch
@@ -0,0 +1,48 @@
+From 9557b7b0100c335b42503c3f3b6a9a193c3bf9cf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Wed, 4 Jun 2014 11:28:16 +0200
+Subject: [PATCH] add noqtwebkit configuration
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropiate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/assistant/assistant/assistant.pro | 4 ++--
+ src/designer/src/plugins/plugins.pro | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro
+index 1374c07..28c45a2 100644
+--- a/src/assistant/assistant/assistant.pro
++++ b/src/assistant/assistant/assistant.pro
+@@ -1,4 +1,4 @@
+-qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) {
++qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static):!contains(CONFIG, noqtwebkit) {
+ BROWSER = qtwebkit
+ } else {
+ BROWSER = qtextbrowser
+@@ -75,7 +75,7 @@ SOURCES += aboutdialog.cpp \
+ openpagesmanager.cpp \
+ openpagesswitcher.cpp
+
+-equals(BROWSER, "qtwebkit") {
++equals(BROWSER, "qtwebkit"):!contains(CONFIG, noqtwebkit) {
+ DEFINES += BROWSER_QTWEBKIT
+ QT += webkitwidgets
+ SOURCES += helpviewer_qwv.cpp
+diff --git a/src/designer/src/plugins/plugins.pro b/src/designer/src/plugins/plugins.pro
+index 500a153..b60fa2d 100644
+--- a/src/designer/src/plugins/plugins.pro
++++ b/src/designer/src/plugins/plugins.pro
+@@ -1,6 +1,6 @@
+ TEMPLATE = subdirs
+
+ # qtHaveModule(opengl): SUBDIRS += tools/view3d
+-qtHaveModule(webkitwidgets): SUBDIRS += qwebview
++qtHaveModule(webkitwidgets):!contains(CONFIG, noqtwebkit): SUBDIRS += qwebview
+ win32: qtHaveModule(axcontainer): SUBDIRS += activeqt
+ qtHaveModule(quickwidgets): SUBDIRS += qquickwidget
diff --git a/meta/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch b/meta/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch
new file mode 100644
index 0000000000..a4909f75fd
--- /dev/null
+++ b/meta/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch
@@ -0,0 +1,60 @@
+From a260d3a5b1664027e09c7de368ee5e94d22ff8bf Mon Sep 17 00:00:00 2001
+From: Cody P Schafer <dev@codyps.com>
+Date: Thu, 9 Jul 2015 11:28:19 -0400
+Subject: [PATCH] linguist-tools cmake: allow overriding the location for
+ lupdate and lrelease
+
+---
+ src/linguist/Qt5LinguistToolsConfig.cmake.in | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/src/linguist/Qt5LinguistToolsConfig.cmake.in b/src/linguist/Qt5LinguistToolsConfig.cmake.in
+index 4318b16..2e3b70f 100644
+--- a/src/linguist/Qt5LinguistToolsConfig.cmake.in
++++ b/src/linguist/Qt5LinguistToolsConfig.cmake.in
+@@ -26,6 +26,9 @@ get_filename_component(_qt5_linguisttools_install_prefix \"${CMAKE_CURRENT_LIST_
+ !!ELSE
+ set(_qt5_linguisttools_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+ !!ENDIF
++if (OE_QMAKE_PATH_HOST_PREFIX)
++ set(_qt5_linguisttools_install_prefix \"${OE_QMAKE_PATH_HOST_PREFIX}\")
++endif()
+
+ macro(_qt5_LinguistTools_check_file_exists file)
+ if(NOT EXISTS \"${file}\" )
+@@ -44,11 +47,7 @@ endmacro()
+ if (NOT TARGET Qt5::lrelease)
+ add_executable(Qt5::lrelease IMPORTED)
+
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lrelease$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}lrelease$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
+ _qt5_LinguistTools_check_file_exists(${imported_location})
+
+ set_target_properties(Qt5::lrelease PROPERTIES
+@@ -59,11 +58,7 @@ endif()
+ if (NOT TARGET Qt5::lupdate)
+ add_executable(Qt5::lupdate IMPORTED)
+
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lupdate$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}lupdate$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
+ _qt5_LinguistTools_check_file_exists(${imported_location})
+
+ set_target_properties(Qt5::lupdate PROPERTIES
+@@ -74,11 +69,7 @@ endif()
+ if (NOT TARGET Qt5::lconvert)
+ add_executable(Qt5::lconvert IMPORTED)
+
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lconvert$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}lconvert$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
+ _qt5_LinguistTools_check_file_exists(${imported_location})
+
+ set_target_properties(Qt5::lconvert PROPERTIES
diff --git a/meta/recipes-qt/qt5/qttools/run-ptest b/meta/recipes-qt/qt5/qttools/run-ptest
new file mode 100644
index 0000000000..5cd5e27eb4
--- /dev/null
+++ b/meta/recipes-qt/qt5/qttools/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+./tst_qtdiag
+./tst_qtattributionsscanner
diff --git a/meta/recipes-qt/qt5/qttools_git.bb b/meta/recipes-qt/qt5/qttools_git.bb
new file mode 100644
index 0000000000..df15d88b11
--- /dev/null
+++ b/meta/recipes-qt/qt5/qttools_git.bb
@@ -0,0 +1,41 @@
+require qt5.inc
+require qt5-git.inc
+require qt5-ptest.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtbase qtdeclarative qtxmlpatterns"
+
+# Patches from https://github.com/meta-qt5/qttools/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += " \
+ file://0001-add-noqtwebkit-configuration.patch \
+ file://0002-linguist-tools-cmake-allow-overriding-the-location-f.patch \
+"
+
+FILES_${PN}-tools += "${datadir}${QT_DIR_NAME}/phrasebooks"
+FILES_${PN}-examples = "${datadir}${QT_DIR_NAME}/examples"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[qtwebkit] = ",,qtwebkit"
+
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtwebkit', '', 'CONFIG+=noqtwebkit', d)}"
+
+SRCREV = "03ebf1c3d6ceae715c696a171920a0204c58dd0a"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install_ptest() {
+ mkdir -p ${D}${PTEST_PATH}
+ t=${D}${PTEST_PATH}
+ cp ${B}/tests/auto/qtdiag/tst_tdiag $t
+ cp ${B}/tests/auto/qtattributionsscanner/tst_qtattributionsscanner $t
+}
diff --git a/meta/recipes-qt/qt5/qttranslations_git.bb b/meta/recipes-qt/qt5/qttranslations_git.bb
new file mode 100644
index 0000000000..a8c7166865
--- /dev/null
+++ b/meta/recipes-qt/qt5/qttranslations_git.bb
@@ -0,0 +1,109 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+"
+
+DEPENDS += "qtbase qttools-native"
+
+PACKAGES =. " \
+ ${PN}-assistant \
+ ${PN}-designer \
+ ${PN}-linguist \
+ ${PN}-qmlviewer \
+ ${PN}-qtconnectivity \
+ ${PN}-qtmultimedia \
+ ${PN}-qtlocation \
+ ${PN}-qtdeclarative \
+ ${PN}-qtquickcontrols \
+ ${PN}-qtquickcontrols2 \
+ ${PN}-qtwebsockets \
+ ${PN}-qtwebengine \
+ ${PN}-qtxmlpatterns \
+ ${PN}-qtquick1 \
+ ${PN}-qtscript \
+ ${PN}-qtserialport \
+ ${PN}-qtbase \
+ ${PN}-qthelp \
+ ${PN}-qt \
+"
+
+FILES_${PN}-assistant = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/assistant_*.qm \
+"
+
+FILES_${PN}-designer = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/designer_*.qm \
+"
+
+FILES_${PN}-linguist = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/linguist_*.qm \
+"
+
+FILES_${PN}-qmlviewer = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qmlviewer_*.qm \
+"
+
+FILES_${PN}-qtconnectivity = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtconnectivity_*.qm \
+"
+
+FILES_${PN}-qtmultimedia = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtmultimedia_*.qm \
+"
+
+FILES_${PN}-qtlocation = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtlocation_*.qm \
+"
+
+FILES_${PN}-qtdeclarative = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtdeclarative_*.qm \
+"
+
+FILES_${PN}-qtquickcontrols = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtquickcontrols_*.qm \
+"
+
+FILES_${PN}-qtquickcontrols2 = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtquickcontrols2_*.qm \
+"
+
+FILES_${PN}-qtwebsockets = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtwebsockets_*.qm \
+"
+
+FILES_${PN}-qtwebengine = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtwebengine_*.qm \
+"
+
+FILES_${PN}-qtxmlpatterns = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtxmlpatterns_*.qm \
+"
+
+FILES_${PN}-qtquick1 = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtquick1_*.qm \
+"
+
+FILES_${PN}-qtscript = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtscript_*.qm \
+"
+
+FILES_${PN}-qtserialport = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtserialport_*.qm \
+"
+
+FILES_${PN}-qtbase = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qtbase_*.qm \
+"
+
+FILES_${PN}-qthelp = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qt_help_*.qm \
+"
+
+FILES_${PN}-qt = " \
+ ${OE_QMAKE_PATH_TRANSLATIONS}/qt_*.qm \
+"
+
+SRCREV = "c3486e072ebc704f9c82c005044143b07bb88f12"
diff --git a/meta/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch b/meta/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch
new file mode 100644
index 0000000000..1e50d5ad87
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch
@@ -0,0 +1,25 @@
+From d479fe395566ed84cde2579011e2ca2358f22c41 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 23:59:52 -0700
+Subject: [PATCH] include sys/time.h for timeval
+
+Musl exposes this issue since its not indirectly
+including sys/time.h like glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/virtualkeyboard/3rdparty/pinyin/include/userdict.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
+index 1b9673f..924be7b 100644
+--- a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
++++ b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
+@@ -24,6 +24,7 @@
+ // Debug performance for operations
+ // #define ___DEBUG_PERF___
+
++#include <sys/time.h>
+ #ifdef _WIN32
+ #include <winsock.h> // timeval
+ #else
diff --git a/meta/recipes-qt/qt5/qtvirtualkeyboard_git.bb b/meta/recipes-qt/qt5/qtvirtualkeyboard_git.bb
new file mode 100644
index 0000000000..0029170fd3
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtvirtualkeyboard_git.bb
@@ -0,0 +1,56 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+# Patches from https://github.com/meta-qt5/qtvirtualkeyboard/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += "file://0001-include-sys-time.h-for-timeval.patch"
+
+# To enabled Nuance T9 Write support, you need to provide the licensed components
+# and enable "t9write" in PACKAGECONFIG. This can be done in a separate .bbappend file.
+# for example:
+#T9WRITEPACKAGE = "${HOME}/Downloads/zzEval_QT_T9Write_Alpha_v750_20150916.zip"
+#SRC_URI += "file://${T9WRITEPACKAGE};subdir=git/src/virtualkeyboard/3rdparty/t9write"
+#PACKAGECONFIG = "t9write lang-all"
+
+PACKAGECONFIG ?= "lang-all lipi-toolkit"
+PACKAGECONFIG[hunspell] = ",CONFIG+=disable-hunspell,hunspell"
+PACKAGECONFIG[t9write] = "CONFIG+=t9write"
+PACKAGECONFIG[lipi-toolkit] = "CONFIG+=lipi-toolkit"
+PACKAGECONFIG[lang-all] = "CONFIG+=lang-all"
+PACKAGECONFIG[lang-ar_AR] = "CONFIG+=lang-ar_AR"
+PACKAGECONFIG[lang-da_DK] = "CONFIG+=lang-da_DK"
+PACKAGECONFIG[lang-de_DE] = "CONFIG+=lang-de_DE"
+PACKAGECONFIG[lang-en_GB] = "CONFIG+=lang-en_GB"
+PACKAGECONFIG[lang-es_ES] = "CONFIG+=lang-es_ES"
+PACKAGECONFIG[lang-fa_FA] = "CONFIG+=lang-fa_FA"
+PACKAGECONFIG[lang-fi_FI] = "CONFIG+=lang-fi_FI"
+PACKAGECONFIG[lang-fr_FR] = "CONFIG+=lang-fr_FR"
+PACKAGECONFIG[lang-hi_IN] = "CONFIG+=lang-hi_IN"
+PACKAGECONFIG[lang-it_IT] = "CONFIG+=lang-it_IT"
+PACKAGECONFIG[lang-ja_JP] = "CONFIG+=lang-ja_JP"
+PACKAGECONFIG[lang-ko_KR] = "CONFIG+=lang-ko_KR"
+PACKAGECONFIG[lang-nb_NO] = "CONFIG+=lang-nb_NO"
+PACKAGECONFIG[lang-pl_PL] = "CONFIG+=lang-pl_PL"
+PACKAGECONFIG[lang-pt_PT] = "CONFIG+=lang-pt_PT"
+PACKAGECONFIG[lang-ro_RO] = "CONFIG+=lang-ro_RO"
+PACKAGECONFIG[lang-ru_RU] = "CONFIG+=lang-ru_RU"
+PACKAGECONFIG[lang-sv_SE] = "CONFIG+=lang-sv_SE"
+PACKAGECONFIG[lang-zh_CN] = "CONFIG+=lang-zh_CN"
+PACKAGECONFIG[lang-zh_TW] = "CONFIG+=lang-zh_TW"
+
+EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'CONFIG+=disable-desktop', d)}"
+
+PACKAGES += "${PN}-dictionaries"
+RRECOMMENDS_${PN} += "${PN}-dictionaries"
+FILES_${PN}-dictionaries = "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/*/*.dat"
+FILES_${PN} += "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/lipi_toolkit"
+
+DEPENDS += "qtbase qtdeclarative qtmultimedia qtquickcontrols qtsvg qtxmlpatterns"
+
+SRCREV = "85d35bb12235dd6b92c898ddb6d6e84703d25d48"
diff --git a/meta/recipes-qt/qt5/qtwayland/0001-fix-build-without-xkbcommon-evdev.patch b/meta/recipes-qt/qt5/qtwayland/0001-fix-build-without-xkbcommon-evdev.patch
new file mode 100644
index 0000000000..04ae7e0e87
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwayland/0001-fix-build-without-xkbcommon-evdev.patch
@@ -0,0 +1,68 @@
+From e41bc392aa79073926aba917796e836f5b0d9f32 Mon Sep 17 00:00:00 2001
+From: Raphael Freudiger <laser_b@gmx.ch>
+Date: Tue, 10 Jan 2017 15:49:55 +0100
+Subject: [PATCH] fix build without xkbcommon-evdev
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Change-Id: I4f52c4ad741fdd7063a18b67f5777b52f03726fe
+Signed-off-by: Raphael Freudiger <laser_b@gmx.ch>
+Signed-off-by: Gordan Markuš <gordan.markus@pelagicore.com>
+---
+ src/client/client.pro | 2 ++
+ src/compositor/compositor.pro | 2 ++
+ src/compositor/compositor_api/qwaylandkeyboard.cpp | 13 +++++++------
+ 3 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/src/client/client.pro b/src/client/client.pro
+index eae7ad5..0bb7b18 100644
+--- a/src/client/client.pro
++++ b/src/client/client.pro
+@@ -147,3 +147,5 @@ MODULE_PLUGIN_TYPES = \
+ wayland-decoration-client \
+ wayland-shell-integration
+ load(qt_module)
++
++LIBS += -lxkbcommon
+diff --git a/src/compositor/compositor.pro b/src/compositor/compositor.pro
+index dc9000d..4eebfd6 100644
+--- a/src/compositor/compositor.pro
++++ b/src/compositor/compositor.pro
+@@ -32,3 +32,5 @@ include ($$PWD/extensions/extensions.pri)
+ MODULE_PLUGIN_TYPES = \
+ wayland-graphics-integration-server
+ load(qt_module)
++
++LIBS += -lxkbcommon
+diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp
+index c30f7b1..e6f1a0b 100644
+--- a/src/compositor/compositor_api/qwaylandkeyboard.cpp
++++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp
+@@ -349,12 +349,6 @@ void QWaylandKeyboardPrivate::createXKBState(xkb_keymap *keymap)
+ xkb_state = xkb_state_new(keymap);
+ }
+
+-uint QWaylandKeyboardPrivate::toWaylandXkbV1Key(const uint nativeScanCode)
+-{
+- const uint offset = 8;
+- Q_ASSERT(nativeScanCode >= offset);
+- return nativeScanCode - offset;
+-}
+
+ void QWaylandKeyboardPrivate::createXKBKeymap()
+ {
+@@ -384,6 +378,13 @@ void QWaylandKeyboardPrivate::createXKBKeymap()
+ }
+ #endif
+
++uint QWaylandKeyboardPrivate::toWaylandXkbV1Key(const uint nativeScanCode)
++{
++ const uint offset = 8;
++ Q_ASSERT(nativeScanCode >= offset);
++ return nativeScanCode - offset;
++}
++
+ void QWaylandKeyboardPrivate::sendRepeatInfo()
+ {
+ Q_FOREACH (Resource *resource, resourceMap()) {
diff --git a/meta/recipes-qt/qt5/qtwayland_git.bb b/meta/recipes-qt/qt5/qtwayland_git.bb
new file mode 100644
index 0000000000..91ffcd771b
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwayland_git.bb
@@ -0,0 +1,53 @@
+require qt5.inc
+require qt5-git.inc
+
+DEPENDS += "qtbase qtdeclarative wayland wayland-native qtwayland-native"
+DEPENDS_append_class-target = " libxkbcommon"
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+PACKAGECONFIG ?= " \
+ wayland-client \
+ wayland-server \
+ wayland-egl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcomposite-egl xcomposite-glx', '', d)} \
+"
+PACKAGECONFIG_class-native ?= ""
+PACKAGECONFIG_class-nativesdk ?= ""
+QMAKE_PROFILES_class-native = "${S}/src/qtwaylandscanner"
+QMAKE_PROFILES_class-nativesdk = "${S}/src/qtwaylandscanner"
+B_class-native = "${SEPB}/src/qtwaylandscanner"
+B_class-nativesdk = "${SEPB}/src/qtwaylandscanner"
+
+PACKAGECONFIG[wayland-client] = "-feature-wayland-client,-no-feature-wayland-client"
+PACKAGECONFIG[wayland-server] = "-feature-wayland-server,-no-feature-wayland-server"
+PACKAGECONFIG[xcomposite-egl] = "-feature-xcomposite-egl,-no-feature-xcomposite-egl,libxcomposite"
+PACKAGECONFIG[xcomposite-glx] = "-feature-xcomposite-glx,-no-feature-xcomposite-glx,virtual/mesa"
+PACKAGECONFIG[wayland-egl] = "-feature-wayland-egl,-no-feature-wayland-egl,virtual/egl"
+PACKAGECONFIG[wayland-brcm] = "-feature-wayland-brcm,-no-feature-wayland-brcm,virtual/egl"
+PACKAGECONFIG[drm-egl-server] = "-feature-drm-egl-server,-no-feature-drm-egl-server,libdrm virtual/egl"
+PACKAGECONFIG[libhybris-egl-server] = "-feature-libhybris-egl-server,-no-feature-libhybris-egl-server,libhybris"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+SRCREV = "db36bc0d9ccae21e84cd54be3e18ae539542eadc"
+
+# Patches from https://github.com/meta-qt5/qtwayland/commits/b5.10
+# 5.10.meta-qt5.2
+# From https://bugreports.qt.io/browse/QTBUG-57767
+SRC_URI += " \
+ file://0001-fix-build-without-xkbcommon-evdev.patch \
+"
+
+BBCLASSEXTEND =+ "native nativesdk"
+
+# The same issue as in qtbase:
+# http://errors.yoctoproject.org/Errors/Details/152641/
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
diff --git a/meta/recipes-qt/qt5/qtwebchannel_git.bb b/meta/recipes-qt/qt5/qtwebchannel_git.bb
new file mode 100644
index 0000000000..2b4a4875c7
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebchannel_git.bb
@@ -0,0 +1,15 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+DEPENDS += "qtdeclarative qtwebsockets"
+
+SRCREV = "7540a85c82cd940b7da3ea75eccad7e733bd0ae6"
diff --git a/meta/recipes-qt/qt5/qtwebengine/0001-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch b/meta/recipes-qt/qt5/qtwebengine/0001-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch
new file mode 100644
index 0000000000..a324dc6450
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0001-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch
@@ -0,0 +1,23 @@
+From a70b6d2183934e4d9a3ad00167acfaf0a78a90a9 Mon Sep 17 00:00:00 2001
+From: Cleiton Bueno <cleitonrbueno@gmail.com>
+Date: Fri, 25 Dec 2015 18:16:05 -0200
+Subject: [PATCH] WebEngine qquickwebengineview_p_p.h add include QColor
+
+Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com>
+---
+ src/webengine/api/qquickwebengineview_p_p.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
+index 1b8edc8..03d6558 100644
+--- a/src/webengine/api/qquickwebengineview_p_p.h
++++ b/src/webengine/api/qquickwebengineview_p_p.h
+@@ -59,6 +59,8 @@
+ #include <QString>
+ #include <QtCore/qcompilerdetection.h>
+ #include <QtGui/qaccessibleobject.h>
++#include <QColor>
++
+
+ namespace QtWebEngineCore {
+ class WebContentsAdapter;
diff --git a/meta/recipes-qt/qt5/qtwebengine/0001-chromium-Force-host-toolchain-configuration.patch b/meta/recipes-qt/qt5/qtwebengine/0001-chromium-Force-host-toolchain-configuration.patch
new file mode 100644
index 0000000000..69e05660b3
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0001-chromium-Force-host-toolchain-configuration.patch
@@ -0,0 +1,33 @@
+From d760fcdd764985f05a480ba475855f92844a6f0d Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Wed, 15 Mar 2017 13:53:28 +0200
+Subject: [PATCH] chromium: Force host toolchain configuration
+
+Force gcc/g++ to be used for parts using host toolchain, since
+the option(host_build) does not work in yocto builds.
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ chromium/tools/gn/bootstrap/bootstrap.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/tools/gn/bootstrap/bootstrap.py b/chromium/tools/gn/bootstrap/bootstrap.py
+index b1ff7e7..bccabbb 100755
+--- a/chromium/tools/gn/bootstrap/bootstrap.py
++++ b/chromium/tools/gn/bootstrap/bootstrap.py
+@@ -318,10 +318,10 @@ def write_gn_ninja(path, root_gen_dir, options):
+ ld = os.environ.get('LD', cxx)
+ ar = os.environ.get('AR', 'ar -X64')
+ else:
+- cc = os.environ.get('CC', 'cc')
+- cxx = os.environ.get('CXX', 'c++')
++ cc = os.environ.get('CC_host', 'gcc')
++ cxx = os.environ.get('CXX_host', 'g++')
+ ld = cxx
+- ar = os.environ.get('AR', 'ar')
++ ar = os.environ.get('AR_host', 'ar')
+
+ # QTBUG-64759
+ # cflags = os.environ.get('CFLAGS', '').split()
diff --git a/meta/recipes-qt/qt5/qtwebengine/0002-Include-dependency-to-QCoreApplication-translate.patch b/meta/recipes-qt/qt5/qtwebengine/0002-Include-dependency-to-QCoreApplication-translate.patch
new file mode 100644
index 0000000000..e41636a315
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0002-Include-dependency-to-QCoreApplication-translate.patch
@@ -0,0 +1,23 @@
+From 838bb0afe93321ae3d225988728a5736cd4844fc Mon Sep 17 00:00:00 2001
+From: Cleiton Bueno <cleitonrbueno@gmail.com>
+Date: Thu, 24 Dec 2015 15:59:51 -0200
+Subject: [PATCH] Include dependency to QCoreApplication::translate()
+
+Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com>
+---
+ src/core/media_capture_devices_dispatcher.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/core/media_capture_devices_dispatcher.h b/src/core/media_capture_devices_dispatcher.h
+index 579d159..0904c46 100644
+--- a/src/core/media_capture_devices_dispatcher.h
++++ b/src/core/media_capture_devices_dispatcher.h
+@@ -45,6 +45,8 @@
+ #include <list>
+ #include <map>
+
++#include <QCoreApplication>
++
+ #include "web_contents_adapter_client.h"
+
+ #include "base/callback.h"
diff --git a/meta/recipes-qt/qt5/qtwebengine/0002-chromium-workaround-for-too-long-.rps-file-name.patch b/meta/recipes-qt/qt5/qtwebengine/0002-chromium-workaround-for-too-long-.rps-file-name.patch
new file mode 100644
index 0000000000..592a30f37a
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0002-chromium-workaround-for-too-long-.rps-file-name.patch
@@ -0,0 +1,42 @@
+From d76853bd469881625bedc85afabc69d36ecb05ed Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Thu, 30 Mar 2017 11:37:24 +0300
+Subject: [PATCH] chromium: workaround for too long .rps file name
+
+Ninja may fail when the build directory is too long:
+
+ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\
+interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\
+6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\
+.0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\
+le.rsp): Unable to create file. File name too long
+
+Task-number: QTBUG-59769
+Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1
+---
+ chromium/tools/gn/ninja_action_target_writer.cc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/chromium/tools/gn/ninja_action_target_writer.cc b/chromium/tools/gn/ninja_action_target_writer.cc
+index eaf1b3d..ddf456e 100644
+--- a/chromium/tools/gn/ninja_action_target_writer.cc
++++ b/chromium/tools/gn/ninja_action_target_writer.cc
+@@ -118,9 +118,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() {
+ // strictly necessary for regular one-shot actions, but it's easier to
+ // just always define unique_name.
+ std::string rspfile = custom_rule_name;
++
++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end
++ //please note ".$unique_name" is not used at the moment
++ int pos = 0;
++ std::string delimiter("_");
++ while (rspfile.length() > 251 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos)
++ rspfile = rspfile.substr(0,pos);
++
+ if (!target_->sources().empty())
+ rspfile += ".$unique_name";
+ rspfile += ".rsp";
++
+ out_ << " rspfile = " << rspfile << std::endl;
+
+ // Response file contents.
diff --git a/meta/recipes-qt/qt5/qtwebengine/0003-Force-host-toolchain-configuration.patch b/meta/recipes-qt/qt5/qtwebengine/0003-Force-host-toolchain-configuration.patch
new file mode 100644
index 0000000000..84e430b732
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0003-Force-host-toolchain-configuration.patch
@@ -0,0 +1,71 @@
+From 36657d556e4f97d06aa44d874d7256c970cdad3c Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Wed, 15 Mar 2017 13:53:28 +0200
+Subject: [PATCH] Force host toolchain configuration
+
+Force gcc/g++ to be used for parts using host toolchain, since
+the option(host_build) does not work in yocto builds.
+
+Don't use QT_ARCH for the host architecture, since that's always
+the target architecture in bitbake builds, instead ask specifically
+for the qmakes's host architecture.
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ src/buildtools/configure_host.pro | 14 +++++++-------
+ src/core/config/linux.pri | 2 +-
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro
+index dd0d3e3..70161c8 100644
+--- a/src/buildtools/configure_host.pro
++++ b/src/buildtools/configure_host.pro
+@@ -4,7 +4,7 @@ TEMPLATE = aux
+ # Pick up the host toolchain
+ option(host_build)
+
+-GN_HOST_CPU = $$gnArch($$QT_ARCH)
++GN_HOST_CPU = $$gnArch($$QMAKE_HOST.arch)
+ !isEmpty(QT_TARGET_ARCH): GN_TARGET_CPU = $$gnArch($$QT_TARGET_ARCH)
+ else: GN_TARGET_CPU = $$GN_HOST_CPU
+ GN_OS = $$gnOS()
+@@ -31,9 +31,9 @@ GN_CONTENTS = \
+ "import(\"//build/config/sysroot.gni\")" \
+ "import(\"//build/toolchain/gcc_toolchain.gni\")" \
+ "gcc_toolchain(\"host\") {" \
+-" cc = \"$$which($$QMAKE_CC)\" " \
+-" cxx = \"$$which($$QMAKE_CXX)\" " \
+-" ld = \"$$which($$QMAKE_LINK)\" " \
++" cc = \"$$which(gcc)\" " \
++" cxx = \"$$which(g++)\" " \
++" ld = \"$$which(g++)\" " \
+ " ar = \"$$which(ar)\" " \
+ " nm = \"$$which(nm)\" " \
+ " extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \
+@@ -45,9 +45,9 @@ GN_CONTENTS = \
+ " } " \
+ "}" \
+ "gcc_toolchain(\"v8_snapshot\") {" \
+-" cc = \"$$which($$QMAKE_CC)\" " \
+-" cxx = \"$$which($$QMAKE_CXX)\" " \
+-" ld = \"$$which($$QMAKE_LINK)\" " \
++" cc = \"$$which(gcc)\" " \
++" cxx = \"$$which(g++)\" " \
++" ld = \"$$which(g++)\" " \
+ " ar = \"$$which(ar)\" " \
+ " nm = \"$$which(nm)\" " \
+ " toolchain_args = { " \
+diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
+index 1ce3ea8..23d0793 100644
+--- a/src/core/config/linux.pri
++++ b/src/core/config/linux.pri
+@@ -91,7 +91,7 @@ contains(QT_ARCH, "mips") {
+
+ host_build {
+ gn_args += custom_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:host\"
+- GN_HOST_CPU = $$gnArch($$QT_ARCH)
++ GN_HOST_CPU = $$gnArch($$QMAKE_HOST.arch)
+ gn_args += host_cpu=\"$$GN_HOST_CPU\"
+ # Don't bother trying to use system libraries in this case
+ gn_args += use_glib=false
diff --git a/meta/recipes-qt/qt5/qtwebengine/0003-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/meta/recipes-qt/qt5/qtwebengine/0003-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch
new file mode 100644
index 0000000000..1fb85fb337
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0003-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch
@@ -0,0 +1,33 @@
+From c6e7171bf8f5ecb8b82d911581a45defe93854e1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 14:01:12 -0700
+Subject: [PATCH] chromium: musl: sandbox: Define TEMP_FAILURE_RETRY if not
+ defined
+
+Musl does not define this Macro
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/sandbox/linux/suid/sandbox.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/chromium/sandbox/linux/suid/sandbox.c b/chromium/sandbox/linux/suid/sandbox.c
+index 66f68ef..9284d0d 100644
+--- a/chromium/sandbox/linux/suid/sandbox.c
++++ b/chromium/sandbox/linux/suid/sandbox.c
+@@ -44,6 +44,15 @@ static bool DropRoot();
+
+ #define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x)
+
++#ifndef TEMP_FAILURE_RETRY
++# define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++#endif
++
+ static void FatalError(const char* msg, ...)
+ __attribute__((noreturn, format(printf, 1, 2)));
+
diff --git a/meta/recipes-qt/qt5/qtwebengine/0004-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/meta/recipes-qt/qt5/qtwebengine/0004-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch
new file mode 100644
index 0000000000..5dbd07f10a
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0004-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch
@@ -0,0 +1,67 @@
+From 104d93f24a44dc4a1939d6e2c99f346526a5a7d9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 14:09:06 -0700
+Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on non-glibc/linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/base/process/process_metrics_posix.cc | 4 ++--
+ chromium/base/trace_event/malloc_dump_provider.cc | 3 ++-
+ chromium/content/child/content_child_helpers.cc | 2 +-
+ 3 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc
+index 0eb5c1f..8af7799 100644
+--- a/chromium/base/process/process_metrics_posix.cc
++++ b/chromium/base/process/process_metrics_posix.cc
+@@ -94,14 +94,14 @@ size_t ProcessMetrics::GetMallocUsage() {
+ malloc_statistics_t stats = {0};
+ malloc_zone_statistics(nullptr, &stats);
+ return stats.size_in_use;
+-#elif defined(OS_LINUX) || defined(OS_ANDROID)
++#elif defined(__GLIBC__) || defined(OS_ANDROID)
+ struct mallinfo minfo = mallinfo();
+ #if defined(USE_TCMALLOC)
+ return minfo.uordblks;
+ #else
+ return minfo.hblkhd + minfo.arena;
+ #endif
+-#elif defined(OS_FUCHSIA)
++#else
+ // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
+ return 0;
+ #endif
+diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc
+index 14ba0a2..e5d9581 100644
+--- a/chromium/base/trace_event/malloc_dump_provider.cc
++++ b/chromium/base/trace_event/malloc_dump_provider.cc
+@@ -197,6 +197,7 @@ MallocDumpProvider::~MallocDumpProvider() {}
+ // the current process.
+ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
+ ProcessMemoryDump* pmd) {
++#if defined(__GLIBC__)
+ size_t total_virtual_size = 0;
+ size_t resident_size = 0;
+ size_t allocated_objects_size = 0;
+@@ -317,7 +318,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
+ pmd->DumpHeapUsage(metrics_by_context, overhead, "malloc");
+ }
+ tid_dumping_heap_ = kInvalidThreadId;
+-
++#endif // __GLIBC__
+ return true;
+ }
+
+diff --git a/chromium/content/child/content_child_helpers.cc b/chromium/content/child/content_child_helpers.cc
+index 7ddeb4d..b8c73b0 100644
+--- a/chromium/content/child/content_child_helpers.cc
++++ b/chromium/content/child/content_child_helpers.cc
+@@ -25,7 +25,7 @@ namespace content {
+ // though, this provides only a partial and misleading value.
+ // Unfortunately some telemetry benchmark rely on it and these need to
+ // be refactored before getting rid of this. See crbug.com/581365 .
+-#if defined(OS_LINUX) || defined(OS_ANDROID)
++#if defined(__GLIBC__) || defined(OS_ANDROID)
+ size_t GetMemoryUsageKB() {
+ struct mallinfo minfo = mallinfo();
+ uint64_t mem_usage =
diff --git a/meta/recipes-qt/qt5/qtwebengine/0004-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch b/meta/recipes-qt/qt5/qtwebengine/0004-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch
new file mode 100644
index 0000000000..76160d16ba
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0004-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch
@@ -0,0 +1,37 @@
+From 1a23cb4027692535aeace4c6070864af672de70d Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Tue, 12 Dec 2017 16:06:14 +0200
+Subject: [PATCH] musl: don't use pvalloc as it's not available on musl
+
+Change-Id: I7145463ac7b9560e7459d3384a3db108bd727403
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ src/core/api/qtbug-61521.cpp | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/src/core/api/qtbug-61521.cpp b/src/core/api/qtbug-61521.cpp
+index 002a1af..8fd2da3 100644
+--- a/src/core/api/qtbug-61521.cpp
++++ b/src/core/api/qtbug-61521.cpp
+@@ -74,10 +74,6 @@ SHIM_SYMBOL_VERSION(valloc);
+ void* __valloc(size_t size)
+ SHIM_ALIAS_SYMBOL(ShimValloc);
+
+-SHIM_SYMBOL_VERSION(pvalloc);
+-void* __pvalloc(size_t size)
+- SHIM_ALIAS_SYMBOL(ShimPvalloc);
+-
+ SHIM_SYMBOL_VERSION(posix_memalign);
+ int __posix_memalign(void** r, size_t a, size_t s)
+ SHIM_ALIAS_SYMBOL(ShimPosixMemalign);
+@@ -110,10 +106,6 @@ SHIM_HIDDEN void* ShimValloc(size_t size) {
+ return valloc(size);
+ }
+
+-SHIM_HIDDEN void* ShimPvalloc(size_t size) {
+- return pvalloc(size);
+-}
+-
+ SHIM_HIDDEN int ShimPosixMemalign(void** r, size_t a, size_t s) {
+ return posix_memalign(r,a,s);
+ }
diff --git a/meta/recipes-qt/qt5/qtwebengine/0005-chromium-musl-include-fcntl.h-for-loff_t.patch b/meta/recipes-qt/qt5/qtwebengine/0005-chromium-musl-include-fcntl.h-for-loff_t.patch
new file mode 100644
index 0000000000..e0a3f80486
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0005-chromium-musl-include-fcntl.h-for-loff_t.patch
@@ -0,0 +1,22 @@
+From 1e51c5e3a299213b632dd2d448c86dabf45b2258 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 14:37:49 -0700
+Subject: [PATCH] chromium: musl: include fcntl.h for loff_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+index b29ec2d..91f77dd 100644
+--- a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
++++ b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+@@ -150,6 +150,7 @@ extern "C" {
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <string.h>
++#include <fcntl.h>
+ #include <sys/ptrace.h>
+ #include <sys/resource.h>
+ #include <sys/time.h>
diff --git a/meta/recipes-qt/qt5/qtwebengine/0005-musl-link-against-libexecinfo.patch b/meta/recipes-qt/qt5/qtwebengine/0005-musl-link-against-libexecinfo.patch
new file mode 100644
index 0000000000..45a45f9baa
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0005-musl-link-against-libexecinfo.patch
@@ -0,0 +1,24 @@
+From e735b0adfa9b1dcaa93e3ce65d9cc01255ab340b Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Thu, 14 Dec 2017 11:28:10 +0200
+Subject: [PATCH] musl: link against libexecinfo
+
+Change-Id: Ifada60f9c72691973612850121f6fb152d70839a
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ src/core/core_module.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/core_module.pro b/src/core/core_module.pro
+index d21985e..eeebeb4 100644
+--- a/src/core/core_module.pro
++++ b/src/core/core_module.pro
+@@ -54,7 +54,7 @@ linux {
+ POST_TARGETDEPS += $$NINJA_TARGETDEPS
+
+
+-LIBS_PRIVATE += -L$$api_library_path
++LIBS_PRIVATE += -L$$api_library_path -lexecinfo
+ CONFIG *= no_smart_library_merge
+ osx {
+ LIBS_PRIVATE += -Wl,-force_load,$${api_library_path}$${QMAKE_DIR_SEP}lib$${api_library_name}.a
diff --git a/meta/recipes-qt/qt5/qtwebengine/0006-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/meta/recipes-qt/qt5/qtwebengine/0006-chromium-musl-use-off64_t-instead-of-the-internal-__.patch
new file mode 100644
index 0000000000..f8c4150a7d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0006-chromium-musl-use-off64_t-instead-of-the-internal-__.patch
@@ -0,0 +1,62 @@
+From f0fba131a285144c5d71dad8b98ff0f15ce454ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 14:38:37 -0700
+Subject: [PATCH] chromium: musl: use off64_t instead of the internal __off64_t
+
+- only do the glibc 32-bit ABI check for mmap/mmap64 on gnu libc. musl
+ does not support the 32-bit ABI.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
+index 715c045..edc8cf2 100644
+--- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
++++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
+@@ -77,7 +77,7 @@ typedef off64_t __off64_t;
+
+ static inline void* do_mmap64(void *start, size_t length,
+ int prot, int flags,
+- int fd, __off64_t offset) __THROW {
++ int fd, off64_t offset) __THROW {
+ // The original gperftools uses sys_mmap() here. But, it is not allowed by
+ // Chromium's sandbox.
+ return (void *)syscall(SYS_mmap, start, length, prot, flags, fd, offset);
+@@ -90,7 +90,7 @@ static inline void* do_mmap64(void *start, size_t length,
+
+ static inline void* do_mmap64(void *start, size_t length,
+ int prot, int flags,
+- int fd, __off64_t offset) __THROW {
++ int fd, off64_t offset) __THROW {
+ void *result;
+
+ // Try mmap2() unless it's not supported
+@@ -161,7 +161,7 @@ static inline void* do_mmap64(void *start, size_t length,
+
+ extern "C" {
+ void* mmap64(void *start, size_t length, int prot, int flags,
+- int fd, __off64_t offset ) __THROW
++ int fd, off64_t offset ) __THROW
+ ATTRIBUTE_SECTION(malloc_hook);
+ void* mmap(void *start, size_t length,int prot, int flags,
+ int fd, off_t offset) __THROW
+@@ -178,7 +178,7 @@ extern "C" {
+ }
+
+ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+- int fd, __off64_t offset) __THROW {
++ int fd, off64_t offset) __THROW {
+ MallocHook::InvokePreMmapHook(start, length, prot, flags, fd, offset);
+ void *result;
+ if (!MallocHook::InvokeMmapReplacement(
+@@ -189,7 +189,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+ return result;
+ }
+
+-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)
++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH))
+
+ extern "C" void* mmap(void *start, size_t length, int prot, int flags,
+ int fd, off_t offset) __THROW {
diff --git a/meta/recipes-qt/qt5/qtwebengine/0007-chromium-musl-linux-glibc-make-the-distinction.patch b/meta/recipes-qt/qt5/qtwebengine/0007-chromium-musl-linux-glibc-make-the-distinction.patch
new file mode 100644
index 0000000000..fbff28830d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0007-chromium-musl-linux-glibc-make-the-distinction.patch
@@ -0,0 +1,23 @@
+From 42a0586aa7040caef931db8657b2ac8d345e4dd3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 14:54:38 -0700
+Subject: [PATCH] chromium: musl: linux != glibc, make the distinction
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/base/allocator/allocator_check.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chromium/base/allocator/allocator_check.cc b/chromium/base/allocator/allocator_check.cc
+index 9cd5d22..1e70095 100644
+--- a/chromium/base/allocator/allocator_check.cc
++++ b/chromium/base/allocator/allocator_check.cc
+@@ -27,7 +27,7 @@ bool IsAllocatorInitialized() {
+ // Set by allocator_shim_override_ucrt_symbols_win.h when the
+ // shimmed _set_new_mode() is called.
+ return g_is_win_shim_layer_initialized;
+-#elif defined(OS_LINUX) && defined(USE_TCMALLOC) && \
++#elif defined(__GLIBC__) && defined(USE_TCMALLOC) && \
+ !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
+ // From third_party/tcmalloc/chromium/src/gperftools/tcmalloc.h.
+ // TODO(primiano): replace with an include once base can depend on allocator.
diff --git a/meta/recipes-qt/qt5/qtwebengine/0008-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/meta/recipes-qt/qt5/qtwebengine/0008-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch
new file mode 100644
index 0000000000..d040057a40
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0008-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch
@@ -0,0 +1,24 @@
+From ff7af7ff21d259cfc580541b931d478e3d604f01 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 15:09:02 -0700
+Subject: [PATCH] chromium: musl: allocator: Do not include glibc_weak_symbols
+ for musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/base/allocator/allocator_shim.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chromium/base/allocator/allocator_shim.cc b/chromium/base/allocator/allocator_shim.cc
+index 41adbf8..091971e 100644
+--- a/chromium/base/allocator/allocator_shim.cc
++++ b/chromium/base/allocator/allocator_shim.cc
+@@ -319,7 +319,7 @@ ALWAYS_INLINE void ShimFreeDefiniteSize(void* ptr, size_t size, void* context) {
+ // In the case of tcmalloc we also want to plumb into the glibc hooks
+ // to avoid that allocations made in glibc itself (e.g., strdup()) get
+ // accidentally performed on the glibc heap instead of the tcmalloc one.
+-#if defined(USE_TCMALLOC)
++#if defined(USE_TCMALLOC) && defined(__GLIBC__)
+ #include "base/allocator/allocator_shim_override_glibc_weak_symbols.h"
+ #endif
+
diff --git a/meta/recipes-qt/qt5/qtwebengine/0009-chromium-musl-Use-correct-member-name-__si_fields-fr.patch b/meta/recipes-qt/qt5/qtwebengine/0009-chromium-musl-Use-correct-member-name-__si_fields-fr.patch
new file mode 100644
index 0000000000..c2a9c8a0cb
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0009-chromium-musl-Use-correct-member-name-__si_fields-fr.patch
@@ -0,0 +1,24 @@
+From 74171f47edb76dc89edcc7116cd33d234e0e0490 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 15:12:39 -0700
+Subject: [PATCH] chromium: musl: Use correct member name __si_fields from
+ LinuxSigInfo
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/sandbox/linux/seccomp-bpf/trap.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chromium/sandbox/linux/seccomp-bpf/trap.cc b/chromium/sandbox/linux/seccomp-bpf/trap.cc
+index 003708d..0fef314 100644
+--- a/chromium/sandbox/linux/seccomp-bpf/trap.cc
++++ b/chromium/sandbox/linux/seccomp-bpf/trap.cc
+@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) {
+ // most versions of glibc don't include this information in siginfo_t. So,
+ // we need to explicitly copy it into a arch_sigsys structure.
+ struct arch_sigsys sigsys;
+- memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
++ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys));
+
+ #if defined(__mips__)
+ // When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the
diff --git a/meta/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Match-syscalls-to-match-musl.patch b/meta/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Match-syscalls-to-match-musl.patch
new file mode 100644
index 0000000000..7be83c55c6
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Match-syscalls-to-match-musl.patch
@@ -0,0 +1,44 @@
+From ce23b6a6e5a5ebae15dedeebf7044ac9a0249a80 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 15:24:49 -0700
+Subject: [PATCH] chromium: musl: Match syscalls to match musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/lss/linux_syscall_support.h | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h
+index 80a3e56..1e57b1a 100644
+--- a/chromium/third_party/lss/linux_syscall_support.h
++++ b/chromium/third_party/lss/linux_syscall_support.h
+@@ -794,6 +794,14 @@ struct kernel_statfs {
+ #endif
+
+
++#undef stat64
++#undef fstat64
++
++#ifndef __NR_fstatat
++#define __NR_fstatat __NR_fstatat64
++#endif
++
++
+ #if defined(__x86_64__)
+ #ifndef ARCH_SET_GS
+ #define ARCH_SET_GS 0x1001
+@@ -1211,6 +1219,14 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
+ #endif
++
++#ifndef __NR_pread
++#define __NR_pread __NR_pread64
++#endif
++#ifndef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++#endif
++
+ /* End of x86-64 definitions */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/meta/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/meta/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch
new file mode 100644
index 0000000000..9b2749134e
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch
@@ -0,0 +1,79 @@
+From 1781911655bddf8a8352f9bd0a7ce4867df6981b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 15:27:50 -0700
+Subject: [PATCH] chromium: musl: Define res_ninit and res_nclose for non-glibc
+ platforms
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/net/dns/dns_config_service_posix.cc | 4 ++++
+ chromium/net/dns/dns_reloader.cc | 4 ++++
+ chromium/net/dns/resolv_compat.h | 29 ++++++++++++++++++++++++++++
+ 3 files changed, 37 insertions(+)
+ create mode 100644 chromium/net/dns/resolv_compat.h
+
+diff --git a/chromium/net/dns/dns_config_service_posix.cc b/chromium/net/dns/dns_config_service_posix.cc
+index 088fb9b..98d0a35 100644
+--- a/chromium/net/dns/dns_config_service_posix.cc
++++ b/chromium/net/dns/dns_config_service_posix.cc
+@@ -26,6 +26,10 @@
+ #include "net/dns/notify_watcher_mac.h"
+ #include "net/dns/serial_worker.h"
+
++#if defined(OS_LINUX) && !defined(__GLIBC__)
++#include "net/dns/resolv_compat.h"
++#endif
++
+ #if defined(OS_MACOSX) && !defined(OS_IOS)
+ #include "net/dns/dns_config_watcher_mac.h"
+ #endif
+diff --git a/chromium/net/dns/dns_reloader.cc b/chromium/net/dns/dns_reloader.cc
+index 322c8a5..72ff40d 100644
+--- a/chromium/net/dns/dns_reloader.cc
++++ b/chromium/net/dns/dns_reloader.cc
+@@ -9,6 +9,10 @@
+
+ #include <resolv.h>
+
++#if defined(OS_LINUX) && !defined(__GLIBC__)
++#include "net/dns/resolv_compat.h"
++#endif
++
+ #include "base/lazy_instance.h"
+ #include "base/logging.h"
+ #include "base/macros.h"
+diff --git a/chromium/net/dns/resolv_compat.h b/chromium/net/dns/resolv_compat.h
+new file mode 100644
+index 0000000..4f0e852
+--- /dev/null
++++ b/chromium/net/dns/resolv_compat.h
+@@ -0,0 +1,29 @@
++#if !defined(__GLIBC__)
++/***************************************************************************
++ * resolv_compat.h
++ *
++ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc
++ * Note: res_init() is actually deprecated according to
++ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
++ **************************************************************************/
++#include <string.h>
++
++static inline int res_ninit(res_state statp)
++{
++ int rc = res_init();
++ if (statp != &_res) {
++ memcpy(statp, &_res, sizeof(*statp));
++ }
++ return rc;
++}
++
++static inline int res_nclose(res_state statp)
++{
++ if (!statp)
++ return -1;
++ if (statp != &_res) {
++ memset(statp, 0, sizeof(*statp));
++ }
++ return 0;
++}
++#endif
diff --git a/meta/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/meta/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch
new file mode 100644
index 0000000000..e6863251f4
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch
@@ -0,0 +1,26 @@
+From a968ea31e3ac6a007fd157c61faf9f6f632d8230 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 15:39:57 -0700
+Subject: [PATCH] chromium: musl: Do not define __sbrk on musl
+
+musl libc does not have sbrk. on musl libc will only work when called with 0 as
+argument, so we just let it out for now
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
+index edc8cf2..a868b50 100644
+--- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
++++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h
+@@ -233,7 +233,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
+ }
+
+ // Don't hook sbrk() in Android, since it doesn't expose __sbrk.
+-#if !defined(__ANDROID__)
++#if !defined(__ANDROID__) && defined(__GLIBC__)
+ // libc's version:
+ extern "C" void* __sbrk(ptrdiff_t increment);
+
diff --git a/meta/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Adjust-default-pthread-stack-size.patch b/meta/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Adjust-default-pthread-stack-size.patch
new file mode 100644
index 0000000000..c1d6ec32ae
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Adjust-default-pthread-stack-size.patch
@@ -0,0 +1,47 @@
+From a56debd9f26bacf76f0d734e98191485deba03fa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 16:41:23 -0700
+Subject: [PATCH] chromium: musl: Adjust default pthread stack size
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/base/threading/platform_thread_linux.cc | 3 ++-
+ chromium/third_party/WebKit/Source/platform/wtf/StackUtil.cpp | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/base/threading/platform_thread_linux.cc b/chromium/base/threading/platform_thread_linux.cc
+index 8d411ed..4b56cf3 100644
+--- a/chromium/base/threading/platform_thread_linux.cc
++++ b/chromium/base/threading/platform_thread_linux.cc
+@@ -175,7 +175,8 @@ void TerminateOnThread() {}
+
+ size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
+ #if !defined(THREAD_SANITIZER)
+- return 0;
++ // use 8mb like glibc to avoid running out of space
++ return (1 << 23);
+ #else
+ // ThreadSanitizer bloats the stack heavily. Evidence has been that the
+ // default stack size isn't enough for some browser tests.
+diff --git a/chromium/third_party/WebKit/Source/platform/wtf/StackUtil.cpp b/chromium/third_party/WebKit/Source/platform/wtf/StackUtil.cpp
+index 13c3f90..07308e0 100644
+--- a/chromium/third_party/WebKit/Source/platform/wtf/StackUtil.cpp
++++ b/chromium/third_party/WebKit/Source/platform/wtf/StackUtil.cpp
+@@ -28,7 +28,7 @@ size_t GetUnderestimatedStackSize() {
+ // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+ // correctly for the main thread.
+
+-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+ defined(OS_FUCHSIA)
+ // pthread_getattr_np() can fail if the thread is not invoked by
+ // pthread_create() (e.g., the main thread of webkit_unit_tests).
+@@ -96,7 +96,7 @@ size_t GetUnderestimatedStackSize() {
+ }
+
+ void* GetStackStart() {
+-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+ defined(OS_FUCHSIA)
+ pthread_attr_t attr;
+ int error;
diff --git a/meta/recipes-qt/qt5/qtwebengine/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch b/meta/recipes-qt/qt5/qtwebengine/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch
new file mode 100644
index 0000000000..81e71e7db8
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch
@@ -0,0 +1,22 @@
+From 5809e73146cdf43d13aa1b3789bfc7ff2ff723af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2017 17:15:34 -0700
+Subject: [PATCH] chromium: musl: include asm-generic/ioctl.h for TCGETS2
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/device/serial/serial_io_handler_posix.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/chromium/device/serial/serial_io_handler_posix.cc b/chromium/device/serial/serial_io_handler_posix.cc
+index 8ffba12..82fb09f 100644
+--- a/chromium/device/serial/serial_io_handler_posix.cc
++++ b/chromium/device/serial/serial_io_handler_posix.cc
+@@ -6,6 +6,7 @@
+
+ #include <sys/ioctl.h>
+ #include <termios.h>
++#include <asm-generic/ioctls.h>
+
+ #include "base/files/file_util.h"
+ #include "base/posix/eintr_wrapper.h"
diff --git a/meta/recipes-qt/qt5/qtwebengine/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch b/meta/recipes-qt/qt5/qtwebengine/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch
new file mode 100644
index 0000000000..03aa77a048
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch
@@ -0,0 +1,23 @@
+From 0aca8610a03cc100464d0d52a2c5425c52ab1e66 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Jul 2017 09:08:23 -0700
+Subject: [PATCH] chromium: musl: tcmalloc: Use off64_t insread of __off64_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+index 91f77dd..bb84a0b 100644
+--- a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
++++ b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+@@ -1929,7 +1929,7 @@ typedef unsigned long int ulong;
+ #if defined(__x86_64__)
+ /* Need to make sure __off64_t isn't truncated to 32-bits under x32. */
+ LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d,
+- __off64_t o) {
++ off64_t o) {
+ LSS_BODY(6, void*, mmap, LSS_SYSCALL_ARG(s), LSS_SYSCALL_ARG(l),
+ LSS_SYSCALL_ARG(p), LSS_SYSCALL_ARG(f),
+ LSS_SYSCALL_ARG(d), (uint64_t)(o));
diff --git a/meta/recipes-qt/qt5/qtwebengine_git.bb b/meta/recipes-qt/qt5/qtwebengine_git.bb
new file mode 100644
index 0000000000..db089c14de
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebengine_git.bb
@@ -0,0 +1,169 @@
+SUMMARY = "QtWebEngine combines the power of Chromium and Qt"
+
+# Read http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
+LICENSE = "BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://src/core/browser_context_qt.cpp;md5=b5193b7d68699260f3b40b201365c8d2;beginline=1;endline=38 \
+ file://src/3rdparty/chromium/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \
+ file://LICENSE.LGPL3;md5=8211fde12cc8a4e2477602f5953f5b71 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+"
+
+DEPENDS += " \
+ libpng-native \
+ nss-native \
+ nspr-native \
+ ninja-native \
+ yasm-native \
+ bison-native \
+ qtwebchannel \
+ qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \
+ qtlocation \
+ libdrm fontconfig pixman openssl pango cairo icu pciutils nss \
+ libcap \
+ gperf-native \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
+"
+
+DEPENDS_append_libc-musl = " libexecinfo"
+
+EXTRA_QMAKEVARS_CONFIGURE += "-feature-webengine-system-ninja -no-feature-webengine-system-gn"
+
+# chromium/third_party/openh264/openh264.gyp adds
+# -Wno-format to openh264_cflags_add
+# similarly chromium/third_party/openh264/BUILD.gn for newer qtwebengine
+# causing following error, because -Wformat-security cannot be used together with -Wno-format
+# cc1plus: error: -Wformat-security ignored without -Wformat [-Werror=format-security]
+# http://errors.yoctoproject.org/Errors/Details/150333/
+SECURITY_STRINGFORMAT = ""
+
+# To use system ffmpeg you need to enable also libwebp, opus, vpx
+# Only depenedencies available in oe-core are enabled by default
+PACKAGECONFIG ??= "libwebp libevent libpng"
+PACKAGECONFIG[icu] = "-feature-webengine-system-icu,-no-feature-webengine-system-icu,icu"
+PACKAGECONFIG[ffmpeg] = "-feature-webengine-system-ffmpeg,-no-feature-webengine-system-ffmpeg,libav"
+PACKAGECONFIG[webrtc] = "-feature-webengine-webrtc,-no-feature-webengine-webrtc,libvpx"
+PACKAGECONFIG[libwebp] = "-feature-webengine-system-libwebp,-no-feature-webengine-system-libwebp,libwebp"
+PACKAGECONFIG[opus] = "-feature-webengine-system-opus,-no-feature-webengine-system-opus,libopus"
+PACKAGECONFIG[libvpx] = "-feature-webengine-system-libvpx,-no-feature-webengine-system-libvpx,libvpx"
+PACKAGECONFIG[libevent] = "-feature-webengine-system-libevent,-no-feature-webengine-system-libevent,libevent"
+PACKAGECONFIG[libpng] = "-feature-webengine-system-png,-no-feature-webengine-system-png,libpng"
+PACKAGECONFIG[harfbuzz] = "-feature-webengine-system-harfbuzz,-no-feature-webengine-system-harfbuzz,harfbuzz"
+PACKAGECONFIG[glib] = "-feature-webengine-system-glib,-no-feature-webengine-system-glib,glib"
+PACKAGECONFIG[zlib] = "-feature-webengine-system-zlib,-no-feature-webengine-system-zlib,zlib"
+PACKAGECONFIG[protobuf] = "-feature-webengine-system-protobuf,-no-feature-webengine-system-protobuf,protobuf"
+PACKAGECONFIG[jasoncpp] = "-feature-webengine-system-jsoncpp,-no-feature-webengine-system-jsoncpp,jasoncpp"
+PACKAGECONFIG[libxml2] = "-feature-webengine-system-libxml2,-no-feature-webengine-system-libxml2,libxml2"
+PACKAGECONFIG[minizip] = "-feature-webengine-system-minizip,-no-feature-webengine-system-minizip,minizip"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+COMPATIBLE_MACHINE = "(-)"
+COMPATIBLE_MACHINE_x86 = "(.*)"
+COMPATIBLE_MACHINE_x86-64 = "(.*)"
+COMPATIBLE_MACHINE_armv6 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+COMPATIBLE_MACHINE_armv7ve = "(.*)"
+COMPATIBLE_MACHINE_aarch64 = "(.*)"
+
+inherit qmake5
+inherit gettext
+inherit pythonnative
+inherit perlnative
+
+# we don't want gettext.bbclass to append --enable-nls
+def gettext_oeconf(d):
+ return ""
+
+require qt5.inc
+require qt5-git.inc
+
+export GN_PKG_CONFIG_HOST = "${STAGING_BINDIR_NATIVE}/pkg-config-native"
+export GN_HOST_TOOLCHAIN_EXTRA_CPPFLAGS = "-I${STAGING_DIR_NATIVE}/usr/include"
+
+do_configure() {
+
+ # qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as
+ # arguments here
+ ${OE_QMAKE_QMAKE} ${EXTRA_QMAKEVARS_PRE} ${S} \
+ QMAKE_CXX="${OE_QMAKE_CXX}" \
+ QMAKE_CC="${OE_QMAKE_CC}" \
+ QMAKE_LINK="${OE_QMAKE_LINK}" \
+ QMAKE_CFLAGS="${OE_QMAKE_CFLAGS}" \
+ QMAKE_CXXFLAGS="${OE_QMAKE_CXXFLAGS}" \
+ -after ${EXTRA_QMAKEVARS_POST} -- \
+ ${EXTRA_QMAKEVARS_CONFIGURE}
+}
+
+do_configure_prepend_libc-musl() {
+ for f in `find ${S}/src/3rdparty/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ -name config.h -o -name config.asm`; do
+ sed -i -e "s:define HAVE_SYSCTL 1:define HAVE_SYSCTL 0:g" $f
+ done
+ sed -i -e "s:define HAVE_STRUCT_MALLINFO 1:/*undef HAVE_STRUCT_MALLINFO */:g" ${S}/src/3rdparty/chromium/third_party/tcmalloc/chromium/src/config_linux.h
+}
+
+do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
+
+do_install_append() {
+ sed -i 's@ -Wl,--start-group.*-Wl,--end-group@@g; s@[^ ]*${B}[^ ]* @@g' ${D}${libdir}/pkgconfig/Qt5WebEngineCore.pc
+}
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+# for /usr/share/qt5/qtwebengine_resources.pak
+FILES_${PN} += "${OE_QMAKE_PATH_QT_TRANSLATIONS} ${OE_QMAKE_PATH_QT_DATA}"
+
+RDEPENDS_${PN}-examples += " \
+ ${PN}-qmlplugins \
+ qtquickcontrols-qmlplugins \
+ qtdeclarative-qmlplugins \
+"
+
+QT_MODULE_BRANCH_CHROMIUM = "61-based"
+
+# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.10
+# 5.10.meta-qt5.2
+SRC_URI += " \
+ ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
+ file://0001-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch \
+ file://0002-Include-dependency-to-QCoreApplication-translate.patch \
+ file://0003-Force-host-toolchain-configuration.patch \
+"
+SRC_URI_append_libc-musl = "\
+ file://0004-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \
+ file://0005-musl-link-against-libexecinfo.patch \
+"
+
+# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/61-based
+# 61-based.meta-qt5.2
+SRC_URI += " \
+ file://0001-chromium-Force-host-toolchain-configuration.patch;patchdir=src/3rdparty \
+ file://0002-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \
+"
+
+SRC_URI_append_libc-musl = "\
+ file://0003-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \
+ file://0004-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \
+ file://0005-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \
+ file://0006-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \
+ file://0007-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \
+ file://0008-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \
+ file://0009-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \
+ file://0010-chromium-musl-Match-syscalls-to-match-musl.patch;patchdir=src/3rdparty \
+ file://0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \
+ file://0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \
+ file://0013-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \
+ file://0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch;patchdir=src/3rdparty \
+ file://0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch;patchdir=src/3rdparty \
+"
+
+SRCREV_qtwebengine = "9dc8dff7a8f4d58f71d816375d49f8829f06aae5"
+SRCREV_chromium = "c858cc76099db0af82a264b3c6f921a287cfcb42"
+SRCREV = "${SRCREV_qtwebengine}"
+
+SRCREV_FORMAT = "qtwebengine_chromium"
+
+# WARNING: qtwebengine-5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0 do_package_qa: QA Issue: ELF binary '/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/packages-split/qtwebengine/usr/lib/libQt5WebEngineCore.so.5.6.0' has relocations in .text [textrel]
+INSANE_SKIP_${PN} += "textrel"
diff --git a/meta/recipes-qt/qt5/qtwebkit-examples_git.bb b/meta/recipes-qt/qt5/qtwebkit-examples_git.bb
new file mode 100644
index 0000000000..114fab7a7d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebkit-examples_git.bb
@@ -0,0 +1,22 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPLv2;md5=05832301944453ec79e40ba3c3cfceec \
+ file://LICENSE.LGPLv21;md5=58a180e1cf84c756c29f782b3a485c29 \
+ file://LICENSE.LGPLv3;md5=b8c75190712063cde04e1f41b6fdad98 \
+ file://LICENSE.GPLv3;md5=40f9bf30e783ddc201497165dfb32afb \
+ file://examples/webkitwidgets/scroller/wheel/main.cpp;endline=39;md5=b0739af76072fbe303dc04b6941e054f \
+ file://examples/webkitwidgets/imageanalyzer/imageanalyzer.cpp;endline=39;md5=b0739af76072fbe303dc04b6941e054f \
+"
+
+PACKAGECONFIG ?= "examples"
+
+DEPENDS += "qtwebkit qtxmlpatterns"
+RDEPENDS_${PN}-examples += "qtwebkit-qmlplugins"
+RDEPENDS_${PN}-examples += "${@bb.utils.contains('PACKAGECONFIG_OPENSSL', 'openssl', 'ca-certificates', '', d)}"
+
+QT_MODULE_BRANCH = "5.9"
+
+SRCREV = "a24c780b60d7d8bc00c4a48042cf7f32db777d55"
diff --git a/meta/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/meta/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch
new file mode 100644
index 0000000000..f35c5d47e8
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch
@@ -0,0 +1,27 @@
+From c4e691a8dd2037d9b359e0de9d4790da9078f74e Mon Sep 17 00:00:00 2001
+From: Trevor Woerner <trevor.woerner@linaro.org>
+Date: Fri, 7 Feb 2014 04:07:17 +0100
+Subject: [PATCH] qtwebkit: fix QA issue (bad RPATH)
+
+Building qtwebkit causes a QA issue such that QtWebPluginProcess and
+QtWebProcess contain bad RPATHs which point into the build location. This fix
+adds a patch to not include the rpath.prf which causes this problem.
+
+Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ Tools/qmake/mkspecs/features/unix/default_post.prf | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf
+index fd66af6..ef754c3 100644
+--- a/Tools/qmake/mkspecs/features/unix/default_post.prf
++++ b/Tools/qmake/mkspecs/features/unix/default_post.prf
+@@ -61,7 +61,6 @@ linux-*g++* {
+ }
+ }
+
+-contains(TEMPLATE, app): CONFIG += rpath
+
+ CONFIG(debug, debug|release)|force_debug_info {
+ # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
diff --git a/meta/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch b/meta/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch
new file mode 100644
index 0000000000..6affd2e608
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch
@@ -0,0 +1,35 @@
+From fc2773961eaa536e6a617ded7c1a972d979fa2e4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 5 Jun 2015 19:55:05 -0700
+Subject: [PATCH] Exclude backtrace() API for non-glibc libraries
+
+It was excluding musl with current checks, so lets make it such that it
+considers only glibc when using backtrace API
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/WTF/wtf/Assertions.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp
+index 1b2091f..ba03a28 100644
+--- a/Source/WTF/wtf/Assertions.cpp
++++ b/Source/WTF/wtf/Assertions.cpp
+@@ -61,7 +61,7 @@
+ #include <windows.h>
+ #endif
+
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined (__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ #include <cxxabi.h>
+ #include <dlfcn.h>
+ #include <execinfo.h>
+@@ -245,7 +245,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f
+
+ void WTFGetBacktrace(void** stack, int* size)
+ {
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ *size = backtrace(stack, *size);
+ #elif OS(WINDOWS) && !OS(WINCE)
+ // The CaptureStackBackTrace function is available in XP, but it is not defined
diff --git a/meta/recipes-qt/qt5/qtwebkit_git.bb b/meta/recipes-qt/qt5/qtwebkit_git.bb
new file mode 100644
index 0000000000..c8e832819d
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebkit_git.bb
@@ -0,0 +1,100 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "BSD & LGPLv2+ | GPL-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPLv2;md5=05832301944453ec79e40ba3c3cfceec \
+ file://Source/WebCore/rendering/RenderApplet.h;endline=22;md5=fb9694013ad71b78f8913af7a5959680 \
+ file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
+ file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee \
+"
+
+DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt gperf-native"
+
+# qemuarm build fails with:
+# | {standard input}: Assembler messages:
+# | {standard input}:106: Error: invalid immediate: 983040 is out of range
+# | {standard input}:106: Error: value of 983040 too large for field of 2 bytes at 146
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
+# https://bugs.webkit.org/show_bug.cgi?id=159880
+# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
+# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
+ARM_INSTRUCTION_SET_armv7a = "thumb"
+ARM_INSTRUCTION_SET_armv7r = "thumb"
+ARM_INSTRUCTION_SET_armv7ve = "thumb"
+
+# Patches from https://github.com/meta-qt5/qtwebkit/commits/b5.10
+# 5.10.meta-qt5.1
+SRC_URI += "\
+ file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch \
+ file://0002-Exclude-backtrace-API-for-non-glibc-libraries.patch \
+"
+
+PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors qtwebchannel \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcomposite libxrender', '', d)} \
+ fontconfig \
+"
+PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base"
+PACKAGECONFIG[qtlocation] = "OE_QTLOCATION_ENABLED,,qtlocation"
+PACKAGECONFIG[qtmultimedia] = "OE_QTMULTIMEDIA_ENABLED,,qtmultimedia"
+PACKAGECONFIG[qtsensors] = "OE_QTSENSORS_ENABLED,,qtsensors"
+PACKAGECONFIG[qtwebchannel] = "OE_QTWEBCHANNEL_ENABLED,,qtwebchannel"
+PACKAGECONFIG[libwebp] = "OE_LIBWEBP_ENABLED,,libwebp"
+PACKAGECONFIG[libxcomposite] = "OE_LIBXCOMPOSITE_ENABLED,,libxcomposite"
+PACKAGECONFIG[libxrender] = "OE_LIBXRENDER_ENABLED,,libxrender"
+PACKAGECONFIG[fontconfig] = "OE_FONTCONFIG_ENABLED,,fontconfig"
+
+do_configure_prepend() {
+ export QMAKE_CACHE_EVAL="CONFIG+=${PACKAGECONFIG_CONFARGS}"
+ # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable qtlocation test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable qtmultimedia test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/(video):\(qtHaveModule(multimediawidgets)\)/(video):OE_QTMULTIMEDIA_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable qtsensors test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable qtwebchannel test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/Target.pri
+ sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/WebKit2.pri
+ # disable libwebp test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(config_libwebp: \)/ OE_LIBWEBP_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable libxcomposite test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(config_libXcomposite: \)/ OE_LIBXCOMPOSITE_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable libxrender test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(config_libXrender: \)/ OE_LIBXRENDER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+ # disable fontconfig test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/\s\(config_fontconfig: \)/ OE_FONTCONFIG_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+}
+
+# Forcibly enable ICU, so qtbase doesn't need it.
+EXTRA_QMAKEVARS_PRE += "QT_CONFIG+=icu"
+
+# qtwebkit gets terribly big when linking with all debug info, disable by default
+QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"
+EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}"
+
+do_install_append() {
+ # Remove paths to workdir, qtwebkit is dead now, so I won't spend extra time trying to prevent this
+ # from some .prl or .prf file like for other modules
+ sed -i 's@-Wl,-no-whole-archive -L${B}[^ ]* @ @g' ${D}${libdir}/pkgconfig/Qt5WebKit.pc
+}
+
+# remove default ${PN}-examples* set in qt5.inc, because they conflicts with ${PN} from separate webkit-examples recipe
+PACKAGES_remove = "${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples"
+
+# make sure rb files are used from sysroot, not from host
+# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/`
+# we need to replace it too (a bit longer version without importing re)
+RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }"
+export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}"
+
+QT_MODULE_BRANCH = "5.9"
+
+SRCREV = "bd0657f98aff85b9f06d85a8cf4da6a27f61a56e"
diff --git a/meta/recipes-qt/qt5/qtwebsockets_git.bb b/meta/recipes-qt/qt5/qtwebsockets_git.bb
new file mode 100644
index 0000000000..5d429ca055
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebsockets_git.bb
@@ -0,0 +1,14 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & (GPL-3 | LGPL-3.0) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+DEPENDS += "qtbase qtdeclarative"
+
+SRCREV = "2160c268ec80012f86be3eef20e05c267cdd2926"
diff --git a/meta/recipes-qt/qt5/qtwebview_git.bb b/meta/recipes-qt/qt5/qtwebview_git.bb
new file mode 100644
index 0000000000..f164c6af58
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtwebview_git.bb
@@ -0,0 +1,22 @@
+LICENSE = "GFDL-1.3 & BSD & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+"
+
+require qt5.inc
+require qt5-git.inc
+
+DEPENDS += "qtbase qtwebengine"
+
+COMPATIBLE_MACHINE = "(-)"
+COMPATIBLE_MACHINE_x86 = "(.*)"
+COMPATIBLE_MACHINE_x86-64 = "(.*)"
+COMPATIBLE_MACHINE_armv6 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+COMPATIBLE_MACHINE_armv7ve = "(.*)"
+COMPATIBLE_MACHINE_aarch64 = "(.*)"
+
+SRCREV = "7445cd28616e68af3cf5e074a5576cbe6c5bf491"
diff --git a/meta/recipes-qt/qt5/qtx11extras_git.bb b/meta/recipes-qt/qt5/qtx11extras_git.bb
new file mode 100644
index 0000000000..443e9d50b3
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtx11extras_git.bb
@@ -0,0 +1,16 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & The-Qt-Company-Qt-LGPL-Exception-1.1 | LGPL-3.0) | GPL-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \
+ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \
+ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \
+ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \
+"
+
+DEPENDS += "qtbase"
+
+SRCREV = "a751298bc381b0fd0c6867e43d2613b98c2cb71f"
diff --git a/meta/recipes-qt/qt5/qtxmlpatterns_git.bb b/meta/recipes-qt/qt5/qtxmlpatterns_git.bb
new file mode 100644
index 0000000000..77d7fe20b1
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtxmlpatterns_git.bb
@@ -0,0 +1,20 @@
+require qt5.inc
+require qt5-git.inc
+require qt5-ptest.inc
+
+HOMEPAGE = "http://www.qt.io"
+LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | 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 \
+"
+
+DEPENDS += "qtbase"
+
+SRCREV = "7c4113d6e6215b26b866ed2a0da0fa5e0c12b8ea"
+
+BBCLASSEXTEND =+ "native nativesdk"
+