summaryrefslogtreecommitdiffstats
path: root/external/meta-qt5/recipes-qt
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-qt5/recipes-qt')
-rw-r--r--external/meta-qt5/recipes-qt/examples/qt5everywheredemo_1.0.bb4
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch83
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch62
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch66
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb3
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch58
-rw-r--r--external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb4
-rw-r--r--external/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb1
-rwxr-xr-xexternal/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb16
-rw-r--r--external/meta-qt5/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch39
-rw-r--r--external/meta-qt5/recipes-qt/qmllive/qmllive_git.bb5
-rw-r--r--external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf5
-rw-r--r--external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb43
-rw-r--r--external/meta-qt5/recipes-qt/qt5/nativesdk-qtbase_git.bb42
-rw-r--r--external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch62
-rw-r--r--external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch35
-rw-r--r--external/meta-qt5/recipes-qt/qt5/ogl-runtime_git.bb29
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt3d-runtime/0001-runtime-Include-missing-QCoreApplication-header.patch29
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt3d-runtime_git.bb18
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch27
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt3d_git.bb6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch (renamed from external/meta-qt5/recipes-qt/qt5/qt5-creator/0003-Link-with-libexecinfo-on-musl.patch)17
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-botan-Always-define-BOTAN_ARCH_SWITCH-when-cross-bui.patch26
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-clangformat-AllowShortIfStatementsOnASingleLine-is-n.patch53
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-creator/0002-botan.pro-pass-QMAKE_AR.patch80
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb24
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-git.inc6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-include-errno.h-for-errno-definition.patch38
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5-ptest.inc2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qt5.inc4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb50
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch33
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch20
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch12
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch13
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch12
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch14
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0013-Disable-ltcg-for-host_build.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0015-Disable-ltcg-for-host_build.patch)18
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0013-Upgrade-double-conversion-to-v3.0.0.patch344
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch)10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0014-double-conversion-support-AARCH64EB-and-arm-BE.patch40
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0015-corelib-Include-sys-types.h-for-uint32_t.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0017-corelib-Include-sys-types.h-for-uint32_t.patch)4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch)10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch70
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0019-Always-build-uic-and-qvkgen.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0020-Always-build-uic-and-qvkgen.patch)6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0019-Fix-compile-issue-with-gcc-9.patch31
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0020-Avoid-renameeat2-for-native-sdk-builds.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0021-Avoid-renameeat2-for-native-sdk-builds.patch)21
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0021-Bootstrap-without-linkat-feature.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtbase/0022-Bootstrap-without-linkat-feature.patch)6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase/0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch123
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtbase_git.bb109
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtcanvas3d_git.bb14
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtcharts_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtcoap_git.bb14
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch23
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Ignore-clang-warning-about-address-of-temp-in-config.patch40
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtdatavis3d_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Always-use-commit-sha1-for-QML_COMPILE_HASH.patch31
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch32
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtdeclarative/0002-Use-python3-explicitly.patch57
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb22
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtenginio_git.bb16
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtgamepad_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb3
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtknx_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtlocation_git.bb12
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtlottie_git.bb12
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtmqtt_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb9
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtnetworkauth_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtopcua_git.bb12
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtpurchasing_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtquick3d_git.bb27
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtquicktimeline_git.bb13
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch8
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch22
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtremoteobjects_git.bb7
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscript/0001-3rdparty-javascriptcore-Add-RISC-V-support.patch47
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtscript/0002-Include-asm-sgidefs.h-on-non-glibc-systems.patch)4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscript/0002-Fix-build-with-GCC-8.3.patch235
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscript_git.bb10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtscxml_git.bb6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtsensors_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtserialbus_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtserialport_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtsvg_git.bb3
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtsystems_git.bb6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch61
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch25
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttools/run-ptest4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttools_git.bb36
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qttranslations_git.bb9
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtvirtualkeyboard_git.bb24
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch27
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwayland_git.bb41
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch60
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch50
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/0004-musl-link-against-libexecinfo.patch6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/0005-mkspecs-Allow-builds-with-libc-glibc.patch26
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-Force-host-toolchain-configuration.patch33
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch)16
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-stack-pointer-clobber.patch49
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Fix-build-with-gcc8.patch50
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-fix-build-with-clang.patch91
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Exclude-CRC32-for-32bit-arm.patch33
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch38
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch64
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-fix-build-after-y2038-changes-in-glibc.patch28
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch68
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Include-cstddef-for-size_t-definition.patch48
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch554
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Include-cstddef-and-cstdint.patch50
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch)6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch32
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch)35
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-include-fcntl.h-for-loff_t.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-musl-include-fcntl.h-for-loff_t.patch)6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch22
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-use-off64_t-instead-of-the-internal-__.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch)16
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-linux-glibc-make-the-distinction.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-musl-linux-glibc-make-the-distinction.patch)4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch23
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch)6
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Use-correct-member-name-__si_fields-fr.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch)2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch)10
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch)14
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-Adjust-default-pthread-stack-size.patch)22
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch)4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch)4
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-pread-pwrite.patch31
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb80
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebglplugin_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-Fix-build-with-qt-5.11.patch48
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb24
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Port-build-to-python3.patch3845
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Do-not-skip-build-for-cross-compile.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch)2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit/0003-Fix-build-with-non-glibc-libc-on-musl.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch)2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit/0004-Fix-build-bug-for-armv32-BE.patch2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit/0005-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch (renamed from external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch)11
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb28
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtwebview_git.bb7
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb2
-rw-r--r--external/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb14
-rw-r--r--external/meta-qt5/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch31
-rw-r--r--external/meta-qt5/recipes-qt/quazip/quazip_0.7.3.bb6
-rw-r--r--external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.4.bb (renamed from external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.3.bb)13
160 files changed, 6660 insertions, 1793 deletions
diff --git a/external/meta-qt5/recipes-qt/examples/qt5everywheredemo_1.0.bb b/external/meta-qt5/recipes-qt/examples/qt5everywheredemo_1.0.bb
index 56034cc4..44e5a84f 100644
--- a/external/meta-qt5/recipes-qt/examples/qt5everywheredemo_1.0.bb
+++ b/external/meta-qt5/recipes-qt/examples/qt5everywheredemo_1.0.bb
@@ -1,10 +1,10 @@
SUMMARY = "Qt5 everywhere demo"
DESCRIPTION = "Quick tour of Qt 5.0, primarily focusing on its graphical capabilities."
LICENSE = "BSD"
-HOMEPAGE = "https://qt.gitorious.org/qt-labs"
+HOMEPAGE = "https://code.qt.io/cgit/qt-labs"
LIC_FILES_CHKSUM = "file://qml/QtDemo/main.qml;endline=39;md5=7d80863906a4bc8ffca77fd869e335a9"
-DEPENDS = "qtdeclarative qtgraphicaleffects qtsvg qtmultimedia"
+DEPENDS = "qtdeclarative qtgraphicaleffects qtsvg qtmultimedia qtxmlpatterns"
SRCREV = "35d72a2eba7456a2efc5eb8b77afbc00f69ba0ac"
QT_GIT_PROJECT = "qt-labs"
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch
new file mode 100644
index 00000000..920946ec
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch
@@ -0,0 +1,83 @@
+From 60e7464fe2b75bb7187a4be0d6ba944d2b46f93e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Jan 2019 22:02:32 -0800
+Subject: [PATCH] Drop tr1 namespace its not there in c++11 and newer
+
+compile as C++11 code
+libc++'s tr1 headers don't actually make a tr1 namespace.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mimonscreenplugins.cpp | 10 +++++-----
+ .../ut_mimpluginmanagerconfig.cpp | 2 +-
+ .../ut_mimpluginmanagerconfig.h | 2 +-
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/mimonscreenplugins.cpp b/src/mimonscreenplugins.cpp
+index da6e937e..b830e1bf 100644
+--- a/src/mimonscreenplugins.cpp
++++ b/src/mimonscreenplugins.cpp
+@@ -21,9 +21,9 @@
+ #include <QDebug>
+
+ #include <algorithm>
+-#include <tr1/functional>
++#include <functional>
+
+-using namespace std::tr1::placeholders;
++using namespace std::placeholders;
+
+ namespace
+ {
+@@ -118,10 +118,10 @@ bool MImOnScreenPlugins::isEnabled(const QString &plugin) const
+
+ std::remove_copy_if(mEnabledSubViews.begin(), mEnabledSubViews.end(),
+ std::back_inserter(mEnabledAndAvailableSubViews),
+- std::tr1::bind(&MImOnScreenPlugins::isSubViewUnavailable, this, _1));
++ std::bind(&MImOnScreenPlugins::isSubViewUnavailable, this, _1));
+
+ return std::find_if(mEnabledAndAvailableSubViews.begin(), mEnabledAndAvailableSubViews.end(),
+- std::tr1::bind(equalPlugin, _1, plugin)) != mEnabledAndAvailableSubViews.end();
++ std::bind(equalPlugin, _1, plugin)) != mEnabledAndAvailableSubViews.end();
+ }
+
+ bool MImOnScreenPlugins::isSubViewEnabled(const SubView &subView) const
+@@ -138,7 +138,7 @@ QList<MImOnScreenPlugins::SubView> MImOnScreenPlugins::enabledSubViews(const QSt
+ {
+ QList<MImOnScreenPlugins::SubView> result;
+ std::remove_copy_if(mEnabledSubViews.begin(), mEnabledSubViews.end(),
+- std::back_inserter(result), std::tr1::bind(notEqualPlugin, _1, plugin));
++ std::back_inserter(result), std::bind(notEqualPlugin, _1, plugin));
+ return result;
+ }
+
+diff --git a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.cpp b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.cpp
+index dea443e3..677dd689 100644
+--- a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.cpp
++++ b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.cpp
+@@ -39,7 +39,7 @@
+ #include "mattributeextensionmanager.h"
+ #include "msharedattributeextensionmanager.h"
+
+-using namespace std::tr1;
++using namespace std;
+
+ typedef QSet<Maliit::HandlerState> HandlerStates;
+ Q_DECLARE_METATYPE(HandlerStates);
+diff --git a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.h b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.h
+index 5b1b691b..3ea18747 100644
+--- a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.h
++++ b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.h
+@@ -16,7 +16,7 @@
+
+ #include "mimserveroptions.h"
+ #include "mimsettingsqsettings.h"
+-#include <tr1/memory>
++#include <memory>
+
+ #include <QtTest/QtTest>
+ #include <QObject>
+--
+2.20.1
+
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch
new file mode 100644
index 00000000..d86be1e1
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch
@@ -0,0 +1,62 @@
+From 78a4b12b64c26f29e64fe56801e92d1e76f362b0 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Fri, 16 Aug 2019 15:08:41 +0300
+Subject: [PATCH] Fix test installations
+
+Qmake won't ignore install errors anymore.
+
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ .../ut_mattributeextensionmanager.pro | 7 ++++---
+ tests/ut_mimpluginmanager/ut_mimpluginmanager.pro | 7 ++++---
+ .../ut_mimpluginmanagerconfig.pro | 3 ---
+ 3 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/tests/ut_mattributeextensionmanager/ut_mattributeextensionmanager.pro b/tests/ut_mattributeextensionmanager/ut_mattributeextensionmanager.pro
+index 22280882..d0c390ef 100644
+--- a/tests/ut_mattributeextensionmanager/ut_mattributeextensionmanager.pro
++++ b/tests/ut_mattributeextensionmanager/ut_mattributeextensionmanager.pro
+@@ -13,9 +13,10 @@ CONFIG += plugin
+ include($$TOP_DIR/src/libmaliit-plugins.pri)
+ include($$TOP_DIR/connection/libmaliit-connection.pri)
+
+-target.files += \
+- $$TARGET \
++extra.files += \
+ toolbar1.xml \
+- toolbar2.xml \
++ toolbar2.xml
++extra.path = $$target.path
++INSTALLS += extra
+
+ include(../common_check.pri)
+diff --git a/tests/ut_mimpluginmanager/ut_mimpluginmanager.pro b/tests/ut_mimpluginmanager/ut_mimpluginmanager.pro
+index 19e68e6a..44e0fa0f 100644
+--- a/tests/ut_mimpluginmanager/ut_mimpluginmanager.pro
++++ b/tests/ut_mimpluginmanager/ut_mimpluginmanager.pro
+@@ -17,9 +17,10 @@ include($$TOP_DIR/src/libmaliit-plugins.pri)
+ # For MImInputContextConnection pulled in by TestInputMethodHost
+ include($$TOP_DIR/connection/libmaliit-connection.pri)
+
+-target.files += \
+- $$TARGET \
++extra.files += \
+ toolbar1.xml \
+- toolbar2.xml \
++ toolbar2.xml
++extra.path = $$target.path
++INSTALLS += extra
+
+ include(../common_check.pri)
+diff --git a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.pro b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.pro
+index 739ceef6..e0b363c8 100644
+--- a/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.pro
++++ b/tests/ut_mimpluginmanagerconfig/ut_mimpluginmanagerconfig.pro
+@@ -17,7 +17,4 @@ include($$TOP_DIR/src/libmaliit-plugins.pri)
+ # For MImInputContextConnection pulled in by TestInputMethodHost
+ include($$TOP_DIR/connection/libmaliit-connection.pri)
+
+-target.files += \
+- $$TARGET \
+-
+ include(../common_check.pri)
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch
new file mode 100644
index 00000000..84c8aeac
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch
@@ -0,0 +1,66 @@
+From 604761d49aa1d93ef5cc6d13259dc53dce7f04c4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 16 Jul 2019 17:52:04 -0700
+Subject: [PATCH] examples/plugins: Replace obsolete screenGeometry
+
+Fixes errors like
+helloworldinputmethod.cpp:93:55: error: 'screenGeometry' is deprecated: Use QGuiApplication::screens() [-Werror,-Wdeprecated-declarations]
+ const QSize screenSize = QApplication::desktop()->screenGeometry().size();
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/plugins/cxx/helloworld/helloworldinputmethod.cpp | 5 +++--
+ examples/plugins/cxx/override/overrideinputmethod.cpp | 5 +++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/examples/plugins/cxx/helloworld/helloworldinputmethod.cpp b/examples/plugins/cxx/helloworld/helloworldinputmethod.cpp
+index eb470a1f..e5e5911d 100644
+--- a/examples/plugins/cxx/helloworld/helloworldinputmethod.cpp
++++ b/examples/plugins/cxx/helloworld/helloworldinputmethod.cpp
+@@ -18,7 +18,7 @@
+
+ #include <QDebug>
+ #include <QApplication>
+-#include <QDesktopWidget>
++#include <QScreen>
+
+ namespace {
+
+@@ -90,7 +90,8 @@ void HelloWorldInputMethod::show()
+ }
+
+ // Set size of our container to screen size
+- const QSize screenSize = QApplication::desktop()->screenGeometry().size();
++ QScreen *screen = QApplication::primaryScreen();
++ const QSize screenSize = screen->availableSize();
+ mainWidget->parentWidget()->resize(screenSize);
+
+ // Set size of the input method
+diff --git a/examples/plugins/cxx/override/overrideinputmethod.cpp b/examples/plugins/cxx/override/overrideinputmethod.cpp
+index c00160e4..f2f30e1d 100644
+--- a/examples/plugins/cxx/override/overrideinputmethod.cpp
++++ b/examples/plugins/cxx/override/overrideinputmethod.cpp
+@@ -18,7 +18,7 @@
+
+ #include <QDebug>
+ #include <QApplication>
+-#include <QDesktopWidget>
++#include <QScreen>
+ #include <QKeyEvent>
+
+ namespace {
+@@ -82,7 +82,8 @@ void OverrideInputMethod::show()
+ }
+
+ // Set size of the input method
+- const QSize &screenSize = QApplication::desktop()->screenGeometry().size();
++ QScreen *screen = QApplication::primaryScreen();
++ const QSize screenSize = screen->availableSize();
+ const QSize size(screenSize.width() - 200, 200);
+
+ surface->setGeometry(QRect(QPoint((screenSize.width() - size.width()) / 2,
+--
+2.22.0
+
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb
index 232e8252..1f0dc8d6 100644
--- a/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-framework-qt5_git.bb
@@ -10,6 +10,9 @@ SRC_URI = "git://github.com/maliit/framework.git;branch=master \
file://0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch \
file://maliit-server.desktop \
file://0001-config.pri-Use-O1-optimization-in-DEBUG-flags.patch \
+ file://0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch \
+ file://0001-examples-plugins-Replace-obsolete-screenGeometry.patch \
+ file://0001-Fix-test-installations.patch \
"
SRCREV = "60b1b10de14f932420313c547ab801daf522d539"
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch b/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch
new file mode 100644
index 00000000..e5525379
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch
@@ -0,0 +1,58 @@
+From 19cc10dc4378e9eda15b58f3673f686c4ff845e2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Jan 2019 22:17:56 -0800
+Subject: [PATCH] Do not use tr1 namespace
+
+This is not a standard in C++11
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ maliit-keyboard/lib/logic/layouthelper.cpp | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/maliit-keyboard/lib/logic/layouthelper.cpp b/maliit-keyboard/lib/logic/layouthelper.cpp
+index a8bd995f..f694e819 100644
+--- a/maliit-keyboard/lib/logic/layouthelper.cpp
++++ b/maliit-keyboard/lib/logic/layouthelper.cpp
+@@ -31,7 +31,7 @@
+ */
+
+ #include <algorithm>
+-#include <tr1/functional>
++#include <functional>
+
+ #include "layouthelper.h"
+ #include "coreutils.h"
+@@ -76,7 +76,7 @@ struct KeyPredicate
+
+ } // namespace
+
+-typedef std::tr1::function<void(const KeyArea &, const KeyOverrides &)> EmitFunc;
++typedef std::function<void(const KeyArea &, const KeyOverrides &)> EmitFunc;
+
+ class LayoutHelperPrivate
+ {
+@@ -468,13 +468,13 @@ void LayoutHelper::onKeysOverriden(const KeyOverrides &overriden_keys,
+ d->overriden_keys = overriden_keys;
+ }
+
+- using std::tr1::placeholders::_1;
+- using std::tr1::placeholders::_2;
++ using std::placeholders::_1;
++ using std::placeholders::_2;
+
+- d->overrideCheck(changed_ids, d->left, std::tr1::bind(&LayoutHelper::leftPanelChanged, this, _1, _2));
+- d->overrideCheck(changed_ids, d->right, std::tr1::bind(&LayoutHelper::rightPanelChanged, this, _1, _2));
+- d->overrideCheck(changed_ids, d->center, std::tr1::bind(&LayoutHelper::centerPanelChanged, this, _1, _2));
+- d->overrideCheck(changed_ids, d->extended, std::tr1::bind(&LayoutHelper::extendedPanelChanged, this, _1, _2));
++ d->overrideCheck(changed_ids, d->left, std::bind(&LayoutHelper::leftPanelChanged, this, _1, _2));
++ d->overrideCheck(changed_ids, d->right, std::bind(&LayoutHelper::rightPanelChanged, this, _1, _2));
++ d->overrideCheck(changed_ids, d->center, std::bind(&LayoutHelper::centerPanelChanged, this, _1, _2));
++ d->overrideCheck(changed_ids, d->extended, std::bind(&LayoutHelper::extendedPanelChanged, this, _1, _2));
+ }
+
+ }} // namespace Logic, MaliitKeyboard
+--
+2.20.1
+
diff --git a/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb b/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb
index 8225cb54..8464e1f0 100644
--- a/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb
+++ b/external/meta-qt5/recipes-qt/maliit/maliit-plugins-qt5_git.bb
@@ -10,7 +10,9 @@ DEPENDS = "maliit-framework-qt5"
RDEPENDS_${PN} += "qtsvg-plugins"
-SRC_URI = "git://github.com/maliit/plugins.git;branch=master"
+SRC_URI = "git://github.com/maliit/plugins.git;branch=master \
+ file://0001-Do-not-use-tr1-namespace.patch \
+ "
SRCREV = "c6a348592607248a771a3dde5a0e33dc3c433a2a"
PV = "0.99.0+git${SRCPV}"
diff --git a/external/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb b/external/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb
index e92cb9d4..facd2763 100644
--- a/external/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb
+++ b/external/meta-qt5/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb
@@ -11,5 +11,6 @@ RDEPENDS_${PN} += " \
nativesdk-packagegroup-sdk-host \
nativesdk-qttools-tools \
nativesdk-qtbase \
+ nativesdk-qtbase-dev \
nativesdk-perl-modules \
"
diff --git a/external/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb b/external/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
index d206a100..8c8bed30 100755
--- a/external/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
+++ b/external/meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb
@@ -3,15 +3,11 @@
DESCRIPTION = "Target packages for Qt5 SDK"
LICENSE = "MIT"
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
inherit packagegroup
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
-# Requires Ruby to work
-USE_RUBY = " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebkit-dev', '', d)} \
-"
-
# Requires Wayland to work
USE_WAYLAND = " \
qtwayland-dev \
@@ -51,11 +47,7 @@ RDEPENDS_${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdeclarative-qmlplugins', '', d)} \
qtdeclarative-tools \
qtdeclarative-staticdev \
- qttranslations-qmlviewer \
qttranslations-qtdeclarative \
- qtenginio-dev \
- qtenginio-mkspecs \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtenginio-qmlplugins', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtgraphicaleffects-qmlplugins', '', d)} \
qtimageformats-dev \
qtimageformats-plugins \
@@ -93,7 +85,6 @@ RDEPENDS_${PN} += " \
qttools-staticdev \
qttools-tools \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '${USE_WAYLAND}', '', d)} \
- ${USE_RUBY} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${USE_X11}', '', d)} \
qtwebsockets-dev \
qtwebsockets-mkspecs \
@@ -109,8 +100,13 @@ RDEPENDS_${PN} += " \
qtquickcontrols2-dev \
qtquickcontrols2-mkspecs \
"
+RDEPENDS_${PN}_remove_toolchain-clang_riscv32 = "qttools-dev qttools-mkspecs qttools-staticdev qttools-tools"
+RDEPENDS_${PN}_remove_toolchain-clang_riscv64 = "qttools-dev qttools-mkspecs qttools-staticdev qttools-tools"
RRECOMMENDS_${PN} += " \
qtquickcontrols-qmlplugins \
qttools-plugins \
"
+
+RRECOMMENDS_${PN}_remove_toolchain-clang_riscv32 = "qttools-plugins"
+RRECOMMENDS_${PN}_remove_toolchain-clang_riscv64 = "qttools-plugins"
diff --git a/external/meta-qt5/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch b/external/meta-qt5/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch
new file mode 100644
index 00000000..9a54b902
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch
@@ -0,0 +1,39 @@
+From 647b1da38d8c741681de9c89f2090f0edcf25a47 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 13:40:34 -0800
+Subject: [PATCH] lib.pro: Append LIB_ARCH to lib
+
+appending to lib so it becomes lib64 when needed and LIB_ARCH can be set
+in evnironment
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib.pro | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib.pro b/src/lib.pro
+index b5f8ab6..0731d01 100755
+--- a/src/lib.pro
++++ b/src/lib.pro
+@@ -18,7 +18,7 @@ public_headers += \
+ include(src.pri)
+
+ win32: target.path = $${PREFIX}/bin
+-else: target.path = $${PREFIX}/lib
++else: target.path = $${PREFIX}/lib$${LIB_ARCH}
+ INSTALLS += target
+
+ headers.files = $$public_headers
+@@ -30,7 +30,7 @@ INSTALLS += headers
+ QMAKE_PKGCONFIG_NAME = qmllive
+ QMAKE_PKGCONFIG_DESCRIPTION = Qt QmlLive Library
+ QMAKE_PKGCONFIG_PREFIX = $$PREFIX
+- QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
++ QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib$${LIB_ARCH}
+ QMAKE_PKGCONFIG_INCDIR = ${prefix}/include/qmllive
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ }
+--
+2.24.1
+
diff --git a/external/meta-qt5/recipes-qt/qmllive/qmllive_git.bb b/external/meta-qt5/recipes-qt/qmllive/qmllive_git.bb
index bc9a3784..8a4a6ce7 100644
--- a/external/meta-qt5/recipes-qt/qmllive/qmllive_git.bb
+++ b/external/meta-qt5/recipes-qt/qmllive/qmllive_git.bb
@@ -7,12 +7,15 @@ DEPENDS = "qtbase qtdeclarative"
PV = "5.12+git${SRCPV}"
QT_GIT_PROJECT = "qt-apps"
-SRC_URI = "${QT_GIT}/qmllive.git;branch=dev"
+SRC_URI = "${QT_GIT}/qmllive.git;branch=dev \
+ file://0001-lib.pro-Append-LIB_ARCH-to-lib.patch \
+ "
SRCREV = "0c7bf141b08aa9e757e91a4a05769257d043eab2"
S = "${WORKDIR}/git"
inherit pkgconfig qmake5
+EXTRA_QMAKEVARS_PRE += "LIB_ARCH=${@d.getVar('baselib').replace('lib', '')}"
EXTRA_QMAKEVARS_POST = "QMAKE_RPATHDIR="
FILES_${PN}-dev += "${datadir}"
diff --git a/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf b/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf
new file mode 100644
index 00000000..4f4849b5
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf
@@ -0,0 +1,5 @@
+{
+ "URL": "http://github.com/OSSystems/qt-kiosk-browser",
+ "RestartTimeout": 0,
+ "ScreenSaverTimeout": 0
+}
diff --git a/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb b/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb
new file mode 100644
index 00000000..8ae0e9ef
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Qt Kiosk Browser"
+DESCRIPTION = "Provides a simple but highly configurable browser for use on Kiosk devices"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+LICENSE = "GPLv3"
+
+DEPENDS = "qtwebengine"
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('qtwebengine dependency requires meta-python2 to be present.')
+}
+
+SRC_URI = " \
+ git://github.com/OSSystems/qt-kiosk-browser;protocol=https \
+ file://${BPN}.conf \
+"
+
+PV = "0.0+git${SRCPV}"
+SRCREV = "d42b7d9050b5445e2b9430022a46d5d583581631"
+
+S = "${WORKDIR}/git"
+
+inherit qmake5
+
+EXTRA_QMAKEVARS_PRE += "PREFIX=${prefix}"
+
+do_install_append() {
+ install -Dm 0644 ${WORKDIR}/${PN}.conf ${D}${sysconfdir}/${PN}.conf
+}
+
+RDEPENDS_${PN} += " \
+ liberation-fonts \
+ qtdeclarative-qmlplugins \
+ qtquickcontrols-qmlplugins \
+ qtvirtualkeyboard \
+ qtwebengine-qmlplugins \
+"
+COMPATIBLE_MACHINE = "(-)"
+COMPATIBLE_MACHINE_x86 = "(.*)"
+COMPATIBLE_MACHINE_x86-64 = "(.*)"
+COMPATIBLE_MACHINE_armv6 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+COMPATIBLE_MACHINE_armv7ve = "(.*)"
+COMPATIBLE_MACHINE_aarch64 = "(.*)"
diff --git a/external/meta-qt5/recipes-qt/qt5/nativesdk-qtbase_git.bb b/external/meta-qt5/recipes-qt/qt5/nativesdk-qtbase_git.bb
index 477417e0..42defb01 100644
--- a/external/meta-qt5/recipes-qt/qt5/nativesdk-qtbase_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/nativesdk-qtbase_git.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
- file://LICENSE.QT-LICENSE-AGREEMENT-4.0;md5=948f8877345cd66106f11031977a4625 \
+ file://LICENSE.QT-LICENSE-AGREEMENT;md5=c8b6dd132d52c6e5a545df07a4e3e283 \
"
QT_MODULE = "qtbase"
@@ -22,8 +22,8 @@ require qt5-git.inc
FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:"
# common for qtbase-native, qtbase-nativesdk and qtbase
-# Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-shared
-# 5.11.meta-qt5-shared.14
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-shared
+# 5.14.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 \
@@ -37,21 +37,19 @@ SRC_URI += "\
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 \
- file://0013-Upgrade-double-conversion-to-v3.0.0.patch \
- file://0014-double-conversion-support-AARCH64EB-and-arm-BE.patch \
- file://0015-Disable-ltcg-for-host_build.patch \
- file://0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
- file://0017-corelib-Include-sys-types.h-for-uint32_t.patch \
- file://0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
- file://0019-Fix-compile-issue-with-gcc-9.patch \
+ file://0013-Disable-ltcg-for-host_build.patch \
+ file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
+ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \
+ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
+ file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \
"
# common for qtbase-native and nativesdk-qtbase
-# Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-native
-# 5.11.meta-qt5-native.14
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-native
+# 5.14.meta-qt5-native.2
SRC_URI += " \
- file://0020-Always-build-uic-and-qvkgen.patch \
- file://0021-Avoid-renameeat2-for-native-sdk-builds.patch \
+ file://0019-Always-build-uic-and-qvkgen.patch \
+ file://0020-Avoid-renameeat2-for-native-sdk-builds.patch \
"
# CMake's toolchain configuration of nativesdk-qtbase
@@ -68,6 +66,7 @@ FILES_${PN}-dev += " \
FILES_${PN} += " \
${SDKPATHNATIVE}/environment-setup.d \
+ ${OE_QMAKE_PATH_PLUGINS} \
"
# qttools binaries are placed in a subdir of bin in order to avoid
@@ -76,11 +75,15 @@ FILES_${PN} += " \
# disable package auto-renaming for the tools-package.
DEBIAN_NOAUTONAME_${PN} = "1"
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[gui] = "-gui -qpa offscreen,-no-gui,"
+PACKAGECONFIG[imageformats] = "-qt-libpng -qt-libjpeg -gif -ico, -no-libpng -no-libjpeg -no-ico -no-gif,"
+PACKAGECONFIG[openssl] = "-openssl,-no-openssl,openssl,libssl"
+
QT_CONFIG_FLAGS += " \
-shared \
-silent \
-no-pch \
- -no-rpath \
-pkg-config \
${PACKAGECONFIG_CONFARGS} \
"
@@ -105,16 +108,11 @@ do_configure() {
-no-gcc-sysroot \
-system-zlib \
-dbus-runtime \
- -no-libjpeg \
- -no-libpng \
- -no-gif \
-no-accessibility \
-no-cups \
- -no-gui \
-no-sql-mysql \
-no-sql-sqlite \
-no-opengl \
- -no-openssl \
-no-xcb \
-no-feature-bearermanagement \
-no-icu \
@@ -142,7 +140,6 @@ do_configure() {
-nomake examples \
-nomake tests \
-no-compile-examples \
- -no-rpath \
-platform ${OE_QMAKE_PLATFORM_NATIVE} \
-xplatform ${OE_QMAKE_PLATFORM} \
${QT_CONFIG_FLAGS}
@@ -153,7 +150,6 @@ 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
@@ -198,4 +194,4 @@ fakeroot do_generate_qt_environment_file() {
do_generate_qt_environment_file[umask] = "022"
addtask generate_qt_environment_file after do_install before do_package
-SRCREV = "08de243eaa007597c2bfbc97d3d14e2f821ac4be"
+SRCREV = "3a6d8df5219653b043bd642668cee193f563ec84"
diff --git a/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch b/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch
new file mode 100644
index 00000000..0d2f165f
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch
@@ -0,0 +1,62 @@
+From 4fa69c1c5396bded20edccb2a1dd9b61f0b1140d Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Fri, 2 Aug 2019 12:39:50 +0300
+Subject: [PATCH] Fix examples build error
+
+Add workaround for QTBUG-77288 which causes examples to fail to build
+
+Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
+---
+ examples/studio3d/cppdatainput/cppdatainput.pro | 1 +
+ examples/studio3d/dynamicelement/dynamicelement.pro | 1 +
+ examples/studio3d/qmldatainput/qmldatainput.pro | 1 +
+ examples/studio3d/simpleqml/simpleqml.pro | 1 +
+ 4 files changed, 4 insertions(+)
+
+diff --git a/examples/studio3d/cppdatainput/cppdatainput.pro b/examples/studio3d/cppdatainput/cppdatainput.pro
+index 20b5c68..bbb403a 100644
+--- a/examples/studio3d/cppdatainput/cppdatainput.pro
++++ b/examples/studio3d/cppdatainput/cppdatainput.pro
+@@ -1,5 +1,6 @@
+ CONFIG += c++11
+ QT += widgets qml quick studio3d
++QMAKE_LIBS += $$QMAKE_LIBS_3DSQMLSTREAMER $$QMAKE_LIBS_3DSOPENGL
+
+ target.path = $$[QT_INSTALL_EXAMPLES]/studio3d/$$TARGET
+ INSTALLS += target
+diff --git a/examples/studio3d/dynamicelement/dynamicelement.pro b/examples/studio3d/dynamicelement/dynamicelement.pro
+index 1b804fd..ae3c005 100644
+--- a/examples/studio3d/dynamicelement/dynamicelement.pro
++++ b/examples/studio3d/dynamicelement/dynamicelement.pro
+@@ -1,6 +1,7 @@
+ TEMPLATE = app
+
+ QT += qml quick studio3d
++QMAKE_LIBS += $$QMAKE_LIBS_3DSQMLSTREAMER $$QMAKE_LIBS_3DSOPENGL
+
+ SOURCES += \
+ demo.cpp \
+diff --git a/examples/studio3d/qmldatainput/qmldatainput.pro b/examples/studio3d/qmldatainput/qmldatainput.pro
+index 9bafed5..496c2c1 100644
+--- a/examples/studio3d/qmldatainput/qmldatainput.pro
++++ b/examples/studio3d/qmldatainput/qmldatainput.pro
+@@ -1,6 +1,7 @@
+ TEMPLATE = app
+
+ QT += widgets qml quick studio3d
++QMAKE_LIBS += $$QMAKE_LIBS_3DSQMLSTREAMER $$QMAKE_LIBS_3DSOPENGL
+
+ integrity: DEFINES += USE_EMBEDDED_FONTS
+
+diff --git a/examples/studio3d/simpleqml/simpleqml.pro b/examples/studio3d/simpleqml/simpleqml.pro
+index 62afa78..1a0784b 100644
+--- a/examples/studio3d/simpleqml/simpleqml.pro
++++ b/examples/studio3d/simpleqml/simpleqml.pro
+@@ -1,6 +1,7 @@
+ TEMPLATE = app
+
+ QT += widgets qml quick studio3d
++QMAKE_LIBS += $$QMAKE_LIBS_3DSQMLSTREAMER $$QMAKE_LIBS_3DSOPENGL
+
+ SOURCES += \
+ main.cpp
diff --git a/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch b/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch
new file mode 100644
index 00000000..94ca4f5c
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/ogl-runtime/0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch
@@ -0,0 +1,35 @@
+From 84a9dd3f1bce450b3a6eb589ab9794178d74d1d7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Oct 2019 11:58:21 -0700
+Subject: [PATCH] Qt3DSSimpleTypes: make QT3DSU64 as unsigned long on linux as
+ well
+
+linux 64bit platform defines uint64_t as unsigned long as well, which
+inturn is used to define GLuint64, therefore its needed to be compatible
+or else we get compile errors
+
+src/render/backends/gl/Qt3DSRenderBackendGL3.cpp:754:80: error: cannot initialize a parameter of type 'GLuint64 *' (aka 'unsigned long *') with an lvalue of type 'qt3ds::QT3DSU64 *' (aka 'unsigned long long *')
+| queryID, m_Conversion.fromQueryResultTypeToGL(resultType), params));
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/foundation/Qt3DSSimpleTypes.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/foundation/Qt3DSSimpleTypes.h b/src/foundation/Qt3DSSimpleTypes.h
+index 05ac8d9..adb72e9 100644
+--- a/src/foundation/Qt3DSSimpleTypes.h
++++ b/src/foundation/Qt3DSSimpleTypes.h
+@@ -54,7 +54,7 @@ typedef quint32 QT3DSU32;
+ typedef qint32 QT3DSI32;
+
+ // Android's definition of GLuint64 as unsigned long (64-bits) requires this workaround
+-#if Q_PROCESSOR_WORDSIZE == 8 && (defined(Q_OS_ANDROID) || defined(Q_OS_INTEGRITY))
++#if Q_PROCESSOR_WORDSIZE == 8 && (defined(Q_OS_ANDROID) || defined(Q_OS_INTEGRITY) || defined(Q_OS_LINUX))
+ typedef unsigned long QT3DSU64;
+ #else
+ typedef quint64 QT3DSU64;
+--
+2.23.0
+
diff --git a/external/meta-qt5/recipes-qt/qt5/ogl-runtime_git.bb b/external/meta-qt5/recipes-qt/qt5/ogl-runtime_git.bb
new file mode 100644
index 00000000..5e1f183f
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/ogl-runtime_git.bb
@@ -0,0 +1,29 @@
+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 qtdeclarative qtquickcontrols2"
+
+QT_MODULE_BRANCH = "2.5"
+QT_MODULE_BRANCH_EASTL = "master"
+QT_GIT_PROJECT = "qt3dstudio"
+PV = "2.5.0+git${SRCPV}"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm|powerpc64).*-linux"
+
+SRC_URI += " \
+ ${QT_GIT}/qt3dstudio-eastl.git;name=EASTL;branch=${QT_MODULE_BRANCH_EASTL};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/EASTL \
+ file://0001-Fix-examples-build-error.patch \
+ file://0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch \
+"
+
+SRCREV_ogl-runtime = "25236c672d81a73ee8754dbd764eb8a2a26d866e"
+SRCREV_EASTL = "31697c758f2ed19bd7c6bbe61f1b91f9e12035b5"
+SRCREV = "${SRCREV_ogl-runtime}"
+
+SRCREV_FORMAT = "ogl-runtime_EASTL"
diff --git a/external/meta-qt5/recipes-qt/qt5/qt3d-runtime/0001-runtime-Include-missing-QCoreApplication-header.patch b/external/meta-qt5/recipes-qt/qt5/qt3d-runtime/0001-runtime-Include-missing-QCoreApplication-header.patch
deleted file mode 100644
index bc61e538..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qt3d-runtime/0001-runtime-Include-missing-QCoreApplication-header.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e6247a6823d372cc779934cf6c74d65bae9652b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 23 Aug 2018 03:23:20 +0000
-Subject: [PATCH] runtime: Include missing <QCoreApplication> header
-
-Fixes following errors seen on mips
-
-q3dsengine.cpp:1327:9: error: 'QCoreApplication' has not been declared
- QCoreApplication::sendEvent(&m_profileUiEventSource, e);
- ^~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/runtime/q3dsengine.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/runtime/q3dsengine.cpp b/src/runtime/q3dsengine.cpp
-index 1a438f0..d6d4eb5 100644
---- a/src/runtime/q3dsengine.cpp
-+++ b/src/runtime/q3dsengine.cpp
-@@ -36,6 +36,7 @@
- #include "q3dsinlineqmlsubpresentation_p.h"
- #include "q3dsviewersettings.h"
-
-+#include <QCoreApplication>
- #include <QLoggingCategory>
- #include <QKeyEvent>
- #include <QMouseEvent>
diff --git a/external/meta-qt5/recipes-qt/qt5/qt3d-runtime_git.bb b/external/meta-qt5/recipes-qt/qt5/qt3d-runtime_git.bb
deleted file mode 100644
index 78f2aec1..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qt3d-runtime_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-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 \
-"
-
-SRC_URI += "file://0001-runtime-Include-missing-QCoreApplication-header.patch"
-
-DEPENDS += "qtbase qtdeclarative qt3d"
-
-QT_MODULE_BRANCH = "2.0"
-QT_GIT_PROJECT = "qt3dstudio"
-PV = "2.0+git${SRCPV}"
-
-SRCREV = "ed19232a75b371727c76a9ad8a56f211a0b827ec"
diff --git a/external/meta-qt5/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch b/external/meta-qt5/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch
index 0189a9dc..cc4dd659 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch
@@ -1,4 +1,4 @@
-From 72d96957995393312ad29920d67fa758d0e53ca5 Mon Sep 17 00:00:00 2001
+From 01c62d4e4bf1034302834fef48a894c6b0ebe147 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Fri, 17 Aug 2018 13:23:58 +0300
Subject: [PATCH] Allow a tools-only build
@@ -6,20 +6,20 @@ 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(-)
+ tools/tools.pro | 4 ++--
+ 3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/qt3d.pro b/qt3d.pro
-index 2cc347a1c..81cdeefb0 100644
+index d5dbda4b9..6809470b6 100644
--- a/qt3d.pro
+++ b/qt3d.pro
@@ -1,4 +1,4 @@
--requires(qtConfig(opengl))
-+!tools-only:requires(qtConfig(opengl))
+-qtHaveModule(gui): \
++!tools-only:qtHaveModule(gui): \
+ requires(qtConfig(opengl):!wasm)
CONFIG += examples_need_tools
- load(qt_parts)
-@@ -14,3 +14,8 @@ load(qt_parts)
+@@ -15,3 +15,8 @@ load(qt_parts)
OTHER_FILES += \
sync.profile
@@ -40,13 +40,18 @@ index 8ba2d9a41..e973d93dd 100644
} else {
include(assimp.pri)
diff --git a/tools/tools.pro b/tools/tools.pro
-index c2f692034..24c49ad5a 100644
+index 3b457ed50..9f5376a0a 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
-@@ -1,5 +1,5 @@
+@@ -1,9 +1,9 @@
TEMPLATE = subdirs
+
+-!qtHaveModule(3dcore): \
++!tools-only:!qtHaveModule(3dcore): \
+ return()
+
QT_FOR_CONFIG += 3dcore-private
--qtConfig(assimp):qtConfig(commandlineparser):!cross_compile: {
+-qtConfig(assimp):qtConfig(commandlineparser): {
+tools-only|qtConfig(assimp):qtConfig(commandlineparser): {
SUBDIRS += qgltf
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qt3d_git.bb b/external/meta-qt5/recipes-qt/qt5/qt3d_git.bb
index d455fef3..bae2ecec 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt3d_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qt3d_git.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
DEPENDS_class-target += "qtdeclarative qt3d-native"
-# Patches from https://github.com/meta-qt5/qt3d/commits/b5.11
-# 5.11.meta-qt5.6
+# Patches from https://github.com/meta-qt5/qt3d/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += " \
file://0001-Allow-a-tools-only-build.patch \
"
@@ -36,6 +36,6 @@ do_configure_prepend() {
${S}/src/quick3d/imports/input/importsinput.pro
}
-SRCREV = "cd3e621ccf56bb8262f9c8cd967e05bf41934060"
+SRCREV = "ea698681d9669089cd7438d2690363cb5c690fd2"
BBCLASSEXTEND += "native nativesdk"
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0003-Link-with-libexecinfo-on-musl.patch b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch
index 9b225a57..da7561ce 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0003-Link-with-libexecinfo-on-musl.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch
@@ -1,4 +1,4 @@
-From 88afa7173c7d0c97e15d9ee9c58e8c0364799bb7 Mon Sep 17 00:00:00 2001
+From 33299724b8719d53b26c9055a76a61c358270110 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
@@ -9,12 +9,21 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
src/plugins/debugger/debugger.pro | 1 +
1 file changed, 1 insertion(+)
-diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
-index f5a34aa0d5..4a1359dd5c 100644
--- a/src/plugins/debugger/debugger.pro
+++ b/src/plugins/debugger/debugger.pro
-@@ -141,3 +141,4 @@ include(console/console.pri)
+@@ -139,3 +139,4 @@ include(console/console.pri)
include(analyzer/analyzer.pri)
include(shared/shared.pri)
+LIBS *= -lexecinfo
+--- a/src/plugins/qmldesigner/qmldesignerplugin.pro
++++ b/src/plugins/qmldesigner/qmldesignerplugin.pro
+@@ -3,7 +3,7 @@ CONFIG += exceptions
+
+ INCLUDEPATH += $$PWD
+
+-unix:!openbsd:!osx: LIBS += -lrt # posix shared memory
++unix:!openbsd:!osx: LIBS += -lexecinfo -lrt # posix shared memory
+
+ include(../../qtcreatorplugin.pri)
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-botan-Always-define-BOTAN_ARCH_SWITCH-when-cross-bui.patch b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-botan-Always-define-BOTAN_ARCH_SWITCH-when-cross-bui.patch
deleted file mode 100644
index eebda742..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-botan-Always-define-BOTAN_ARCH_SWITCH-when-cross-bui.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 766e5b37a42b440b66823262eb553f9981940115 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 27 Sep 2018 20:48:17 -0700
-Subject: [PATCH] botan: Always define BOTAN_ARCH_SWITCH when cross-building
-
-this helps in compiling botan for non-x86 architectures
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libs/botan/botan.pro | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro
-index 0c939b2a30..6e1a85fe84 100644
---- a/src/libs/botan/botan.pro
-+++ b/src/libs/botan/botan.pro
-@@ -18,6 +18,7 @@ else: clang: BOTAN_CC_TYPE = clang
- else: BOTAN_CC_TYPE = gcc
- contains(QT_ARCH, i386): BOTAN_ARCH_SWITCH = "--cpu=x86"
- else: contains(QT_ARCH, x86_64): BOTAN_ARCH_SWITCH = "--cpu=x86_64"
-+else: BOTAN_ARCH_SWITCH = --cpu=$$QT_ARCH
- BOTAN_MODULES = aes aes_ssse3 auto_rng bigint block cbc ctr des dh dsa ec_group ecdh ecdsa entropy \
- filters hmac mode_pad pubkey rsa sha1 sha1_sse2 sha1_x86 sha2_32 sha2_32_x86 \
- sha2_64 simd system_rng,emsa_pkcs1,pbes2,pbkdf2
--- 2.19.0
-
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-clangformat-AllowShortIfStatementsOnASingleLine-is-n.patch b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-clangformat-AllowShortIfStatementsOnASingleLine-is-n.patch
new file mode 100644
index 00000000..7338f02b
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0001-clangformat-AllowShortIfStatementsOnASingleLine-is-n.patch
@@ -0,0 +1,53 @@
+From 453c075b67b9d9254bf7331e1e3be287f240a9e0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Sep 2019 13:31:12 -0700
+Subject: [PATCH] clangformat: AllowShortIfStatementsOnASingleLine is not
+ boolean anymore
+
+https://reviews.llvm.org/D59087 has implemented multiple states for AllowShortIfStatementsOnASingleLine
+
+Fixes
+../../../../git/src/plugins/clangformat/clangformatutils.cpp:63:49: error: assigning to 'clang::format::FormatStyle::ShortIfStyle' from incompatible type 'bool'
+ style.AllowShortIfStatementsOnASingleLine = false;
+ ^~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/plugins/clangformat/clangformatutils.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/plugins/clangformat/clangformatutils.cpp
++++ b/src/plugins/clangformat/clangformatutils.cpp
+@@ -57,10 +57,18 @@ static clang::format::FormatStyle qtcSty
+ style.AlignOperands = true;
+ style.AlignTrailingComments = true;
+ style.AllowAllParametersOfDeclarationOnNextLine = true;
++#if Q_CC_CLANG < 1000
+ style.AllowShortBlocksOnASingleLine = false;
++#else
++ style.AllowShortBlocksOnASingleLine = FormatStyle::SBS_Never;
++#endif
+ style.AllowShortCaseLabelsOnASingleLine = false;
+ style.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_Inline;
++#if Q_CC_CLANG < 900
+ style.AllowShortIfStatementsOnASingleLine = false;
++#else
++ style.AllowShortIfStatementsOnASingleLine = FormatStyle::SIS_Never;
++#endif
+ style.AllowShortLoopsOnASingleLine = false;
+ style.AlwaysBreakAfterReturnType = FormatStyle::RTBS_None;
+ style.AlwaysBreakBeforeMultilineStrings = false;
+@@ -68,7 +76,11 @@ static clang::format::FormatStyle qtcSty
+ style.BinPackArguments = false;
+ style.BinPackParameters = false;
+ style.BraceWrapping.AfterClass = true;
++#if Q_CC_CLANG < 1000
+ style.BraceWrapping.AfterControlStatement = false;
++#else
++ style.BraceWrapping.AfterControlStatement = FormatStyle::BWACS_Never;
++#endif
+ style.BraceWrapping.AfterEnum = false;
+ style.BraceWrapping.AfterFunction = true;
+ style.BraceWrapping.AfterNamespace = false;
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0002-botan.pro-pass-QMAKE_AR.patch b/external/meta-qt5/recipes-qt/qt5/qt5-creator/0002-botan.pro-pass-QMAKE_AR.patch
deleted file mode 100644
index 26262299..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qt5-creator/0002-botan.pro-pass-QMAKE_AR.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From cd006f4a79b3c1435a8a8321b5af9191f104bbb3 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Wed, 26 Sep 2018 21:14:06 +0000
-Subject: [PATCH] botan.pro: pass QMAKE_AR
-
-* otherwise AR from environment sets it with cqs params, e.g.:
- x86_64-oe-linux-ar cqs
- from QMAKE_AR = ${OE_QMAKE_AR} cqs
-
- but then botan's Makefile will add "crs" after it causing:
- http://errors.yoctoproject.org/Errors/Details/194653/
-
- x86_64-oe-linux-ar cqs crs libbotan-2.a build/obj/lib/botan_all.o build/obj/lib/botan_all_ssse3.o
- x86_64-oe-linux-ar: libbotan-2.a: No such file or directory
- Makefile:79: recipe for target 'libbotan-2.a' failed
- make[4]: *** [libbotan-2.a] Error 1
-
-* add --ar-options parameter to botan configure and respect the
- value when set (before cc.ar_options and osinfo.ar_options)
- then use this to pass empty ar_options as we already include
- the options in ar_command
-
-Upstream-Status: Pending
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/libs/3rdparty/botan/configure.py | 13 ++++++++++++-
- src/libs/botan/botan.pro | 1 +
- 2 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/src/libs/3rdparty/botan/configure.py b/src/libs/3rdparty/botan/configure.py
-index b09f07bb5e..2b5b9c6417 100755
---- a/src/libs/3rdparty/botan/configure.py
-+++ b/src/libs/3rdparty/botan/configure.py
-@@ -321,6 +321,9 @@ def process_command_line(args): # pylint: disable=too-many-locals
- target_group.add_option('--ar-command', dest='ar_command', metavar='AR', default=None,
- help='set path to static archive creator')
-
-+ target_group.add_option('--ar-options', dest='ar_options', metavar='crs', default='crs',
-+ help='set options for static archive creator')
-+
- target_group.add_option('--msvc-runtime', metavar='RT', default=None,
- help='specify MSVC runtime (MT, MD, MTd, MDd)')
-
-@@ -1786,6 +1789,14 @@ def create_template_vars(source_paths, build_paths, options, modules, cc, arch,
-
- return osinfo.ar_command
-
-+ def ar_options():
-+ if options.ar_options:
-+ return options.ar_options
-+ if cc.ar_options:
-+ return cc.ar_options
-+
-+ return osinfo.ar_options
-+
- def choose_endian(arch_info, options):
- if options.with_endian != None:
- return options.with_endian
-@@ -1938,7 +1949,7 @@ def create_template_vars(source_paths, build_paths, options, modules, cc, arch,
- 'post_link_cmd': '',
-
- 'ar_command': ar_command(),
-- 'ar_options': cc.ar_options or osinfo.ar_options,
-+ 'ar_options': ar_options(),
- 'ar_output_to': cc.ar_output_to,
-
- 'link_to': ' '.join(
-diff --git a/src/libs/botan/botan.pro b/src/libs/botan/botan.pro
-index 0c939b2a30..e8082c4bbb 100644
---- a/src/libs/botan/botan.pro
-+++ b/src/libs/botan/botan.pro
-@@ -46,6 +46,7 @@ configure.variable_out = BOTAN_MAKEFILE
- configure.commands = cd $$BOTAN_BUILD_DIR_FOR_SHELL && \
- python $$CONFIGURE_FILE_PATH_FOR_SHELL \
- --cc=$$BOTAN_CC_TYPE --cc-bin=$$shell_quote($$QMAKE_CXX) \
-+ --ar-command=$$shell_quote($$QMAKE_AR) --ar-options=$$shell_quote(' ') \
- $$BOTAN_ARCH_SWITCH $$BOTAN_OS_SWITCH $$OTHER_FLAGS
- QMAKE_EXTRA_COMPILERS += configure
-
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb b/external/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb
index 6a8887ed..3c3420ca 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb
@@ -12,23 +12,22 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
"
-inherit qmake5
+inherit qmake5 mime-xdg
-DEPENDS = "qtbase qtscript qtwebkit qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg chrpath-replacement-native"
+DEPENDS += "qtbase qtscript qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg chrpath-replacement-native zlib"
DEPENDS_append_toolchain-clang = " clang llvm-common"
DEPENDS_append_libc-musl = " libexecinfo"
-SRCREV = "8768e39d3c8e74e583eca3897cc6de53a99c3dde"
-PV = "4.7.1+git${SRCPV}"
+SRCREV = "8181363fa90eb651591bf71e1a840e1c998429f4"
+PV = "4.9.2+git${SRCPV}"
-# Patches from https://github.com/meta-qt5/qtcreator/commits/b4.7.1
-# 4.7.1.meta-qt5.1
+# Patches from https://github.com/meta-qt5/qtcreator/commits/b4.9.2
+# 4.9.2.meta-qt5.1
SRC_URI = " \
- git://code.qt.io/qt-creator/qt-creator.git;branch=4.7 \
- file://0002-botan.pro-pass-QMAKE_AR.patch \
- file://0001-botan-Always-define-BOTAN_ARCH_SWITCH-when-cross-bui.patch \
+ git://code.qt.io/qt-creator/qt-creator.git;branch=4.9 \
+ file://0001-clangformat-AllowShortIfStatementsOnASingleLine-is-n.patch \
"
-SRC_URI_append_libc-musl = " file://0003-Link-with-libexecinfo-on-musl.patch"
+SRC_URI_append_libc-musl = " file://0001-Link-with-libexecinfo-on-musl.patch"
S = "${WORKDIR}/git"
@@ -36,6 +35,9 @@ EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME}"
EXTRANATIVEPATH += "chrpath-native"
+COMPATIBLE_HOST_toolchain-clang_riscv32 = "null"
+COMPATIBLE_HOST_toolchain-clang_riscv64 = "null"
+
do_configure_append() {
# Find native tools
sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile
@@ -67,7 +69,7 @@ FILES_${PN}-dev += " \
${libdir}${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \
"
-RDEPENDS_${PN} += "perl python"
+RDEPENDS_${PN} += "perl python3"
RCONFLICTS_${PN} = "qt-creator"
# To give best user experience out of the box..
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-git.inc b/external/meta-qt5/recipes-qt/qt5/qt5-git.inc
index 79008d19..f477afd6 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5-git.inc
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-git.inc
@@ -1,8 +1,8 @@
# Copyright (C) 2012-2016 O.S. Systems Software LTDA.
-# Copyright (C) 2013-2018 Martin Jansa <martin.jansa@gmail.com>
+# Copyright (C) 2013-2020 Martin Jansa <martin.jansa@gmail.com>
QT_MODULE ?= "${BPN}"
-QT_MODULE_BRANCH ?= "5.11"
+QT_MODULE_BRANCH ?= "5.14"
QT_MODULE_BRANCH_PARAM ?= "branch=${QT_MODULE_BRANCH}"
# each module needs to define valid SRCREV
@@ -14,4 +14,4 @@ CVE_PRODUCT = "qt"
S = "${WORKDIR}/git"
-PV = "5.11.3+git${SRCPV}"
+PV = "5.14.2+git${SRCPV}"
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-include-errno.h-for-errno-definition.patch b/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-include-errno.h-for-errno-definition.patch
new file mode 100644
index 00000000..ff0eb56f
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-include-errno.h-for-errno-definition.patch
@@ -0,0 +1,38 @@
+From 2486c9ecc1db12132ee8c77ed69b1d301e75786b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 1 Feb 2019 23:35:24 -0800
+Subject: [PATCH] include errno.h for errno definition
+
+This fixes errors with clang/libc++
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ vboxtouch/setshape.cpp | 1 +
+ vboxtouch/vboxtouch.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/vboxtouch/setshape.cpp b/vboxtouch/setshape.cpp
+index 092f888..4dd25a1 100644
+--- a/vboxtouch/setshape.cpp
++++ b/vboxtouch/setshape.cpp
+@@ -24,6 +24,7 @@
+ #include <QByteArray>
+ #include <QDebug>
+
++#include <errno.h>
+ #include <stdint.h>
+ #include <string.h>
+
+diff --git a/vboxtouch/vboxtouch.cpp b/vboxtouch/vboxtouch.cpp
+index 345fdcb..ffe1d50 100644
+--- a/vboxtouch/vboxtouch.cpp
++++ b/vboxtouch/vboxtouch.cpp
+@@ -32,6 +32,7 @@
+
+ #include <qpa/qwindowsysteminterface.h>
+
++#include <errno.h>
+ #include <fcntl.h>
+ #include <string.h>
+ #include <unistd.h>
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb b/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb
index 1f29dcfe..4e83c267 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb
@@ -16,7 +16,10 @@ 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"
+SRC_URI = "git://github.com/nemomobile/qt5-plugin-generic-vboxtouch.git \
+ file://0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch;patchdir=.. \
+ file://0001-include-errno.h-for-errno-definition.patch;patchdir=.. \
+ "
SRCREV = "3f2bdb5a1d346f02d5ab185522271ba2288a42bb"
S = "${WORKDIR}/git/vboxtouch"
@@ -25,4 +28,3 @@ inherit qmake5
FILES_${PN} += "${OE_QMAKE_PATH_PLUGINS}/generic/libvboxtouchplugin.so"
FILES_${PN}-dev += "${OE_QMAKE_PATH_LIBS}/cmake/*"
-SRC_URI += "file://0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch;patchdir=.."
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5-ptest.inc b/external/meta-qt5/recipes-qt/qt5/qt5-ptest.inc
index 56efe106..f41e971a 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5-ptest.inc
+++ b/external/meta-qt5/recipes-qt/qt5/qt5-ptest.inc
@@ -16,7 +16,7 @@ fakeroot do_install_ptest() {
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}
+ install -m 0744 ${var} ${t}
fi
done
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qt5.inc b/external/meta-qt5/recipes-qt/qt5/qt5.inc
index e0cd8949..6f9a83c4 100644
--- a/external/meta-qt5/recipes-qt/qt5/qt5.inc
+++ b/external/meta-qt5/recipes-qt/qt5/qt5.inc
@@ -8,8 +8,8 @@ PACKAGECONFIG_OPENSSL ?= "openssl"
PACKAGECONFIG[examples] = ""
PACKAGECONFIG[tests] = ""
PACKAGECONFIG[qtquickcompiler] = ",,qtdeclarative-native"
-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)}"
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'QT_BUILD_PARTS+=examples', 'QT_BUILD_PARTS-=examples', d)}"
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tests', 'QT_BUILD_PARTS+=tests', 'QT_BUILD_PARTS-=tests', d)}"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtquickcompiler', 'CONFIG+=qtquickcompiler', '', d)}"
# we don't want conflicts with qt4
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb b/external/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb
index cc537b5b..1bcbd1cb 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb
@@ -10,15 +10,15 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
- file://LICENSE.QT-LICENSE-AGREEMENT-4.0;md5=948f8877345cd66106f11031977a4625 \
+ file://LICENSE.QT-LICENSE-AGREEMENT;md5=c8b6dd132d52c6e5a545df07a4e3e283 \
"
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.11-shared
-# 5.11.meta-qt5-shared.14
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-shared
+# 5.14.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 \
@@ -32,26 +32,24 @@ SRC_URI += "\
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 \
- file://0013-Upgrade-double-conversion-to-v3.0.0.patch \
- file://0014-double-conversion-support-AARCH64EB-and-arm-BE.patch \
- file://0015-Disable-ltcg-for-host_build.patch \
- file://0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
- file://0017-corelib-Include-sys-types.h-for-uint32_t.patch \
- file://0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
- file://0019-Fix-compile-issue-with-gcc-9.patch \
+ file://0013-Disable-ltcg-for-host_build.patch \
+ file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
+ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \
+ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
+ file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \
"
# common for qtbase-native and nativesdk-qtbase
-# Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-native
-# 5.11.meta-qt5-native.14
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-native
+# 5.14.meta-qt5-native.2
SRC_URI += " \
- file://0020-Always-build-uic-and-qvkgen.patch \
- file://0021-Avoid-renameeat2-for-native-sdk-builds.patch \
+ file://0019-Always-build-uic-and-qvkgen.patch \
+ file://0020-Avoid-renameeat2-for-native-sdk-builds.patch \
"
# only for qtbase-native
SRC_URI += " \
- file://0022-Bootstrap-without-linkat-feature.patch \
+ file://0021-Bootstrap-without-linkat-feature.patch \
"
CLEANBROKEN = "1"
@@ -59,22 +57,25 @@ CLEANBROKEN = "1"
XPLATFORM_toolchain-clang = "linux-oe-clang"
XPLATFORM ?= "linux-oe-g++"
-PACKAGECONFIG_CONFARGS = " \
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[gui] = "-gui -qpa offscreen,-no-gui,"
+PACKAGECONFIG[imageformats] = "-qt-libpng -qt-libjpeg -gif -ico, -no-libpng -no-libjpeg -no-ico -no-gif,"
+PACKAGECONFIG[openssl] = "-openssl,-no-openssl,openssl"
+
+QT_CONFIG_FLAGS = " \
-sysroot ${STAGING_DIR_NATIVE} \
+ -L${STAGING_LIBDIR_NATIVE} \
-no-gcc-sysroot \
-system-zlib \
-qt-pcre \
- -no-libjpeg \
- -no-libpng \
- -no-gif \
+ -qt-doubleconversion \
-no-accessibility \
-no-cups \
- -no-gui \
-no-sql-mysql \
-no-sql-sqlite \
-no-sql-psql \
-no-opengl \
- -no-openssl \
+ -no-vulkan \
-no-xcb \
-no-icu \
-verbose \
@@ -99,6 +100,7 @@ PACKAGECONFIG_CONFARGS = " \
-no-rpath \
-no-feature-linkat \
-platform ${XPLATFORM} \
+ ${PACKAGECONFIG_CONFARGS} \
"
# for qtbase configuration we need default settings
@@ -114,7 +116,7 @@ do_configure_prepend() {
# 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}"
+ MAKEFLAGS="${PARALLEL_MAKE}" ${S}/configure -${QT_EDITION} -confirm-license ${QT_CONFIG_FLAGS} || die "Configuring qt failed. QT_CONFIG_FLAGS was ${QT_CONFIG_FLAGS}"
}
do_install() {
@@ -135,11 +137,9 @@ do_install() {
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 = "08de243eaa007597c2bfbc97d3d14e2f821ac4be"
+SRCREV = "3a6d8df5219653b043bd642668cee193f563ec84"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
index 7195da8f..95e236ae 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
@@ -1,4 +1,4 @@
-From ff46b3e91a384888b299a5444adc0e9abc110d3b Mon Sep 17 00:00:00 2001
+From 0d13aba5a2ab1794bfea5a3bbf2096da17f0cae1 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
@@ -24,17 +24,17 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
mkspecs/features/configure.prf | 4 +--
mkspecs/features/qt.prf | 6 ++---
mkspecs/features/qt_functions.prf | 2 +-
- mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++++++++++++++++
+ mkspecs/linux-oe-g++/qmake.conf | 39 ++++++++++++++++++++++++++++
mkspecs/linux-oe-g++/qplatformdefs.h | 1 +
- 6 files changed, 48 insertions(+), 7 deletions(-)
+ 6 files changed, 47 insertions(+), 7 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 2830a1b189..6445dc2d5a 100755
+index 6657870e4b..2f5d9a21ef 100755
--- a/configure
+++ b/configure
-@@ -712,7 +712,7 @@ fi
+@@ -711,7 +711,7 @@ fi
# is where the resulting variable is written to
setBootstrapVariable()
{
@@ -65,19 +65,19 @@ index 934a18a924..0f5b1b6333 100644
msg = "test $$1 succeeded"
write_file($$QMAKE_CONFIG_LOG, msg, append)
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
-index b57afcf72d..afa1c39b3e 100644
+index 3a71376029..dd6020f1fe 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
-@@ -147,7 +147,7 @@ import_plugins:qtConfig(static) {
- !isEmpty(plug_type) {
+@@ -148,7 +148,7 @@ import_plugins:qtConfig(static) {
+ plug_name = $$QMAKE_PREFIX_STATICLIB$${plug}$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB
plug_path = $$eval(QT_PLUGIN.$${plug}.PATH)
isEmpty(plug_path): \
- plug_path = $$[QT_INSTALL_PLUGINS/get]
+ plug_path = $$[QT_INSTALL_PLUGINS]
- LIBS += -L$$plug_path/$$plug_type
- }
- LIBS += -l$${plug}$$qtPlatformTargetSuffix()
-@@ -298,8 +298,8 @@ for(ever) {
+ LIBS += $$plug_path/$$plug_type/$$plug_name
+ } else {
+ LIBS += -l$${plug}$$qtPlatformTargetSuffix()
+@@ -271,8 +271,8 @@ for(ever) {
# static builds: link qml import plugins into the target.
contains(all_qt_module_deps, qml): \
qtConfig(static):import_plugins:!host_build:!no_import_scan {
@@ -89,10 +89,10 @@ index b57afcf72d..afa1c39b3e 100644
# run qmlimportscanner
qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system)
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
-index 1903e509c8..c093dd4592 100644
+index 7777e615bd..8d792fa70a 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
-@@ -69,7 +69,7 @@ defineTest(qtHaveModule) {
+@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
defineTest(qtPrepareTool) {
cmd = $$eval(QT_TOOL.$${2}.binary)
isEmpty(cmd) {
@@ -103,10 +103,10 @@ index 1903e509c8..c093dd4592 100644
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 0000000000..f34a66599a
+index 0000000000..c202c47fa1
--- /dev/null
+++ b/mkspecs/linux-oe-g++/qmake.conf
-@@ -0,0 +1,40 @@
+@@ -0,0 +1,39 @@
+#
+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
+#
@@ -131,7 +131,6 @@ index 0000000000..f34a66599a
+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)
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
index 9766d50b..be51019d 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
@@ -1,4 +1,4 @@
-From 2592ce6190596219428eb5e500c3a5f5a14dad01 Mon Sep 17 00:00:00 2001
+From 8409ffc14e5176595c7d591ebd07f5b49af8d245 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
@@ -19,7 +19,7 @@ Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
-index e0652fdcf9..215f4357f8 100644
+index 9b672327ef..f0820b4f4e 100644
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
@@ -27,7 +27,7 @@ index e0652fdcf9..215f4357f8 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake${OE_QMAKE_BIN_SUFFIX}\")
!!ENDIF
_qt5_Core_check_file_exists(${imported_location})
@@ -36,7 +36,7 @@ index e0652fdcf9..215f4357f8 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc${OE_QMAKE_BIN_SUFFIX}\")
!!ENDIF
_qt5_Core_check_file_exists(${imported_location})
@@ -45,12 +45,12 @@ index e0652fdcf9..215f4357f8 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc${OE_QMAKE_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 1d947159e2..301af8f1b2 100644
+index 1d947159e2..582c52169e 100644
--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
@@ -58,7 +58,7 @@ index 1d947159e2..301af8f1b2 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml${OE_QMAKE_BIN_SUFFIX}\")
!!ENDIF
_qt5_DBus_check_file_exists(${imported_location})
@@ -67,12 +67,12 @@ index 1d947159e2..301af8f1b2 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp${OE_QMAKE_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 99d87e2e46..5621dc0fae 100644
+index 99d87e2e46..8fe9b3c0b5 100644
--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
@@ -80,7 +80,7 @@ index 99d87e2e46..5621dc0fae 100644
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\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic${OE_QMAKE_BIN_SUFFIX}\")
!!ENDIF
_qt5_Widgets_check_file_exists(${imported_location})
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
index 614bdec3..6d8f5f96 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
@@ -1,4 +1,4 @@
-From 0ce64385c882e1f7788620ba37781d89625437cb Mon Sep 17 00:00:00 2001
+From 73c6762cc7d4c3449fc152f706c8d0efa2f7e65e 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
@@ -20,10 +20,10 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
-index e727f00c8e..819dbb8aa3 100644
+index f0f77fe68e..8ef04cb64f 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
-@@ -172,7 +172,10 @@ void QLibrarySettings::load()
+@@ -183,7 +183,10 @@ void QLibrarySettings::load()
QSettings *QLibraryInfoPrivate::findConfiguration()
{
#ifdef QT_BUILD_QMAKE
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch
index d97bc569..a40c0563 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch
@@ -1,4 +1,4 @@
-From 9858c07dd25d523f8e02b348c21e57c95077e108 Mon Sep 17 00:00:00 2001
+From fad25d26b6ec478d0b22bc4fbfec65a6665608c0 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
@@ -15,12 +15,12 @@ Signed-off-by: Denys Dmytriyenko <denys@ti.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.pri b/configure.pri
-index 6e7f6b76a4..35d15685ee 100644
+index 81c84b28ef..bf40b68835 100644
--- a/configure.pri
+++ b/configure.pri
-@@ -821,10 +821,10 @@ defineTest(qtConfOutput_preparePaths) {
- "static const char qt_configure_installation [12+11] = \"qt_instdate=2012-12-20\";" \
- "" \
+@@ -872,10 +872,10 @@ defineTest(qtConfOutput_preparePaths) {
+
+ $${currentConfig}.output.qconfigSource = \
"/* 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\";" \
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch
index 6e5aa3e1..b8a0b716 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch
@@ -1,4 +1,4 @@
-From 374bf57efe5f936ab61811f7c433c870cdae77ab Mon Sep 17 00:00:00 2001
+From 24c469b3c9599aa106c44d1df48fb04db5b8c904 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
@@ -10,10 +10,10 @@ Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
-index 4039bba431..153edbfa30 100644
+index 6537d98c5d..06d23e3847 100644
--- a/mkspecs/features/qt_configure.prf
+++ b/mkspecs/features/qt_configure.prf
-@@ -1266,7 +1266,8 @@ defineReplace(qtConfEvaluateSingleExpression) {
+@@ -1544,7 +1544,8 @@ defineReplace(qtConfEvaluateSingleExpression) {
error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.")
return($$result)
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch
index b8689813..95df5efd 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch
@@ -1,4 +1,4 @@
-From 29270c9427ad9e024ecffb94f5431c08f755925d Mon Sep 17 00:00:00 2001
+From 8143b5913e50d26ef39fbbed5f1e28ff74a57d20 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
@@ -30,7 +30,7 @@ Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
2 files changed, 10 insertions(+)
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
-index 27f4c277d6..01f68a569d 100644
+index 50364765fb..e101a2e841 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch
index 2b0c8c9d..d683d4d9 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch
@@ -1,4 +1,4 @@
-From c374524c31fbf11f8f2cd8d1036633f5c7507619 Mon Sep 17 00:00:00 2001
+From 41d43606a50fbeae73d585ed727ec13e36f785c0 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
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch
index b5cf78ec..07110739 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch
@@ -1,4 +1,4 @@
-From 40b0cf799c4af4ae92eebab64e91015d67e428c1 Mon Sep 17 00:00:00 2001
+From 4d8c0a0524ceea0590f15d87a4aa604a488bedc5 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
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 e312199980..5789174ad5 100644
+index 12c29a6e13..7d31799da6 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
-@@ -34,7 +34,7 @@
+@@ -35,7 +35,7 @@
#include "tst_qvariant_common.h"
#ifdef Q_OS_LINUX
@@ -26,7 +26,7 @@ index e312199980..5789174ad5 100644
#endif
#include <algorithm>
-@@ -205,7 +205,7 @@ protected:
+@@ -368,7 +368,7 @@ protected:
const char *nm = name.constData();
int tp = qRegisterMetaType<Bar>(nm);
#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
@@ -36,7 +36,7 @@ index e312199980..5789174ad5 100644
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 263a475435..11994b3c4f 100644
+index 0546c6ba7d..f602b035d6 100644
--- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
@@ -78,6 +78,7 @@
@@ -47,7 +47,7 @@ index 263a475435..11994b3c4f 100644
#endif
#include "private/qhostinfo_p.h"
-@@ -2132,8 +2133,8 @@ public slots:
+@@ -2178,8 +2179,8 @@ public slots:
#if defined(Q_OS_MAC)
pthread_yield_np();
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch
index 144c9182..b30a823f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch
@@ -1,22 +1,22 @@
-From d8c3ea974639c70d9a158d4e01c3f782133a46f8 Mon Sep 17 00:00:00 2001
+From ba7dda9ef0e33103e26fee2e41f25d8c0e3bfb78 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 | 42 ++++++++++++++++++++++++++
+ mkspecs/linux-oe-clang/qmake.conf | 39 ++++++++++++++++++++++++++
mkspecs/linux-oe-clang/qplatformdefs.h | 1 +
- 2 files changed, 43 insertions(+)
+ 2 files changed, 40 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 0000000000..443d4b0dff
+index 0000000000..db02ab5215
--- /dev/null
+++ b/mkspecs/linux-oe-clang/qmake.conf
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,39 @@
+#
+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
+#
@@ -41,12 +41,9 @@ index 0000000000..443d4b0dff
+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)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch
index 5dce2003..e58b1ebc 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch
@@ -1,4 +1,4 @@
-From 0ada7d8bec024960b2e10c9ac36f312bb0f5338c Mon Sep 17 00:00:00 2001
+From 03e57f526db46b93b2bcbd01974446b9819e73e7 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
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch
index 935c746a..8a705415 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch
@@ -1,4 +1,4 @@
-From 0c80cc78c3ca53134a1c66824f749676fa966246 Mon Sep 17 00:00:00 2001
+From f3befb762f2e69fa1f8a444ca9b392b4cb48ba5f 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
@@ -7,13 +7,13 @@ musl does not have feenableexcept function
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 2 +-
+ tests/auto/corelib/text/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 b7cb8a1bdc..f6e6545948 100644
---- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
-+++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
+diff --git a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
+index 8f434acb29..53dc0d9121 100644
+--- a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
++++ b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
@@ -46,7 +46,7 @@
#include <private/qlocale_tools_p.h>
#include <qnumeric.h>
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch
index e894f34c..5186c2d6 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch
@@ -1,4 +1,4 @@
-From 2856cb239b64b7d0330bb016e080ed294f9bad3e Mon Sep 17 00:00:00 2001
+From 382e44787d366428892161881fdc3c2481cefc04 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
@@ -22,20 +22,20 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
-index 0fb84bc1b3..68b49b5303 100644
+index aead581478..8e06a069b4 100644
--- a/mkspecs/common/clang.conf
+++ b/mkspecs/common/clang.conf
-@@ -16,7 +16,7 @@ QMAKE_LINK_SHLIB = $$QMAKE_CXX
- CONFIG += clang_pch_style
- QMAKE_PCH_OUTPUT_EXT = .pch
+@@ -18,7 +18,7 @@ QMAKE_PCH_OUTPUT_EXT = .pch
+
+ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
-QMAKE_CFLAGS_ISYSTEM = -isystem
+QMAKE_CFLAGS_ISYSTEM =
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
- QMAKE_CFLAGS_LTCG = -flto
+ QMAKE_CFLAGS_LTCG = -flto=thin
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
-index 234f71d495..c7d81a902e 100644
+index 4d82321cba..0b03ec99a6 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -46,7 +46,7 @@ QMAKE_CFLAGS_DEBUG += -g
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0015-Disable-ltcg-for-host_build.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0013-Disable-ltcg-for-host_build.patch
index 7248b878..83f4e29c 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0015-Disable-ltcg-for-host_build.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0013-Disable-ltcg-for-host_build.patch
@@ -1,4 +1,4 @@
-From 8b71f94e010aa9ee0c1e577738e0a8af8365b39e Mon Sep 17 00:00:00 2001
+From 8a2c2006676b0cb1a579efabb0ab24a277024b54 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Tue, 23 Oct 2018 09:54:57 +0300
Subject: [PATCH] Disable ltcg for host_build
@@ -15,12 +15,14 @@ Upstream-Status: Inappropriate [embedded specific]
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf
-index ccf0226272..482e5b573d 100644
+index d81f340edd..dc1d196710 100644
--- a/mkspecs/features/ltcg.prf
+++ b/mkspecs/features/ltcg.prf
-@@ -1,4 +1,4 @@
--CONFIG(release, debug|release) {
-+CONFIG(release, debug|release):!host_build {
- # We need fat object files when creating static libraries on some platforms
- # so the linker will know to load a particular object from the library
- # in the first place. On others, we have special ar and nm to create the symbol
+@@ -1,6 +1,6 @@
+ static:no-static-ltcg {
+ # Static library but no-static-ltcg enabled: skip LTCG
+-} else: CONFIG(release, debug|release) {
++} else: CONFIG(release, debug|release):!host_build {
+ separate_debug_info {
+ # Evaluate single-$ variable references that have no valid value at mkspec loading time
+ QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO ~= s/\\$\\{/\$\$\{/
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0013-Upgrade-double-conversion-to-v3.0.0.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0013-Upgrade-double-conversion-to-v3.0.0.patch
deleted file mode 100644
index 138d1f7f..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0013-Upgrade-double-conversion-to-v3.0.0.patch
+++ /dev/null
@@ -1,344 +0,0 @@
-From f20acf6fa22235fdaa551b0410d65627e028f4b4 Mon Sep 17 00:00:00 2001
-From: Ulf Hermann <ulf.hermann@qt.io>
-Date: Fri, 27 Apr 2018 10:38:18 +0200
-Subject: [PATCH] Upgrade double-conversion to v3.0.0
-
-This fixes their issue #41, a potential undefined behavior.
-
-We preserve the locally added "__ghs" clause as well as the _M_ARM_FP
-clause necessary for winrt in utils.h.
-
-[ChangeLog][Third-Party Code] double-conversion got updated to upstream
-version 3.0.0.
-
-Task-number: QTBUG-66561
-Change-Id: Id79125bdeeaebb61dca2e2885d3370accce9030c
-Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-Upstream-Status: Backport
----
- src/3rdparty/double-conversion/bignum.cc | 2 +-
- src/3rdparty/double-conversion/bignum.h | 1 -
- .../double-conversion/cached-powers.cc | 5 +--
- src/3rdparty/double-conversion/diy-fp.h | 22 +++++------
- .../double-conversion/double-conversion.cc | 21 ++++++----
- src/3rdparty/double-conversion/fixed-dtoa.cc | 5 ++-
- src/3rdparty/double-conversion/ieee.h | 2 +-
- .../include/double-conversion/utils.h | 38 +++++++++++++------
- .../double-conversion/qt_attribution.json | 4 +-
- src/3rdparty/double-conversion/strtod.cc | 2 +-
- 10 files changed, 60 insertions(+), 42 deletions(-)
-
-diff --git a/src/3rdparty/double-conversion/bignum.cc b/src/3rdparty/double-conversion/bignum.cc
-index 2743d67e8d..8892de8f2a 100644
---- a/src/3rdparty/double-conversion/bignum.cc
-+++ b/src/3rdparty/double-conversion/bignum.cc
-@@ -104,7 +104,7 @@ void Bignum::AssignDecimalString(Vector<const char> value) {
- const int kMaxUint64DecimalDigits = 19;
- Zero();
- int length = value.length();
-- int pos = 0;
-+ unsigned int pos = 0;
- // Let's just say that each digit needs 4 bits.
- while (length >= kMaxUint64DecimalDigits) {
- uint64_t digits = ReadUInt64(value, pos, kMaxUint64DecimalDigits);
-diff --git a/src/3rdparty/double-conversion/bignum.h b/src/3rdparty/double-conversion/bignum.h
-index 5ec3544f57..c385f2237b 100644
---- a/src/3rdparty/double-conversion/bignum.h
-+++ b/src/3rdparty/double-conversion/bignum.h
-@@ -49,7 +49,6 @@ class Bignum {
-
- void AssignPowerUInt16(uint16_t base, int exponent);
-
-- void AddUInt16(uint16_t operand);
- void AddUInt64(uint64_t operand);
- void AddBignum(const Bignum& other);
- // Precondition: this >= other.
-diff --git a/src/3rdparty/double-conversion/cached-powers.cc b/src/3rdparty/double-conversion/cached-powers.cc
-index 9536f26927..2b43f06412 100644
---- a/src/3rdparty/double-conversion/cached-powers.cc
-+++ b/src/3rdparty/double-conversion/cached-powers.cc
-@@ -131,7 +131,6 @@ static const CachedPower kCachedPowers[] = {
- {UINT64_2PART_C(0xaf87023b, 9bf0ee6b), 1066, 340},
- };
-
--static const int kCachedPowersLength = ARRAY_SIZE(kCachedPowers);
- static const int kCachedPowersOffset = 348; // -1 * the first decimal_exponent.
- static const double kD_1_LOG2_10 = 0.30102999566398114; // 1 / lg(10)
- // Difference between the decimal exponents in the table above.
-@@ -144,14 +143,12 @@ void PowersOfTenCache::GetCachedPowerForBinaryExponentRange(
- int max_exponent,
- DiyFp* power,
- int* decimal_exponent) {
-- (void)max_exponent; // Silence unused parameter warning in release builds
-- (void)kCachedPowersLength; // Silence unused parameter warning in release builds
- int kQ = DiyFp::kSignificandSize;
- double k = ceil((min_exponent + kQ - 1) * kD_1_LOG2_10);
- int foo = kCachedPowersOffset;
- int index =
- (foo + static_cast<int>(k) - 1) / kDecimalExponentDistance + 1;
-- ASSERT(0 <= index && index < kCachedPowersLength);
-+ ASSERT(0 <= index && index < static_cast<int>(ARRAY_SIZE(kCachedPowers)));
- CachedPower cached_power = kCachedPowers[index];
- ASSERT(min_exponent <= cached_power.binary_exponent);
- (void) max_exponent; // Mark variable as used.
-diff --git a/src/3rdparty/double-conversion/diy-fp.h b/src/3rdparty/double-conversion/diy-fp.h
-index 9dcf8fbdba..2edf34674e 100644
---- a/src/3rdparty/double-conversion/diy-fp.h
-+++ b/src/3rdparty/double-conversion/diy-fp.h
-@@ -42,7 +42,7 @@ class DiyFp {
- static const int kSignificandSize = 64;
-
- DiyFp() : f_(0), e_(0) {}
-- DiyFp(uint64_t f, int e) : f_(f), e_(e) {}
-+ DiyFp(uint64_t significand, int exponent) : f_(significand), e_(exponent) {}
-
- // this = this - other.
- // The exponents of both numbers must be the same and the significand of this
-@@ -76,22 +76,22 @@ class DiyFp {
-
- void Normalize() {
- ASSERT(f_ != 0);
-- uint64_t f = f_;
-- int e = e_;
-+ uint64_t significand = f_;
-+ int exponent = e_;
-
- // This method is mainly called for normalizing boundaries. In general
- // boundaries need to be shifted by 10 bits. We thus optimize for this case.
- const uint64_t k10MSBits = UINT64_2PART_C(0xFFC00000, 00000000);
-- while ((f & k10MSBits) == 0) {
-- f <<= 10;
-- e -= 10;
-+ while ((significand & k10MSBits) == 0) {
-+ significand <<= 10;
-+ exponent -= 10;
- }
-- while ((f & kUint64MSB) == 0) {
-- f <<= 1;
-- e--;
-+ while ((significand & kUint64MSB) == 0) {
-+ significand <<= 1;
-+ exponent--;
- }
-- f_ = f;
-- e_ = e;
-+ f_ = significand;
-+ e_ = exponent;
- }
-
- static DiyFp Normalize(const DiyFp& a) {
-diff --git a/src/3rdparty/double-conversion/double-conversion.cc b/src/3rdparty/double-conversion/double-conversion.cc
-index 909985be82..6f21a0124c 100644
---- a/src/3rdparty/double-conversion/double-conversion.cc
-+++ b/src/3rdparty/double-conversion/double-conversion.cc
-@@ -118,7 +118,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- StringBuilder* result_builder) const {
- // Create a representation that is padded with zeros if needed.
- if (decimal_point <= 0) {
-- // "0.00000decimal_rep".
-+ // "0.00000decimal_rep" or "0.000decimal_rep00".
- result_builder->AddCharacter('0');
- if (digits_after_point > 0) {
- result_builder->AddCharacter('.');
-@@ -129,7 +129,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- result_builder->AddPadding('0', remaining_digits);
- }
- } else if (decimal_point >= length) {
-- // "decimal_rep0000.00000" or "decimal_rep.0000"
-+ // "decimal_rep0000.00000" or "decimal_rep.0000".
- result_builder->AddSubstring(decimal_digits, length);
- result_builder->AddPadding('0', decimal_point - length);
- if (digits_after_point > 0) {
-@@ -137,7 +137,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- result_builder->AddPadding('0', digits_after_point);
- }
- } else {
-- // "decima.l_rep000"
-+ // "decima.l_rep000".
- ASSERT(digits_after_point > 0);
- result_builder->AddSubstring(decimal_digits, decimal_point);
- result_builder->AddCharacter('.');
-@@ -494,10 +494,17 @@ static double SignedZero(bool sign) {
- // because it constant-propagated the radix and concluded that the last
- // condition was always true. By moving it into a separate function the
- // compiler wouldn't warn anymore.
-+#if _MSC_VER
-+#pragma optimize("",off)
- static bool IsDecimalDigitForRadix(int c, int radix) {
- return '0' <= c && c <= '9' && (c - '0') < radix;
- }
--
-+#pragma optimize("",on)
-+#else
-+static bool inline IsDecimalDigitForRadix(int c, int radix) {
-+ return '0' <= c && c <= '9' && (c - '0') < radix;
-+}
-+#endif
- // Returns true if 'c' is a character digit that is valid for the given radix.
- // The 'a_character' should be 'a' or 'A'.
- //
-@@ -852,9 +859,9 @@ double StringToDoubleConverter::StringToIeee(
- return junk_string_value_;
- }
- }
-- char sign = '+';
-+ char exponen_sign = '+';
- if (*current == '+' || *current == '-') {
-- sign = static_cast<char>(*current);
-+ exponen_sign = static_cast<char>(*current);
- ++current;
- if (current == end) {
- if (allow_trailing_junk) {
-@@ -888,7 +895,7 @@ double StringToDoubleConverter::StringToIeee(
- ++current;
- } while (current != end && *current >= '0' && *current <= '9');
-
-- exponent += (sign == '-' ? -num : num);
-+ exponent += (exponen_sign == '-' ? -num : num);
- }
-
- if (!(allow_trailing_spaces || allow_trailing_junk) && (current != end)) {
-diff --git a/src/3rdparty/double-conversion/fixed-dtoa.cc b/src/3rdparty/double-conversion/fixed-dtoa.cc
-index aef65fdc21..0f55a0b6eb 100644
---- a/src/3rdparty/double-conversion/fixed-dtoa.cc
-+++ b/src/3rdparty/double-conversion/fixed-dtoa.cc
-@@ -98,7 +98,7 @@ class UInt128 {
- return high_bits_ == 0 && low_bits_ == 0;
- }
-
-- int BitAt(int position) {
-+ int BitAt(int position) const {
- if (position >= 64) {
- return static_cast<int>(high_bits_ >> (position - 64)) & 1;
- } else {
-@@ -259,7 +259,8 @@ static void FillFractionals(uint64_t fractionals, int exponent,
- fractionals -= static_cast<uint64_t>(digit) << point;
- }
- // If the first bit after the point is set we have to round up.
-- if (((fractionals >> (point - 1)) & 1) == 1) {
-+ ASSERT(fractionals == 0 || point - 1 >= 0);
-+ if ((fractionals != 0) && ((fractionals >> (point - 1)) & 1) == 1) {
- RoundUp(buffer, length, decimal_point);
- }
- } else { // We need 128 bits.
-diff --git a/src/3rdparty/double-conversion/ieee.h b/src/3rdparty/double-conversion/ieee.h
-index 661141d1a8..b14cf4f717 100644
---- a/src/3rdparty/double-conversion/ieee.h
-+++ b/src/3rdparty/double-conversion/ieee.h
-@@ -99,7 +99,7 @@ class Double {
- }
-
- double PreviousDouble() const {
-- if (d64_ == (kInfinity | kSignMask)) return -Double::Infinity();
-+ if (d64_ == (kInfinity | kSignMask)) return -Infinity();
- if (Sign() < 0) {
- return Double(d64_ + 1).value();
- } else {
-diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
-index 20bfd36c84..ca7646d817 100644
---- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
-+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
-@@ -33,19 +33,29 @@
-
- #include <assert.h>
- #ifndef ASSERT
--# if defined(WINCE) || defined(_WIN32_WCE)
--# define ASSERT(condition)
--# else
--# define ASSERT(condition) \
-+#define ASSERT(condition) \
- assert(condition);
--# endif
- #endif
- #ifndef UNIMPLEMENTED
--# define UNIMPLEMENTED() (exit(-1))
-+#define UNIMPLEMENTED() (abort())
-+#endif
-+#ifndef DOUBLE_CONVERSION_NO_RETURN
-+#ifdef _MSC_VER
-+#define DOUBLE_CONVERSION_NO_RETURN __declspec(noreturn)
-+#else
-+#define DOUBLE_CONVERSION_NO_RETURN __attribute__((noreturn))
-+#endif
- #endif
- #ifndef UNREACHABLE
--# define UNREACHABLE() (exit(-1))
-+#ifdef _MSC_VER
-+void DOUBLE_CONVERSION_NO_RETURN abort_noreturn();
-+inline void abort_noreturn() { abort(); }
-+#define UNREACHABLE() (abort_noreturn())
-+#else
-+#define UNREACHABLE() (abort())
- #endif
-+#endif
-+
-
- // Double operations detection based on target architecture.
- // Linux uses a 80bit wide floating point stack on x86. This induces double
-@@ -62,11 +72,15 @@
- defined(__hppa__) || defined(__ia64__) || \
- defined(__mips__) || \
- defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
-+ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
- defined(_MIPS_ARCH_MIPS32R2) || \
-- defined(__AARCH64EL__)
-+ defined(__AARCH64EL__) || defined(__aarch64__) || \
-+ defined(__riscv)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-+#elif defined(__mc68000__)
-+#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #if defined(_WIN32)
- // Windows uses a 64bit wide floating point stack.
-@@ -172,8 +186,8 @@ template <typename T>
- class Vector {
- public:
- Vector() : start_(NULL), length_(0) {}
-- Vector(T* data, int length) : start_(data), length_(length) {
-- ASSERT(length == 0 || (length > 0 && data != NULL));
-+ Vector(T* data, int len) : start_(data), length_(len) {
-+ ASSERT(len == 0 || (len > 0 && data != NULL));
- }
-
- // Returns a vector using the same backing storage as this one,
-@@ -215,8 +229,8 @@ class Vector {
- // buffer bounds on all operations in debug mode.
- class StringBuilder {
- public:
-- StringBuilder(char* buffer, int size)
-- : buffer_(buffer, size), position_(0) { }
-+ StringBuilder(char* buffer, int buffer_size)
-+ : buffer_(buffer, buffer_size), position_(0) { }
-
- ~StringBuilder() { if (!is_finalized()) Finalize(); }
-
-diff --git a/src/3rdparty/double-conversion/qt_attribution.json b/src/3rdparty/double-conversion/qt_attribution.json
-index 92118ac779..d41a7ef332 100644
---- a/src/3rdparty/double-conversion/qt_attribution.json
-+++ b/src/3rdparty/double-conversion/qt_attribution.json
-@@ -5,8 +5,8 @@
- "QtUsage": "Used in Qt Core. Configure with -system-doubleconversion or -no-doubleconversion to avoid.",
-
- "Homepage": "https://github.com/google/double-conversion",
-- "Version": "2.0.1",
-- "DownloadLocation": "https://github.com/google/double-conversion/commit/2fb03de56faa32bbba5e02222528e7b760f71d77",
-+ "Version": "3.0.0",
-+ "DownloadLocation": "https://github.com/google/double-conversion/commit/ca220cbafa83ca706f028bfbb5adc7eb2f1f90e1",
- "License": "BSD 3-clause \"New\" or \"Revised\" License",
- "LicenseId": "BSD-3-Clause",
- "LicenseFile": "LICENSE",
-diff --git a/src/3rdparty/double-conversion/strtod.cc b/src/3rdparty/double-conversion/strtod.cc
-index 34717562bd..17abcbb2a5 100644
---- a/src/3rdparty/double-conversion/strtod.cc
-+++ b/src/3rdparty/double-conversion/strtod.cc
-@@ -286,7 +286,7 @@ static bool DiyFpStrtod(Vector<const char> buffer,
- const int kDenominator = 1 << kDenominatorLog;
- // Move the remaining decimals into the exponent.
- exponent += remaining_decimals;
-- int error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
-+ uint64_t error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
-
- int old_e = input.e();
- input.Normalize();
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch
index 921ca25f..f9993f51 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch
@@ -1,4 +1,4 @@
-From bf8555d48d2402e7ed60f1f4232270d24623e088 Mon Sep 17 00:00:00 2001
+From 73b4276844b4fadc42375f713b51031b5c7c15b1 Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Sat, 27 Oct 2018 12:29:31 +0000
Subject: [PATCH] Qt5GuiConfigExtras.cmake.in: cope with variable path to
@@ -19,7 +19,7 @@ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
-index 07869efd7d..671aa82167 100644
+index 84dbbfebd4..ad6956d814 100644
--- a/src/gui/Qt5GuiConfigExtras.cmake.in
+++ b/src/gui/Qt5GuiConfigExtras.cmake.in
@@ -75,21 +75,15 @@ unset(_qt5gui_OPENGL_INCLUDE_DIR CACHE)
@@ -48,9 +48,9 @@ index 07869efd7d..671aa82167 100644
-!!ENDIF
+
foreach(_lib ${Libs})
- string(REGEX REPLACE "[^_A-Za-z0-9]" "_" _cmake_lib_name ${_lib})
- if (NOT TARGET Qt5::Gui_${_cmake_lib_name} AND NOT _Qt5Gui_${_cmake_lib_name}_LIBRARY_DONE)
-@@ -158,11 +152,11 @@ endmacro()
+ if (IS_ABSOLUTE ${_lib})
+ get_filename_component(_libFile ${_lib} NAME_WE)
+@@ -171,11 +165,11 @@ endmacro()
!!IF !isEmpty(CMAKE_EGL_LIBS)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0014-double-conversion-support-AARCH64EB-and-arm-BE.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0014-double-conversion-support-AARCH64EB-and-arm-BE.patch
deleted file mode 100644
index 5212f7dd..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0014-double-conversion-support-AARCH64EB-and-arm-BE.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7959088cb80f27202252f7080a4c334f3474cac7 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Wed, 29 Aug 2018 18:20:14 +0900
-Subject: [PATCH] double-conversion: support AARCH64EB and arm BE
-
-Big endian can work well. So,
-- Make qtbase support aarch64 BE
-- Make qtbase support arm BE
-
-Upstream-Status: Pending
-
-Change-Id: Ie5b104fa2b23af8e89bae57fb56f3663be1bbb48
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- .../double-conversion/include/double-conversion/utils.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
-index ca7646d817..69aa17171c 100644
---- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
-+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
-@@ -68,7 +68,7 @@ inline void abort_noreturn() { abort(); }
- // disabled.)
- // On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
- #if defined(_M_X64) || defined(__x86_64__) || \
-- defined(__ARMEL__) || defined(__avr32__) || _M_ARM_FP || \
-+ defined(__arm__) || defined(__avr32__) || _M_ARM_FP || \
- defined(__hppa__) || defined(__ia64__) || \
- defined(__mips__) || \
- defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
-@@ -76,7 +76,7 @@ inline void abort_noreturn() { abort(); }
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
- defined(_MIPS_ARCH_MIPS32R2) || \
-- defined(__AARCH64EL__) || defined(__aarch64__) || \
-+ defined(__AARCH64EL__) || defined(__AARCH64EB__) || defined(__aarch64__) || \
- defined(__riscv)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(__mc68000__)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0017-corelib-Include-sys-types.h-for-uint32_t.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0015-corelib-Include-sys-types.h-for-uint32_t.patch
index 8ee4c30d..71f4658f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0017-corelib-Include-sys-types.h-for-uint32_t.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0015-corelib-Include-sys-types.h-for-uint32_t.patch
@@ -1,4 +1,4 @@
-From 206fb0ffdcbd2ae2278f37d8cfe5c16301312c58 Mon Sep 17 00:00:00 2001
+From 3a147b314b96a3f2bd7ded41a9c5fe685985fa29 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 6 Dec 2018 11:47:52 -0800
Subject: [PATCH] corelib: Include sys/types.h for uint32_t
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/src/corelib/global/qnumeric_p.h b/src/corelib/global/qnumeric_p.h
-index 5f8a124bcc..fe1711cf1b 100644
+index 7418579fe0..aba29de499 100644
--- a/src/corelib/global/qnumeric_p.h
+++ b/src/corelib/global/qnumeric_p.h
@@ -55,6 +55,7 @@
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch
index 182f8b6f..a893d90d 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch
@@ -1,4 +1,4 @@
-From c72e38a57ff13ded19fcc22c5abba1a69ba84040 Mon Sep 17 00:00:00 2001
+From 90f1d71d609495ba305d052017df4d3fb801401c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 6 Dec 2018 15:06:20 -0800
Subject: [PATCH] Define QMAKE_CXX.COMPILER_MACROS for clang on linux
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 9 insertions(+)
diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
-index fdf3d1cdd3..6ecfd391f6 100644
+index 03612e5689..f227e0772e 100644
--- a/mkspecs/features/toolchain.prf
+++ b/mkspecs/features/toolchain.prf
-@@ -180,6 +180,13 @@ defineReplace(qtVariablesFromGCC) {
+@@ -41,6 +41,13 @@ defineReplace(qtVariablesFromGCC) {
return($$ret)
}
@@ -30,12 +30,12 @@ index fdf3d1cdd3..6ecfd391f6 100644
isEmpty($${target_prefix}.COMPILER_MACROS) {
msvc {
clang_cl {
-@@ -199,6 +206,8 @@ isEmpty($${target_prefix}.COMPILER_MACROS) {
+@@ -60,6 +67,8 @@ isEmpty($${target_prefix}.COMPILER_MACROS) {
} else {
vars = $$qtVariablesFromMSVC($$QMAKE_CXX)
}
+ } else: clang {
+ vars = $$qtVariablesFromCLANG($$QMAKE_CXX, $$QMAKE_CXXFLAGS)
- } else: gcc {
+ } else: gcc|ghs {
vars = $$qtVariablesFromGCC($$QMAKE_CXX)
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch
new file mode 100644
index 00000000..b0de9c26
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch
@@ -0,0 +1,70 @@
+From 54328b4942eb8cc884bdf41d58f2408a60ea7605 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Nov 2019 08:27:39 -0800
+Subject: [PATCH] input: Make use of timeval portable for 64bit time_t
+
+This patch avoids using time field of input_event structure which is not available
+on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
+and keeps old input.h implementation functional as well.
+
+See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
+Upstream-Status: Submitted [https://codereview.qt-project.org/c/qt/qtbase/+/282610]
+Change-Id: Ie4d66a5e7d83065f1a904a542c711431e1d20845
+---
+ .../input/evdevkeyboard/qevdevkeyboardhandler.cpp | 10 +++++++++-
+ .../input/evdevtouch/qevdevtouchhandler.cpp | 7 ++++++-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
+index 3555763b89..e7dc57c027 100644
+--- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
++++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
+@@ -58,6 +58,11 @@
+ #include <linux/input.h>
+ #endif
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ QT_BEGIN_NAMESPACE
+
+ Q_LOGGING_CATEGORY(qLcEvdevKey, "qt.qpa.input")
+@@ -150,7 +155,10 @@ void QEvdevKeyboardHandler::switchLed(int led, bool state)
+ qCDebug(qLcEvdevKey, "switchLed %d %d", led, int(state));
+
+ struct ::input_event led_ie;
+- ::gettimeofday(&led_ie.time, 0);
++ struct timeval tval;
++ ::gettimeofday(&tval, 0);
++ led_ie.input_event_sec = tval.tv_sec;
++ led_ie.input_event_usec = tval.tv_usec;
+ led_ie.type = EV_LED;
+ led_ie.code = led;
+ led_ie.value = state;
+diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
+index c51db59e1f..1f3726e291 100644
+--- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
++++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
+@@ -58,6 +58,11 @@
+ #include <linux/input.h>
+ #endif
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #include <math.h>
+
+ #if QT_CONFIG(mtdev)
+@@ -576,7 +581,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
+
+ // update timestamps
+ m_lastTimeStamp = m_timeStamp;
+- m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0;
++ m_timeStamp = data->input_event_sec + data->input_event_usec / 1000000.0;
+
+ m_lastTouchPoints = m_touchPoints;
+ m_touchPoints.clear();
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0020-Always-build-uic-and-qvkgen.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0019-Always-build-uic-and-qvkgen.patch
index e1555335..e7a6d67a 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0020-Always-build-uic-and-qvkgen.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0019-Always-build-uic-and-qvkgen.patch
@@ -1,4 +1,4 @@
-From f1564bbf2829cf1006e1d2af146c0ce27e6c1fdb Mon Sep 17 00:00:00 2001
+From 71089d2dbc2becf51e419741afb5f9e2028963e7 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
@@ -14,10 +14,10 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/src.pro b/src/src.pro
-index 1c76a2e46f..fbd4014fb3 100644
+index 8ff3ec4c1f..7a26fd3596 100644
--- a/src/src.pro
+++ b/src/src.pro
-@@ -232,7 +232,7 @@ qtConfig(gui) {
+@@ -235,7 +235,7 @@ qtConfig(gui) {
}
}
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0019-Fix-compile-issue-with-gcc-9.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0019-Fix-compile-issue-with-gcc-9.patch
deleted file mode 100644
index e0936244..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0019-Fix-compile-issue-with-gcc-9.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4364a8fcbcc32e37b9ccbfa833e872098f038690 Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@qt.io>
-Date: Tue, 13 Nov 2018 16:00:23 +0100
-Subject: [PATCH] Fix compile issue with gcc 9
-
-It appears messenne_twisters in the latest libstdc++ has one more
-requirement before it is willing to construct with our
-SystemGenerator struct as an sseq provider.
-
-Upstream-Status: Backport from 5.12
-
-Change-Id: If38151d1fa6f40a80274acc26d9ed6b4ac6049fe
-Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/corelib/global/qrandom.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp
-index ebf9864b15..577736a867 100644
---- a/src/corelib/global/qrandom.cpp
-+++ b/src/corelib/global/qrandom.cpp
-@@ -218,6 +218,7 @@ struct QRandomGenerator::SystemGenerator
- #endif // Q_OS_WINRT
-
- static SystemGenerator &self();
-+ typedef quint32 result_type;
- void generate(quint32 *begin, quint32 *end) Q_DECL_NOEXCEPT_EXPR(FillBufferNoexcept);
-
- // For std::mersenne_twister_engine implementations that use something
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0021-Avoid-renameeat2-for-native-sdk-builds.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0020-Avoid-renameeat2-for-native-sdk-builds.patch
index 546e23c9..4da126d9 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0021-Avoid-renameeat2-for-native-sdk-builds.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0020-Avoid-renameeat2-for-native-sdk-builds.patch
@@ -1,4 +1,4 @@
-From d8b2572813019c7e196cc2a66d7993acbb2d4617 Mon Sep 17 00:00:00 2001
+From cbf26740eca4972824e74acbb8ca5ccb3cdde9b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 14 Apr 2019 13:27:58 +0200
Subject: [PATCH] Avoid renameeat2 for native(sdk) builds
@@ -24,10 +24,10 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2 files changed, 2 insertions(+), 12 deletions(-)
diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h
-index 229b4d17a1..4e2d43ffc5 100644
+index c6f071bc3f..575c993e68 100644
--- a/src/corelib/global/qconfig-bootstrapped.h
+++ b/src/corelib/global/qconfig-bootstrapped.h
-@@ -100,14 +100,14 @@
+@@ -104,7 +104,7 @@
#define QT_FEATURE_process -1
#define QT_FEATURE_regularexpression -1
#ifdef __GLIBC_PREREQ
@@ -36,7 +36,8 @@ index 229b4d17a1..4e2d43ffc5 100644
#else
# define QT_FEATURE_renameat2 -1
#endif
- #define QT_FEATURE_sharedmemory -1
+@@ -112,7 +112,7 @@
+ #define QT_FEATURE_signaling_nan -1
#define QT_FEATURE_slog2 -1
#ifdef __GLIBC_PREREQ
-# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1)
@@ -45,12 +46,12 @@ index 229b4d17a1..4e2d43ffc5 100644
# define QT_FEATURE_statx -1
#endif
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
-index 964dcebeb2..fea7f29c56 100644
+index 38cb6a423d..b6d5e16464 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
-@@ -1252,16 +1252,6 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
- if (Q_UNLIKELY(srcPath.isEmpty() || tgtPath.isEmpty()))
- return emptyFileEntryWarning(), false;
+@@ -1223,16 +1223,6 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
+ Q_CHECK_FILE_NAME(srcPath, false);
+ Q_CHECK_FILE_NAME(tgtPath, false);
-#if defined(RENAME_NOREPLACE) && QT_CONFIG(renameat2)
- if (renameat2(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_NOREPLACE) == 0)
@@ -63,5 +64,5 @@ index 964dcebeb2..fea7f29c56 100644
- }
-#endif
#if defined(Q_OS_DARWIN) && defined(RENAME_EXCL)
- if (__builtin_available(macOS 10.12, iOS 10, tvOS 10, watchOS 3, *)) {
- if (renameatx_np(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_EXCL) == 0)
+ if (renameatx_np(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_EXCL) == 0)
+ return true;
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0022-Bootstrap-without-linkat-feature.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0021-Bootstrap-without-linkat-feature.patch
index 2fbe1265..dae48d59 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase/0022-Bootstrap-without-linkat-feature.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0021-Bootstrap-without-linkat-feature.patch
@@ -1,4 +1,4 @@
-From 86c2a65a7bfbc8163c93ef0856bb4eda442b8e70 Mon Sep 17 00:00:00 2001
+From 61a5dc7d949bc0f8ff3c4a1060c91c61187e5fb2 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
@@ -13,10 +13,10 @@ Upstream-Status: Inappropriate [OE specific]
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h
-index 4e2d43ffc5..992a7d7443 100644
+index 575c993e68..d0c9fdfce3 100644
--- a/src/corelib/global/qconfig-bootstrapped.h
+++ b/src/corelib/global/qconfig-bootstrapped.h
-@@ -91,7 +91,7 @@
+@@ -95,7 +95,7 @@
#define QT_FEATURE_itemmodel -1
#define QT_FEATURE_library -1
#ifdef __linux__
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase/0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch b/external/meta-qt5/recipes-qt/qt5/qtbase/0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch
new file mode 100644
index 00000000..8aeca2ef
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase/0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch
@@ -0,0 +1,123 @@
+From 9b192df7e06992b256eb49af5a213c1b0d3e341a Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nick83ola@gmail.com>
+Date: Wed, 5 Feb 2020 15:32:25 +0000
+Subject: [PATCH] tst_qpainter: FE_ macros are not defined for every platform
+
+the FE_INEXACT, FE_UNDERFLOW, FE_OVERFLOW, FE_DIVBYZERO, FE_INVALID are defined
+only for platforms with fp engine.
+
+Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
+Upstream-Status: submitted [https://codereview.qt-project.org/c/qt/qtbase/+/289447]
+---
+ .../gui/painting/qpainter/tst_qpainter.cpp | 50 ++++++++++++++-----
+ 1 file changed, 37 insertions(+), 13 deletions(-)
+
+diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+index 6e48439944..3566ef24be 100644
+--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
++++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+@@ -2890,19 +2890,43 @@ void tst_QPainter::monoImages()
+ #if !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__)
+ #include <fenv.h>
+
++#if defined(FE_INEXACT)
++ #define QP_FE_INEXACT (FE_INEXACT)
++#else
++ #define QP_FE_INEXACT 0
++#endif
++#if defined(FE_UNDERFLOW)
++ #define QP_FE_UNDERFLOW (FE_UNDERFLOW)
++#else
++ #define QP_FE_UNDERFLOW 0
++#endif
++#if defined(FE_OVERFLOW)
++ #define QP_FE_OVERFLOW (FE_OVERFLOW)
++#else
++ #define QP_FE_OVERFLOW 0
++#endif
++#if defined(FE_DIVBYZERO)
++ #define QP_FE_DIVBYZERO (FE_DIVBYZERO)
++#else
++ #define QP_FE_DIVBYZERO 0
++#endif
++#if defined(FE_INVALID)
++ #define QP_FE_INVALID (FE_INVALID)
++#else
++ #define QP_FE_INVALID 0
++#endif
++
+ static const QString fpeExceptionString(int exception)
+ {
+-#ifdef FE_INEXACT
+- if (exception & FE_INEXACT)
++ if (exception & QP_FE_INEXACT)
+ return QLatin1String("Inexact result");
+-#endif
+- if (exception & FE_UNDERFLOW)
++ if (exception & QP_FE_UNDERFLOW)
+ return QLatin1String("Underflow");
+- if (exception & FE_OVERFLOW)
++ if (exception & QP_FE_OVERFLOW)
+ return QLatin1String("Overflow");
+- if (exception & FE_DIVBYZERO)
++ if (exception & QP_FE_DIVBYZERO)
+ return QLatin1String("Divide by zero");
+- if (exception & FE_INVALID)
++ if (exception & QP_FE_INVALID)
+ return QLatin1String("Invalid operation");
+ return QLatin1String("No exception");
+ }
+@@ -2928,7 +2952,7 @@ private:
+
+ void fpe_rasterizeLine_task232012()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+ QImage img(128, 128, QImage::Format_ARGB32_Premultiplied);
+ img.fill(0x0);
+ QPainter p(&img);
+@@ -2940,7 +2964,7 @@ void fpe_rasterizeLine_task232012()
+
+ void fpe_pixmapTransform()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+
+ QImage img(128, 128, QImage::Format_ARGB32_Premultiplied);
+
+@@ -2968,7 +2992,7 @@ void fpe_pixmapTransform()
+
+ void fpe_zeroLengthLines()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+
+ QImage img(128, 128, QImage::Format_ARGB32_Premultiplied);
+
+@@ -2980,7 +3004,7 @@ void fpe_zeroLengthLines()
+
+ void fpe_divByZero()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+
+ QImage img(128, 128, QImage::Format_ARGB32_Premultiplied);
+
+@@ -3003,7 +3027,7 @@ void fpe_divByZero()
+
+ void fpe_steepSlopes()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+
+ QImage img(1024, 1024, QImage::Format_ARGB32_Premultiplied);
+
+@@ -3022,7 +3046,7 @@ void fpe_steepSlopes()
+
+ void fpe_radialGradients()
+ {
+- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
++ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO);
+
+ QImage img(21, 21, QImage::Format_ARGB32_Premultiplied);
+ img.fill(0);
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb b/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb
index 8ab1746a..050e6d97 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb
@@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
- file://LICENSE.QT-LICENSE-AGREEMENT-4.0;md5=948f8877345cd66106f11031977a4625 \
+ file://LICENSE.QT-LICENSE-AGREEMENT;md5=c8b6dd132d52c6e5a545df07a4e3e283 \
"
# common for qtbase-native, qtbase-nativesdk and qtbase
-# Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-shared
-# 5.11.meta-qt5-shared.14
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-shared
+# 5.14.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 \
@@ -28,45 +28,21 @@ SRC_URI += "\
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 \
- file://0013-Upgrade-double-conversion-to-v3.0.0.patch \
- file://0014-double-conversion-support-AARCH64EB-and-arm-BE.patch \
- file://0015-Disable-ltcg-for-host_build.patch \
- file://0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
- file://0017-corelib-Include-sys-types.h-for-uint32_t.patch \
- file://0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
- file://0019-Fix-compile-issue-with-gcc-9.patch \
+ file://0013-Disable-ltcg-for-host_build.patch \
+ file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
+ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \
+ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
+ file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \
+ file://0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \
"
-
# 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', 'no-opengl', 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_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb xcb-xinput glib xkb xkbcommon', '', d)}"
PACKAGECONFIG_KDE ?= "${@bb.utils.contains('DISTRO_FEATURES', 'kde', 'sm cups fontconfig kms gbm libinput sql-sqlite openssl', '', d)}"
PACKAGECONFIG_FONTS ?= ""
PACKAGECONFIG_SYSTEM ?= "jpeg libpng zlib"
@@ -75,7 +51,7 @@ PACKAGECONFIG_DISTRO ?= ""
PACKAGECONFIG_RELEASE ?= "release"
# This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency
# PACKAGECONFIG_OPENSSL ?= "openssl"
-PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype tests \
+PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype tests pcre \
${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)} \
"
@@ -129,7 +105,7 @@ 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[xcb] = "-xcb -xcb-xlib -system-xcb,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil libxext"
PACKAGECONFIG[sql-ibase] = "-sql-ibase,-no-sql-ibase"
PACKAGECONFIG[sql-mysql] = "-sql-mysql -mysql_config ${STAGING_BINDIR_CROSS}/mysql_config,-no-sql-mysql,mysql5"
PACKAGECONFIG[sql-psql] = "-sql-psql,-no-sql-psql,postgresql"
@@ -139,12 +115,13 @@ 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[xcb-xinput] = "-xcb-xinput,-no-xcb-xinput,libxcb"
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[xkbcommon] = "-xkbcommon,-no-xkbcommon,libxkbcommon,xkeyboard-config"
PACKAGECONFIG[evdev] = "-evdev,-no-evdev"
PACKAGECONFIG[mtdev] = "-mtdev,-no-mtdev,mtdev"
+PACKAGECONFIG[lttng] = "-trace lttng,-trace no,lttng-ust"
# depends on glib
PACKAGECONFIG[fontconfig] = "-fontconfig,-no-fontconfig,fontconfig"
PACKAGECONFIG[gtk] = "-gtk,-no-gtk,gtk+3"
@@ -161,8 +138,41 @@ PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput"
PACKAGECONFIG[journald] = "-journald,-no-journald,systemd"
# needs kernel 3.17+
PACKAGECONFIG[getentropy] = "-feature-getentropy,-no-feature-getentropy,"
+PACKAGECONFIG[vulkan] = "-vulkan,-no-vulkan,vulkan-headers"
QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}"
+# 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)}"
+
+# since the upgrade to 5.12.2 this got worse, with gold enabled configure will no longer pass the test for xlib
+# because with full paths to libraries since qtbase commit 521a85395 it fails to link with
+# /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.12.3+gitAUTOINC+b527725766-r0/recipe-sysroot/usr/lib/libm.so
+# as reported in:
+# https://github.com/meta-qt5/meta-qt5/pull/181#issuecomment-484425112
+# resulting in do_configure failure:
+# http://errors.yoctoproject.org/Errors/Details/237856/
+QT_CONFIG_FLAGS_GOLD = "-no-use-gold-linker"
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
QT_CONFIG_FLAGS += " \
${QT_CONFIG_FLAGS_GOLD} \
-shared \
@@ -173,6 +183,13 @@ QT_CONFIG_FLAGS += " \
${PACKAGECONFIG_CONFARGS} \
"
+export CC_host_toolchain-clang = "clang"
+export CXX_host_toolchain-clang = "clang++"
+export LD_host_toolchain-clang = "clang++"
+export CC_host ?= "gcc"
+export CXX_host ?= "g++"
+export LD_host ?= "g++"
+
# for qtbase configuration we need default settings
# since we cannot set empty set filename to a not existent file
deltask generate_qt_config_file
@@ -225,11 +242,6 @@ 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
@@ -251,11 +263,14 @@ do_install_append() {
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
+ echo "isEmpty(CC_host): CC_host = ${CC_host}" >> $conf
+ echo "isEmpty(CXX_host): CXX_host = ${CXX_host}" >> $conf
+ echo "isEmpty(LD_host): LD_host = ${LD_host}" >> $conf
generate_target_qt_config_file ${D}${OE_QMAKE_PATH_BINS}/qt.conf
- # Fix up absolute paths in scripts
- sed -i -e '1s,#!/usr/bin/python,#! ${USRBINPATH}/env python,' \
+ # Fix up absolute paths in scripts and use python3 instead of python
+ sed -i -e '1s,#!/usr/bin/python$,#! ${USRBINPATH}/env python3,' \
${D}${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/uikit/devices.py
}
@@ -271,7 +286,7 @@ pkg_postinst_${PN}-tools () {
sed -i \
-e 's:HostSpec =.*:HostSpec = ${TARGET_MKSPEC}:g' \
-e 's:TargetSpec =.*:TargetSpec = ${TARGET_MKSPEC}:g' \
- $D${bindir}/qt.conf
+ $D${OE_QMAKE_PATH_BINS}/qt.conf
}
pkg_postinst_${PN}-mkspecs () {
@@ -282,4 +297,4 @@ sed -i \
$D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qmodule.pri
}
-SRCREV = "08de243eaa007597c2bfbc97d3d14e2f821ac4be"
+SRCREV = "3a6d8df5219653b043bd642668cee193f563ec84"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtcanvas3d_git.bb b/external/meta-qt5/recipes-qt/qt5/qtcanvas3d_git.bb
deleted file mode 100644
index 744bef61..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtcanvas3d_git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require qt5.inc
-require qt5-git.inc
-
-LICENSE = "GFDL-1.3 & 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 \
-"
-
-DEPENDS = "qtdeclarative"
-
-SRCREV = "8726c86872134cf4b4396fa5e7ca8eba4ef37ed4"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtcharts_git.bb b/external/meta-qt5/recipes-qt/qt5/qtcharts_git.bb
index 9e99f4c1..2ddfdebe 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtcharts_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtcharts_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative qtmultimedia"
-SRCREV = "444aeb81f2555a37d94862ceaaa8295c5c7ddddd"
+SRCREV = "0dbc3485d061d27df19c33e2f3fb3abd31bfd0bb"
# The same issue as in qtbase:
# http://errors.yoctoproject.org/Errors/Details/152641/
diff --git a/external/meta-qt5/recipes-qt/qt5/qtcoap_git.bb b/external/meta-qt5/recipes-qt/qt5/qtcoap_git.bb
new file mode 100644
index 00000000..c65419dc
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtcoap_git.bb
@@ -0,0 +1,14 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "GFDL-1.3 & BSD & GPL-3.0 | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+PACKAGECONFIG ?= "qtdeclarative"
+PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative"
+
+DEPENDS += "qtbase"
+
+SRCREV = "ce5087822071d59cedd6913d4b28304aacc3c80b"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch b/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch
new file mode 100644
index 00000000..72afac30
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch
@@ -0,0 +1,23 @@
+From 000075567007d0ef76ef3c782fc4060f8ff8e647 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 20:29:19 -0800
+Subject: [PATCH] Add missing header for errno
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/bluetooth/bluez/bluetoothmanagement.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/bluetooth/bluez/bluetoothmanagement.cpp b/src/bluetooth/bluez/bluetoothmanagement.cpp
+index 31d3dc02..75d762e5 100644
+--- a/src/bluetooth/bluez/bluetoothmanagement.cpp
++++ b/src/bluetooth/bluez/bluetoothmanagement.cpp
+@@ -45,6 +45,7 @@
+ #include "bluez_data_p.h"
+ #include "../qbluetoothsocketbase_p.h"
+
++#include <errno.h>
+ #include <unistd.h>
+ #include <sys/prctl.h>
+ #include <sys/syscall.h>
diff --git a/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Ignore-clang-warning-about-address-of-temp-in-config.patch b/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Ignore-clang-warning-about-address-of-temp-in-config.patch
deleted file mode 100644
index a0c2ee72..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtconnectivity/0001-Ignore-clang-warning-about-address-of-temp-in-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 162749d36f4bdea62d456516ae2bbcdc84b9ba87 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 6 Dec 2018 13:21:23 -0800
-Subject: [PATCH] Ignore clang warning about address of temp in
- config.tests/bluez
-
-There is a similar error with gcc which is suppressed by using
--fpermissive, clang however is more concerned and has specific flag for
-it, this flag is not implemented in gcc so we can not use it via general
-cmdline options to compiler, so resort to using diagnostic pragma
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- config.tests/bluez/main.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/config.tests/bluez/main.cpp b/config.tests/bluez/main.cpp
-index 3fe5ee09..8d1c968a 100644
---- a/config.tests/bluez/main.cpp
-+++ b/config.tests/bluez/main.cpp
-@@ -30,11 +30,14 @@
-
- int main()
- {
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Waddress-of-temporary"
- #ifdef BDADDR_NONE
- bacmp(BDADDR_ANY, BDADDR_NONE);
- #else
- bacmp(BDADDR_ANY, BDADDR_LOCAL);
- #endif
-+#pragma clang diagnostic pop
-
- return 0;
- }
---
-2.19.2
-
diff --git a/external/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb b/external/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb
index 0e13bfd5..5f6e461f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb
@@ -10,15 +10,13 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
-DEPENDS += "qtbase qtdeclarative"
+SRC_URI += "file://0001-Add-missing-header-for-errno.patch"
-inherit bluetooth
+DEPENDS += "qtbase qtdeclarative"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
-PACKAGECONFIG[bluez] = "-feature-bluez,-no-feature-bluez,${BLUEZ}"
+PACKAGECONFIG[bluez] = "-feature-bluez,-no-feature-bluez,bluez5"
EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
-SRCREV = "d1cf8dad0e6d8d08b5c6f2f08d85a0e75b0bcf8a"
-
-SRC_URI += "file://0001-Ignore-clang-warning-about-address-of-temp-in-config.patch"
+SRCREV = "b445ea4ff203fbcb5011adae0236dd028f11bc89"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtdatavis3d_git.bb b/external/meta-qt5/recipes-qt/qt5/qtdatavis3d_git.bb
index 8c2806a6..6d3c6770 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtdatavis3d_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtdatavis3d_git.bb
@@ -8,4 +8,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative qtmultimedia qtxmlpatterns"
-SRCREV = "a04bbfd93159963aa505f96425e85a2a83b0b10a"
+SRCREV = "1e5f5525cf811bb0ffca3de389794fa10d2c1af2"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Always-use-commit-sha1-for-QML_COMPILE_HASH.patch b/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Always-use-commit-sha1-for-QML_COMPILE_HASH.patch
deleted file mode 100644
index a734f8a2..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Always-use-commit-sha1-for-QML_COMPILE_HASH.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 260e165993fe15a1668cfd36caee18a95b2d2f59 Mon Sep 17 00:00:00 2001
-From: Samuli Piippo <samuli.piippo@qt.io>
-Date: Mon, 2 Jul 2018 13:32:44 +0300
-Subject: [PATCH] Always use commit sha1 for QML_COMPILE_HASH
-
-git describe can produce different strings for the same sha1, depending
-on the version of git (length of short hash) and whether release tag was
-in place when build was done (v5.11.1-0- vs. v5.11.0-66-).
-
-Instead use rev-parse to get the unambiguous commit sha1 which is also
-what is used from the .tag file.
-
-Change-Id: If378f03eb764e2d858bda5b662106aa4402d6559
-Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
----
- src/qml/qml.pro | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/qml/qml.pro b/src/qml/qml.pro
-index 940ebb325..a76a87b15 100644
---- a/src/qml/qml.pro
-+++ b/src/qml/qml.pro
-@@ -31,7 +31,7 @@ DEFINES += QT_NO_FOREACH
- !equals(tag, "$${LITERAL_DOLLAR}Format:%H$${LITERAL_DOLLAR}") {
- QML_COMPILE_HASH = $$tag
- } else:exists($$PWD/../../.git) {
-- commit = $$system(git describe --tags --always --long --dirty)
-+ commit = $$system(git rev-parse HEAD)
- QML_COMPILE_HASH = $$commit
- }
- compile_hash_contents = \
diff --git a/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch b/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch
new file mode 100644
index 00000000..60922e74
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch
@@ -0,0 +1,32 @@
+From d39e76b9662ea9cf236ac59749855e7da7ad29a8 Mon Sep 17 00:00:00 2001
+From: Piotr Tworek <tworaz@tworaz.net>
+Date: Wed, 3 Jul 2019 01:13:40 +0200
+Subject: [PATCH] Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to locate qmlcachegen
+
+Without this cmake will end up using host qmlcachegen instead of
+recipe-sysroot-native one.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
+---
+ tools/qmlcachegen/Qt5QuickCompilerConfig.cmake.in | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake.in b/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake.in
+index 75fbb0fcf3..1e949cd40c 100644
+--- a/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake.in
++++ b/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake.in
+@@ -18,11 +18,7 @@ function(QTQUICK_COMPILER_ADD_RESOURCES outfiles)
+
+ find_package(Qt5 COMPONENTS Qml Core)
+
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+- set(compiler_path \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmlcachegen$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+- set(compiler_path \"$${CMAKE_BIN_DIR}qmlcachegen$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++ set(compiler_path \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmlcachegen${OE_QMAKE_BIN_SUFFIX}\")
+ if(NOT EXISTS \"${compiler_path}\" )
+ message(FATAL_ERROR \"The package \\\"Qt5QuickCompilerConfig\\\" references the file
+ \\\"${compiler_path}\\\"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0002-Use-python3-explicitly.patch b/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0002-Use-python3-explicitly.patch
new file mode 100644
index 00000000..f55812b6
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtdeclarative/0002-Use-python3-explicitly.patch
@@ -0,0 +1,57 @@
+From 838fb4676f78d169dc88f87544cf1a4003302aea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 26 Nov 2019 21:10:03 -0800
+Subject: [PATCH] Use python3 explicitly
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ qtdeclarative.pro | 2 +-
+ src/3rdparty/masm/masm.pri | 4 ++--
+ tests/auto/qml/ecmascripttests/test262.py | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/qtdeclarative.pro b/qtdeclarative.pro
+index 5b94da9b69..0e3496ce80 100644
+--- a/qtdeclarative.pro
++++ b/qtdeclarative.pro
+@@ -2,7 +2,7 @@ CONFIG += tests_need_tools examples_need_tools
+ load(qt_parts)
+
+ !python_available {
+- py_out = $$system('python -c "print(1)"')
++ py_out = $$system('python3 -c "print(1)"')
+ !equals(py_out, 1): error("Building QtQml requires Python.")
+ tmp = python_available
+ CONFIG += $$tmp
+diff --git a/src/3rdparty/masm/masm.pri b/src/3rdparty/masm/masm.pri
+index 1df4585aae..00038104ec 100644
+--- a/src/3rdparty/masm/masm.pri
++++ b/src/3rdparty/masm/masm.pri
+@@ -58,7 +58,7 @@ contains(DEFINES, WTF_USE_UDIS86=1) {
+ udis86.output = udis86_itab.h
+ udis86.input = ITAB
+ udis86.CONFIG += no_link
+- udis86.commands = python $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN}
++ udis86.commands = python3 $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN}
+ QMAKE_EXTRA_COMPILERS += udis86
+
+ udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c
+@@ -111,7 +111,7 @@ retgen.output = $$GENERATEDDIR/RegExpJitTables.h
+ retgen.script = $$PWD/yarr/create_regex_tables
+ retgen.input = retgen.script
+ retgen.CONFIG += no_link
+-retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT}
++retgen.commands = python3 $$retgen.script > ${QMAKE_FILE_OUT}
+ QMAKE_EXTRA_COMPILERS += retgen
+
+ # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf
+diff --git a/tests/auto/qml/ecmascripttests/test262.py b/tests/auto/qml/ecmascripttests/test262.py
+index 19551e3ba2..bf3f79a45f 100755
+--- a/tests/auto/qml/ecmascripttests/test262.py
++++ b/tests/auto/qml/ecmascripttests/test262.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #############################################################################
+ ##
+ ## Copyright (C) 2017 The Qt Company Ltd.
diff --git a/external/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb b/external/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb
index 4cfde304..b588df0e 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtdeclarative_git.bb
@@ -12,31 +12,25 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
-# Patches from https://github.com/meta-qt5/qtdeclarative/commits/b5.11
-# 5.11.meta-qt5.4
-SRC_URI += "file://0001-Always-use-commit-sha1-for-QML_COMPILE_HASH.patch"
+# Patches from https://github.com/meta-qt5/qtdeclarative/commits/b5.14
+# 5.14.meta-qt5.1
+SRC_URI += " \
+ file://0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch \
+ file://0002-Use-python3-explicitly.patch \
+"
DEPENDS += "qtbase"
-PACKAGECONFIG ??= "qtxmlpatterns qml-debug qml-network ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)}"
-PACKAGECONFIG[qtxmlpatterns] = ",,qtxmlpatterns"
+PACKAGECONFIG ??= "qml-debug qml-network ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)}"
PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug"
PACKAGECONFIG[qml-network] = "-qml-network, -no-qml-network"
PACKAGECONFIG[static] = ",,qtdeclarative-native"
-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 = "e3c0bb7811407bad1f65ea55639a4b1d1d39be15"
+SRCREV = "23a000f9a14889753a63cd73de2c61e49bb7e0d8"
BBCLASSEXTEND =+ "native nativesdk"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtenginio_git.bb b/external/meta-qt5/recipes-qt/qt5/qtenginio_git.bb
deleted file mode 100644
index 30d5eeae..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtenginio_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-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/external/meta-qt5/recipes-qt/qt5/qtgamepad_git.bb b/external/meta-qt5/recipes-qt/qt5/qtgamepad_git.bb
index 7708f433..33788adb 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtgamepad_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtgamepad_git.bb
@@ -14,4 +14,4 @@ PACKAGECONFIG[sdl2] = "-feature-sdl2,-no-feature-sdl2,libsdl2"
EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
-SRCREV = "4005b78c2bde8fd9cf1cbe3155cbe6c33f576111"
+SRCREV = "4ea446824de0d3a1bf098c55c28a3440c88ef99c"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb b/external/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb
index ef4d59b4..57cd049b 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb
@@ -18,4 +18,4 @@ RDEPENDS_${PN}-dev = ""
# http://errors.yoctoproject.org/Errors/Build/44912/
LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-SRCREV = "d560b79d050659715159d5f04b2e96fd38d0230c"
+SRCREV = "337fec3f07fc8c88092b1cdff23cd85c6c3b127b"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb b/external/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb
index 09d52213..cda6e670 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtimageformats_git.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = " \
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 \
"
@@ -26,4 +25,4 @@ PACKAGECONFIG[libwebp] = ",CONFIG+=done_config_libwebp,libwebp"
EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
-SRCREV = "335dc6af7d24c1731cbd7e03a21e66c70d81760d"
+SRCREV = "42486a317119a2df9e25df5b7e548eb61b020607"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtknx_git.bb b/external/meta-qt5/recipes-qt/qt5/qtknx_git.bb
index 7a52bed9..ae17b92b 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtknx_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtknx_git.bb
@@ -9,4 +9,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
-SRCREV = "dea2cde014f2a74390a444d9d59e6deb2801c40b"
+SRCREV = "c910588bee331165350dbd83a9b1fdf92020c2f1"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtlocation_git.bb b/external/meta-qt5/recipes-qt/qt5/qtlocation_git.bb
index 5373aaad..2cbb44a6 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtlocation_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtlocation_git.bb
@@ -14,9 +14,13 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtxmlpatterns qtdeclarative qtquickcontrols"
PACKAGECONFIG ??= ""
-# older geoclue 0.12.99 is needed
-PACKAGECONFIG[geoclue] = ",,geoclue"
+PACKAGECONFIG[geoclue] = ",,,geoclue"
PACKAGECONFIG[gypsy] = "-feature-gypsy,-no-feature-gypsy,gconf gypsy"
+PACKAGECONFIG[geoservices_here] = "-feature-geoservices_here,-no-feature-geoservices_here"
+PACKAGECONFIG[geoservices_mapbox] = "-feature-geoservices_mapbox,-no-feature-geoservices_mapbox"
+PACKAGECONFIG[geoservices_esri] = "-feature-geoservices_esri,-no-feature-geoservices_esri"
+PACKAGECONFIG[geoservices_itemsoverlay] = "-feature-geoservices_itemsoverlay,-no-feature-geoservices_itemsoverlay"
+PACKAGECONFIG[geoservices_osm] = "-feature-geoservices_osm,-no-feature-geoservices_osm"
PACKAGECONFIG[geoservices_mapboxgl] = "-feature-geoservices_mapboxgl,-no-feature-geoservices_mapboxgl"
EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
@@ -31,7 +35,7 @@ SRC_URI += " \
${QT_GIT}/qtlocation-mapboxgl.git;name=qtlocation-mapboxgl;branch=${QT_MODULE_BRANCH_MAPBOXGL};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/mapbox-gl-native \
"
-SRCREV_qtlocation = "ffac0dc5a60c93663f6a4ea5483422c58cdb52b6"
-SRCREV_qtlocation-mapboxgl = "b59b0450c60b3df9e0852f62f6c8a6024889cd9e"
+SRCREV_qtlocation = "feb604c32611183083855c04b07c6be1e0efc9c6"
+SRCREV_qtlocation-mapboxgl = "d9577fdebe019b19e184b4cac82749ae9ec87afb"
SRCREV_FORMAT = "qtlocation_qtlocation-mapboxgl"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtlottie_git.bb b/external/meta-qt5/recipes-qt/qt5/qtlottie_git.bb
new file mode 100644
index 00000000..3b848da2
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtlottie_git.bb
@@ -0,0 +1,12 @@
+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 qtdeclarative"
+
+SRCREV = "798be5abdb7d6e73288780c9ee03c10550dde07d"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtmqtt_git.bb b/external/meta-qt5/recipes-qt/qt5/qtmqtt_git.bb
index 23a450b0..a0a67f05 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtmqtt_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtmqtt_git.bb
@@ -9,4 +9,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
-SRCREV = "7e0587f9b4906976ec0397768b0378573fbf2fff"
+SRCREV = "9548b694a4b04c6164debb821a9c3536860f9421"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch b/external/meta-qt5/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch
index 56c8e684..32021118 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch
@@ -1,4 +1,4 @@
-From c5103b4f832be57759f475d05c98f946d150c39d Mon Sep 17 00:00:00 2001
+From ac8c96da1849106b34592bab10459c854140a574 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
@@ -67,7 +67,7 @@ index 00000000..24236976
+
+#endif
diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
-index 465ccfa7..40e7592b 100644
+index e1468fe3..a77a9d6a 100644
--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
@@ -37,8 +37,9 @@
diff --git a/external/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb b/external/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb
index ba7d1543..768ce189 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb
@@ -12,7 +12,8 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtdeclarative"
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
+PACKAGECONFIG ??= "gstreamer \
+ ${@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"
@@ -27,8 +28,8 @@ EXTRA_QMAKEVARS_CONFIGURE += "${@bb.utils.contains_any('PACKAGECONFIG', 'gstream
CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DMESA_EGL_NO_X11_HEADERS=1', d)}"
-# Patches from https://github.com/meta-qt5/qtmultimedia/commits/b5.11
-# 5.11.meta-qt5.6
+# Patches from https://github.com/meta-qt5/qtmultimedia/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += "\
file://0001-qtmultimedia-fix-a-conflicting-declaration.patch \
"
@@ -37,4 +38,4 @@ SRC_URI += "\
# http://errors.yoctoproject.org/Errors/Build/44914/
LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-SRCREV = "6966a09c9a6a2c134a739446cc582e47d0c6ed6d"
+SRCREV = "c012f0a727144714f9480e98938ca8eb2137c213"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtnetworkauth_git.bb b/external/meta-qt5/recipes-qt/qt5/qtnetworkauth_git.bb
index 2296a997..31687baf 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtnetworkauth_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtnetworkauth_git.bb
@@ -9,4 +9,4 @@ require qt5-git.inc
DEPENDS += "qtbase"
-SRCREV = "90ae677b45570e45adc9d03ba9967065fdfa0432"
+SRCREV = "9f3cdb9e3ece4194af1b374dfde67ce807934325"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtopcua_git.bb b/external/meta-qt5/recipes-qt/qt5/qtopcua_git.bb
index 69f7ba61..fea783b7 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtopcua_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtopcua_git.bb
@@ -1,13 +1,21 @@
require qt5.inc
require qt5-git.inc
-LICENSE = "GFDL-1.3 & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial"
+LICENSE = "( GFDL-1.3 & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial ) & MPL-2.0 & CC0-1.0"
LIC_FILES_CHKSUM = " \
file://LICENSE.FDL;md5=f70ee9a6c44ae8917586fea34dff0ab5 \
file://LICENSE.GPLv2;md5=05832301944453ec79e40ba3c3cfceec \
file://LICENSE.LGPLv3;md5=c4fe8c6de4eef597feec6e90ed62e962 \
"
+PACKAGECONFIG ?= "qtdeclarative"
+PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative"
+
+# src/3rdparty/open62541.pri adds -Wno-format, causing following error
+# because -Wformat-security cannot be used together with -Wno-format
+# cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]
+SECURITY_STRINGFORMAT = ""
+
DEPENDS += "qtbase"
-SRCREV = "326bf6a1058d878b7891ee6d7078ed381c462df1"
+SRCREV = "2d99281fe78e6cdcf65d138c8503653ba46eccef"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtpurchasing_git.bb b/external/meta-qt5/recipes-qt/qt5/qtpurchasing_git.bb
index 9f6138bd..cb6b6eff 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtpurchasing_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtpurchasing_git.bb
@@ -10,4 +10,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative"
-SRCREV = "d11d7ff9eff2a68441ff6264b04f37bd862bdd64"
+SRCREV = "9ccef69aa67cae578e6725680aa530d3e29fe047"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtquick3d_git.bb b/external/meta-qt5/recipes-qt/qt5/qtquick3d_git.bb
new file mode 100644
index 00000000..7d3fd78b
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtquick3d_git.bb
@@ -0,0 +1,27 @@
+require qt5.inc
+require qt5-git.inc
+
+LICENSE = "(GPL-3.0 & BSD) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+DEPENDS += "qtbase qtdeclarative qtquickcontrols2"
+
+SRC_URI += " \
+ git://github.com/assimp/assimp.git;name=assimp;branch=master;protocol=https;destsuffix=git/src/3rdparty/assimp/src \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[system-assimp] = "-system-assimp,-qt-assimp,assimp"
+
+EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
+
+FILES_${PN}-qmlplugins += " \
+ ${OE_QMAKE_PATH_QML}/QtQuick3D/Helpers/meshes/*.mesh \
+"
+
+SRCREV_qtquick3d = "a0197a18cebfb718c1787fcd8779bcf237f97137"
+SRCREV_assimp = "5c900d689a5db5637b98f665fc1e9e9c9ed416b9"
+
+SRCREV_FORMAT = "qtquick3d_assimp"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb b/external/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb
index b0ea42a9..e77e34dc 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb
@@ -10,4 +10,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtdeclarative qtdeclarative-native"
-SRCREV = "431d605edb48321c71935fbd2bb82d33e231ea55"
+SRCREV = "bb2b1adffe986843a6e7554bfe5ed26858c66264"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb b/external/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb
index e66074e1..b82367a6 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtquickcontrols_git.bb
@@ -17,4 +17,4 @@ FILES_${PN}-qmlplugins += " \
${OE_QMAKE_PATH_QML}/QtQuick/Dialogs/qml/icons.ttf \
"
-SRCREV = "6b7f91c097f7e47cf2683d08b5838fd061a872bd"
+SRCREV = "8c3882d9391968727c046344e456d1ab2f7b8e08"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtquicktimeline_git.bb b/external/meta-qt5/recipes-qt/qt5/qtquicktimeline_git.bb
new file mode 100644
index 00000000..6db422b4
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtquicktimeline_git.bb
@@ -0,0 +1,13 @@
+require qt5.inc
+require qt5-git.inc
+
+DESCRIPTION = "Qt Quick Timeline"
+LICENSE = "GPL-2.0+ | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ "
+
+DEPENDS = "qtbase qtdeclarative"
+
+SRCREV = "0df4b2cd85b5d443675c38eb2c55ea6ea12b9174"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch
index a43dbeba..d3113cd4 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch
@@ -1,4 +1,4 @@
-From cac05ba982e5047c11add015f6f6125863e5226d Mon Sep 17 00:00:00 2001
+From 5f151a2148be90ca8c4470bea7b4358659c9fff1 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
@@ -10,7 +10,7 @@ Change-Id: I3b33fc1c8877fc82568bd386b063e7a0aa57b706
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/mkspecs/features/repccommon.pri b/mkspecs/features/repccommon.pri
-index 5e88bf8..6efd19e 100644
+index fd321e3..e218217 100644
--- a/mkspecs/features/repccommon.pri
+++ b/mkspecs/features/repccommon.pri
@@ -3,7 +3,7 @@ cmd = $${QT.remoteobjects.bins}/repc
@@ -23,10 +23,10 @@ index 5e88bf8..6efd19e 100644
# qtPrepareTool honors QT_TOOL.repc.binary if set
qtPrepareTool(QMAKE_REPC, repc)
diff --git a/qtremoteobjects.pro b/qtremoteobjects.pro
-index c2e2b6b..93c2bb5 100644
+index 454f0d1..7c1d2ee 100644
--- a/qtremoteobjects.pro
+++ b/qtremoteobjects.pro
-@@ -2,3 +2,8 @@ CONFIG += examples_need_tools tests_need_tools
+@@ -4,3 +4,8 @@ CONFIG += examples_need_tools tests_need_tools
load(qt_parts)
SUBDIRS += mkspecs
diff --git a/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
new file mode 100644
index 00000000..fc052c66
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch
@@ -0,0 +1,22 @@
+From 75050b24ee94d078a3e987535aef6cbaac561c69 Mon Sep 17 00:00:00 2001
+From: ibinderwolf <daniel@bluepattern.net>
+Date: Wed, 26 Jun 2019 09:46:48 +0200
+Subject: [PATCH] cmake Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS
+
+---
+ src/remoteobjects/Qt5RemoteObjectsConfigExtras.cmake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/remoteobjects/Qt5RemoteObjectsConfigExtras.cmake.in b/src/remoteobjects/Qt5RemoteObjectsConfigExtras.cmake.in
+index 4907ded..34729da 100644
+--- a/src/remoteobjects/Qt5RemoteObjectsConfigExtras.cmake.in
++++ b/src/remoteobjects/Qt5RemoteObjectsConfigExtras.cmake.in
+@@ -40,7 +40,7 @@ if (NOT TARGET Qt5::repc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5RemoteObjects_install_prefix}/$${CMAKE_BIN_DIR}repc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}repc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/repc${OE_QMAKE_BIN_SUFFIX}\")
+ !!ENDIF
+ _qt5_RemoteObjects_check_file_exists(${imported_location})
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtremoteobjects_git.bb b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects_git.bb
index c93463ee..ee7a90df 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtremoteobjects_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtremoteobjects_git.bb
@@ -11,10 +11,11 @@ require qt5-git.inc
DEPENDS += "qtbase qtdeclarative qtremoteobjects-native"
-# Patches from https://github.com/meta-qt5/qtremoteobjects/commits/b5.11
-# 5.11.meta-qt5.6
+# Patches from https://github.com/meta-qt5/qtremoteobjects/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += " \
file://0001-Allow-a-tools-only-build.patch \
+ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \
"
PACKAGECONFIG ??= ""
@@ -24,6 +25,6 @@ PACKAGECONFIG[tools-only] = "CONFIG+=tools-only"
EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
-SRCREV = "92ae729691f6db9fb06b0475509dc1141ac3d93c"
+SRCREV = "c64237289a6287c23564827b51092e58a1e6cbac"
BBCLASSEXTEND += "native nativesdk"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscript/0001-3rdparty-javascriptcore-Add-RISC-V-support.patch b/external/meta-qt5/recipes-qt/qt5/qtscript/0001-3rdparty-javascriptcore-Add-RISC-V-support.patch
deleted file mode 100644
index d724496e..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtscript/0001-3rdparty-javascriptcore-Add-RISC-V-support.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 028ec1bdce6dde67cc1486e5bee311b69354e41e Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Wed, 18 Jul 2018 14:26:21 -0700
-Subject: [PATCH] 3rdparty/javascriptcore: Add RISC-V support
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Change-Id: I81f15084ef6b5b8d855c1f568cacca176af51b57
-Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-
-Upstream-Status: Backport
----
- .../javascriptcore/JavaScriptCore/wtf/Platform.h | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-index 00caa6d..96942c7 100644
---- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-@@ -397,6 +397,16 @@
- #endif
- #endif /* __mips__ */
-
-+/* CPU(RISCV64) - RISC-V 64-bit */
-+#if defined(__riscv) && __riscv_xlen == 64
-+#define WTF_CPU_RISCV64 1
-+#endif
-+
-+/* CPU(RISCV32) - RISC-V 32-bit */
-+#if defined(__riscv) && __riscv_xlen == 32
-+#define WTF_CPU_RISCV32 1
-+#endif
-+
- /* ==== OS() - underlying operating system; only to be used for mandated low-level services like
- virtual memory, not to choose a GUI toolkit ==== */
-
-@@ -948,9 +958,9 @@
- #endif
-
- #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
--#if (CPU(X86_64) && !CPU(X32) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64)
-+#if (CPU(X86_64) && !CPU(X32) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(RISCV64)
- #define WTF_USE_JSVALUE64 1
--#elif CPU(ARM) || CPU(PPC64)
-+#elif CPU(ARM) || CPU(PPC64) || CPU(RISCV32)
- #define WTF_USE_JSVALUE32 1
- #elif OS(WINDOWS) && COMPILER(MINGW)
- /* Using JSVALUE32_64 causes padding/alignement issues for JITStubArg
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscript/0002-Include-asm-sgidefs.h-on-non-glibc-systems.patch b/external/meta-qt5/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch
index 3cb91726..2637396f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtscript/0002-Include-asm-sgidefs.h-on-non-glibc-systems.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch
@@ -1,4 +1,4 @@
-From e9b8d8d23681cfef9efbb654ecea2eeb128a9d00 Mon Sep 17 00:00:00 2001
+From 0608bd81fd1f2075c2f98fb314af0111c8659afb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 23 Aug 2018 02:58:14 +0000
Subject: [PATCH] Include asm/sgidefs.h on non-glibc systems
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-index 96942c7..f828f04 100644
+index a4695a2..4b7a45b 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
@@ -377,7 +377,11 @@
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscript/0002-Fix-build-with-GCC-8.3.patch b/external/meta-qt5/recipes-qt/qt5/qtscript/0002-Fix-build-with-GCC-8.3.patch
deleted file mode 100644
index 629cf8e8..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtscript/0002-Fix-build-with-GCC-8.3.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-From 03cdaf779e0d8587c6e110f1f834a15e2d3317fd Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Mon, 28 Jan 2019 14:33:12 -0800
-Subject: [PATCH] Fix build with GCC 8.3
-
-Qualifiers in the asm statement are not allowed in the global scope. I
-thought they were necessary for LTO, but I the commit to this file that
-added them predates my work on setting up LTO for GCC.
-
-Change-Id: Id98140e1c2f0426cabbefffd157e23e5ece67a49
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
----
- .../JavaScriptCore/jit/JITStubs.cpp | 48 +++++++++----------
- 1 file changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-index 1abdf8b..9f60761 100644
---- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-@@ -116,7 +116,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
-
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -138,7 +138,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -154,7 +154,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -179,7 +179,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline);
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -206,7 +206,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -222,7 +222,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -242,7 +242,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -269,7 +269,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "bx lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -287,7 +287,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "bx lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -305,7 +305,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -323,7 +323,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "mov pc, lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -418,7 +418,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -440,7 +440,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -456,7 +456,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -480,7 +480,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -515,7 +515,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -531,7 +531,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "ret" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -551,7 +551,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -578,7 +578,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "bx lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -596,7 +596,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
- "bx lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -614,7 +614,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
-
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -632,7 +632,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "mov pc, lr" "\n"
- );
-
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -1024,7 +1024,7 @@ static NEVER_INLINE void throwStackOverflowError(CallFrame* callFrame, JSGlobalD
- extern "C" { \
- rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
- }; \
-- asm volatile ( \
-+ asm ( \
- ".text" "\n" \
- ".align 2" "\n" \
- ".globl " SYMBOL_STRING(cti_##op) "\n" \
-@@ -1053,7 +1053,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, thunkReturnAddress) == THUNK_RETUR
- extern "C" { \
- rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
- }; \
-- asm volatile ( \
-+ asm ( \
- ".globl " SYMBOL_STRING(cti_##op) "\n" \
- HIDE_SYMBOL(cti_##op) "\n" \
- SYMBOL_STRING(cti_##op) ":" "\n" \
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscript_git.bb b/external/meta-qt5/recipes-qt/qt5/qtscript_git.bb
index aa0e28d4..c796cc40 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtscript_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtscript_git.bb
@@ -11,12 +11,10 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
"
-# Patches from https://github.com/meta-qt5/qtscript/commits/b5.11
-# 5.11.meta-qt5.3
+# Patches from https://github.com/meta-qt5/qtscript/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += " \
- file://0001-3rdparty-javascriptcore-Add-RISC-V-support.patch \
- file://0002-Include-asm-sgidefs.h-on-non-glibc-systems.patch \
- file://0002-Fix-build-with-GCC-8.3.patch \
+ file://0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch \
"
# qemuarm build fails with:
@@ -38,4 +36,4 @@ DEPENDS += "qtbase"
# http://errors.yoctoproject.org/Errors/Build/44915/
LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-SRCREV = "cf09bc7285793d81a9755bf7e807c9d51d47d980"
+SRCREV = "bdf42faf19518cf2aceca74f91ab003d204d11be"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch b/external/meta-qt5/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch
index 355cbe12..b26d7c8b 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch
@@ -1,4 +1,4 @@
-From ed4d6708cc72311f697d6d27556de7dfc77cfcd0 Mon Sep 17 00:00:00 2001
+From 9e2ef02c25fedb6faad0d26ba2273297918f6399 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
diff --git a/external/meta-qt5/recipes-qt/qt5/qtscxml_git.bb b/external/meta-qt5/recipes-qt/qt5/qtscxml_git.bb
index dcb1113c..efacfcc4 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtscxml_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtscxml_git.bb
@@ -10,10 +10,10 @@ require qt5-git.inc
DEPENDS += "qtbase qtdeclarative qtxmlpatterns qtscxml-native"
-SRCREV = "b99d699a8e1fe1a2968edafa6f0154a2581c2143"
+SRCREV = "fc0eecb79325713d3576a9d4a7eb359ef90bf3d9"
-# Patches from https://github.com/meta-qt5/qtscxml/commits/b5.11
-# 5.11.meta-qt5.6
+# Patches from https://github.com/meta-qt5/qtscxml/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += "file://0001-Use-external-host-bin-path-for-cmake-file.patch"
do_install_append_class-nativesdk() {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtsensors_git.bb b/external/meta-qt5/recipes-qt/qt5/qtsensors_git.bb
index 5fdd6f97..4a971cfc 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtsensors_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtsensors_git.bb
@@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative"
-SRCREV = "0dab0ff3d33292bc1647ebb68dbeb8556707b5ad"
+SRCREV = "92e19711f9170f26829498787d0e5de4889c9718"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtserialbus_git.bb b/external/meta-qt5/recipes-qt/qt5/qtserialbus_git.bb
index c7d1fe8b..f1e8b081 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtserialbus_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtserialbus_git.bb
@@ -11,4 +11,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtserialport"
-SRCREV = "857ed94b55b59859f41c55076c51e92f163cb9f7"
+SRCREV = "4a0bdbfb757d98b7c95ce7a0c299ab19866529e6"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtserialport_git.bb b/external/meta-qt5/recipes-qt/qt5/qtserialport_git.bb
index 612571c2..d0229e3d 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtserialport_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtserialport_git.bb
@@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
-SRCREV = "5e3f1365813079f1a9a9af284b6a40bd9df8e1c0"
+SRCREV = "30807cadfc8e40097ee6450f667c4510f925bcd2"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtsvg_git.bb b/external/meta-qt5/recipes-qt/qt5/qtsvg_git.bb
index 0e77d635..d5864d72 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtsvg_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtsvg_git.bb
@@ -7,10 +7,9 @@ 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 = "ab492718dec3b54fce736b642dc6975d9b0046af"
+SRCREV = "63961dd0c73fb6bf7de1b4d3e68fe5d24625a330"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtsystems_git.bb b/external/meta-qt5/recipes-qt/qt5/qtsystems_git.bb
index 0bda2e99..5f5e1ad8 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtsystems_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtsystems_git.bb
@@ -12,10 +12,8 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative udev gconf"
-inherit bluetooth
-
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
-PACKAGECONFIG[bluez] = "CONFIG+=OE_BLUEZ_ENABLED,,${BLUEZ}"
+PACKAGECONFIG[bluez] = "CONFIG+=OE_BLUEZ_ENABLED,,bluez5"
EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}"
@@ -31,4 +29,4 @@ do_install_append() {
QT_MODULE_BRANCH = "dev"
-SRCREV = "66e45676f5f5c6251ccab36906c6324fd0065e08"
+SRCREV = "e3332ee38d27a134cef6621fdaf36687af1b6f4a"
diff --git a/external/meta-qt5/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch b/external/meta-qt5/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch
index 37ab7dbf..d0a9d352 100644
--- a/external/meta-qt5/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch
@@ -1,4 +1,4 @@
-From 9cdaa2696552e90bac815889bf6fe45bc9637ca1 Mon Sep 17 00:00:00 2001
+From 0835a82c0002bfadb1e3007ae75ad1159aef0906 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
@@ -16,7 +16,7 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro
-index 080aba03..100370a4 100644
+index b63be28c..90d9e114 100644
--- a/src/assistant/assistant/assistant.pro
+++ b/src/assistant/assistant/assistant.pro
@@ -1,4 +1,4 @@
@@ -25,7 +25,7 @@ index 080aba03..100370a4 100644
BROWSER = qtwebkit
} else {
BROWSER = qtextbrowser
-@@ -75,7 +75,7 @@ SOURCES += aboutdialog.cpp \
+@@ -77,7 +77,7 @@ SOURCES += aboutdialog.cpp \
openpagesmanager.cpp \
openpagesswitcher.cpp
diff --git a/external/meta-qt5/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch b/external/meta-qt5/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch
index 7be76a30..f8bde420 100644
--- a/external/meta-qt5/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch
@@ -1,60 +1,41 @@
-From 1b52ee8efd23b61cae9ab843efd75ced21fed04f Mon Sep 17 00:00:00 2001
-From: Cody P Schafer <dev@codyps.com>
-Date: Thu, 9 Jul 2015 11:28:19 -0400
+From 2d76f5a7770076eccd55dec4a3f1f63b931a566c Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Mon, 18 Feb 2019 10:45:03 +0200
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(-)
+ src/linguist/Qt5LinguistToolsConfig.cmake.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/linguist/Qt5LinguistToolsConfig.cmake.in b/src/linguist/Qt5LinguistToolsConfig.cmake.in
-index 4318b16f..2e3b70fa 100644
+index 4318b16f..f957a384 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)
+@@ -47,7 +47,7 @@ if (NOT TARGET Qt5::lrelease)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lrelease$$CMAKE_BIN_SUFFIX\")
--!!ELSE
+ !!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}lrelease$$CMAKE_BIN_SUFFIX\")
--!!ENDIF
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease${OE_QMAKE_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)
+@@ -62,7 +62,7 @@ if (NOT TARGET Qt5::lupdate)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lupdate$$CMAKE_BIN_SUFFIX\")
--!!ELSE
+ !!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}lupdate$$CMAKE_BIN_SUFFIX\")
--!!ENDIF
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate${OE_QMAKE_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)
+@@ -77,7 +77,7 @@ if (NOT TARGET Qt5::lconvert)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
set(imported_location \"${_qt5_linguisttools_install_prefix}/$${CMAKE_BIN_DIR}lconvert$$CMAKE_BIN_SUFFIX\")
--!!ELSE
+ !!ELSE
- set(imported_location \"$${CMAKE_BIN_DIR}lconvert$$CMAKE_BIN_SUFFIX\")
--!!ENDIF
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lconvert${OE_QMAKE_BIN_SUFFIX}\")
+ !!ENDIF
_qt5_LinguistTools_check_file_exists(${imported_location})
- set_target_properties(Qt5::lconvert PROPERTIES
diff --git a/external/meta-qt5/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch b/external/meta-qt5/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch
new file mode 100644
index 00000000..06eec226
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch
@@ -0,0 +1,25 @@
+From ffbd58e5a6c709592fb97a6d033820556b76ab53 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 14 Dec 2019 18:36:49 -0800
+Subject: [PATCH] src.pro: Add option noqdoc to disable qdoc builds
+
+it needs clang on host, so lets separate it out
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/src.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/src.pro b/src/src.pro
+index 5c256ea3..196c34c7 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -25,7 +25,7 @@ qtConfig(library) {
+
+ include($$OUT_PWD/qdoc/qtqdoc-config.pri)
+ QT_FOR_CONFIG += qdoc-private
+-qtConfig(qdoc): qtConfig(thread): SUBDIRS += qdoc
++qtConfig(qdoc): qtConfig(thread):!contains(CONFIG, noqdoc): SUBDIRS += qdoc
+
+ !android|android_app: SUBDIRS += qtpaths
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qttools/run-ptest b/external/meta-qt5/recipes-qt/qt5/qttools/run-ptest
deleted file mode 100644
index 5cd5e27e..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qttools/run-ptest
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-./tst_qtdiag
-./tst_qtattributionsscanner
diff --git a/external/meta-qt5/recipes-qt/qt5/qttools_git.bb b/external/meta-qt5/recipes-qt/qt5/qttools_git.bb
index 2885d9e4..fa42d227 100644
--- a/external/meta-qt5/recipes-qt/qt5/qttools_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qttools_git.bb
@@ -1,6 +1,5 @@
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 )"
@@ -13,32 +12,43 @@ LIC_FILES_CHKSUM = " \
"
DEPENDS += "qtbase qtdeclarative qtxmlpatterns"
-
-# Patches from https://github.com/meta-qt5/qttools/commits/b5.11
-# 5.11.meta-qt5.6
+# Patches from https://github.com/meta-qt5/qttools/commits/b5.14
+# 5.14.meta-qt5.1
SRC_URI += " \
file://0001-add-noqtwebkit-configuration.patch \
file://0002-linguist-tools-cmake-allow-overriding-the-location-f.patch \
+ file://0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch \
"
FILES_${PN}-tools += "${datadir}${QT_DIR_NAME}/phrasebooks"
FILES_${PN}-examples = "${datadir}${QT_DIR_NAME}/examples"
PACKAGECONFIG ??= ""
+PACKAGECONFIG_append_toolchain-clang = " clang"
+
PACKAGECONFIG[qtwebkit] = ",,qtwebkit"
+PACKAGECONFIG[clang] = ",,clang"
+
+COMPATIBLE_HOST_toolchain-clang_riscv32 = "null"
+COMPATIBLE_HOST_toolchain-clang_riscv64 = "null"
+
+export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_BINDIR}/llvm-config"
+
+TOOLSTOBUILD += "linguist/lconvert linguist/lrelease linguist/lupdate pixeltool qtdiag qtpaths qtplugininfo"
+TOOLSTOBUILD += "${@bb.utils.contains('PACKAGECONFIG', 'clang', 'qdoc', '', d)}"
+TOOLSFORTARGET = "pixeltool qtdiag qtpaths qtplugininfo"
+TOOLSFORHOST = "linguist ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'qdoc', '', d)}"
EXTRA_QMAKEVARS_PRE += " \
- CONFIG-=config_clang \
${@bb.utils.contains('PACKAGECONFIG', 'qtwebkit', '', 'CONFIG+=noqtwebkit', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'CONFIG+=disable_external_rpath', 'CONFIG+=noqdoc', d)} \
+"
+EXTRA_QMAKEVARS_PRE_append_class-native = " CONFIG+=config_clang_done CONFIG-=config_clang"
+EXTRA_QMAKEVARS_PRE_append_class-nativesdk = " CONFIG+=config_clang_done CONFIG-=config_clang"
+EXTRA_QMAKEVARS_PRE_append_class-target = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'CONFIG+=config_clang', 'CONFIG+=config_clang_done CONFIG-=config_clang', d)} \
"
-SRCREV = "ddc4fba789c21bd0ebca180fa9d7cde399a49e37"
+SRCREV = "9d5d92a49256af65a85fa69b58e6744c2722321b"
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/external/meta-qt5/recipes-qt/qt5/qttranslations_git.bb b/external/meta-qt5/recipes-qt/qt5/qttranslations_git.bb
index 6689ab14..9b72798d 100644
--- a/external/meta-qt5/recipes-qt/qt5/qttranslations_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qttranslations_git.bb
@@ -10,7 +10,7 @@ DEPENDS += "qtbase qttools-native"
do_install_append() {
# remove qtquick1 translations - qtquick1 is gone
- for transfile in `find ${D}/${OE_QMAKE_PATH_TRANSLATIONS} -name qtquick1_*.qm -o -name qt_*.qm ! -name qt_help_*.qm`; do
+ for transfile in `find ${D}/${OE_QMAKE_PATH_TRANSLATIONS} -name qt_*.qm ! -name qt_help_*.qm`; do
rm $transfile
done
}
@@ -19,7 +19,6 @@ PACKAGES =. " \
${PN}-assistant \
${PN}-designer \
${PN}-linguist \
- ${PN}-qmlviewer \
${PN}-qtconnectivity \
${PN}-qtmultimedia \
${PN}-qtlocation \
@@ -47,10 +46,6 @@ 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 \
"
@@ -103,4 +98,4 @@ FILES_${PN}-qthelp = " \
${OE_QMAKE_PATH_TRANSLATIONS}/qt_help_*.qm \
"
-SRCREV = "ed5110171ca294207f341f46610c716170c06282"
+SRCREV = "c14fdb76539156836eb3d1c1a3d6b6875550c24c"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtvirtualkeyboard_git.bb b/external/meta-qt5/recipes-qt/qt5/qtvirtualkeyboard_git.bb
index 52d60ff5..1fe9c843 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtvirtualkeyboard_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtvirtualkeyboard_git.bb
@@ -19,23 +19,45 @@ 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-bg_BG] = "CONFIG+=lang-bg_BG"
+PACKAGECONFIG[lang-cs_CZ] = "CONFIG+=lang-cs_CZ"
PACKAGECONFIG[lang-da_DK] = "CONFIG+=lang-da_DK"
PACKAGECONFIG[lang-de_DE] = "CONFIG+=lang-de_DE"
+PACKAGECONFIG[lang-el_GR] = "CONFIG+=lang-el_GR"
PACKAGECONFIG[lang-en_GB] = "CONFIG+=lang-en_GB"
+PACKAGECONFIG[lang-en_US] = "CONFIG+=lang-en_US"
PACKAGECONFIG[lang-es_ES] = "CONFIG+=lang-es_ES"
+PACKAGECONFIG[lang-es_MX] = "CONFIG+=lang-es_MX"
+PACKAGECONFIG[lang-et_EE] = "CONFIG+=lang-et_EE"
PACKAGECONFIG[lang-fa_FA] = "CONFIG+=lang-fa_FA"
PACKAGECONFIG[lang-fi_FI] = "CONFIG+=lang-fi_FI"
+PACKAGECONFIG[lang-fr_CA] = "CONFIG+=lang-fr_CA"
PACKAGECONFIG[lang-fr_FR] = "CONFIG+=lang-fr_FR"
+PACKAGECONFIG[lang-he_IL] = "CONFIG+=lang-he_IL"
PACKAGECONFIG[lang-hi_IN] = "CONFIG+=lang-hi_IN"
+PACKAGECONFIG[lang-hr_HR] = "CONFIG+=lang-hr_HR"
+PACKAGECONFIG[lang-hu_HU] = "CONFIG+=lang-hu_HU"
+PACKAGECONFIG[lang-id_ID] = "CONFIG+=lang-id_ID"
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-ms_MY] = "CONFIG+=lang-ms_MY"
PACKAGECONFIG[lang-nb_NO] = "CONFIG+=lang-nb_NO"
+PACKAGECONFIG[lang-nl_NL] = "CONFIG+=lang-nl_NL"
PACKAGECONFIG[lang-pl_PL] = "CONFIG+=lang-pl_PL"
+PACKAGECONFIG[lang-pt_BR] = "CONFIG+=lang-pt_BR"
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-sk_SK] = "CONFIG+=lang-sk_SK"
+PACKAGECONFIG[lang-sl_SI] = "CONFIG+=lang-sl_SI"
+PACKAGECONFIG[lang-sq_AL] = "CONFIG+=lang-sq_AL"
+PACKAGECONFIG[lang-sr_SP] = "CONFIG+=lang-sr_SP"
PACKAGECONFIG[lang-sv_SE] = "CONFIG+=lang-sv_SE"
+PACKAGECONFIG[lang-th_TH] = "CONFIG+=lang-th_TH"
+PACKAGECONFIG[lang-tr_TR] = "CONFIG+=lang-tr_TR"
+PACKAGECONFIG[lang-uk_UA] = "CONFIG+=lang-uk_UA"
+PACKAGECONFIG[lang-vi_VN] = "CONFIG+=lang-vi_VN"
PACKAGECONFIG[lang-zh_CN] = "CONFIG+=lang-zh_CN"
PACKAGECONFIG[lang-zh_TW] = "CONFIG+=lang-zh_TW"
@@ -49,4 +71,4 @@ FILES_${PN} += "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/lipi_toolkit"
DEPENDS += "qtbase qtdeclarative qtmultimedia qtquickcontrols qtsvg qtxmlpatterns qtdeclarative-native"
-SRCREV = "a8cab520dc7bedff73ec60a5a189b21cdf01f083"
+SRCREV = "bc84e924a2da7ab515900355dcda968d56d1644e"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch b/external/meta-qt5/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch
new file mode 100644
index 00000000..b21cb5a7
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch
@@ -0,0 +1,27 @@
+From e1c8cf94727583c666efe3e6852fa60fba9a652b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 6 Oct 2019 21:44:38 -0700
+Subject: [PATCH] tst_seatv4: Include <array>
+
+build fails with libc++ otherwise
+
+tests/auto/client/seatv4/tst_seatv4.cpp:330:43: error: implicit instantiation of undefined template 'std::__1::array<const char *, 4>'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/auto/client/seatv4/tst_seatv4.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/auto/client/seatv4/tst_seatv4.cpp b/tests/auto/client/seatv4/tst_seatv4.cpp
+index 2e17bef8..df78ba69 100644
+--- a/tests/auto/client/seatv4/tst_seatv4.cpp
++++ b/tests/auto/client/seatv4/tst_seatv4.cpp
+@@ -36,7 +36,7 @@
+ #include <QtWaylandClient/private/qwaylanddisplay_p.h>
+ #include <QtWaylandClient/private/qwaylandintegration_p.h>
+ #endif
+-
++#include <array>
+ using namespace MockCompositor;
+
+ // wl_seat version 5 was introduced in wayland 1.10, and although that's pretty old,
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwayland_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwayland_git.bb
index 1524f5f8..fbd1b6f5 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwayland_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwayland_git.bb
@@ -13,6 +13,10 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
"
+# Patches from https://github.com/meta-qt5/qtwayland/commits/b5.14
+# 5.14.meta-qt5.1
+SRC_URI += "file://0001-tst_seatv4-Include-array.patch"
+
PACKAGECONFIG ?= " \
wayland-client \
wayland-server \
@@ -32,44 +36,15 @@ PACKAGECONFIG[xcomposite-egl] = "-feature-xcomposite-egl,-no-feature-xcomposite-
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"
+PACKAGECONFIG[wayland-drm-egl-server-buffer] = "-feature-wayland-drm-egl-server-buffer,-no-feature-wayland-drm-egl-server-buffer,libdrm virtual/egl"
+PACKAGECONFIG[wayland-libhybris-egl-server-buffer] = "-feature-wayland-libhybris-egl-server-buffer,-no-feature-wayland-libhybris-egl-server-buffer,libhybris"
EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
-SRCREV = "9ce3088d226fddc18bcac170fa5cc5be3c29e371"
+SRCREV = "af3976e5e788392ab2b0299c11036c18493d8d40"
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)}"
-
-# Since version 5.11.2 some private headers are not installed. Work around
-# until fixed upstream. See https://bugreports.qt.io/browse/QTBUG-71340 for
-# further details
-QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY ?= "1"
-# First 6 characters before first + (e.g. 5.11.3-+git) or - (e.g. 5.11.3-2)
-SHRT_VER ?= "${@d.getVar('PV').split('+')[0].split('-')[0]}"
-do_install_append() {
- if [ -d "${B}/src/client" -a "${QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY}" = "1" -a -d "${D}${includedir}/QtWaylandClient/${SHRT_VER}/QtWaylandClient/private/" ]; then
- for header in `find ${B}/src/client -name '*wayland-*.h'`; do
- header_base=`basename $header`
- dest="${D}${includedir}/QtWaylandClient/${SHRT_VER}/QtWaylandClient/private/$header_base"
- if [ ! -e "$dest" ]; then
- echo "Manual install: $header_base to $dest"
- install -m 644 "$header" "$dest"
- fi
- done
- fi
- if [ -d "${B}/src/compositor" -a "${QTWAYLAND_INSTALL_PRIVATE_HEADERS_MANUALLY}" = "1" -a -d "${D}${includedir}/QtCompositor/${SHRT_VER}/QtCompositor/private/" ]; then
- for header in `find ${B}/src/compositor -name '*wayland-*.h'`; do
- header_base=`basename $header`
- dest="${D}${includedir}/QtCompositor/${SHRT_VER}/QtCompositor/private/$header_base"
- if [ ! -e "$dest" ]; then
- echo "Manual install: $header_base to $dest"
- install -m 644 "$header" "$dest"
- fi
- done
- fi
-}
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb
index 7aa6cc63..f66f2048 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebchannel_git.bb
@@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtdeclarative qtwebsockets"
-SRCREV = "94fee0eaa3a5ce98bae8e5d68c91c0366fa94cdc"
+SRCREV = "d2c16a3e7e090c667dbbd409e35df29b498914e0"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
index 86f37e1a..a1298f36 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
@@ -1,4 +1,4 @@
-From 7c9b995ee8bc8798e41a14cb8007c06073006e64 Mon Sep 17 00:00:00 2001
+From fe603fbecb5731febc392b51bbbee1090be243d6 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
@@ -13,12 +13,26 @@ for the qmakes's host architecture.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
---
+ src/buildtools/config/linux.pri | 2 +-
src/buildtools/configure_host.pro | 14 +++++++-------
- src/core/config/linux.pri | 2 +-
- 2 files changed, 8 insertions(+), 8 deletions(-)
+ src/buildtools/gn.pro | 4 ++--
+ 3 files changed, 10 insertions(+), 10 deletions(-)
+diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri
+index ee08f81b..297a6862 100644
+--- a/src/buildtools/config/linux.pri
++++ b/src/buildtools/config/linux.pri
+@@ -124,7 +124,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/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro
-index dd0d3e32..70161c82 100644
+index dd0d3e32..6312c867 100644
--- a/src/buildtools/configure_host.pro
+++ b/src/buildtools/configure_host.pro
@@ -4,7 +4,7 @@ TEMPLATE = aux
@@ -37,9 +51,9 @@ index dd0d3e32..70161c82 100644
-" cc = \"$$which($$QMAKE_CC)\" " \
-" cxx = \"$$which($$QMAKE_CXX)\" " \
-" ld = \"$$which($$QMAKE_LINK)\" " \
-+" cc = \"$$which(gcc)\" " \
-+" cxx = \"$$which(g++)\" " \
-+" ld = \"$$which(g++)\" " \
++" cc = \"$$which($$CC_host)\" " \
++" cxx = \"$$which($$CXX_host)\" " \
++" ld = \"$$which($$CXX_host)\" " \
" ar = \"$$which(ar)\" " \
" nm = \"$$which(nm)\" " \
" extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \
@@ -50,22 +64,24 @@ index dd0d3e32..70161c82 100644
-" cc = \"$$which($$QMAKE_CC)\" " \
-" cxx = \"$$which($$QMAKE_CXX)\" " \
-" ld = \"$$which($$QMAKE_LINK)\" " \
-+" cc = \"$$which(gcc)\" " \
-+" cxx = \"$$which(g++)\" " \
-+" ld = \"$$which(g++)\" " \
++" cc = \"$$which($$CC_host)\" " \
++" cxx = \"$$which($$CXX_host)\" " \
++" ld = \"$$which($$CXX_host)\" " \
" ar = \"$$which(ar)\" " \
" nm = \"$$which(nm)\" " \
" toolchain_args = { " \
-diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
-index 4ade2827..cad3d7bf 100644
---- a/src/core/config/linux.pri
-+++ b/src/core/config/linux.pri
-@@ -92,7 +92,7 @@ contains(QT_ARCH, "mips") {
+diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
+index 033202e6..a8ca6567 100644
+--- a/src/buildtools/gn.pro
++++ b/src/buildtools/gn.pro
+@@ -19,8 +19,8 @@ build_pass|!debug_and_release {
+ gn_bootstrap = $$system_path($$absolute_path(gn/build/gen.py, $$src_3rd_party_dir))
+
+ gn_gen_args = --no-last-commit-position --out-path $$out_path \
+- --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
+- --ld \"$$which($$QMAKE_LINK)\"
++ --cc \"$$which($$CC_host)\" --cxx \"$$which($$CXX_host)\" \
++ --ld \"$$which($$CXX_host)\" --ar \"$$which(ar)\"
+
+ msvc:!clang_cl: gn_gen_args += --use-lto
- 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/external/meta-qt5/recipes-qt/qt5/qtwebengine/0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch
deleted file mode 100644
index 5ae32d59..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 3eaf551ec5f68933c636404945e6404e2508160b Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sun, 10 Jun 2018 10:26:17 +0000
-Subject: [PATCH] chromium_overrides.cpp: Fix build with plugins and ozone
- enabled
-
-* otherwise it fails with:
- | make[3]: Entering directory '/OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core'
-| creating linker version script QtWebEngineCore.version
-| rm -f libQt5WebEngineCore.so.5.10.1 libQt5WebEngineCore.so libQt5WebEngineCore.so.5 libQt5WebEngineCore.so.5.10
-| linking ../../lib/libQt5WebEngineCore.so.5.10.1
-| /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/recipe-sysroot-native/usr/bin/i586-webos-linux/../../libexec/i586-webos-linux/gcc/i586-webos-linux/7.3.0/ld: error: /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core/release/obj/content/browser/browser/pepper_truetype_font_list_ozone.o: multiple definition of 'content::GetFontFamilies_SlowBlocking(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)'
-| /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/recipe-sysroot-native/usr/bin/i586-webos-linux/../../libexec/i586-webos-linux/gcc/i586-webos-linux/7.3.0/ld: /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core/release/obj/QtWebEngineCore/chromium_overrides.o: previous definition here
-| /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/recipe-sysroot-native/usr/bin/i586-webos-linux/../../libexec/i586-webos-linux/gcc/i586-webos-linux/7.3.0/ld: error: /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core/release/obj/content/browser/browser/pepper_truetype_font_list_ozone.o: multiple definition of 'content::GetFontsInFamily_SlowBlocking(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<ppapi::proxy::SerializedTrueTypeFontDesc, std::allocator<ppapi::proxy::SerializedTrueTypeFontDesc> >*)'
-| /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/recipe-sysroot-native/usr/bin/i586-webos-linux/../../libexec/i586-webos-linux/gcc/i586-webos-linux/7.3.0/ld: /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core/release/obj/QtWebEngineCore/chromium_overrides.o: previous definition here
-| collect2: error: ld returned 1 exit status
-| Makefile.core_module:74: recipe for target '../../lib/libQt5WebEngineCore.so.5.10.1' failed
-| make[3]: *** [../../lib/libQt5WebEngineCore.so.5.10.1] Error 1
-| make[3]: Leaving directory '/OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core'
-| Makefile:122: recipe for target 'sub-core_module-pro-make_first' failed
-| make[2]: *** [sub-core_module-pro-make_first] Error 2
-| make[2]: Leaving directory '/OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src/core'
-| Makefile:78: recipe for target 'sub-core-make_first' failed
-| make[1]: *** [sub-core-make_first] Error 2
-| make[1]: Leaving directory '/OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/build/src'
-| Makefile:46: recipe for target 'sub-src-make_first' failed
-| make: *** [sub-src-make_first] Error 2
-| ERROR: oe_runmake failed
-| WARNING: /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/temp/run.do_compile.10122:1 exit 1 from 'exit 1'
-| ERROR: Function failed: do_compile (log file is located at /OE/build/owpb/webos-ports/tmp-glibc/work/i586-webos-linux/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/temp/log.do_compile.10122)
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
----
- src/core/chromium_overrides.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/chromium_overrides.cpp b/src/core/chromium_overrides.cpp
-index 8f6687ff..994e2799 100644
---- a/src/core/chromium_overrides.cpp
-+++ b/src/core/chromium_overrides.cpp
-@@ -159,7 +159,7 @@ std::unique_ptr<base::ListValue> GetFontList_SlowBlocking()
- return std::move(font_list);
- }
-
--#if BUILDFLAG(ENABLE_PLUGINS)
-+#if BUILDFLAG(ENABLE_PLUGINS) && !defined(USE_OZONE)
- // content/browser/renderer_host/pepper/pepper_truetype_font_list.h
- void GetFontFamilies_SlowBlocking(std::vector<std::string> *font_families)
- {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch
index a0a850d5..df52bdc8 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch
@@ -1,4 +1,4 @@
-From df92af3dd48877c6a58887de563e65279d213a50 Mon Sep 17 00:00:00 2001
+From 455479c661d2ed39882842a623b0aec29bd3c3d9 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
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0004-musl-link-against-libexecinfo.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0004-musl-link-against-libexecinfo.patch
index 489971ae..337c14ac 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0004-musl-link-against-libexecinfo.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0004-musl-link-against-libexecinfo.patch
@@ -1,4 +1,4 @@
-From 0c440d91b394d13188803800b968db28309c1d82 Mon Sep 17 00:00:00 2001
+From 507d6323fe871cee981155675cb5ef7cbd253db1 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
@@ -10,10 +10,10 @@ Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/core_module.pro b/src/core/core_module.pro
-index d21985e6..eeebeb4f 100644
+index 4b9268e1..be04b160 100644
--- a/src/core/core_module.pro
+++ b/src/core/core_module.pro
-@@ -54,7 +54,7 @@ linux {
+@@ -58,7 +58,7 @@ linux {
POST_TARGETDEPS += $$NINJA_TARGETDEPS
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/0005-mkspecs-Allow-builds-with-libc-glibc.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0005-mkspecs-Allow-builds-with-libc-glibc.patch
new file mode 100644
index 00000000..06c659c9
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/0005-mkspecs-Allow-builds-with-libc-glibc.patch
@@ -0,0 +1,26 @@
+From 6d2e83489770c2eae6d15d06ca9c04667140bb84 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Nov 2019 19:53:59 -0800
+Subject: [PATCH] mkspecs: Allow builds with libc != glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/buildtools/config/support.pri | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri
+index 5bdd808d..19540787 100644
+--- a/src/buildtools/config/support.pri
++++ b/src/buildtools/config/support.pri
+@@ -89,11 +89,6 @@ defineTest(qtwebengine_checkErrorForLinux) {
+ return(false)
+ }
+
+- !qtConfig(webengine-system-glibc) {
+- qtwebengine_skipBuild("A suitable version >= 2.27 of libc required to build QtWebEngine could not be found.")
+- return(false)
+- }
+-
+ !qtConfig(webengine-system-khr) {
+ qtwebengine_skipBuild("Khronos development headers required to build QtWebEngine are missing (see mesa/libegl1-mesa-dev)")
+ return(false)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-Force-host-toolchain-configuration.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-Force-host-toolchain-configuration.patch
deleted file mode 100644
index 8bf2140b..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-Force-host-toolchain-configuration.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a80fc13086a493cc543e29c5d10e976ac7f680d4 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 93c6446f28c..0fe7e6737d2 100755
---- a/chromium/tools/gn/bootstrap/bootstrap.py
-+++ b/chromium/tools/gn/bootstrap/bootstrap.py
-@@ -352,10 +352,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/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch
index f80f7b0a..ff2cf2ed 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch
@@ -1,4 +1,4 @@
-From 70c519aa0eb4da6565ad78914a8687b6f5bf1bb8 Mon Sep 17 00:00:00 2001
+From 8dc7d83d58f6f036d021ed27dd05322b654e21bf 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
@@ -14,14 +14,14 @@ 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 +++++++++
+ gn/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 bab07c5d2bb..8f889aebc18 100644
---- a/chromium/tools/gn/ninja_action_target_writer.cc
-+++ b/chromium/tools/gn/ninja_action_target_writer.cc
-@@ -117,9 +117,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() {
+diff --git a/gn/tools/gn/ninja_action_target_writer.cc b/gn/tools/gn/ninja_action_target_writer.cc
+index 7e945c0de0e..3deb587668c 100644
+--- a/gn/tools/gn/ninja_action_target_writer.cc
++++ b/gn/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;
@@ -30,7 +30,7 @@ index bab07c5d2bb..8f889aebc18 100644
+ //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)
++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos)
+ rspfile = rspfile.substr(0,pos);
+
if (!target_->sources().empty())
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-stack-pointer-clobber.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-stack-pointer-clobber.patch
new file mode 100644
index 00000000..e2e86212
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-stack-pointer-clobber.patch
@@ -0,0 +1,49 @@
+From dcc7962a9e9eb8fc10728df0b72e91794d1ee9d9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 23 Dec 2018 16:58:04 -0800
+Subject: [PATCH] chromium: stack pointer clobber
+
+Do not add stack pointer to clobber list
+
+it was being ignored until gcc 9.0 became capable
+of flagging this silent ignoring via [1]
+
+[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813<Paste>
+
+Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/linux-syscall-support/+/1390160]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/lss/linux_syscall_support.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h
+index 9276f5627af..622cc1fbf7e 100644
+--- a/chromium/third_party/lss/linux_syscall_support.h
++++ b/chromium/third_party/lss/linux_syscall_support.h
+@@ -2012,7 +2012,7 @@ struct kernel_statfs {
+ : "i" (__NR_##name), "ri" ((long)(arg1)), \
+ "c" ((long)(arg2)), "d" ((long)(arg3)), \
+ "S" ((long)(arg4)), "D" ((long)(arg5)) \
+- : "esp", "memory"); \
++ : "memory"); \
+ LSS_RETURN(type,__res); \
+ }
+ #undef _syscall6
+@@ -2034,7 +2034,7 @@ struct kernel_statfs {
+ : "i" (__NR_##name), "0" ((long)(&__s)), \
+ "c" ((long)(arg2)), "d" ((long)(arg3)), \
+ "S" ((long)(arg4)), "D" ((long)(arg5)) \
+- : "esp", "memory"); \
++ : "memory"); \
+ LSS_RETURN(type,__res); \
+ }
+ LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
+@@ -2120,7 +2120,7 @@ struct kernel_statfs {
+ : "0"(-EINVAL), "i"(__NR_clone),
+ "m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
+ "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
+- : "esp", "memory", "ecx", "edx", "esi", "edi");
++ : "memory", "ecx", "edx", "esi", "edi");
+ LSS_RETURN(int, __res);
+ }
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Fix-build-with-gcc8.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Fix-build-with-gcc8.patch
deleted file mode 100644
index 5323a0f1..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Fix-build-with-gcc8.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From ad0dd667c3459538149de4479d18c1793af91d43 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 5 Jun 2018 13:58:16 +0000
-Subject: [PATCH] chromium: Fix build with gcc8
-
----
- chromium/mojo/public/c/system/buffer.h | 2 +-
- chromium/mojo/public/c/system/data_pipe.h | 2 +-
- chromium/mojo/public/c/system/message_pipe.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/chromium/mojo/public/c/system/buffer.h b/chromium/mojo/public/c/system/buffer.h
-index 09f6d285f3e..e516a09e498 100644
---- a/chromium/mojo/public/c/system/buffer.h
-+++ b/chromium/mojo/public/c/system/buffer.h
-@@ -35,7 +35,7 @@ const MojoCreateSharedBufferOptionsFlags
- ((MojoCreateSharedBufferOptionsFlags)0)
- #endif
-
--MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
-+MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 4 || MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
- struct MOJO_ALIGNAS(8) MojoCreateSharedBufferOptions {
- uint32_t struct_size;
- MojoCreateSharedBufferOptionsFlags flags;
-diff --git a/chromium/mojo/public/c/system/data_pipe.h b/chromium/mojo/public/c/system/data_pipe.h
-index 62adbea1ea6..76225858ba8 100644
---- a/chromium/mojo/public/c/system/data_pipe.h
-+++ b/chromium/mojo/public/c/system/data_pipe.h
-@@ -46,7 +46,7 @@ const MojoCreateDataPipeOptionsFlags MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE =
- ((MojoCreateDataPipeOptionsFlags)0)
- #endif
-
--MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
-+MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 4 || MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
- struct MOJO_ALIGNAS(8) MojoCreateDataPipeOptions {
- MOJO_ALIGNAS(4) uint32_t struct_size;
- MOJO_ALIGNAS(4) MojoCreateDataPipeOptionsFlags flags;
-diff --git a/chromium/mojo/public/c/system/message_pipe.h b/chromium/mojo/public/c/system/message_pipe.h
-index f0f69d1025f..364a02971e2 100644
---- a/chromium/mojo/public/c/system/message_pipe.h
-+++ b/chromium/mojo/public/c/system/message_pipe.h
-@@ -44,7 +44,7 @@ const MojoCreateMessagePipeOptionsFlags
- ((MojoCreateMessagePipeOptionsFlags)0)
- #endif
-
--MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
-+MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 4 || MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
- struct MOJO_ALIGNAS(8) MojoCreateMessagePipeOptions {
- uint32_t struct_size;
- MojoCreateMessagePipeOptionsFlags flags;
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-fix-build-with-clang.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-fix-build-with-clang.patch
new file mode 100644
index 00000000..55f61d03
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-fix-build-with-clang.patch
@@ -0,0 +1,91 @@
+From e44d59aff5c23049ed765d872b167c27f9d2be23 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Feb 2019 19:28:59 -0800
+Subject: [PATCH] chromium: fix build with clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/build/config/compiler/BUILD.gn | 27 ++-----------------------
+ 1 file changed, 2 insertions(+), 25 deletions(-)
+
+diff --git a/chromium/build/config/compiler/BUILD.gn b/chromium/build/config/compiler/BUILD.gn
+index be485fd89b9..7179df05451 100644
+--- a/chromium/build/config/compiler/BUILD.gn
++++ b/chromium/build/config/compiler/BUILD.gn
+@@ -773,8 +773,6 @@ config("compiler_cpu_abi") {
+ }
+ } else if (current_cpu == "arm") {
+ if (is_clang && !is_android && !is_nacl) {
+- cflags += [ "--target=arm-linux-gnueabihf" ]
+- ldflags += [ "--target=arm-linux-gnueabihf" ]
+ }
+ if (!is_nacl) {
+ cflags += [
+@@ -787,8 +785,6 @@ config("compiler_cpu_abi") {
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+@@ -797,9 +793,6 @@ config("compiler_cpu_abi") {
+ if (is_android) {
+ cflags += [ "--target=mipsel-linux-android" ]
+ ldflags += [ "--target=mipsel-linux-android" ]
+- } else {
+- cflags += [ "--target=mipsel-linux-gnu" ]
+- ldflags += [ "--target=mipsel-linux-gnu" ]
+ }
+ } else {
+ cflags += [ "-EL" ]
+@@ -878,10 +871,7 @@ config("compiler_cpu_abi") {
+ } else if (current_cpu == "mips" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+ if (custom_toolchain == "") {
+- if (is_clang) {
+- cflags += [ "--target=mips-linux-gnu" ]
+- ldflags += [ "--target=mips-linux-gnu" ]
+- } else {
++ if (!is_clang) {
+ cflags += [ "-EB" ]
+ ldflags += [ "-EB" ]
+ }
+@@ -928,9 +918,6 @@ config("compiler_cpu_abi") {
+ if (is_android) {
+ cflags += [ "--target=mips64el-linux-android" ]
+ ldflags += [ "--target=mips64el-linux-android" ]
+- } else {
+- cflags += [ "--target=mips64el-linux-gnuabi64" ]
+- ldflags += [ "--target=mips64el-linux-gnuabi64" ]
+ }
+ } else {
+ cflags += [
+@@ -987,10 +974,7 @@ config("compiler_cpu_abi") {
+ } else if (current_cpu == "mips64") {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+ if (custom_toolchain == "") {
+- if (is_clang) {
+- cflags += [ "--target=mips64-linux-gnuabi64" ]
+- ldflags += [ "--target=mips64-linux-gnuabi64" ]
+- } else {
++ if (!is_clang) {
+ cflags += [
+ "-EB",
+ "-mabi=64",
+@@ -1169,13 +1153,6 @@ config("compiler_deterministic") {
+ }
+ }
+ }
+-
+- # Tells the compiler not to use absolute paths when passing the default
+- # paths to the tools it invokes. We don't want this because we don't
+- # really need it and it can mess up the goma cache entries.
+- if (is_clang && !is_nacl) {
+- cflags += [ "-no-canonical-prefixes" ]
+- }
+ }
+
+ config("clang_revision") {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Exclude-CRC32-for-32bit-arm.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Exclude-CRC32-for-32bit-arm.patch
new file mode 100644
index 00000000..e5c1dcbd
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Exclude-CRC32-for-32bit-arm.patch
@@ -0,0 +1,33 @@
+From fc3765e4f2f8cff17a13736085a402425696e6e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 5 Feb 2019 14:32:20 -0800
+Subject: [PATCH] chromium: Exclude CRC32 for 32bit arm
+
+This fixes build issues during cross compiling for linux using clang
+
+Fixes
+src/3rdparty/chromium/third_party/zlib/crc32_simd.c:184: undefined reference to `__crc32d'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/zlib/BUILD.gn | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/third_party/zlib/BUILD.gn b/chromium/third_party/zlib/BUILD.gn
+index 29dda54ac20..6870dbb9f08 100644
+--- a/chromium/third_party/zlib/BUILD.gn
++++ b/chromium/third_party/zlib/BUILD.gn
+@@ -78,8 +78,11 @@ if (use_arm_neon_optimizations) {
+ # Disabled for iPhone, as described in DDI0487C_a_armv8_arm:
+ # "All implementations of the ARMv8.1 architecture are required to
+ # implement the CRC32* instructions. These are optional in ARMv8.0."
++ defines = []
+ if (!is_ios) {
+- defines = [ "CRC32_ARMV8_CRC32" ]
++ if (current_cpu == "arm64") {
++ defines += [ "CRC32_ARMV8_CRC32" ]
++ }
+ if (is_android) {
+ defines += [ "ARMV8_OS_ANDROID" ]
+ } else if (is_linux || is_chromeos) {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch
new file mode 100644
index 00000000..c9df775d
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch
@@ -0,0 +1,38 @@
+From 998a4037e9c057c9735d8b0df57c2eca5b452d0b Mon Sep 17 00:00:00 2001
+From: Johannes Pointner <johannes.pointner@br-automation.com>
+Date: Fri, 3 May 2019 09:12:38 +0200
+Subject: [PATCH] chromium: Do not try to set the guessed values for
+ march/mtune/float-abi OE config machinary has computed these values already
+ and fed it via compiler cmdline to chromium build
+
+I think upstream should check for the values on compiler cmdline
+before overriding these
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Johannes Pointner <johannes.pointner@br-automation.com>
+---
+ chromium/build/config/compiler/BUILD.gn | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/chromium/build/config/compiler/BUILD.gn b/chromium/build/config/compiler/BUILD.gn
+index 7179df05451..884c9714bbb 100644
+--- a/chromium/build/config/compiler/BUILD.gn
++++ b/chromium/build/config/compiler/BUILD.gn
+@@ -774,15 +774,6 @@ config("compiler_cpu_abi") {
+ } else if (current_cpu == "arm") {
+ if (is_clang && !is_android && !is_nacl) {
+ }
+- if (!is_nacl) {
+- cflags += [
+- "-march=$arm_arch",
+- "-mfloat-abi=$arm_float_abi",
+- ]
+- }
+- if (arm_tune != "") {
+- cflags += [ "-mtune=$arm_tune" ]
+- }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+ }
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
new file mode 100644
index 00000000..6a659ae9
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
@@ -0,0 +1,64 @@
+From 2ce7742c9dfde9ccbf2ede0db6359beb18c49189 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Thu, 8 Mar 2018 15:39:55 +0100
+Subject: [PATCH] chromium: aarch64 skia build fix
+
+Upstream-Status: Inappropriate
+
+GCC (tested rocko's 7.3.0) cannot find these intrinsics and the build fails:
+
+../../third_party/skia/src/opts/SkRasterPipeline_opts.h: In function 'neon::F neon::from_half(neon::U16)':
+../../third_party/skia/src/opts/SkRasterPipeline_opts.h:657:26: error: cannot convert 'neon::U16 {aka short unsigned int}' to 'float16x4_ t {aka __vector(4) __ fp16}' for argument '1' to '
+float32x4_t vcvt_f32_f16(float16x4_t)'
+ return vcvt_f32_f16(h);
+ ^
+../../third_party/skia/src/opts/SkRasterPipeline_opts.h: In function 'neon::U16 neon::to_half(neon::F)':
+../../third_party/skia/src/opts/SkRasterPipeline_opts.h:677:26: error: cannot convert 'neon::F {aka float}' to 'float32x4_t {aka __vector (4) float}' for argum ent '1' to 'float16x4_t vcvt
+_f16_f32(float32x4_t)'
+ return vcvt_f16_f32(f);
+ ^
+
+Upstream seems to have had similar issues according to
+https://skia-review.googlesource.com/c/skia/+/84222, but there is no fix at the
+moment.
+
+Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+---
+ .../skia/src/opts/SkRasterPipeline_opts.h | 17 ++---------------
+ 1 file changed, 2 insertions(+), 15 deletions(-)
+
+diff --git a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
+index b59506dcd6d..b8f22c948c0 100644
+--- a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
++++ b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
+@@ -972,13 +972,7 @@ SI F approx_powf(F x, F y) {
+ }
+
+ SI F from_half(U16 h) {
+-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
+- && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+- __fp16 fp16;
+- memcpy(&fp16, &h, sizeof(U16));
+- return float(fp16);
+-
+-#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
++#if defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+ return _mm256_cvtph_ps(h);
+
+ #else
+@@ -995,14 +989,7 @@ SI F from_half(U16 h) {
+ }
+
+ SI U16 to_half(F f) {
+-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
+- && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+- __fp16 fp16 = __fp16(f);
+- U16 u16;
+- memcpy(&u16, &fp16, sizeof(U16));
+- return u16;
+-
+-#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
++#if defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+ return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);
+
+ #else
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-fix-build-after-y2038-changes-in-glibc.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-fix-build-after-y2038-changes-in-glibc.patch
new file mode 100644
index 00000000..aeb496bd
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-fix-build-after-y2038-changes-in-glibc.patch
@@ -0,0 +1,28 @@
+From a0bd9300aa9c405216f504d602c7dd8d5b35eb21 Mon Sep 17 00:00:00 2001
+From: Jiri Slaby <jslaby@suse.cz>
+Date: Thu, 11 Jul 2019 09:35:13 +0200
+Subject: [PATCH] chromium: fix build after y2038 changes in glibc
+
+SIOCGSTAMP is defined in linux/sockios.h since kernel 5.2. Include that
+file wherever needed.
+
+Signed-off-by: Jiri Slaby <jslaby@suse.cz>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Upstream-Status: Pending
+---
+ chromium/third_party/webrtc/rtc_base/physical_socket_server.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc b/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
+index c1d6d26acc6..6de81b751dd 100644
+--- a/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
++++ b/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
+@@ -71,6 +71,7 @@ typedef void* SockOptArg;
+ #endif // WEBRTC_POSIX
+
+ #if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__)
++#include <linux/sockios.h>
+
+ int64_t GetSocketRecvTimestamp(int socket) {
+ struct timeval tv_ioctl;
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 00000000..0bd4a451
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,68 @@
+From b0d3cfec7837dcf818c08454a16eb44d78337a9f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 10:07:43 -0800
+Subject: [PATCH] chromium: Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ chromium/ui/events/ozone/evdev/event_converter_evdev.cc | 4 ++--
+ chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc | 6 +++---
+ chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.h | 5 +++++
+ 3 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/chromium/ui/events/ozone/evdev/event_converter_evdev.cc b/chromium/ui/events/ozone/evdev/event_converter_evdev.cc
+index 5684f4121be..10f6357e6b5 100644
+--- a/chromium/ui/events/ozone/evdev/event_converter_evdev.cc
++++ b/chromium/ui/events/ozone/evdev/event_converter_evdev.cc
+@@ -176,8 +176,8 @@ void EventConverterEvdev::SetPalmSuppressionCallback(
+ base::TimeTicks EventConverterEvdev::TimeTicksFromInputEvent(
+ const input_event& event) {
+ base::TimeTicks timestamp =
+- ui::EventTimeStampFromSeconds(event.time.tv_sec) +
+- base::TimeDelta::FromMicroseconds(event.time.tv_usec);
++ ui::EventTimeStampFromSeconds(event.input_event_sec) +
++ base::TimeDelta::FromMicroseconds(event.input_event_usec);
+ ValidateEventTimeClock(&timestamp);
+ return timestamp;
+ }
+diff --git a/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc b/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc
+index 363c3183e05..4fccfd62f84 100644
+--- a/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc
++++ b/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc
+@@ -59,11 +59,11 @@ void TouchEventLogEvdev::DumpLog(const char* filename) {
+ for (int i = 0; i < kDebugBufferSize; ++i) {
+ struct TouchEvent* te =
+ &logged_events_[(debug_buffer_tail_ + i) % kDebugBufferSize];
+- if (te->ev.time.tv_sec == 0 && te->ev.time.tv_usec == 0)
++ if (te->ev.input_event_sec == 0 && te->ev.input_event_usec == 0)
+ continue;
+ std::string event_string = base::StringPrintf(
+- "E: %ld.%06ld %04x %04x %d %d\n", te->ev.time.tv_sec,
+- te->ev.time.tv_usec, te->ev.type, te->ev.code, te->ev.value, te->slot);
++ "E: %ld.%06ld %04x %04x %d %d\n", te->ev.input_event_sec,
++ te->ev.input_event_usec, te->ev.type, te->ev.code, te->ev.value, te->slot);
+ report_content += event_string;
+ }
+ file.Write(0, report_content.c_str(), report_content.length());
+diff --git a/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.h b/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.h
+index ccd3a499a38..5a2da89d09a 100644
+--- a/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.h
++++ b/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.h
+@@ -14,6 +14,11 @@
+
+ #include "ui/events/ozone/evdev/events_ozone_evdev_export.h"
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ namespace ui {
+
+ class EventDeviceInfo;
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Include-cstddef-for-size_t-definition.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Include-cstddef-for-size_t-definition.patch
new file mode 100644
index 00000000..1f4a7c14
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Include-cstddef-for-size_t-definition.patch
@@ -0,0 +1,48 @@
+From ef41260060293cf53c279b675c470341fd635a4e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Dec 2019 15:41:16 -0800
+Subject: [PATCH] chromium: Include cstddef for size_t definition
+
+Include ctsdint for uintXX_t
+
+Fixes
+In file included from ../../../../git/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.cc:10:
+../../../../git/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:34:3: error: 'size_t' does not name a type
+ 34 | size_t stability_counter_;
+ | ^~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ccc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h | 1 +
+ .../third_party/webrtc/modules/video_coding/decoding_state.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+index 22528c94892..69e624e8b19 100644
+--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
+diff --git a/chromium/third_party/webrtc/modules/video_coding/decoding_state.h b/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+index b87fb2d0345..b3faffcfc79 100644
+--- a/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
++++ b/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+@@ -14,6 +14,7 @@
+ #include <map>
+ #include <set>
+ #include <vector>
++#include <cstdint>
+
+ namespace webrtc {
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch
new file mode 100644
index 00000000..352e553b
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch
@@ -0,0 +1,554 @@
+From d47414a793f9c1bf1eb01fd3a723b2bc871037de Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Jan 2020 17:13:55 -0800
+Subject: [PATCH] chromium: Move CharAllocator definition to a header file
+
+Fixes
+error: invalid application of 'sizeof' to an incomplete type 'cc::ListContainerHelper::CharAllocator'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/cc/base/list_container_helper.cc | 251 ---------------------
+ chromium/cc/base/list_container_helper.h | 255 ++++++++++++++++++++++
+ 2 files changed, 255 insertions(+), 251 deletions(-)
+
+diff --git a/chromium/cc/base/list_container_helper.cc b/chromium/cc/base/list_container_helper.cc
+index 3a4c0b6a2f9..89df57a7b8e 100644
+--- a/chromium/cc/base/list_container_helper.cc
++++ b/chromium/cc/base/list_container_helper.cc
+@@ -12,259 +12,8 @@
+ #include "base/logging.h"
+ #include "base/memory/aligned_memory.h"
+
+-namespace {
+-const size_t kDefaultNumElementTypesToReserve = 32;
+-} // namespace
+-
+ namespace cc {
+
+-// CharAllocator
+-////////////////////////////////////////////////////
+-// This class deals only with char* and void*. It does allocation and passing
+-// out raw pointers, as well as memory deallocation when being destroyed.
+-class ListContainerHelper::CharAllocator {
+- public:
+- // CharAllocator::InnerList
+- /////////////////////////////////////////////
+- // This class holds the raw memory chunk, as well as information about its
+- // size and availability.
+- struct InnerList {
+- InnerList(const InnerList&) = delete;
+- InnerList& operator=(const InnerList&) = delete;
+-
+- std::unique_ptr<char[], base::AlignedFreeDeleter> data;
+- // The number of elements in total the memory can hold. The difference
+- // between capacity and size is the how many more elements this list can
+- // hold.
+- size_t capacity;
+- // The number of elements have been put into this list.
+- size_t size;
+- // The size of each element is in bytes. This is used to move from between
+- // elements' memory locations.
+- size_t step;
+-
+- InnerList() : capacity(0), size(0), step(0) {}
+-
+- void Erase(char* position) {
+- // Confident that destructor is called by caller of this function. Since
+- // CharAllocator does not handle construction after
+- // allocation, it doesn't handle desctrution before deallocation.
+- DCHECK_LE(position, LastElement());
+- DCHECK_GE(position, Begin());
+- char* start = position + step;
+- std::copy(start, End(), position);
+-
+- --size;
+- // Decrease capacity to avoid creating not full not last InnerList.
+- --capacity;
+- }
+-
+- void InsertBefore(size_t alignment, char** position, size_t count) {
+- DCHECK_LE(*position, LastElement() + step);
+- DCHECK_GE(*position, Begin());
+-
+- // Adjust the size and capacity
+- size_t old_size = size;
+- size += count;
+- capacity = size;
+-
+- // Allocate the new data and update the iterator's pointer.
+- std::unique_ptr<char[], base::AlignedFreeDeleter> new_data(
+- static_cast<char*>(base::AlignedAlloc(size * step, alignment)));
+- size_t position_offset = *position - Begin();
+- *position = new_data.get() + position_offset;
+-
+- // Copy the data before the inserted segment
+- memcpy(new_data.get(), data.get(), position_offset);
+- // Copy the data after the inserted segment.
+- memcpy(new_data.get() + position_offset + count * step,
+- data.get() + position_offset, old_size * step - position_offset);
+- data = std::move(new_data);
+- }
+-
+- bool IsEmpty() const { return !size; }
+- bool IsFull() { return capacity == size; }
+- size_t NumElementsAvailable() const { return capacity - size; }
+-
+- void* AddElement() {
+- DCHECK_LT(size, capacity);
+- ++size;
+- return LastElement();
+- }
+-
+- void RemoveLast() {
+- DCHECK(!IsEmpty());
+- --size;
+- }
+-
+- char* Begin() const { return data.get(); }
+- char* End() const { return data.get() + size * step; }
+- char* LastElement() const { return data.get() + (size - 1) * step; }
+- char* ElementAt(size_t index) const { return data.get() + index * step; }
+- };
+-
+- CharAllocator(size_t alignment, size_t element_size, size_t element_count)
+- // base::AlignedAlloc does not accept alignment less than sizeof(void*).
+- : alignment_(std::max(sizeof(void*), alignment)),
+- element_size_(element_size),
+- size_(0),
+- last_list_index_(0),
+- last_list_(nullptr) {
+- // If this fails, then alignment of elements after the first could be wrong,
+- // and we need to pad sizes to fix that.
+- DCHECK_EQ(element_size % alignment, 0u);
+- AllocateNewList(element_count > 0 ? element_count
+- : kDefaultNumElementTypesToReserve);
+- last_list_ = storage_[last_list_index_].get();
+- }
+-
+- CharAllocator(const CharAllocator&) = delete;
+- ~CharAllocator() = default;
+-
+- CharAllocator& operator=(const CharAllocator&) = delete;
+-
+- void* Allocate() {
+- if (last_list_->IsFull()) {
+- // Only allocate a new list if there isn't a spare one still there from
+- // previous usage.
+- if (last_list_index_ + 1 >= storage_.size())
+- AllocateNewList(last_list_->capacity * 2);
+-
+- ++last_list_index_;
+- last_list_ = storage_[last_list_index_].get();
+- }
+-
+- ++size_;
+- return last_list_->AddElement();
+- }
+-
+- size_t alignment() const { return alignment_; }
+- size_t element_size() const { return element_size_; }
+- size_t list_count() const { return storage_.size(); }
+- size_t size() const { return size_; }
+- bool IsEmpty() const { return size() == 0; }
+-
+- size_t Capacity() const {
+- size_t capacity_sum = 0;
+- for (const auto& inner_list : storage_)
+- capacity_sum += inner_list->capacity;
+- return capacity_sum;
+- }
+-
+- void Clear() {
+- // Remove all except for the first InnerList.
+- DCHECK(!storage_.empty());
+- storage_.erase(storage_.begin() + 1, storage_.end());
+- last_list_index_ = 0;
+- last_list_ = storage_[0].get();
+- last_list_->size = 0;
+- size_ = 0;
+- }
+-
+- void RemoveLast() {
+- DCHECK(!IsEmpty());
+- last_list_->RemoveLast();
+- if (last_list_->IsEmpty() && last_list_index_ > 0) {
+- --last_list_index_;
+- last_list_ = storage_[last_list_index_].get();
+-
+- // If there are now two empty inner lists, free one of them.
+- if (last_list_index_ + 2 < storage_.size())
+- storage_.pop_back();
+- }
+- --size_;
+- }
+-
+- void Erase(PositionInCharAllocator* position) {
+- DCHECK_EQ(this, position->ptr_to_container);
+-
+- // Update |position| to point to the element after the erased element.
+- InnerList* list = storage_[position->vector_index].get();
+- char* item_iterator = position->item_iterator;
+- if (item_iterator == list->LastElement())
+- position->Increment();
+-
+- list->Erase(item_iterator);
+- // TODO(weiliangc): Free the InnerList if it is empty.
+- --size_;
+- }
+-
+- void InsertBefore(ListContainerHelper::Iterator* position, size_t count) {
+- if (!count)
+- return;
+-
+- // If |position| is End(), then append |count| elements at the end. This
+- // will happen to not invalidate any iterators or memory.
+- if (!position->item_iterator) {
+- // Set |position| to be the first inserted element.
+- Allocate();
+- position->vector_index = storage_.size() - 1;
+- position->item_iterator = storage_[position->vector_index]->LastElement();
+- // Allocate the rest.
+- for (size_t i = 1; i < count; ++i)
+- Allocate();
+- } else {
+- storage_[position->vector_index]->InsertBefore(
+- alignment_, &position->item_iterator, count);
+- size_ += count;
+- }
+- }
+-
+- InnerList* InnerListById(size_t id) const {
+- DCHECK_LT(id, storage_.size());
+- return storage_[id].get();
+- }
+-
+- size_t FirstInnerListId() const {
+- // |size_| > 0 means that at least one vector in |storage_| will be
+- // non-empty.
+- DCHECK_GT(size_, 0u);
+- size_t id = 0;
+- while (storage_[id]->size == 0)
+- ++id;
+- return id;
+- }
+-
+- size_t LastInnerListId() const {
+- // |size_| > 0 means that at least one vector in |storage_| will be
+- // non-empty.
+- DCHECK_GT(size_, 0u);
+- size_t id = storage_.size() - 1;
+- while (storage_[id]->size == 0)
+- --id;
+- return id;
+- }
+-
+- size_t NumAvailableElementsInLastList() const {
+- return last_list_->NumElementsAvailable();
+- }
+-
+- private:
+- void AllocateNewList(size_t list_size) {
+- std::unique_ptr<InnerList> new_list(new InnerList);
+- new_list->capacity = list_size;
+- new_list->size = 0;
+- new_list->step = element_size_;
+- new_list->data.reset(static_cast<char*>(
+- base::AlignedAlloc(list_size * element_size_, alignment_)));
+- storage_.push_back(std::move(new_list));
+- }
+-
+- std::vector<std::unique_ptr<InnerList>> storage_;
+- const size_t alignment_;
+- const size_t element_size_;
+-
+- // The number of elements in the list.
+- size_t size_;
+-
+- // The index of the last list to have had elements added to it, or the only
+- // list if the container has not had elements added since being cleared.
+- size_t last_list_index_;
+-
+- // This is equivalent to |storage_[last_list_index_]|.
+- InnerList* last_list_;
+-};
+-
+ // PositionInCharAllocator
+ //////////////////////////////////////////////////////
+ ListContainerHelper::PositionInCharAllocator::PositionInCharAllocator(
+diff --git a/chromium/cc/base/list_container_helper.h b/chromium/cc/base/list_container_helper.h
+index 31658bc8486..9e65013cbdb 100644
+--- a/chromium/cc/base/list_container_helper.h
++++ b/chromium/cc/base/list_container_helper.h
+@@ -8,9 +8,17 @@
+ #include <stddef.h>
+
+ #include <memory>
++#include <algorithm>
++#include <vector>
+
++#include "base/logging.h"
++#include "base/memory/aligned_memory.h"
+ #include "cc/base/base_export.h"
+
++namespace {
++const size_t kDefaultNumElementTypesToReserve = 32;
++} // namespace
++
+ namespace cc {
+
+ // Helper class for ListContainer non-templated logic. All methods are private,
+@@ -174,6 +182,253 @@ class CC_BASE_EXPORT ListContainerHelper final {
+ std::unique_ptr<CharAllocator> data_;
+ };
+
++// CharAllocator
++////////////////////////////////////////////////////
++// This class deals only with char* and void*. It does allocation and passing
++// out raw pointers, as well as memory deallocation when being destroyed.
++class ListContainerHelper::CharAllocator {
++ public:
++ // CharAllocator::InnerList
++ /////////////////////////////////////////////
++ // This class holds the raw memory chunk, as well as information about its
++ // size and availability.
++ struct InnerList {
++ InnerList(const InnerList&) = delete;
++ InnerList& operator=(const InnerList&) = delete;
++
++ std::unique_ptr<char[], base::AlignedFreeDeleter> data;
++ // The number of elements in total the memory can hold. The difference
++ // between capacity and size is the how many more elements this list can
++ // hold.
++ size_t capacity;
++ // The number of elements have been put into this list.
++ size_t size;
++ // The size of each element is in bytes. This is used to move from between
++ // elements' memory locations.
++ size_t step;
++
++ InnerList() : capacity(0), size(0), step(0) {}
++
++ void Erase(char* position) {
++ // Confident that destructor is called by caller of this function. Since
++ // CharAllocator does not handle construction after
++ // allocation, it doesn't handle desctrution before deallocation.
++ DCHECK_LE(position, LastElement());
++ DCHECK_GE(position, Begin());
++ char* start = position + step;
++ std::copy(start, End(), position);
++
++ --size;
++ // Decrease capacity to avoid creating not full not last InnerList.
++ --capacity;
++ }
++
++ void InsertBefore(size_t alignment, char** position, size_t count) {
++ DCHECK_LE(*position, LastElement() + step);
++ DCHECK_GE(*position, Begin());
++
++ // Adjust the size and capacity
++ size_t old_size = size;
++ size += count;
++ capacity = size;
++
++ // Allocate the new data and update the iterator's pointer.
++ std::unique_ptr<char[], base::AlignedFreeDeleter> new_data(
++ static_cast<char*>(base::AlignedAlloc(size * step, alignment)));
++ size_t position_offset = *position - Begin();
++ *position = new_data.get() + position_offset;
++
++ // Copy the data before the inserted segment
++ memcpy(new_data.get(), data.get(), position_offset);
++ // Copy the data after the inserted segment.
++ memcpy(new_data.get() + position_offset + count * step,
++ data.get() + position_offset, old_size * step - position_offset);
++ data = std::move(new_data);
++ }
++
++ bool IsEmpty() const { return !size; }
++ bool IsFull() { return capacity == size; }
++ size_t NumElementsAvailable() const { return capacity - size; }
++
++ void* AddElement() {
++ DCHECK_LT(size, capacity);
++ ++size;
++ return LastElement();
++ }
++
++ void RemoveLast() {
++ DCHECK(!IsEmpty());
++ --size;
++ }
++
++ char* Begin() const { return data.get(); }
++ char* End() const { return data.get() + size * step; }
++ char* LastElement() const { return data.get() + (size - 1) * step; }
++ char* ElementAt(size_t index) const { return data.get() + index * step; }
++ };
++
++ CharAllocator(size_t alignment, size_t element_size, size_t element_count)
++ // base::AlignedAlloc does not accept alignment less than sizeof(void*).
++ : alignment_(std::max(sizeof(void*), alignment)),
++ element_size_(element_size),
++ size_(0),
++ last_list_index_(0),
++ last_list_(nullptr) {
++ // If this fails, then alignment of elements after the first could be wrong,
++ // and we need to pad sizes to fix that.
++ DCHECK_EQ(element_size % alignment, 0u);
++ AllocateNewList(element_count > 0 ? element_count
++ : kDefaultNumElementTypesToReserve);
++ last_list_ = storage_[last_list_index_].get();
++ }
++
++ CharAllocator(const CharAllocator&) = delete;
++ ~CharAllocator() = default;
++
++ CharAllocator& operator=(const CharAllocator&) = delete;
++
++ void* Allocate() {
++ if (last_list_->IsFull()) {
++ // Only allocate a new list if there isn't a spare one still there from
++ // previous usage.
++ if (last_list_index_ + 1 >= storage_.size())
++ AllocateNewList(last_list_->capacity * 2);
++
++ ++last_list_index_;
++ last_list_ = storage_[last_list_index_].get();
++ }
++
++ ++size_;
++ return last_list_->AddElement();
++ }
++
++ size_t alignment() const { return alignment_; }
++ size_t element_size() const { return element_size_; }
++ size_t list_count() const { return storage_.size(); }
++ size_t size() const { return size_; }
++ bool IsEmpty() const { return size() == 0; }
++
++ size_t Capacity() const {
++ size_t capacity_sum = 0;
++ for (const auto& inner_list : storage_)
++ capacity_sum += inner_list->capacity;
++ return capacity_sum;
++ }
++
++ void Clear() {
++ // Remove all except for the first InnerList.
++ DCHECK(!storage_.empty());
++ storage_.erase(storage_.begin() + 1, storage_.end());
++ last_list_index_ = 0;
++ last_list_ = storage_[0].get();
++ last_list_->size = 0;
++ size_ = 0;
++ }
++
++ void RemoveLast() {
++ DCHECK(!IsEmpty());
++ last_list_->RemoveLast();
++ if (last_list_->IsEmpty() && last_list_index_ > 0) {
++ --last_list_index_;
++ last_list_ = storage_[last_list_index_].get();
++
++ // If there are now two empty inner lists, free one of them.
++ if (last_list_index_ + 2 < storage_.size())
++ storage_.pop_back();
++ }
++ --size_;
++ }
++
++ void Erase(PositionInCharAllocator* position) {
++ DCHECK_EQ(this, position->ptr_to_container);
++
++ // Update |position| to point to the element after the erased element.
++ InnerList* list = storage_[position->vector_index].get();
++ char* item_iterator = position->item_iterator;
++ if (item_iterator == list->LastElement())
++ position->Increment();
++
++ list->Erase(item_iterator);
++ // TODO(weiliangc): Free the InnerList if it is empty.
++ --size_;
++ }
++
++ void InsertBefore(ListContainerHelper::Iterator* position, size_t count) {
++ if (!count)
++ return;
++
++ // If |position| is End(), then append |count| elements at the end. This
++ // will happen to not invalidate any iterators or memory.
++ if (!position->item_iterator) {
++ // Set |position| to be the first inserted element.
++ Allocate();
++ position->vector_index = storage_.size() - 1;
++ position->item_iterator = storage_[position->vector_index]->LastElement();
++ // Allocate the rest.
++ for (size_t i = 1; i < count; ++i)
++ Allocate();
++ } else {
++ storage_[position->vector_index]->InsertBefore(
++ alignment_, &position->item_iterator, count);
++ size_ += count;
++ }
++ }
++
++ InnerList* InnerListById(size_t id) const {
++ DCHECK_LT(id, storage_.size());
++ return storage_[id].get();
++ }
++
++ size_t FirstInnerListId() const {
++ // |size_| > 0 means that at least one vector in |storage_| will be
++ // non-empty.
++ DCHECK_GT(size_, 0u);
++ size_t id = 0;
++ while (storage_[id]->size == 0)
++ ++id;
++ return id;
++ }
++
++ size_t LastInnerListId() const {
++ // |size_| > 0 means that at least one vector in |storage_| will be
++ // non-empty.
++ DCHECK_GT(size_, 0u);
++ size_t id = storage_.size() - 1;
++ while (storage_[id]->size == 0)
++ --id;
++ return id;
++ }
++
++ size_t NumAvailableElementsInLastList() const {
++ return last_list_->NumElementsAvailable();
++ }
++
++ private:
++ void AllocateNewList(size_t list_size) {
++ std::unique_ptr<InnerList> new_list(new InnerList);
++ new_list->capacity = list_size;
++ new_list->size = 0;
++ new_list->step = element_size_;
++ new_list->data.reset(static_cast<char*>(
++ base::AlignedAlloc(list_size * element_size_, alignment_)));
++ storage_.push_back(std::move(new_list));
++ }
++
++ std::vector<std::unique_ptr<InnerList>> storage_;
++ const size_t alignment_;
++ const size_t element_size_;
++
++ // The number of elements in the list.
++ size_t size_;
++
++ // The index of the last list to have had elements added to it, or the only
++ // list if the container has not had elements added since being cleared.
++ size_t last_list_index_;
++
++ // This is equivalent to |storage_[last_list_index_]|.
++ InnerList* last_list_;
++};
++
+ } // namespace cc
+
+ #endif // CC_BASE_LIST_CONTAINER_HELPER_H_
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Include-cstddef-and-cstdint.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Include-cstddef-and-cstdint.patch
new file mode 100644
index 00000000..32dde335
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Include-cstddef-and-cstdint.patch
@@ -0,0 +1,50 @@
+From c2ca4923d5e534789b205968eb01779a90ec1299 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 15 Jan 2020 16:53:46 -0800
+Subject: [PATCH] chromium: Include <cstddef> and <cstdint>
+
+These headers are needed for uintXX_t and size_t definitions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/media/cdm/supported_cdm_versions.h | 1 +
+ .../third_party/perfetto/include/perfetto/base/task_runner.h | 1 +
+ chromium/third_party/webrtc/call/rtx_receive_stream.h | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/chromium/media/cdm/supported_cdm_versions.h b/chromium/media/cdm/supported_cdm_versions.h
+index 3f220da8c71..c54e3bb7d30 100644
+--- a/chromium/media/cdm/supported_cdm_versions.h
++++ b/chromium/media/cdm/supported_cdm_versions.h
+@@ -6,6 +6,7 @@
+ #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
+
+ #include <array>
++#include <cstddef>
+
+ #include "media/base/media_export.h"
+ #include "media/cdm/api/content_decryption_module.h"
+diff --git a/chromium/third_party/perfetto/include/perfetto/base/task_runner.h b/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
+index cf60401238f..02658e7139b 100644
+--- a/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
++++ b/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+
+ #include <functional>
++#include <cstdint>
+
+ #include "perfetto/base/export.h"
+
+diff --git a/chromium/third_party/webrtc/call/rtx_receive_stream.h b/chromium/third_party/webrtc/call/rtx_receive_stream.h
+index 8ffa4400a9c..a389fc2a574 100644
+--- a/chromium/third_party/webrtc/call/rtx_receive_stream.h
++++ b/chromium/third_party/webrtc/call/rtx_receive_stream.h
+@@ -11,6 +11,7 @@
+ #ifndef CALL_RTX_RECEIVE_STREAM_H_
+ #define CALL_RTX_RECEIVE_STREAM_H_
+
++#include <cstdint>
+ #include <map>
+
+ #include "call/rtp_packet_sink_interface.h"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch
index 7879e99a..3e595591 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch
@@ -1,4 +1,4 @@
-From 3931af98b42c87ea474e0e6d0d27753e53d101ca Mon Sep 17 00:00:00 2001
+From d38a63908f5c49705abd85bd9c2aee0ec334221d 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
@@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 9 insertions(+)
diff --git a/chromium/sandbox/linux/suid/sandbox.c b/chromium/sandbox/linux/suid/sandbox.c
-index 66f68ef1387..9284d0d4fc5 100644
+index 854819bfbb4..a99d32741d0 100644
--- a/chromium/sandbox/linux/suid/sandbox.c
+++ b/chromium/sandbox/linux/suid/sandbox.c
-@@ -44,6 +44,15 @@ static bool DropRoot();
+@@ -46,6 +46,15 @@ static bool DropRoot();
#define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x)
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch
new file mode 100644
index 00000000..3bf0c5eb
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch
@@ -0,0 +1,32 @@
+From 5b4b896c1c6c79cc7c870a398acf1baf4b6bec7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Feb 2020 12:17:23 -0800
+Subject: [PATCH] chromium: Link v8 with libatomic on x86
+
+Fixes
+| v8_base_without_compiler_jumbo_47.cc:(.text._ZN2v88internal4wasm12_GLOBAL__N_123ExecuteCompilationUnitsERKSt10shared_ptrINS2_22BackgroundCompileTokenEEPNS0_8CountersEiNS2_19CompileBaselineOnlyE+0x29a): undefined reference to `__atomic_l
+oad'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/v8/BUILD.gn | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/v8/BUILD.gn b/chromium/v8/BUILD.gn
+index e21400265dd..7e56609b9da 100644
+--- a/chromium/v8/BUILD.gn
++++ b/chromium/v8/BUILD.gn
+@@ -3310,7 +3310,8 @@ v8_source_set("v8_base_without_compiler") {
+ if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" ||
+ v8_current_cpu == "mips64" || v8_current_cpu == "mips64el" ||
+ v8_current_cpu == "ppc" || v8_current_cpu == "ppc64" ||
+- v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
++ v8_current_cpu == "s390" || v8_current_cpu == "s390x" ||
++ v8_current_cpu == "x86") {
+ libs = [ "atomic" ]
+ }
+
+--
+2.25.0
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch
index 68eaf23e..2fdb0d82 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch
@@ -1,4 +1,4 @@
-From 5532d00e7dcec5529b7510386530cc44bf0b094c Mon Sep 17 00:00:00 2001
+From 4b16ad982ff10945a37a7dd90735a5a1be3d6a8b 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
@@ -6,15 +6,14 @@ 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(-)
+ chromium/base/trace_event/malloc_dump_provider.cc | 2 ++
+ 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc
-index 73a52d6210d..4867198a503 100644
+index 5763432aa4f..ff00b7307c0 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() {
+@@ -109,14 +109,14 @@ size_t ProcessMetrics::GetMallocUsage() {
malloc_statistics_t stats = {0};
malloc_zone_statistics(nullptr, &stats);
return stats.size_in_use;
@@ -32,10 +31,10 @@ index 73a52d6210d..4867198a503 100644
return 0;
#endif
diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc
-index ffd519133c2..0c9131e98e4 100644
+index 0077d8b0aec..c69f893f4e9 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() = default;
+@@ -77,6 +77,7 @@ MallocDumpProvider::~MallocDumpProvider() = default;
// the current process.
bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
ProcessMemoryDump* pmd) {
@@ -43,25 +42,11 @@ index ffd519133c2..0c9131e98e4 100644
{
base::AutoLock auto_lock(emit_metrics_on_memory_dump_lock_);
if (!emit_metrics_on_memory_dump_)
-@@ -322,7 +323,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
- pmd->DumpHeapUsage(metrics_by_context, overhead, "malloc");
+@@ -172,6 +173,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
+ MemoryAllocatorDump::kUnitsBytes,
+ resident_size - allocated_objects_size);
}
- 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 7ddeb4d16a9..b8c73b09c5a 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/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-musl-include-fcntl.h-for-loff_t.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-include-fcntl.h-for-loff_t.patch
index 1f9af27e..05576b02 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-musl-include-fcntl.h-for-loff_t.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-include-fcntl.h-for-loff_t.patch
@@ -1,4 +1,4 @@
-From 87d8eeb36da32940a57ecf9a94c61f7d749e1058 Mon Sep 17 00:00:00 2001
+From e087d26af9bdd2f045f8a81fdd2688c50b77e938 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
@@ -9,10 +9,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 b29ec2d29a7..91f77dd88d4 100644
+index ca5936d6e63..5484dbadfbd 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" {
+@@ -154,6 +154,7 @@ extern "C" {
#include <stddef.h>
#include <stdint.h>
#include <string.h>
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch
deleted file mode 100644
index c11a7ce8..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From b9a0991d31f2c88525022690640b5f30a42821b3 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 d6ed5e1f889..b550f895ef5 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/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-use-off64_t-instead-of-the-internal-__.patch
index e7dba73b..ad7a085f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-use-off64_t-instead-of-the-internal-__.patch
@@ -1,4 +1,4 @@
-From 081561227fb55b9a419632b1f6187d9d7bedd8f9 Mon Sep 17 00:00:00 2001
+From 5cde4d2fb5affc6e739dba412453b4bf076f19e9 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
@@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 715c045f66c..edc8cf2db70 100644
+index 17415aaf538..59c1b6fb5f6 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;
+@@ -60,7 +60,7 @@
static inline void* do_mmap64(void *start, size_t length,
int prot, int flags,
@@ -23,8 +23,8 @@ index 715c045f66c..edc8cf2db70 100644
+ 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,
+ return (void*)syscall(SYS_mmap, start, length, prot, flags, fd, offset);
+@@ -73,7 +73,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,
@@ -33,7 +33,7 @@ index 715c045f66c..edc8cf2db70 100644
void *result;
// Try mmap2() unless it's not supported
-@@ -161,7 +161,7 @@ static inline void* do_mmap64(void *start, size_t length,
+@@ -144,7 +144,7 @@ static inline void* do_mmap64(void *start, size_t length,
extern "C" {
void* mmap64(void *start, size_t length, int prot, int flags,
@@ -42,7 +42,7 @@ index 715c045f66c..edc8cf2db70 100644
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" {
+@@ -159,7 +159,7 @@ extern "C" {
}
extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
@@ -51,7 +51,7 @@ index 715c045f66c..edc8cf2db70 100644
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,
+@@ -170,7 +170,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
return result;
}
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-musl-linux-glibc-make-the-distinction.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-linux-glibc-make-the-distinction.patch
index c3069593..2fdc4944 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-musl-linux-glibc-make-the-distinction.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-linux-glibc-make-the-distinction.patch
@@ -1,4 +1,4 @@
-From 0bba2d9a7bbcc97126b1440db71364ff5aa8c5f8 Mon Sep 17 00:00:00 2001
+From 04a11fa6f38987091b6b65244950d3d83579c9a8 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
@@ -9,7 +9,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chromium/base/allocator/allocator_check.cc b/chromium/base/allocator/allocator_check.cc
-index 9cd5d2207de..1e700956483 100644
+index 5fb86467dde..9864858eb67 100644
--- a/chromium/base/allocator/allocator_check.cc
+++ b/chromium/base/allocator/allocator_check.cc
@@ -27,7 +27,7 @@ bool IsAllocatorInitialized() {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch
deleted file mode 100644
index 1ec4dd2b..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From db18f880b833041e3151a3dc8541f7d35d43a4b5 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>
----
- .../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 91f77dd88d4..bb84a0b3058 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/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch
index 009e41fd..81d555f9 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch
@@ -1,4 +1,4 @@
-From 922a3f82d7810d23b4f735f5af4574993bde2974 Mon Sep 17 00:00:00 2001
+From 59ab7f11b90bd2114ff8cc16d6502e0ad6bb6538 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
@@ -10,10 +10,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chromium/base/allocator/allocator_shim.cc b/chromium/base/allocator/allocator_shim.cc
-index 4b7de5e1a32..fe565223f2b 100644
+index e6838ebda84..7296cc9ed81 100644
--- a/chromium/base/allocator/allocator_shim.cc
+++ b/chromium/base/allocator/allocator_shim.cc
-@@ -302,7 +302,7 @@ ALWAYS_INLINE void ShimFreeDefiniteSize(void* ptr, size_t size, void* context) {
+@@ -351,7 +351,7 @@ ALWAYS_INLINE void ShimAlignedFree(void* address, 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.
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Use-correct-member-name-__si_fields-fr.patch
index 65bf1965..b611781b 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Use-correct-member-name-__si_fields-fr.patch
@@ -1,4 +1,4 @@
-From c3dddfccc66fdceb730674838e1676febc66587c Mon Sep 17 00:00:00 2001
+From b8735496287b7c2a15224f7d837dc74a09434bdb 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
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch
index 8582607c..4b531624 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch
@@ -1,4 +1,4 @@
-From 7638d64991e35b688aa9e1385925bc45f8589246 Mon Sep 17 00:00:00 2001
+From 09c0c63a65770465ef2ec0a3b028e22a9a0164f6 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
@@ -13,11 +13,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 f2e66331e33..6fe84dd66af 100644
+index ee2d5721425..bcb83b07f6e 100644
--- a/chromium/net/dns/dns_config_service_posix.cc
+++ b/chromium/net/dns/dns_config_service_posix.cc
-@@ -27,6 +27,10 @@
- #include "net/dns/notify_watcher_mac.h"
+@@ -29,6 +29,10 @@
+ #include "net/dns/public/dns_protocol.h"
#include "net/dns/serial_worker.h"
+#if defined(OS_LINUX) && !defined(__GLIBC__)
@@ -28,7 +28,7 @@ index f2e66331e33..6fe84dd66af 100644
#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 322c8a5f0f7..72ff40dbe15 100644
+index 03e248c9878..9ccda82c7e9 100644
--- a/chromium/net/dns/dns_reloader.cc
+++ b/chromium/net/dns/dns_reloader.cc
@@ -9,6 +9,10 @@
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch
index 5db4834b..b20456b0 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch
@@ -1,4 +1,4 @@
-From 2a49b947ad8e586229411bdd2a00bd496c9e3d0e Mon Sep 17 00:00:00 2001
+From 57ebdf59c45c70ab13b724a2293fdd78241a8a37 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
@@ -12,15 +12,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 edc8cf2db70..a868b50d30f 100644
+index 59c1b6fb5f6..10f0786d829 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,
+@@ -213,7 +213,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
+ return result;
}
- // Don't hook sbrk() in Android, since it doesn't expose __sbrk.
--#if !defined(__ANDROID__)
-+#if !defined(__ANDROID__) && defined(__GLIBC__)
+-#ifndef __UCLIBC__
++#if !defined(__UCLIBC__) && defined(__GLIBC__)
// libc's version:
- extern "C" void* __sbrk(ptrdiff_t increment);
+ extern "C" void* __sbrk(intptr_t increment);
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-Adjust-default-pthread-stack-size.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch
index c0750a31..62b9531b 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-Adjust-default-pthread-stack-size.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch
@@ -1,4 +1,4 @@
-From 98af1531d71359612bbaa2a8619520ca4b6814bc Mon Sep 17 00:00:00 2001
+From 50d5b6fa29696c873830af7632b51cb4836c2210 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
@@ -6,14 +6,14 @@ 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 ++--
+ .../third_party/blink/renderer/platform/wtf/stack_util.cc | 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 9917a7b1fd6..cb406659b90 100644
+index 095c49b8dc0..d1479b54d48 100644
--- a/chromium/base/threading/platform_thread_linux.cc
+++ b/chromium/base/threading/platform_thread_linux.cc
-@@ -173,7 +173,8 @@ void TerminateOnThread() {}
+@@ -186,7 +186,8 @@ void TerminateOnThread() {}
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
#if !defined(THREAD_SANITIZER)
@@ -23,11 +23,11 @@ index 9917a7b1fd6..cb406659b90 100644
#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 13c3f907f8e..07308e08351 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() {
+diff --git a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
+index b2421649ff3..a31b96e90e6 100644
+--- a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
++++ b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
+@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() {
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
@@ -35,8 +35,8 @@ index 13c3f907f8e..07308e08351 100644
+#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() {
+ // pthread_create() (e.g., the main thread of blink_unittests).
+@@ -97,7 +97,7 @@ return Threading::ThreadStackSize();
}
void* GetStackStart() {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch
index 12bea67f..7ed278b0 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch
@@ -1,4 +1,4 @@
-From 3b87874627418a66bb082ba7825849c073b2c19d Mon Sep 17 00:00:00 2001
+From 1f839bf6ac48d81a8acbf3def4f57a555a05fa18 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 25 Sep 2018 12:35:07 -0700
Subject: [PATCH] chromium: musl: Use _fpstate instead of _libc_fpstate on
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
-index 052ce37cb44..95b0fb44e12 100644
+index 6ee6cc1e4cd..a8f9ccc72ac 100644
--- a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch
index 0ff26e51..34761950 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch
@@ -1,4 +1,4 @@
-From c1a7511a323997411728689078946122d176551b Mon Sep 17 00:00:00 2001
+From 8f16cec0583c9de1ceb2c34a3bea527096f34075 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 25 Sep 2018 12:59:05 -0700
Subject: [PATCH] chromium: musl: elf_reader.cc: include <sys/reg.h> to get
@@ -13,7 +13,7 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/chromium/third_party/breakpad/breakpad/configure.ac b/chromium/third_party/breakpad/breakpad/configure.ac
-index ec194ddd203..767c2af11ee 100644
+index 492d09038f9..a6403ed8c3c 100644
--- a/chromium/third_party/breakpad/breakpad/configure.ac
+++ b/chromium/third_party/breakpad/breakpad/configure.ac
@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-pread-pwrite.patch b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-pread-pwrite.patch
new file mode 100644
index 00000000..631ae8a0
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-pread-pwrite.patch
@@ -0,0 +1,31 @@
+From 725941687b118b90904fbc7e6b25a288b9d3c52b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 23 Dec 2018 16:58:04 -0800
+Subject: [PATCH] chromium: musl: pread pwrite
+
+Redefine pread/pwrite in terms of 64bit variants on musl
+since 32bit variants don't exist and aliases are not defined in
+libc either
+
+Upstream-Status: Submitted [https://codereview.chromium.org/1743093002/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ chromium/third_party/lss/linux_syscall_support.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h
+index 622cc1fbf7e..cd561b80c05 100644
+--- a/chromium/third_party/lss/linux_syscall_support.h
++++ b/chromium/third_party/lss/linux_syscall_support.h
+@@ -1239,6 +1239,11 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
+ #endif
++#undef __NR_pread
++#define __NR_pread __NR_pread64
++#undef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++
+ /* End of x86-64 definitions */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb
index 7b157096..b49d6cee 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb
@@ -3,7 +3,6 @@ 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 \
@@ -26,6 +25,7 @@ DEPENDS += " \
libcap \
gperf-native \
${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcomposite libxcursor libxi libxrandr libxtst', '', d)} \
"
DEPENDS_append_libc-musl = " libexecinfo"
@@ -43,7 +43,9 @@ 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 ??= "libwebp libevent libpng \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
+
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"
@@ -56,13 +58,14 @@ PACKAGECONFIG[harfbuzz] = "-feature-webengine-system-harfbuzz,-no-feature-webeng
PACKAGECONFIG[glib] = "-feature-webengine-system-glib,-no-feature-webengine-system-glib,glib-2.0"
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[jsoncpp] = "-feature-webengine-system-jsoncpp,-no-feature-webengine-system-jsoncpp,jsoncpp"
PACKAGECONFIG[libxml2] = "-feature-webengine-system-libxml2,-no-feature-webengine-system-libxml2,libxml2"
PACKAGECONFIG[minizip] = "-feature-webengine-system-minizip,-no-feature-webengine-system-minizip,minizip"
PACKAGECONFIG[proprietary-codecs] = "-feature-webengine-proprietary-codecs,-no-feature-webengine-proprietary-codecs"
PACKAGECONFIG[pepper-plugins] = "-feature-webengine-pepper-plugins,-no-feature-webengine-pepper-plugins"
PACKAGECONFIG[printing-and-pdf] = "-feature-webengine-printing-and-pdf,-no-feature-webengine-printing-and-pdf"
PACKAGECONFIG[spellchecker] = "-feature-webengine-spellchecker,-no-feature-webengine-spellchecker"
+PACKAGECONFIG[pulseaudio] = "-feature-webengine-pulseaudio,-no-feature-webengine-pulseaudio,pulseaudio"
EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}"
@@ -76,9 +79,16 @@ COMPATIBLE_MACHINE_aarch64 = "(.*)"
inherit qmake5
inherit gettext
-inherit pythonnative
inherit perlnative
-inherit distro_features_check
+inherit features_check
+
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
+
# Static builds of QtWebEngine aren't supported.
CONFLICT_DISTRO_FEATURES = "qt5-static"
@@ -112,7 +122,6 @@ 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+"
@@ -120,7 +129,6 @@ 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}"
@@ -134,47 +142,55 @@ RDEPENDS_${PN}-examples += " \
qtdeclarative-qmlplugins \
"
-QT_MODULE_BRANCH_CHROMIUM = "65-based"
+QT_MODULE_BRANCH_CHROMIUM = "77-based"
-# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.11
-# 5.11.meta-qt5.8
+# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.14
+# 5.14.meta-qt5.3
SRC_URI += " \
${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
file://0001-Force-host-toolchain-configuration.patch \
- file://0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch \
"
SRC_URI_append_libc-musl = "\
file://0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \
file://0004-musl-link-against-libexecinfo.patch \
+ file://0005-mkspecs-Allow-builds-with-libc-glibc.patch \
"
-# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/65-based
-# 65-based.meta-qt5.7
+# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/77-based
+# 77-based.meta-qt5.2
SRC_URI += " \
- file://chromium/0001-chromium-Force-host-toolchain-configuration.patch;patchdir=src/3rdparty \
- file://chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \
- file://chromium/0003-chromium-Fix-build-with-gcc8.patch;patchdir=src/3rdparty \
+ file://chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \
+ file://chromium/0002-chromium-stack-pointer-clobber.patch;patchdir=src/3rdparty \
+ file://chromium/0003-chromium-fix-build-with-clang.patch;patchdir=src/3rdparty \
+ file://chromium/0004-chromium-Exclude-CRC32-for-32bit-arm.patch;patchdir=src/3rdparty \
+ file://chromium/0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch;patchdir=src/3rdparty \
+ file://chromium/0006-chromium-aarch64-skia-build-fix.patch;patchdir=src/3rdparty \
+ file://chromium/0007-chromium-fix-build-after-y2038-changes-in-glibc.patch;patchdir=src/3rdparty \
+ file://chromium/0008-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch;patchdir=src/3rdparty \
+ file://chromium/0009-chromium-Include-cstddef-for-size_t-definition.patch;patchdir=src/3rdparty \
+ file://chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch;patchdir=src/3rdparty \
+ file://chromium/0011-chromium-Include-cstddef-and-cstdint.patch;patchdir=src/3rdparty \
+ file://chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \
"
SRC_URI_append_libc-musl = "\
- file://chromium/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \
- file://chromium/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \
- file://chromium/0006-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \
- file://chromium/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \
- file://chromium/0008-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \
- file://chromium/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \
- file://chromium/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \
- file://chromium/0011-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \
- file://chromium/0012-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \
- file://chromium/0013-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \
- file://chromium/0014-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch;patchdir=src/3rdparty \
- file://chromium/0015-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch;patchdir=src/3rdparty \
- file://chromium/0016-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \
- file://chromium/0017-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \
+ file://chromium/0011-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \
+ file://chromium/0012-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \
+ file://chromium/0013-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \
+ file://chromium/0014-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \
+ file://chromium/0015-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \
+ file://chromium/0016-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \
+ file://chromium/0017-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \
+ file://chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \
+ file://chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \
+ file://chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \
+ file://chromium/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \
+ file://chromium/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \
+ file://chromium/0023-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \
"
-SRCREV_qtwebengine = "18412af977d658f243eb5b25b62284924cfa362f"
-SRCREV_chromium = "2095a35f300bcbe82e968e9a547dff7c79be29d8"
+SRCREV_qtwebengine = "35aa6c30f0e766b8825519e04242b7a4c93b6e0e"
+SRCREV_chromium = "6c9be50c2d901e66119679155fb3c7c9200448d1"
SRCREV = "${SRCREV_qtwebengine}"
SRCREV_FORMAT = "qtwebengine_chromium"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebglplugin_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebglplugin_git.bb
index 993ad3ff..8c2f5520 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebglplugin_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebglplugin_git.bb
@@ -18,4 +18,4 @@ do_configure_prepend() {
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtdeclarative', 'CONFIG+=OE_QTDECLARATIVE_ENABLED', '', d)}"
-SRCREV = "b57a3ce9d95f36ca0f1b1d1e9cf1e20030e882d8"
+SRCREV = "55c7e18b7be32a6911631f32d4bfb9029c6ad689"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-Fix-build-with-qt-5.11.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-Fix-build-with-qt-5.11.patch
deleted file mode 100644
index 57e318b0..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples/0001-Fix-build-with-qt-5.11.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From e07f1fcba5a291ef0ab31fd85fbc4836eda19a66 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Sep 2018 03:14:29 -0700
-Subject: [PATCH] Fix build with qt 5.11
-
-Fixes
-
-examples/webkitwidgets/scroller/wheel/main.cpp:93:84: error: cannot call
-member function 'int QRandomGenerator::bounded(int)' without object
- m_wheel1->scrollTo(m_wheel1->currentIndex() +
-QRandomGenerator::bounded(200));
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- examples/webkitwidgets/scroller/wheel/main.cpp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/examples/webkitwidgets/scroller/wheel/main.cpp b/examples/webkitwidgets/scroller/wheel/main.cpp
-index 11fad08..9a6a225 100644
---- a/examples/webkitwidgets/scroller/wheel/main.cpp
-+++ b/examples/webkitwidgets/scroller/wheel/main.cpp
-@@ -40,7 +40,7 @@
-
- #include <QtWidgets>
- #include <qmath.h>
--
-+#include <QRandomGenerator>
- #include "wheelwidget.h"
-
- class MainWindow : public QMainWindow
-@@ -90,9 +90,9 @@ public:
- private slots:
- void rotateRandom()
- {
-- m_wheel1->scrollTo(m_wheel1->currentIndex() + QRandomGenerator::bounded(200));
-- m_wheel2->scrollTo(m_wheel2->currentIndex() + QRandomGenerator::bounded(200));
-- m_wheel3->scrollTo(m_wheel3->currentIndex() + QRandomGenerator::bounded(200));
-+ m_wheel1->scrollTo(m_wheel1->currentIndex() + QRandomGenerator::global()->bounded(200));
-+ m_wheel2->scrollTo(m_wheel2->currentIndex() + QRandomGenerator::global()->bounded(200));
-+ m_wheel3->scrollTo(m_wheel3->currentIndex() + QRandomGenerator::global()->bounded(200));
- }
-
- private:
---
-2.19.0
-
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb
deleted file mode 100644
index 4b635bdf..00000000
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit-examples_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-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 \
-"
-
-SRC_URI += "file://0001-Fix-build-with-qt-5.11.patch"
-
-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 = "dev"
-
-SRCREV = "2d68492004bf4ba49cf58c9bd72706cb282cf59b"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Port-build-to-python3.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Port-build-to-python3.patch
new file mode 100644
index 00000000..5c925cd5
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Port-build-to-python3.patch
@@ -0,0 +1,3845 @@
+From a8bbd89d7a1d3e8ca381c025bc8dd1275c59356a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 4 Feb 2020 22:41:00 +0100
+Subject: [PATCH] Port build to python3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Procdure:
+
+* send all py-files through 2to3
+* find inspiration at / steel from (jsmin.py) webkitgtk
+* manual fixes e.g rename builtins to mybuiltins - 'import builtins' does
+ not load what's defined here
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Source/JavaScriptCore/CMakeLists.txt | 18 +--
+ Source/JavaScriptCore/DerivedSources.make | 18 +--
+ .../JavaScriptCore/KeywordLookupGenerator.py | 28 ++--
+ .../Scripts/builtins/builtins.py | 11 --
+ .../generate-combined-inspector-json.py | 4 +-
+ .../Scripts/generate-js-builtins.py | 12 +-
+ ...line-and-minify-stylesheets-and-scripts.py | 2 +-
+ Source/JavaScriptCore/Scripts/jsmin.py | 23 +--
+ .../Scripts/make-js-file-arrays.py | 59 +++++---
+ .../{builtins => mybuiltins}/__init__.py | 2 +-
+ .../Scripts/mybuiltins/mybuiltins.py | 11 ++
+ .../mybuiltins_generate_combined_header.py} | 4 +-
+ ...ltins_generate_combined_implementation.py} | 6 +-
+ .../mybuiltins_generate_separate_header.py} | 6 +-
+ ...ltins_generate_separate_implementation.py} | 6 +-
+ .../mybuiltins_generator.py} | 4 +-
+ .../mybuiltins_model.py} | 7 +-
+ .../mybuiltins_templates.py} | 0
+ .../disassembler/udis86/ud_itab.py | 10 +-
+ .../disassembler/udis86/ud_opcode.py | 12 +-
+ Source/JavaScriptCore/generate-bytecode-files | 16 +--
+ .../inspector/scripts/codegen/__init__.py | 42 +++---
+ .../scripts/codegen/cpp_generator.py | 20 +--
+ ...cpp_alternate_backend_dispatcher_header.py | 8 +-
+ .../generate_cpp_backend_dispatcher_header.py | 16 +--
+ ...e_cpp_backend_dispatcher_implementation.py | 12 +-
+ ...generate_cpp_frontend_dispatcher_header.py | 12 +-
+ ..._cpp_frontend_dispatcher_implementation.py | 12 +-
+ .../generate_cpp_protocol_types_header.py | 38 ++---
+ ...erate_cpp_protocol_types_implementation.py | 20 +--
+ .../codegen/generate_js_backend_commands.py | 14 +-
+ ...generate_objc_backend_dispatcher_header.py | 14 +-
+ ..._objc_backend_dispatcher_implementation.py | 18 +--
+ .../generate_objc_configuration_header.py | 6 +-
+ ...erate_objc_configuration_implementation.py | 6 +-
+ .../generate_objc_conversion_helpers.py | 12 +-
+ ...objc_frontend_dispatcher_implementation.py | 16 +--
+ .../scripts/codegen/generate_objc_header.py | 28 ++--
+ .../codegen/generate_objc_internal_header.py | 10 +-
+ ...rate_objc_protocol_types_implementation.py | 16 +--
+ .../inspector/scripts/codegen/generator.py | 12 +-
+ .../inspector/scripts/codegen/models.py | 2 +-
+ .../scripts/codegen/objc_generator.py | 74 +++++-----
+ .../generate-inspector-protocol-bindings.py | 2 +-
+ .../scripts/CodeGeneratorReplayInputs.py | 26 ++--
+ .../ANGLE/generate_winrt_projects.py | 4 +-
+ .../ANGLE/src/libANGLE/Float16ToFloat32.py | 26 ++--
+ .../renderer/generate_new_renderer.py | 2 +-
+ .../gtest/scripts/fuse_gtest_files.py | 12 +-
+ .../gtest/scripts/gen_gtest_pred_impl.py | 12 +-
+ Source/ThirdParty/gtest/scripts/pump.py | 30 ++--
+ Source/ThirdParty/gtest/scripts/upload.py | 134 +++++++++---------
+ .../test/gtest_break_on_failure_unittest.py | 2 +-
+ .../ThirdParty/gtest/test/gtest_color_test.py | 66 ++++-----
+ .../gtest/test/gtest_env_var_test.py | 4 +-
+ .../gtest/test/gtest_filter_unittest.py | 14 +-
+ .../ThirdParty/gtest/test/gtest_help_test.py | 16 +--
+ .../gtest/test/gtest_list_tests_unittest.py | 4 +-
+ .../gtest/test/gtest_shuffle_test.py | 40 +++---
+ .../ThirdParty/gtest/test/gtest_test_utils.py | 2 +-
+ .../gtest/test/gtest_throw_on_failure_test.py | 4 +-
+ .../gtest/test/gtest_uninitialized_test.py | 4 +-
+ .../gtest/test/gtest_xml_outfiles_test.py | 6 +-
+ .../gtest/test/gtest_xml_output_unittest.py | 22 +--
+ .../gtest/test/gtest_xml_test_utils.py | 26 ++--
+ .../ThirdParty/gtest/test/run_tests_util.py | 26 ++--
+ .../gtest/test/run_tests_util_test.py | 16 +--
+ .../gtest/xcode/Scripts/versiongenerate.py | 2 +-
+ Source/WebCore/AVFoundationSupport.py | 14 +-
+ Source/WebCore/CMakeLists.txt | 16 +--
+ Source/WebCore/DerivedSources.make | 16 +--
+ .../network/create-http-header-name-table | 2 +-
+ Source/WebInspectorUI/Scripts/jsmin.py | 23 +--
+ .../Scripts/generate-message-receiver.py | 2 +-
+ .../Scripts/generate-messages-header.py | 2 +-
+ .../Scripts/webkit/messages_unittest.py | 46 +++---
+ Source/cmake/WebKitCommon.cmake | 3 -
+ Tools/jhbuild/jhbuildutils.py | 10 +-
+ 78 files changed, 665 insertions(+), 638 deletions(-)
+ delete mode 100644 Source/JavaScriptCore/Scripts/builtins/builtins.py
+ rename Source/JavaScriptCore/Scripts/{builtins => mybuiltins}/__init__.py (72%)
+ create mode 100644 Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins.py
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_generate_combined_header.py => mybuiltins/mybuiltins_generate_combined_header.py} (98%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_generate_combined_implementation.py => mybuiltins/mybuiltins_generate_combined_implementation.py} (95%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_generate_separate_header.py => mybuiltins/mybuiltins_generate_separate_header.py} (97%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_generate_separate_implementation.py => mybuiltins/mybuiltins_generate_separate_implementation.py} (95%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_generator.py => mybuiltins/mybuiltins_generator.py} (97%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_model.py => mybuiltins/mybuiltins_model.py} (97%)
+ rename Source/JavaScriptCore/Scripts/{builtins/builtins_templates.py => mybuiltins/mybuiltins_templates.py} (100%)
+
+diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
+index 937b3ed00..a4b5fd432 100644
+--- a/Source/JavaScriptCore/CMakeLists.txt
++++ b/Source/JavaScriptCore/CMakeLists.txt
+@@ -883,7 +883,7 @@ set(JavaScriptCore_SCRIPTS_SOURCES_DIR "${JAVASCRIPTCORE_DIR}/Scripts")
+ set(JavaScriptCore_SCRIPTS_SOURCES_PATHS
+ ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.pl
+ ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.py
+- ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/builtins/builtins*.py
++ ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/mybuiltins/mybuiltins*.py
+ )
+
+ # Force JavaScriptCore to run scripts from the same staging path as WebCore.
+@@ -1174,14 +1174,14 @@ add_custom_command(
+ # JSCBuiltins
+
+ set(BUILTINS_GENERATOR_SCRIPTS
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generator.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_model.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_templates.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_header.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generator.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_model.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_templates.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_combined_header.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_combined_implementation.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_separate_header.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_separate_implementation.py
+ ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
+ ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
+ )
+diff --git a/Source/JavaScriptCore/DerivedSources.make b/Source/JavaScriptCore/DerivedSources.make
+index d5a3fc159..7ef28eff3 100644
+--- a/Source/JavaScriptCore/DerivedSources.make
++++ b/Source/JavaScriptCore/DerivedSources.make
+@@ -66,15 +66,15 @@ all : \
+ # JavaScript builtins.
+
+ BUILTINS_GENERATOR_SCRIPTS = \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/__init__.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generator.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_model.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_templates.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_combined_header.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_combined_implementation.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_separate_header.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_separate_implementation.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/__init__.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_generator.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_model.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_templates.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_generate_combined_header.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_generate_combined_implementation.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_generate_separate_header.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins/mybuiltins_generate_separate_implementation.py \
+ $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py \
+ $(JavaScriptCore_SCRIPTS_DIR)/lazywriter.py \
+ #
+diff --git a/Source/JavaScriptCore/KeywordLookupGenerator.py b/Source/JavaScriptCore/KeywordLookupGenerator.py
+index d13daba61..938d5d6e7 100644
+--- a/Source/JavaScriptCore/KeywordLookupGenerator.py
++++ b/Source/JavaScriptCore/KeywordLookupGenerator.py
+@@ -110,7 +110,7 @@ class Trie:
+
+ def coalesce(self):
+ keys = {}
+- for k, v in self.keys.items():
++ for k, v in list(self.keys.items()):
+ t = v.coalesce()
+ keys[t.prefix] = t
+ self.keys = keys
+@@ -119,7 +119,7 @@ class Trie:
+ if len(self.keys) != 1:
+ return self
+ # Python 3: for() loop for compatibility. Use next() when Python 2.6 is the baseline.
+- for (prefix, suffix) in self.keys.items():
++ for (prefix, suffix) in list(self.keys.items()):
+ res = Trie(self.prefix + prefix)
+ res.value = suffix.value
+ res.keys = suffix.keys
+@@ -131,22 +131,22 @@ class Trie:
+ if self.fullPrefix in keyWordWeights:
+ weight = weight + keyWordWeights[self.fullPrefix]
+ self.selfWeight = weight
+- for trie in self.keys.values():
++ for trie in list(self.keys.values()):
+ trie.fillOut(self.fullPrefix)
+ weight = weight + trie.weight
+- self.keys = [(trie.prefix, trie) for trie in sorted(self.keys.values(), key=operator.attrgetter('weight'), reverse=True)]
++ self.keys = [(trie.prefix, trie) for trie in sorted(list(self.keys.values()), key=operator.attrgetter('weight'), reverse=True)]
+ self.weight = weight
+
+ def printSubTreeAsC(self, typeName, indent):
+ str = makePadding(indent)
+
+ if self.value != None:
+- print(str + "if (!isIdentPartIncludingEscape(code+%d, m_codeEnd)) {" % (len(self.fullPrefix)))
+- print(str + " internalShift<%d>();" % len(self.fullPrefix))
+- print(str + " if (shouldCreateIdentifier)")
+- print(str + (" data->ident = &m_vm->propertyNames->%sKeyword;" % self.fullPrefix))
+- print(str + " return " + self.value + ";")
+- print(str + "}")
++ print((str + "if (!isIdentPartIncludingEscape(code+%d, m_codeEnd)) {" % (len(self.fullPrefix))))
++ print((str + " internalShift<%d>();" % len(self.fullPrefix)))
++ print((str + " if (shouldCreateIdentifier)"))
++ print((str + (" data->ident = &m_vm->propertyNames->%sKeyword;" % self.fullPrefix)))
++ print((str + " return " + self.value + ";"))
++ print((str + "}"))
+ rootIndex = len(self.fullPrefix)
+ itemCount = 0
+ for k, trie in self.keys:
+@@ -163,15 +163,15 @@ class Trie:
+ base = "code + %d" % baseIndex
+ comparison = ("COMPARE_%d%sS(%s, " % (len(test), typeName, base)) + ", ".join(test) + ")"
+ if itemCount == 0:
+- print(str + "if (" + comparison + ") {")
++ print((str + "if (" + comparison + ") {"))
+ else:
+- print(str + "} else if (" + comparison + ") {")
++ print((str + "} else if (" + comparison + ") {"))
+
+ trie.printSubTreeAsC(typeName, indent + 4)
+ itemCount = itemCount + 1
+
+ if itemCount == len(self.keys):
+- print(str + "}")
++ print((str + "}"))
+
+ def maxLength(self):
+ max = len(self.fullPrefix)
+@@ -187,7 +187,7 @@ class Trie:
+ print("static ALWAYS_INLINE bool isIdentPartIncludingEscape(const LChar* code, const LChar* codeEnd);")
+ print("static ALWAYS_INLINE bool isIdentPartIncludingEscape(const UChar* code, const UChar* codeEnd);")
+ # max length + 1 so we don't need to do any bounds checking at all
+- print("static const int maxTokenLength = %d;" % (self.maxLength() + 1))
++ print(("static const int maxTokenLength = %d;" % (self.maxLength() + 1)))
+ print("")
+ print("template <>")
+ print("template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<UChar>::parseKeyword(JSTokenData* data)")
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins.py b/Source/JavaScriptCore/Scripts/builtins/builtins.py
+deleted file mode 100644
+index 9349eeef6..000000000
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins.py
++++ /dev/null
+@@ -1,11 +0,0 @@
+-# This file is used to simulate the builtins/ directory when generate-js-builtins.py
+-# is run from JavaScriptCore framework's private headers directory, which is flattened.
+-
+-from builtins_model import *
+-from builtins_templates import *
+-
+-from builtins_generator import *
+-from builtins_generate_combined_header import *
+-from builtins_generate_combined_implementation import *
+-from builtins_generate_separate_header import *
+-from builtins_generate_separate_implementation import *
+diff --git a/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py b/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py
+index 53660318d..6b0e95dc9 100755
+--- a/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py
++++ b/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py
+@@ -29,7 +29,7 @@ import os
+ import sys
+
+ if len(sys.argv) < 2:
+- print("usage: %s [json files or directory of json files ...]" % os.path.basename(sys.argv[0]))
++ print(("usage: %s [json files or directory of json files ...]" % os.path.basename(sys.argv[0])))
+ sys.exit(1)
+
+ files = []
+@@ -64,6 +64,6 @@ for file in files:
+ sys.stderr.write("File \"%s\" does not contain valid JSON:\n" % file)
+ raise
+
+- print(string.rstrip())
++ print((string.rstrip()))
+ print("]}")
+
+diff --git a/Source/JavaScriptCore/Scripts/generate-js-builtins.py b/Source/JavaScriptCore/Scripts/generate-js-builtins.py
+index 554a72ccc..3dce94c5c 100644
+--- a/Source/JavaScriptCore/Scripts/generate-js-builtins.py
++++ b/Source/JavaScriptCore/Scripts/generate-js-builtins.py
+@@ -25,7 +25,7 @@
+ # THE POSSIBILITY OF SUCH DAMAGE.
+
+ # This script generates C++ bindings for JavaScript builtins.
+-# Generators for individual files are located in the builtins/ directory.
++# Generators for individual files are located in the mybuiltins/ directory.
+
+ import fnmatch
+ import logging
+@@ -37,8 +37,8 @@ log = logging.getLogger('global')
+
+ from lazywriter import LazyFileWriter
+
+-import builtins
+-from builtins import *
++#import mybuiltins
++from mybuiltins import *
+
+
+ def generate_bindings_for_builtins_files(builtins_files=[],
+@@ -118,7 +118,7 @@ if __name__ == '__main__':
+ cli_parser.add_option("-t", "--test", action="store_true", help="Enable test mode.")
+
+ arg_options, arg_values = cli_parser.parse_args()
+- if len(arg_values) is 0 and not arg_options.input_directory:
++ if len(arg_values) == 0 and not arg_options.input_directory:
+ raise ParseException("At least one input file or directory expected.")
+
+ if not arg_options.output_directory:
+@@ -132,7 +132,7 @@ if __name__ == '__main__':
+ for filepath in os.listdir(arg_options.input_directory):
+ input_filepaths.append(os.path.join(arg_options.input_directory, filepath))
+
+- input_filepaths = filter(lambda name: fnmatch.fnmatch(name, '*.js'), input_filepaths)
++ input_filepaths = [name for name in input_filepaths if fnmatch.fnmatch(name, '*.js')]
+
+ options = {
+ 'output_path': arg_options.output_directory,
+@@ -144,7 +144,7 @@ if __name__ == '__main__':
+
+ log.debug("Generating code for builtins.")
+ log.debug("Parsed options:")
+- for option, value in options.items():
++ for option, value in list(options.items()):
+ log.debug(" %s: %s" % (option, value))
+ log.debug("")
+ log.debug("Input files:")
+diff --git a/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py b/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py
+index 89200c84e..a4a26c2b4 100755
+--- a/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py
++++ b/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py
+@@ -37,7 +37,7 @@ import sys
+ def main(argv):
+
+ if len(argv) < 2:
+- print('usage: %s inputFile outputFile' % argv[0])
++ print(('usage: %s inputFile outputFile' % argv[0]))
+ return 1
+
+ inputFileName = argv[1]
+diff --git a/Source/JavaScriptCore/Scripts/jsmin.py b/Source/JavaScriptCore/Scripts/jsmin.py
+index 372418b4d..2f9fddfce 100644
+--- a/Source/JavaScriptCore/Scripts/jsmin.py
++++ b/Source/JavaScriptCore/Scripts/jsmin.py
+@@ -23,17 +23,20 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ # THE SOFTWARE.
+
++# stolen from webkitgtk 2.26.2
+
+ import sys
+ is_3 = sys.version_info >= (3, 0)
+ if is_3:
+ import io
++ python_text_type = str
+ else:
+ import StringIO
+ try:
+ import cStringIO
+ except ImportError:
+ cStringIO = None
++ python_text_type = basestring
+
+
+ __all__ = ['jsmin', 'JavascriptMinify']
+@@ -79,14 +82,18 @@ class JavascriptMinify(object):
+ def write(char):
+ # all of this is to support literal regular expressions.
+ # sigh
+- if char in 'return':
++ if str(char) in 'return':
+ self.return_buf += char
+ self.is_return = self.return_buf == 'return'
+ self.outs.write(char)
+ if self.is_return:
+ self.return_buf = ''
+
+- read = self.ins.read
++ def read(n):
++ char = self.ins.read(n)
++ if not isinstance(char, python_text_type):
++ raise ValueError("ERROR: The script jsmin.py can only handle text input, but it received input of type %s" % type(char))
++ return char
+
+ space_strings = "abcdefghijklmnopqrstuvwxyz"\
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\"
+@@ -118,8 +125,8 @@ class JavascriptMinify(object):
+ write(previous)
+ elif not previous:
+ return
+- elif previous >= '!':
+- if previous in "'\"":
++ elif str(previous) >= "!":
++ if str(previous) in "'\"":
+ in_quote = previous
+ write(previous)
+ previous_non_space = previous
+@@ -166,7 +173,7 @@ class JavascriptMinify(object):
+ if numslashes % 2 == 0:
+ in_quote = ''
+ write(''.join(quote_buf))
+- elif next1 in '\r\n':
++ elif str(next1) in '\r\n':
+ if previous_non_space in newlineend_strings \
+ or previous_non_space > '~':
+ while 1:
+@@ -179,7 +186,7 @@ class JavascriptMinify(object):
+ or next2 > '~' or next2 == '/':
+ do_newline = True
+ break
+- elif next1 < '!' and not in_re:
++ elif str(next1) < '!' and not in_re:
+ if (previous_non_space in space_strings \
+ or previous_non_space > '~') \
+ and (next2 in space_strings or next2 > '~'):
+@@ -217,14 +224,14 @@ class JavascriptMinify(object):
+ do_newline = False
+
+ write(next1)
+- if not in_re and next1 in "'\"`":
++ if not in_re and str(next1) in "'\"`":
+ in_quote = next1
+ quote_buf = []
+
+ previous = next1
+ next1 = next2
+
+- if previous >= '!':
++ if str(previous) >= '!':
+ previous_non_space = previous
+
+ if previous == '\\':
+diff --git a/Source/JavaScriptCore/Scripts/make-js-file-arrays.py b/Source/JavaScriptCore/Scripts/make-js-file-arrays.py
+index 65056646a..4bb2bfe66 100755
+--- a/Source/JavaScriptCore/Scripts/make-js-file-arrays.py
++++ b/Source/JavaScriptCore/Scripts/make-js-file-arrays.py
+@@ -21,11 +21,15 @@
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
++# stolen from webkitgtk 2.26.2
++
++from __future__ import print_function
+ import io
+ import os
+ from optparse import OptionParser
+-from StringIO import StringIO
+-from jsmin import JavascriptMinify
++import sys
++from jsmin import jsmin
++is_3 = sys.version_info >= (3, 0)
+
+
+ def stringifyCodepoint(code):
+@@ -36,7 +40,7 @@ def stringifyCodepoint(code):
+
+
+ def chunk(list, chunkSize):
+- for i in xrange(0, len(list), chunkSize):
++ for i in range(0, len(list), chunkSize):
+ yield list[i:i + chunkSize]
+
+
+@@ -46,11 +50,11 @@ def main():
+ parser.add_option('-n', '--namespace', help='Namespace to use')
+ (options, arguments) = parser.parse_args()
+ if not options.namespace:
+- print 'Error: must provide a namespace'
++ print('Error: must provide a namespace')
+ parser.print_usage()
+ exit(-1)
+ if len(arguments) < 3:
+- print 'Error: must provide at least 3 arguments'
++ print('Error: must provide at least 3 arguments')
+ parser.print_usage()
+ exit(-1)
+
+@@ -60,38 +64,47 @@ def main():
+ inputPaths = arguments[2:]
+
+ headerFile = open(headerPath, 'w')
+- print >> headerFile, 'namespace {0:s} {{'.format(namespace)
++ print('namespace {0:s} {{'.format(namespace), file=headerFile)
+
+ sourceFile = open(sourcePath, 'w')
+- print >> sourceFile, '#include "{0:s}"'.format(os.path.basename(headerPath))
+- print >> sourceFile, 'namespace {0:s} {{'.format(namespace)
+-
+- jsm = JavascriptMinify()
++ print('#include "{0:s}"'.format(os.path.basename(headerPath)), file=sourceFile)
++ print('namespace {0:s} {{'.format(namespace), file=sourceFile)
+
+ for inputFileName in inputPaths:
+- inputStream = io.FileIO(inputFileName)
+- outputStream = StringIO()
++
++ if is_3:
++ inputStream = io.open(inputFileName, encoding='utf-8')
++ else:
++ inputStream = io.FileIO(inputFileName)
++
++ data = inputStream.read()
+
+ if not options.no_minify:
+- jsm.minify(inputStream, outputStream)
+- characters = outputStream.getvalue()
++ characters = jsmin(data)
++ else:
++ characters = data
++
++ if is_3:
++ codepoints = bytearray(characters, encoding='utf-8')
+ else:
+- characters = inputStream.read()
++ codepoints = list(map(ord, characters))
++
++ # Use the size of codepoints instead of the characters
++ # because UTF-8 characters may need more than one byte.
++ size = len(codepoints)
+
+- size = len(characters)
+ variableName = os.path.splitext(os.path.basename(inputFileName))[0]
+
+- print >> headerFile, 'extern const char {0:s}JavaScript[{1:d}];'.format(variableName, size)
+- print >> sourceFile, 'const char {0:s}JavaScript[{1:d}] = {{'.format(variableName, size)
++ print('extern const char {0:s}JavaScript[{1:d}];'.format(variableName, size), file=headerFile)
++ print('const char {0:s}JavaScript[{1:d}] = {{'.format(variableName, size), file=sourceFile)
+
+- codepoints = map(ord, characters)
+ for codepointChunk in chunk(codepoints, 16):
+- print >> sourceFile, ' {0:s},'.format(','.join(map(stringifyCodepoint, codepointChunk)))
++ print(' {0:s},'.format(','.join(map(stringifyCodepoint, codepointChunk))), file=sourceFile)
+
+- print >> sourceFile, '};'
++ print('};', file=sourceFile)
+
+- print >> headerFile, '}} // namespace {0:s}'.format(namespace)
+- print >> sourceFile, '}} // namespace {0:s}'.format(namespace)
++ print('}} // namespace {0:s}'.format(namespace), file=headerFile)
++ print('}} // namespace {0:s}'.format(namespace), file=sourceFile)
+
+ if __name__ == '__main__':
+ main()
+diff --git a/Source/JavaScriptCore/Scripts/builtins/__init__.py b/Source/JavaScriptCore/Scripts/mybuiltins/__init__.py
+similarity index 72%
+rename from Source/JavaScriptCore/Scripts/builtins/__init__.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/__init__.py
+index fdfcba981..1b9668023 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/__init__.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/__init__.py
+@@ -1,3 +1,3 @@
+ # Required for Python to search this directory for module files
+
+-from builtins import *
++from mybuiltins import *
+diff --git a/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins.py
+new file mode 100644
+index 000000000..1bea3da5c
+--- /dev/null
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins.py
+@@ -0,0 +1,11 @@
++# This file is used to simulate the builtins/ directory when generate-js-builtins.py
++# is run from JavaScriptCore framework's private headers directory, which is flattened.
++
++from mybuiltins_model import *
++from mybuiltins_templates import *
++
++from mybuiltins_generator import *
++from mybuiltins_generate_combined_header import *
++from mybuiltins_generate_combined_implementation import *
++from mybuiltins_generate_separate_header import *
++from mybuiltins_generate_separate_implementation import *
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_header.py
+similarity index 98%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_header.py
+index 891bd3cb4..6520a5f16 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_header.py
+@@ -30,8 +30,8 @@ import re
+ import string
+ from string import Template
+
+-from builtins_generator import BuiltinsGenerator
+-from builtins_templates import BuiltinsGeneratorTemplates as Templates
++from mybuiltins_generator import BuiltinsGenerator
++from mybuiltins_templates import BuiltinsGeneratorTemplates as Templates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_implementation.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_implementation.py
+similarity index 95%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_implementation.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_implementation.py
+index 094434b64..76eed7665 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_implementation.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_combined_implementation.py
+@@ -30,9 +30,9 @@ import re
+ import string
+ from string import Template
+
+-from builtins_generator import BuiltinsGenerator
+-from builtins_model import Framework, Frameworks
+-from builtins_templates import BuiltinsGeneratorTemplates as Templates
++from mybuiltins_generator import BuiltinsGenerator
++from mybuiltins_model import Framework, Frameworks
++from mybuiltins_templates import BuiltinsGeneratorTemplates as Templates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_header.py
+similarity index 97%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_header.py
+index b72a94bfe..6cbfbdca1 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_header.py
+@@ -30,9 +30,9 @@ import re
+ import string
+ from string import Template
+
+-from builtins_generator import BuiltinsGenerator
+-from builtins_model import Frameworks
+-from builtins_templates import BuiltinsGeneratorTemplates as Templates
++from mybuiltins_generator import BuiltinsGenerator
++from mybuiltins_model import Frameworks
++from mybuiltins_templates import BuiltinsGeneratorTemplates as Templates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_implementation.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_implementation.py
+similarity index 95%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_implementation.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_implementation.py
+index 0443975da..9f811df6a 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_implementation.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generate_separate_implementation.py
+@@ -30,9 +30,9 @@ import re
+ import string
+ from string import Template
+
+-from builtins_generator import BuiltinsGenerator, WK_lcfirst
+-from builtins_model import Framework, Frameworks
+-from builtins_templates import BuiltinsGeneratorTemplates as Templates
++from mybuiltins_generator import BuiltinsGenerator, WK_lcfirst
++from mybuiltins_model import Framework, Frameworks
++from mybuiltins_templates import BuiltinsGeneratorTemplates as Templates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generator.py
+similarity index 97%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_generator.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generator.py
+index 21ac4c1d9..546eb2e07 100644
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_generator.py
+@@ -30,8 +30,8 @@ import re
+ from string import Template
+ import json
+
+-from builtins_model import BuiltinFunction, BuiltinObject
+-from builtins_templates import BuiltinsGeneratorTemplates as Templates
++from mybuiltins_model import BuiltinFunction, BuiltinObject
++from mybuiltins_templates import BuiltinsGeneratorTemplates as Templates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_model.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_model.py
+similarity index 97%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_model.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_model.py
+index cdd5f9003..68d7aed06 100755
+--- a/Source/JavaScriptCore/Scripts/builtins/builtins_model.py
++++ b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_model.py
+@@ -122,7 +122,8 @@ class BuiltinFunction:
+ interface = interface + " [Constructor]"
+
+ return interface
+-
++ def __lt__(self, other):
++ return self.function_name < other.function_name
+
+ class BuiltinsCollection:
+ def __init__(self, framework_name):
+@@ -178,7 +179,7 @@ class BuiltinsCollection:
+
+ result = []
+
+- for owner, years in owner_to_years.items():
++ for owner, years in list(owner_to_years.items()):
+ sorted_years = list(years)
+ sorted_years.sort()
+ result.append("%s %s" % (', '.join(sorted_years), owner))
+@@ -271,4 +272,4 @@ class BuiltinsCollection:
+ functionBounds.append((start, end))
+
+ functionStrings = [text[start:end].strip() for (start, end) in functionBounds]
+- return map(BuiltinFunction.fromString, functionStrings)
++ return list(map(BuiltinFunction.fromString, functionStrings))
+diff --git a/Source/JavaScriptCore/Scripts/builtins/builtins_templates.py b/Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_templates.py
+similarity index 100%
+rename from Source/JavaScriptCore/Scripts/builtins/builtins_templates.py
+rename to Source/JavaScriptCore/Scripts/mybuiltins/mybuiltins_templates.py
+diff --git a/Source/JavaScriptCore/disassembler/udis86/ud_itab.py b/Source/JavaScriptCore/disassembler/udis86/ud_itab.py
+index ef011d2ec..205dcb1ae 100644
+--- a/Source/JavaScriptCore/disassembler/udis86/ud_itab.py
++++ b/Source/JavaScriptCore/disassembler/udis86/ud_itab.py
+@@ -266,15 +266,15 @@ class UdItabGenerator:
+ pfx_c = []
+ opr = insn.operands
+ for i in range(len(opr)):
+- if not (opr[i] in self.OperandDict.keys()):
+- print("error: invalid operand declaration: %s\n" % opr[i])
++ if not (opr[i] in list(self.OperandDict.keys())):
++ print(("error: invalid operand declaration: %s\n" % opr[i]))
+ opr_c[i] = "O_" + opr[i]
+ opr = "%s %s %s %s" % (opr_c[0] + ",", opr_c[1] + ",",
+ opr_c[2] + ",", opr_c[3])
+
+ for p in insn.prefixes:
+- if not ( p in self.PrefixDict.keys() ):
+- print("error: invalid prefix specification: %s \n" % pfx)
++ if not ( p in list(self.PrefixDict.keys()) ):
++ print(("error: invalid prefix specification: %s \n" % pfx))
+ pfx_c.append( self.PrefixDict[p] )
+ if len(insn.prefixes) == 0:
+ pfx_c.append( "P_none" )
+@@ -346,7 +346,7 @@ class UdItabGenerator:
+ # Macros defining short-names for operands
+ #
+ self.ItabC.write("\n\n/* itab entry operand definitions (for readability) */\n");
+- operands = self.OperandDict.keys()
++ operands = list(self.OperandDict.keys())
+ operands = sorted(operands)
+ for o in operands:
+ self.ItabC.write("#define O_%-7s { %-12s %-8s }\n" %
+diff --git a/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py b/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py
+index fe1833dc7..00961071c 100644
+--- a/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py
++++ b/Source/JavaScriptCore/disassembler/udis86/ud_opcode.py
+@@ -28,7 +28,7 @@ import os
+ # Some compatibility stuff for supporting python 2.x as well as python 3.x
+ def itemslist(dict):
+ try:
+- return dict.iteritems() # python 2.x
++ return iter(dict.items()) # python 2.x
+ except AttributeError:
+ return list(dict.items()) # python 3.x
+
+@@ -180,7 +180,7 @@ class UdOpcodeTable:
+ return itemslist(self._entries)
+
+ def numEntries(self):
+- return len(self._entries.keys())
++ return len(list(self._entries.keys()))
+
+ def label(self):
+ return self._TableInfo[self._typ]['label']
+@@ -248,7 +248,7 @@ class UdOpcodeTable:
+ @classmethod
+ def getLabels(cls):
+ """Returns a list of all labels"""
+- return [cls._TableInfo[k]['label'] for k in cls._TableInfo.keys()]
++ return [cls._TableInfo[k]['label'] for k in list(cls._TableInfo.keys())]
+
+
+ class UdOpcodeTables(object):
+@@ -401,7 +401,7 @@ class UdOpcodeTables(object):
+ self.map(self.root, opcodes, insn)
+ except self.CollisionError as e:
+ self.pprint()
+- print(opcodes, insn, str(e.obj1), str(e.obj2))
++ print((opcodes, insn, str(e.obj1), str(e.obj2)))
+ raise
+ except Exception as e:
+ self.pprint()
+@@ -550,10 +550,10 @@ class UdOpcodeTables(object):
+ entries = tbl.entries()
+ for k, e in entries:
+ if isinstance(e, UdOpcodeTable):
+- self.log("%s |-<%02x> %s" % (indent, k, e))
++ self.log("%s |-<%02x> %s" % (indent, int(k), e))
+ printWalk(e, indent + " |")
+ elif isinstance(e, UdInsnDef):
+- self.log("%s |-<%02x> %s" % (indent, k, e))
++ self.log("%s |-<%02x> %s" % (indent, int(k), e))
+ printWalk(self.root)
+
+
+diff --git a/Source/JavaScriptCore/generate-bytecode-files b/Source/JavaScriptCore/generate-bytecode-files
+index 5666a3f92..371ac5e4e 100644
+--- a/Source/JavaScriptCore/generate-bytecode-files
++++ b/Source/JavaScriptCore/generate-bytecode-files
+@@ -91,14 +91,14 @@ def openOrExit(path, mode):
+ try:
+ return open(path, mode)
+ except IOError as e:
+- print "I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)
++ print("I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror))
+ exit(1)
+
+ def hashFile(file):
+ sha1 = hashlib.sha1()
+ file.seek(0)
+ for line in file:
+- sha1.update(line)
++ sha1.update(line.encode('utf-8'))
+
+ file.seek(0)
+
+@@ -114,7 +114,7 @@ if __name__ == "__main__":
+ parser.error("missing <bytecode-json-file>")
+
+ bytecodeJSONFile = args[0]
+- bytecodeFile = openOrExit(bytecodeJSONFile, "rb")
++ bytecodeFile = openOrExit(bytecodeJSONFile, "r")
+ sha1Hash = hashFile(bytecodeFile)
+
+ hFileHashString = "// SHA1Hash: {0}\n".format(sha1Hash)
+@@ -131,7 +131,7 @@ if __name__ == "__main__":
+
+ if bytecodeHFilename:
+ try:
+- bytecodeHReadFile = open(bytecodeHFilename, "rb")
++ bytecodeHReadFile = open(bytecodeHFilename, "r")
+
+ hashLine = bytecodeHReadFile.readline()
+ if hashLine != hFileHashString:
+@@ -143,7 +143,7 @@ if __name__ == "__main__":
+
+ if initASMFileName:
+ try:
+- initBytecodesReadFile = open(initASMFileName, "rb")
++ initBytecodesReadFile = open(initASMFileName, "r")
+
+ hashLine = initBytecodesReadFile.readline()
+ if hashLine != asmFileHashString:
+@@ -157,15 +157,15 @@ if __name__ == "__main__":
+ exit(0)
+
+ if bytecodeHFilename:
+- bytecodeHFile = openOrExit(bytecodeHFilename, "wb")
++ bytecodeHFile = openOrExit(bytecodeHFilename, "w")
+
+ if initASMFileName:
+- initBytecodesFile = openOrExit(initASMFileName, "wb")
++ initBytecodesFile = openOrExit(initASMFileName, "w")
+
+ try:
+ bytecodeSections = json.load(bytecodeFile, encoding = "utf-8")
+ except:
+- print "Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info())
++ print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info()))
+
+ if bytecodeHFilename:
+ bytecodeHFile.write(hFileHashString)
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py b/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py
+index 6077fa97a..bd30c817c 100644
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py
+@@ -1,24 +1,24 @@
+ # Required for Python to search this directory for module files
+
+-from models import *
+-from generator import *
+-from cpp_generator import *
+-from objc_generator import *
++from .models import *
++from .generator import *
++from .cpp_generator import *
++from .objc_generator import *
+
+-from generate_cpp_alternate_backend_dispatcher_header import *
+-from generate_cpp_backend_dispatcher_header import *
+-from generate_cpp_backend_dispatcher_implementation import *
+-from generate_cpp_frontend_dispatcher_header import *
+-from generate_cpp_frontend_dispatcher_implementation import *
+-from generate_cpp_protocol_types_header import *
+-from generate_cpp_protocol_types_implementation import *
+-from generate_js_backend_commands import *
+-from generate_objc_backend_dispatcher_header import *
+-from generate_objc_backend_dispatcher_implementation import *
+-from generate_objc_configuration_header import *
+-from generate_objc_configuration_implementation import *
+-from generate_objc_conversion_helpers import *
+-from generate_objc_frontend_dispatcher_implementation import *
+-from generate_objc_header import *
+-from generate_objc_internal_header import *
+-from generate_objc_protocol_types_implementation import *
++from .generate_cpp_alternate_backend_dispatcher_header import *
++from .generate_cpp_backend_dispatcher_header import *
++from .generate_cpp_backend_dispatcher_implementation import *
++from .generate_cpp_frontend_dispatcher_header import *
++from .generate_cpp_frontend_dispatcher_implementation import *
++from .generate_cpp_protocol_types_header import *
++from .generate_cpp_protocol_types_implementation import *
++from .generate_js_backend_commands import *
++from .generate_objc_backend_dispatcher_header import *
++from .generate_objc_backend_dispatcher_implementation import *
++from .generate_objc_configuration_header import *
++from .generate_objc_configuration_implementation import *
++from .generate_objc_conversion_helpers import *
++from .generate_objc_frontend_dispatcher_implementation import *
++from .generate_objc_header import *
++from .generate_objc_internal_header import *
++from .generate_objc_protocol_types_implementation import *
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py b/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py
+index edd330da4..43c655b05 100644
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py
+@@ -28,8 +28,8 @@ import logging
+ import os.path
+ import re
+
+-from generator import ucfirst
+-from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
++from .generator import ucfirst
++from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
+
+ log = logging.getLogger('global')
+
+@@ -56,11 +56,11 @@ class CppGenerator:
+ if isinstance(_type, ArrayType):
+ return 'getArray'
+ if isinstance(_type, PrimitiveType):
+- if _type.raw_name() is 'integer':
++ if _type.raw_name() == 'integer':
+ return 'getInteger'
+- elif _type.raw_name() is 'number':
++ elif _type.raw_name() == 'number':
+ return 'getDouble'
+- elif _type.raw_name() is 'any':
++ elif _type.raw_name() == 'any':
+ return 'getValue'
+ else:
+ return 'get' + ucfirst(_type.raw_name())
+@@ -76,11 +76,11 @@ class CppGenerator:
+ if isinstance(_type, ArrayType):
+ return 'setArray'
+ if isinstance(_type, PrimitiveType):
+- if _type.raw_name() is 'integer':
++ if _type.raw_name() == 'integer':
+ return 'setInteger'
+- elif _type.raw_name() is 'number':
++ elif _type.raw_name() == 'number':
+ return 'setDouble'
+- elif _type.raw_name() is 'any':
++ elif _type.raw_name() == 'any':
+ return 'setValue'
+ else:
+ return 'set' + ucfirst(_type.raw_name())
+@@ -95,7 +95,7 @@ class CppGenerator:
+ if isinstance(_type, ObjectType) and len(_type.members) == 0:
+ return 'Inspector::InspectorObject'
+ if isinstance(_type, ArrayType):
+- if _type.raw_name() is None: # Otherwise, fall through and use typedef'd name.
++ if _type.raw_name() == None: # Otherwise, fall through and use typedef'd name.
+ return 'Inspector::Protocol::Array<%s>' % CppGenerator.cpp_protocol_type_for_type(_type.element_type)
+ if isinstance(_type, (ObjectType, AliasedType, EnumType, ArrayType)):
+ return 'Inspector::Protocol::%s::%s' % (_type.type_domain().domain_name, _type.raw_name())
+@@ -119,7 +119,7 @@ class CppGenerator:
+ _type = _type.primitive_type # Fall through to primitive.
+
+ # This handles the 'any' type and objects with defined properties.
+- if isinstance(_type, ObjectType) or _type.qualified_name() is 'object':
++ if isinstance(_type, ObjectType) or _type.qualified_name() == 'object':
+ cpp_name = 'Inspector::InspectorObject'
+ if parameter.is_optional:
+ return 'const %s*' % cpp_name
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py
+index 375ce05ca..916277d31 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py
+@@ -30,9 +30,9 @@ import string
+ import re
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator
+
+ log = logging.getLogger('global')
+
+@@ -60,7 +60,7 @@ class CppAlternateBackendDispatcherHeaderGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(CppTemplates.AlternateDispatchersHeaderPrelude).substitute(None, **header_args))
+- sections.append('\n'.join(filter(None, map(self._generate_handler_declarations_for_domain, domains))))
++ sections.append('\n'.join([_f for _f in map(self._generate_handler_declarations_for_domain, domains) if _f]))
+ sections.append(Template(CppTemplates.AlternateDispatchersHeaderPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
+index 2e5ff7a6a..25bec9a22 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
+@@ -30,10 +30,10 @@ import re
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import EnumType
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import EnumType
+
+ log = logging.getLogger('global')
+
+@@ -46,7 +46,7 @@ class CppBackendDispatcherHeaderGenerator(Generator):
+ return "InspectorBackendDispatchers.h"
+
+ def domains_to_generate(self):
+- return filter(lambda domain: len(domain.commands) > 0, Generator.domains_to_generate(self))
++ return [domain for domain in Generator.domains_to_generate(self) if len(domain.commands) > 0]
+
+ def generate_output(self):
+ headers = [
+@@ -68,8 +68,8 @@ class CppBackendDispatcherHeaderGenerator(Generator):
+ sections.append(self.generate_license())
+ sections.append(Template(CppTemplates.HeaderPrelude).substitute(None, **header_args))
+ sections.append(self._generate_alternate_handler_forward_declarations_for_domains(domains))
+- sections.extend(map(self._generate_handler_declarations_for_domain, domains))
+- sections.extend(map(self._generate_dispatcher_declarations_for_domain, domains))
++ sections.extend(list(map(self._generate_handler_declarations_for_domain, domains)))
++ sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, domains)))
+ sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args))
+ return "\n\n".join(sections)
+
+@@ -194,7 +194,7 @@ class CppBackendDispatcherHeaderGenerator(Generator):
+ declarations = []
+ if len(domain.commands) > 0:
+ declarations.append('private:')
+- declarations.extend(map(self._generate_dispatcher_declaration_for_command, domain.commands))
++ declarations.extend(list(map(self._generate_dispatcher_declaration_for_command, domain.commands)))
+
+ handler_args = {
+ 'classAndExportMacro': " ".join(classComponents),
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
+index 8f3df80ee..0c9b30e47 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import ObjectType, ArrayType
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import ObjectType, ArrayType
+
+ log = logging.getLogger('global')
+
+@@ -45,7 +45,7 @@ class CppBackendDispatcherImplementationGenerator(Generator):
+ return "InspectorBackendDispatchers.cpp"
+
+ def domains_to_generate(self):
+- return filter(lambda domain: len(domain.commands) > 0, Generator.domains_to_generate(self))
++ return [domain for domain in Generator.domains_to_generate(self) if len(domain.commands) > 0]
+
+ def generate_output(self):
+ secondary_headers = [
+@@ -69,7 +69,7 @@ class CppBackendDispatcherImplementationGenerator(Generator):
+ sections.append(self.generate_license())
+ sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args))
+ sections.append("\n".join(map(self._generate_handler_class_destructor_for_domain, self.domains_to_generate())))
+- sections.extend(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))
++ sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate())))
+ sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args))
+ return "\n\n".join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
+index 58a3cb925..40905d676 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
+@@ -30,10 +30,10 @@ import re
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import EnumType
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import EnumType
+
+ log = logging.getLogger('global')
+
+@@ -46,7 +46,7 @@ class CppFrontendDispatcherHeaderGenerator(Generator):
+ return "InspectorFrontendDispatchers.h"
+
+ def domains_to_generate(self):
+- return filter(lambda domain: len(domain.events) > 0, Generator.domains_to_generate(self))
++ return [domain for domain in Generator.domains_to_generate(self) if len(domain.events) > 0]
+
+ def generate_output(self):
+ headers = [
+@@ -63,7 +63,7 @@ class CppFrontendDispatcherHeaderGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(CppTemplates.HeaderPrelude).substitute(None, **header_args))
+- sections.extend(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate()))
++ sections.extend(list(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate())))
+ sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args))
+ return "\n\n".join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
+index ea46aaf26..132b1c67c 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import ObjectType, ArrayType
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import ObjectType, ArrayType
+
+ log = logging.getLogger('global')
+
+@@ -45,7 +45,7 @@ class CppFrontendDispatcherImplementationGenerator(Generator):
+ return "InspectorFrontendDispatchers.cpp"
+
+ def domains_to_generate(self):
+- return filter(lambda domain: len(domain.events) > 0, Generator.domains_to_generate(self))
++ return [domain for domain in Generator.domains_to_generate(self) if len(domain.events) > 0]
+
+ def generate_output(self):
+ secondary_headers = [
+@@ -61,7 +61,7 @@ class CppFrontendDispatcherImplementationGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(CppTemplates.ImplementationPrelude).substitute(None, **header_args))
+- sections.extend(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate()))
++ sections.extend(list(map(self._generate_dispatcher_implementations_for_domain, self.domains_to_generate())))
+ sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args))
+ return "\n\n".join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py
+index 6753e2dcf..7bd4375df 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py
+@@ -30,10 +30,10 @@ import re
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import EnumType, ObjectType, PrimitiveType, AliasedType, ArrayType, Frameworks
+
+ log = logging.getLogger('global')
+
+@@ -80,8 +80,8 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ ' return getEnumConstantValue(static_cast<int>(enumValue));',
+ '}']))
+
+- builder_sections = map(self._generate_builders_for_domain, domains)
+- sections.extend(filter(lambda section: len(section) > 0, builder_sections))
++ builder_sections = list(map(self._generate_builders_for_domain, domains))
++ sections.extend([section for section in builder_sections if len(section) > 0])
+ sections.append(self._generate_forward_declarations_for_binding_traits())
+ sections.append('} // namespace Protocol')
+ sections.append(Template(CppTemplates.HeaderPostlude).substitute(None, **header_args))
+@@ -96,8 +96,8 @@ class CppProtocolTypesHeaderGenerator(Generator):
+
+ for domain in domains:
+ declaration_types = [decl.type for decl in domain.type_declarations]
+- object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)
+- enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)
++ object_types = [_type for _type in declaration_types if isinstance(_type, ObjectType)]
++ enum_types = [_type for _type in declaration_types if isinstance(_type, EnumType)]
+ if len(object_types) + len(enum_types) == 0:
+ continue
+
+@@ -122,8 +122,8 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ """ % '\n\n'.join(sections)
+
+ def _generate_typedefs(self, domains):
+- sections = map(self._generate_typedefs_for_domain, domains)
+- sections = filter(lambda text: len(text) > 0, sections)
++ sections = list(map(self._generate_typedefs_for_domain, domains))
++ sections = [text for text in sections if len(text) > 0]
+
+ if len(sections) == 0:
+ return ''
+@@ -133,8 +133,8 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ // End of typedefs.""" % '\n\n'.join(sections)
+
+ def _generate_typedefs_for_domain(self, domain):
+- primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), domain.type_declarations)
+- array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), domain.type_declarations)
++ primitive_declarations = [decl for decl in domain.type_declarations if isinstance(decl.type, AliasedType)]
++ array_declarations = [decl for decl in domain.type_declarations if isinstance(decl.type, ArrayType)]
+ if len(primitive_declarations) == 0 and len(array_declarations) == 0:
+ return ''
+
+@@ -170,7 +170,7 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ elif isinstance(type_declaration.type, ObjectType):
+ sections.append(self._generate_class_for_object_declaration(type_declaration, domain))
+
+- sections = filter(lambda section: len(section) > 0, sections)
++ sections = [section for section in sections if len(section) > 0]
+ if len(sections) == 0:
+ return ''
+
+@@ -184,9 +184,9 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ if len(type_declaration.type_members) == 0:
+ return ''
+
+- enum_members = filter(lambda member: isinstance(member.type, EnumType) and member.type.is_anonymous, type_declaration.type_members)
+- required_members = filter(lambda member: not member.is_optional, type_declaration.type_members)
+- optional_members = filter(lambda member: member.is_optional, type_declaration.type_members)
++ enum_members = [member for member in type_declaration.type_members if isinstance(member.type, EnumType) and member.type.is_anonymous]
++ required_members = [member for member in type_declaration.type_members if not member.is_optional]
++ optional_members = [member for member in type_declaration.type_members if member.is_optional]
+ object_name = type_declaration.type_name
+
+ lines = []
+@@ -244,7 +244,7 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ else:
+ return ' ' + line
+
+- indented_lines = map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type))
++ indented_lines = list(map(apply_indentation, self._generate_struct_for_enum_type(enum_member.member_name, enum_member.type)))
+ return '\n'.join(indented_lines)
+
+ def _generate_struct_for_enum_type(self, enum_name, enum_type):
+@@ -258,7 +258,7 @@ class CppProtocolTypesHeaderGenerator(Generator):
+
+ def _generate_builder_state_enum(self, type_declaration):
+ lines = []
+- required_members = filter(lambda member: not member.is_optional, type_declaration.type_members)
++ required_members = [member for member in type_declaration.type_members if not member.is_optional]
+ enum_values = []
+
+ lines.append(' enum {')
+@@ -323,7 +323,7 @@ class CppProtocolTypesHeaderGenerator(Generator):
+ type_arguments = []
+
+ for domain in self.domains_to_generate():
+- declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), domain.type_declarations)
++ declarations_to_generate = [decl for decl in domain.type_declarations if self.type_needs_shape_assertions(decl.type)]
+
+ for type_declaration in declarations_to_generate:
+ for type_member in type_declaration.type_members:
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
+index 2c263b504..903278bfb 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from cpp_generator_templates import CppGeneratorTemplates as CppTemplates
+-from generator import Generator, ucfirst
+-from models import AliasedType, ArrayType, EnumType, ObjectType
++from .cpp_generator import CppGenerator
++from .cpp_generator_templates import CppGeneratorTemplates as CppTemplates
++from .generator import Generator, ucfirst
++from .models import AliasedType, ArrayType, EnumType, ObjectType
+
+ log = logging.getLogger('global')
+
+@@ -61,8 +61,8 @@ class CppProtocolTypesImplementationGenerator(Generator):
+ sections.append('namespace Protocol {')
+ sections.append(self._generate_enum_mapping())
+ sections.append(self._generate_open_field_names())
+- builder_sections = map(self._generate_builders_for_domain, domains)
+- sections.extend(filter(lambda section: len(section) > 0, builder_sections))
++ builder_sections = list(map(self._generate_builders_for_domain, domains))
++ sections.extend([section for section in builder_sections if len(section) > 0])
+ sections.append('} // namespace Protocol')
+ sections.append(Template(CppTemplates.ImplementationPostlude).substitute(None, **header_args))
+
+@@ -84,7 +84,7 @@ class CppProtocolTypesImplementationGenerator(Generator):
+ def _generate_open_field_names(self):
+ lines = []
+ for domain in self.domains_to_generate():
+- for type_declaration in filter(lambda decl: Generator.type_has_open_fields(decl.type), domain.type_declarations):
++ for type_declaration in [decl for decl in domain.type_declarations if Generator.type_has_open_fields(decl.type)]:
+ for type_member in sorted(type_declaration.type_members, key=lambda member: member.member_name):
+ field_name = '::'.join(['Inspector', 'Protocol', domain.domain_name, ucfirst(type_declaration.type_name), ucfirst(type_member.member_name)])
+ lines.append('const char* %s = "%s";' % (field_name, type_member.member_name))
+@@ -93,7 +93,7 @@ class CppProtocolTypesImplementationGenerator(Generator):
+
+ def _generate_builders_for_domain(self, domain):
+ sections = []
+- declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), domain.type_declarations)
++ declarations_to_generate = [decl for decl in domain.type_declarations if self.type_needs_shape_assertions(decl.type)]
+
+ for type_declaration in declarations_to_generate:
+ for type_member in type_declaration.type_members:
+@@ -114,8 +114,8 @@ class CppProtocolTypesImplementationGenerator(Generator):
+ return Template(CppTemplates.ProtocolObjectRuntimeCast).substitute(None, **args)
+
+ def _generate_assertion_for_object_declaration(self, object_declaration):
+- required_members = filter(lambda member: not member.is_optional, object_declaration.type_members)
+- optional_members = filter(lambda member: member.is_optional, object_declaration.type_members)
++ required_members = [member for member in object_declaration.type_members if not member.is_optional]
++ optional_members = [member for member in object_declaration.type_members if member.is_optional]
+ should_count_properties = not Generator.type_has_open_fields(object_declaration.type)
+ lines = []
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py
+index 3392c7845..bd8f33164 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py
+@@ -29,9 +29,9 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator, ucfirst
+-from generator_templates import GeneratorTemplates as Templates
+-from models import EnumType
++from .generator import Generator, ucfirst
++from .generator_templates import GeneratorTemplates as Templates
++from .models import EnumType
+
+ log = logging.getLogger('global')
+
+@@ -45,15 +45,15 @@ class JSBackendCommandsGenerator(Generator):
+
+ def domains_to_generate(self):
+ def should_generate_domain(domain):
+- domain_enum_types = filter(lambda declaration: isinstance(declaration.type, EnumType), domain.type_declarations)
++ domain_enum_types = [declaration for declaration in domain.type_declarations if isinstance(declaration.type, EnumType)]
+ return len(domain.commands) > 0 or len(domain.events) > 0 or len(domain_enum_types) > 0
+
+- return filter(should_generate_domain, Generator.domains_to_generate(self))
++ return list(filter(should_generate_domain, Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ sections = []
+ sections.append(self.generate_license())
+- sections.extend(map(self.generate_domain, self.domains_to_generate()))
++ sections.extend(list(map(self.generate_domain, self.domains_to_generate())))
+ return "\n\n".join(sections)
+
+ def generate_domain(self, domain):
+@@ -64,7 +64,7 @@ class JSBackendCommandsGenerator(Generator):
+
+ lines.append('// %(domain)s.' % args)
+
+- has_async_commands = any(map(lambda command: command.is_async, domain.commands))
++ has_async_commands = any([command.is_async for command in domain.commands])
+ if len(domain.events) > 0 or has_async_commands:
+ lines.append('InspectorBackend.register%(domain)sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "%(domain)s");' % args)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py
+index d56a0b178..809641d38 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py
+@@ -30,11 +30,11 @@ import string
+ import re
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from generator import Generator
+-from models import Frameworks
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .cpp_generator import CppGenerator
++from .generator import Generator
++from .models import Frameworks
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -47,7 +47,7 @@ class ObjCBackendDispatcherHeaderGenerator(Generator):
+ return '%sBackendDispatchers.h' % ObjCGenerator.OBJC_PREFIX
+
+ def domains_to_generate(self):
+- return filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self))
++ return list(filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ headers = [
+@@ -65,7 +65,7 @@ class ObjCBackendDispatcherHeaderGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPrelude).substitute(None, **header_args))
+- sections.extend(map(self._generate_objc_handler_declarations_for_domain, domains))
++ sections.extend(list(map(self._generate_objc_handler_declarations_for_domain, domains)))
+ sections.append(Template(ObjCTemplates.BackendDispatcherHeaderPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py
+index 42afd99cf..d35d3f14a 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py
+@@ -30,11 +30,11 @@ import string
+ import re
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from generator import Generator
+-from models import PrimitiveType, EnumType, AliasedType, Frameworks
+-from objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .cpp_generator import CppGenerator
++from .generator import Generator
++from .models import PrimitiveType, EnumType, AliasedType, Frameworks
++from .objc_generator import ObjCTypeCategory, ObjCGenerator, join_type_and_name
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -47,7 +47,7 @@ class ObjCConfigurationImplementationGenerator(Generator):
+ return '%sBackendDispatchers.mm' % ObjCGenerator.OBJC_PREFIX
+
+ def domains_to_generate(self):
+- return filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self))
++ return list(filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ secondary_headers = [
+@@ -65,7 +65,7 @@ class ObjCConfigurationImplementationGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPrelude).substitute(None, **header_args))
+- sections.extend(map(self._generate_handler_implementation_for_domain, domains))
++ sections.extend(list(map(self._generate_handler_implementation_for_domain, domains)))
+ sections.append(Template(ObjCTemplates.BackendDispatcherImplementationPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+@@ -112,7 +112,7 @@ class ObjCConfigurationImplementationGenerator(Generator):
+ if command.return_parameters:
+ lines.append(' Ref<InspectorObject> resultObject = InspectorObject::create();')
+
+- required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
++ required_pointer_parameters = [parameter for parameter in command.return_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)]
+ for parameter in required_pointer_parameters:
+ var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+ lines.append(' THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name))
+@@ -120,7 +120,7 @@ class ObjCConfigurationImplementationGenerator(Generator):
+ if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
+ lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))
+
+- optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
++ optional_pointer_parameters = [parameter for parameter in command.return_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)]
+ for parameter in optional_pointer_parameters:
+ var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+ lines.append(' THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name))
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py
+index 9b93f37f6..00f3860c7 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py
+@@ -29,9 +29,9 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py
+index 735abbca3..2db503c0b 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py
+@@ -29,9 +29,9 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_conversion_helpers.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_conversion_helpers.py
+index c31e991e3..7a23251b1 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_conversion_helpers.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_conversion_helpers.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator
+-from models import EnumType
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator
++from .models import EnumType
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -51,7 +51,7 @@ class ObjCConversionHelpersGenerator(Generator):
+ return '%sEnumConversionHelpers.h' % ObjCGenerator.OBJC_PREFIX
+
+ def domains_to_generate(self):
+- return filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self))
++ return list(filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ headers = [
+@@ -67,7 +67,7 @@ class ObjCConversionHelpersGenerator(Generator):
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.ConversionHelpersPrelude).substitute(None, **header_args))
+ sections.append(Template(ObjCTemplates.ConversionHelpersStandard).substitute(None))
+- sections.extend(map(self._generate_enum_conversion_functions, domains))
++ sections.extend(list(map(self._generate_enum_conversion_functions, domains)))
+ sections.append(Template(ObjCTemplates.ConversionHelpersPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py
+index 0030ed5ee..101c09e9f 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from cpp_generator import CppGenerator
+-from generator import Generator, ucfirst
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .cpp_generator import CppGenerator
++from .generator import Generator, ucfirst
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -45,7 +45,7 @@ class ObjCFrontendDispatcherImplementationGenerator(Generator):
+ return '%sEventDispatchers.mm' % ObjCGenerator.OBJC_PREFIX
+
+ def domains_to_generate(self):
+- return filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), Generator.domains_to_generate(self))
++ return list(filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ secondary_headers = [
+@@ -62,7 +62,7 @@ class ObjCFrontendDispatcherImplementationGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args))
+- sections.extend(map(self._generate_event_dispatcher_implementations, domains))
++ sections.extend(list(map(self._generate_event_dispatcher_implementations, domains)))
+ sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+@@ -100,7 +100,7 @@ class ObjCFrontendDispatcherImplementationGenerator(Generator):
+ lines.append(' const FrontendRouter& router = _controller->frontendRouter();')
+ lines.append('')
+
+- required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)
++ required_pointer_parameters = [parameter for parameter in event.event_parameters if not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)]
+ for parameter in required_pointer_parameters:
+ var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+ lines.append(' THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name))
+@@ -108,7 +108,7 @@ class ObjCFrontendDispatcherImplementationGenerator(Generator):
+ if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
+ lines.append(' THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))
+
+- optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)
++ optional_pointer_parameters = [parameter for parameter in event.event_parameters if parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type)]
+ for parameter in optional_pointer_parameters:
+ var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+ lines.append(' THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name))
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py
+index 7e8e61030..1b0059a7a 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator, ucfirst
+-from models import ObjectType, EnumType
+-from objc_generator import ObjCGenerator, join_type_and_name
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator, ucfirst
++from .models import ObjectType, EnumType
++from .objc_generator import ObjCGenerator, join_type_and_name
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -60,9 +60,9 @@ class ObjCHeaderGenerator(Generator):
+ }
+
+ domains = self.domains_to_generate()
+- type_domains = filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), domains)
+- command_domains = filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), domains)
+- event_domains = filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains)
++ type_domains = list(filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), domains))
++ command_domains = list(filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), domains))
++ event_domains = list(filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains))
+
+ # FIXME: <https://webkit.org/b/138222> Web Inspector: Reduce unnecessary enums/types generated in ObjC Protocol Interfaces
+ # Currently we generate enums/types for all types in the type_domains. For the built-in
+@@ -72,11 +72,11 @@ class ObjCHeaderGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.HeaderPrelude).substitute(None, **header_args))
+- sections.append('\n'.join(filter(None, map(self._generate_forward_declarations, type_domains))))
+- sections.append('\n'.join(filter(None, map(self._generate_enums, type_domains))))
+- sections.append('\n'.join(filter(None, map(self._generate_types, type_domains))))
+- sections.append('\n\n'.join(filter(None, map(self._generate_command_protocols, command_domains))))
+- sections.append('\n\n'.join(filter(None, map(self._generate_event_interfaces, event_domains))))
++ sections.append('\n'.join([_f for _f in map(self._generate_forward_declarations, type_domains) if _f]))
++ sections.append('\n'.join([_f for _f in map(self._generate_enums, type_domains) if _f]))
++ sections.append('\n'.join([_f for _f in map(self._generate_types, type_domains) if _f]))
++ sections.append('\n\n'.join([_f for _f in map(self._generate_command_protocols, command_domains) if _f]))
++ sections.append('\n\n'.join([_f for _f in map(self._generate_event_interfaces, event_domains) if _f]))
+ sections.append(Template(ObjCTemplates.HeaderPostlude).substitute(None))
+ return '\n\n'.join(sections)
+
+@@ -156,8 +156,8 @@ class ObjCHeaderGenerator(Generator):
+ objc_name = ObjCGenerator.objc_name_for_type(declaration.type)
+ lines.append('__attribute__((visibility ("default")))')
+ lines.append('@interface %s : %s' % (objc_name, ObjCGenerator.OBJC_JSON_OBJECT_BASE))
+- required_members = filter(lambda member: not member.is_optional, declaration.type_members)
+- optional_members = filter(lambda member: member.is_optional, declaration.type_members)
++ required_members = [member for member in declaration.type_members if not member.is_optional]
++ optional_members = [member for member in declaration.type_members if member.is_optional]
+ if required_members:
+ lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members))
+ for member in required_members:
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py
+index 40802ff17..f21b16222 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py
+@@ -29,9 +29,9 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator, ucfirst
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator, ucfirst
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -56,12 +56,12 @@ class ObjCInternalHeaderGenerator(Generator):
+ }
+
+ domains = self.domains_to_generate()
+- event_domains = filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains)
++ event_domains = list(filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains))
+
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.GenericHeaderPrelude).substitute(None, **header_args))
+- sections.append('\n\n'.join(filter(None, map(self._generate_event_dispatcher_private_interfaces, event_domains))))
++ sections.append('\n\n'.join([_f for _f in map(self._generate_event_dispatcher_private_interfaces, event_domains) if _f]))
+ sections.append(Template(ObjCTemplates.GenericHeaderPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py
+index 95b57f671..8a6aac035 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py
+@@ -29,10 +29,10 @@ import logging
+ import string
+ from string import Template
+
+-from generator import Generator, ucfirst
+-from models import ObjectType
+-from objc_generator import ObjCGenerator
+-from objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
++from .generator import Generator, ucfirst
++from .models import ObjectType
++from .objc_generator import ObjCGenerator
++from .objc_generator_templates import ObjCGeneratorTemplates as ObjCTemplates
+
+ log = logging.getLogger('global')
+
+@@ -51,7 +51,7 @@ class ObjCProtocolTypesImplementationGenerator(Generator):
+ return '%sTypes.mm' % ObjCGenerator.OBJC_PREFIX
+
+ def domains_to_generate(self):
+- return filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self))
++ return list(filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self)))
+
+ def generate_output(self):
+ secondary_headers = [
+@@ -69,7 +69,7 @@ class ObjCProtocolTypesImplementationGenerator(Generator):
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(ObjCTemplates.ImplementationPrelude).substitute(None, **header_args))
+- sections.extend(map(self.generate_type_implementations, domains))
++ sections.extend(list(map(self.generate_type_implementations, domains)))
+ sections.append(Template(ObjCTemplates.ImplementationPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+@@ -84,7 +84,7 @@ class ObjCProtocolTypesImplementationGenerator(Generator):
+ def generate_type_implementation(self, domain, declaration):
+ lines = []
+ lines.append('@implementation %s' % ObjCGenerator.objc_name_for_type(declaration.type))
+- required_members = filter(lambda member: not member.is_optional, declaration.type_members)
++ required_members = [member for member in declaration.type_members if not member.is_optional]
+ if required_members:
+ lines.append('')
+ lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members))
+@@ -112,7 +112,7 @@ class ObjCProtocolTypesImplementationGenerator(Generator):
+ lines.append(' return nil;')
+ lines.append('')
+
+- required_pointer_members = filter(lambda member: ObjCGenerator.is_type_objc_pointer_type(member.type), required_members)
++ required_pointer_members = [member for member in required_members if ObjCGenerator.is_type_objc_pointer_type(member.type)]
+ if required_pointer_members:
+ for member in required_pointer_members:
+ var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/generator.py b/Source/JavaScriptCore/inspector/scripts/codegen/generator.py
+index 4c8f1998e..0ed011136 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/generator.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/generator.py
+@@ -29,8 +29,8 @@ import os.path
+ import re
+ from string import Template
+
+-from generator_templates import GeneratorTemplates as Templates
+-from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
++from .generator_templates import GeneratorTemplates as Templates
++from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
+
+ log = logging.getLogger('global')
+
+@@ -87,7 +87,7 @@ class Generator:
+
+ # These methods are overridden by subclasses.
+ def non_supplemental_domains(self):
+- return filter(lambda domain: not domain.is_supplemental, self.model().domains)
++ return [domain for domain in self.model().domains if not domain.is_supplemental]
+
+ def domains_to_generate(self):
+ return self.non_supplemental_domains()
+@@ -129,7 +129,7 @@ class Generator:
+ # set of types will not be automatically regenerated on subsequent calls to
+ # Generator.types_needing_shape_assertions().
+ def calculate_types_requiring_shape_assertions(self, domains):
+- domain_names = map(lambda domain: domain.domain_name, domains)
++ domain_names = [domain.domain_name for domain in domains]
+ log.debug("> Calculating types that need shape assertions (eligible domains: %s)" % ", ".join(domain_names))
+
+ # Mutates the passed-in set; this simplifies checks to prevent infinite recursion.
+@@ -185,7 +185,7 @@ class Generator:
+ for _type in all_types:
+ if not isinstance(_type, EnumType):
+ continue
+- map(self._assign_encoding_for_enum_value, _type.enum_values())
++ list(map(self._assign_encoding_for_enum_value, _type.enum_values()))
+
+ def _assign_encoding_for_enum_value(self, enum_value):
+ if enum_value in self._enum_value_encodings:
+@@ -219,7 +219,7 @@ class Generator:
+ return match.group(1).upper()
+
+ # Split on hyphen, introduce camelcase, and force uppercasing of acronyms.
+- subwords = map(ucfirst, enum_value.split('-'))
++ subwords = list(map(ucfirst, enum_value.split('-')))
+ return re.sub(re.compile(regex, re.IGNORECASE), replaceCallback, "".join(subwords))
+
+ @staticmethod
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/models.py b/Source/JavaScriptCore/inspector/scripts/codegen/models.py
+index ec16a1291..426ab4b2b 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/models.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/models.py
+@@ -35,7 +35,7 @@ def ucfirst(str):
+
+
+ def find_duplicates(l):
+- return [key for key, count in collections.Counter(l).items() if count > 1]
++ return [key for key, count in list(collections.Counter(l).items()) if count > 1]
+
+
+ _FRAMEWORK_CONFIG_MAP = {
+diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py b/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py
+index f6dd03cb5..00015dc2b 100755
+--- a/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py
++++ b/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py
+@@ -24,8 +24,8 @@
+ # THE POSSIBILITY OF SUCH DAMAGE.
+
+ import logging
+-from generator import Generator, ucfirst
+-from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
++from .generator import Generator, ucfirst
++from .models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
+
+ log = logging.getLogger('global')
+
+@@ -50,7 +50,7 @@ _OBJC_IDENTIFIER_RENAME_MAP = {
+ 'id': 'identifier', # Page.Frame.id, Runtime.ExecutionContextDescription.id, Debugger.BreakpointAction.id
+ }
+
+-_OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in _OBJC_IDENTIFIER_RENAME_MAP.iteritems())
++_OBJC_IDENTIFIER_REVERSE_RENAME_MAP = dict((v, k) for k, v in list(_OBJC_IDENTIFIER_RENAME_MAP.items()))
+
+
+ class ObjCTypeCategory:
+@@ -62,11 +62,11 @@ class ObjCTypeCategory:
+ @staticmethod
+ def category_for_type(_type):
+ if (isinstance(_type, PrimitiveType)):
+- if _type.raw_name() is 'string':
++ if _type.raw_name() == 'string':
+ return ObjCTypeCategory.String
+ if _type.raw_name() in ['object', 'any']:
+ return ObjCTypeCategory.Object
+- if _type.raw_name() is 'array':
++ if _type.raw_name() == 'array':
+ return ObjCTypeCategory.Array
+ return ObjCTypeCategory.Simple
+ if (isinstance(_type, ObjectType)):
+@@ -192,15 +192,15 @@ class ObjCGenerator:
+
+ @staticmethod
+ def objc_type_for_raw_name(raw_name):
+- if raw_name is 'string':
++ if raw_name == 'string':
+ return 'NSString *'
+- if raw_name is 'array':
++ if raw_name == 'array':
+ return 'NSArray *'
+- if raw_name is 'integer':
++ if raw_name == 'integer':
+ return 'int'
+- if raw_name is 'number':
++ if raw_name == 'number':
+ return 'double'
+- if raw_name is 'boolean':
++ if raw_name == 'boolean':
+ return 'BOOL'
+ if raw_name in ['any', 'object']:
+ return '%s *' % ObjCGenerator.OBJC_JSON_OBJECT_BASE
+@@ -208,9 +208,9 @@ class ObjCGenerator:
+
+ @staticmethod
+ def objc_class_for_raw_name(raw_name):
+- if raw_name is 'string':
++ if raw_name == 'string':
+ return 'NSString'
+- if raw_name is 'array':
++ if raw_name == 'array':
+ return 'NSArray'
+ if raw_name in ['integer', 'number', 'boolean']:
+ return 'NSNumber'
+@@ -222,13 +222,13 @@ class ObjCGenerator:
+
+ @staticmethod
+ def protocol_type_for_raw_name(raw_name):
+- if raw_name is 'string':
++ if raw_name == 'string':
+ return 'String'
+- if raw_name is 'integer':
++ if raw_name == 'integer':
+ return 'int'
+- if raw_name is 'number':
++ if raw_name == 'number':
+ return 'double'
+- if raw_name is 'boolean':
++ if raw_name == 'boolean':
+ return 'bool'
+ if raw_name in ['any', 'object']:
+ return 'InspectorObject'
+@@ -370,11 +370,11 @@ class ObjCGenerator:
+ objc_class = ObjCGenerator.objc_class_for_type(var_type.element_type)
+ if protocol_type == 'Inspector::Protocol::Array<String>':
+ return 'inspectorStringArrayArray(%s)' % var_name
+- if protocol_type is 'String' and objc_class is 'NSString':
++ if protocol_type == 'String' and objc_class == 'NSString':
+ return 'inspectorStringArray(%s)' % var_name
+- if protocol_type is 'int' and objc_class is 'NSNumber':
++ if protocol_type == 'int' and objc_class == 'NSNumber':
+ return 'inspectorIntegerArray(%s)' % var_name
+- if protocol_type is 'double' and objc_class is 'NSNumber':
++ if protocol_type == 'double' and objc_class == 'NSNumber':
+ return 'inspectorDoubleArray(%s)' % var_name
+ return 'inspectorObjectArray(%s)' % var_name
+
+@@ -404,9 +404,9 @@ class ObjCGenerator:
+ return '[[[%s alloc] initWithInspectorObject:%s] autorelease]' % (objc_class, var_name)
+ if category is ObjCTypeCategory.Array:
+ objc_class = ObjCGenerator.objc_class_for_type(var_type.element_type)
+- if objc_class is 'NSString':
++ if objc_class == 'NSString':
+ return 'objcStringArray(%s)' % var_name
+- if objc_class is 'NSNumber': # FIXME: Integer or Double?
++ if objc_class == 'NSNumber': # FIXME: Integer or Double?
+ return 'objcIntegerArray(%s)' % var_name
+ return 'objcArray<%s>(%s)' % (objc_class, var_name)
+
+@@ -425,11 +425,11 @@ class ObjCGenerator:
+ return sub_expression
+ if category is ObjCTypeCategory.Array:
+ objc_class = ObjCGenerator.objc_class_for_type(member.type.element_type)
+- if objc_class is 'NSString':
++ if objc_class == 'NSString':
+ return 'inspectorStringArray(%s)' % sub_expression
+- if objc_class is 'NSNumber':
++ if objc_class == 'NSNumber':
+ protocol_type = ObjCGenerator.protocol_type_for_type(member.type.element_type)
+- if protocol_type is 'double':
++ if protocol_type == 'double':
+ return 'inspectorDoubleArray(%s)' % sub_expression
+ return 'inspectorIntegerArray(%s)' % sub_expression
+ return 'inspectorObjectArray(%s)' % sub_expression
+@@ -449,11 +449,11 @@ class ObjCGenerator:
+ if category is ObjCTypeCategory.Array:
+ protocol_type = ObjCGenerator.protocol_type_for_type(member.type.element_type)
+ objc_class = ObjCGenerator.objc_class_for_type(member.type.element_type)
+- if objc_class is 'NSString':
++ if objc_class == 'NSString':
+ return 'objcStringArray(%s)' % sub_expression
+- if objc_class is 'NSNumber':
++ if objc_class == 'NSNumber':
+ protocol_type = ObjCGenerator.protocol_type_for_type(member.type.element_type)
+- if protocol_type is 'double':
++ if protocol_type == 'double':
+ return 'objcDoubleArray(%s)' % sub_expression
+ return 'objcIntegerArray(%s)' % sub_expression
+ return 'objcArray<%s>(%s)' % (objc_class, sub_expression)
+@@ -470,17 +470,17 @@ class ObjCGenerator:
+ _type = _type.aliased_type
+ if (isinstance(_type, PrimitiveType)):
+ raw_name = _type.raw_name()
+- if raw_name is 'boolean':
++ if raw_name == 'boolean':
+ return 'setBool'
+- if raw_name is 'integer':
++ if raw_name == 'integer':
+ return 'setInteger'
+- if raw_name is 'number':
++ if raw_name == 'number':
+ return 'setDouble'
+- if raw_name is 'string':
++ if raw_name == 'string':
+ return 'setString'
+ if raw_name in ['any', 'object']:
+ return 'setObject'
+- if raw_name is 'array':
++ if raw_name == 'array':
+ return 'setInspectorArray'
+ return None
+ if (isinstance(_type, EnumType)):
+@@ -501,17 +501,17 @@ class ObjCGenerator:
+ _type = _type.aliased_type
+ if (isinstance(_type, PrimitiveType)):
+ raw_name = _type.raw_name()
+- if raw_name is 'boolean':
++ if raw_name == 'boolean':
+ return 'boolForKey'
+- if raw_name is 'integer':
++ if raw_name == 'integer':
+ return 'integerForKey'
+- if raw_name is 'number':
++ if raw_name == 'number':
+ return 'doubleForKey'
+- if raw_name is 'string':
++ if raw_name == 'string':
+ return 'stringForKey'
+ if raw_name in ['any', 'object']:
+ return 'objectForKey'
+- if raw_name is 'array':
++ if raw_name == 'array':
+ return 'inspectorArrayForKey'
+ return None
+ if (isinstance(_type, EnumType)):
+diff --git a/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py b/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+index a1987aa90..86cbd4934 100755
+--- a/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
++++ b/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+@@ -48,7 +48,7 @@ try:
+
+ # When copying generator files to JavaScriptCore's private headers on Mac,
+ # the codegen/ module directory is flattened. So, import directly.
+-except ImportError, e:
++except ImportError as e:
+ # log.error(e) # Uncomment this to debug early import errors.
+ import models
+ from models import *
+diff --git a/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py b/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py
+index de32ef6c4..18fff7167 100644
+--- a/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py
++++ b/Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py
+@@ -410,7 +410,7 @@ class InputsModel:
+ self.inputs_by_name = {}
+
+ def enum_types(self):
+- _enums = filter(lambda x: x.is_enum() or x.is_enum_class(), self.types)
++ _enums = [x for x in self.types if x.is_enum() or x.is_enum_class()]
+ return sorted(_enums, key=lambda _enum: _enum.type_name())
+
+ def get_type_for_member(self, member):
+@@ -424,7 +424,7 @@ class InputsModel:
+ if not isinstance(json['types'], dict):
+ raise ParseException("Malformed specification: types is not a dict of framework->type list")
+
+- for framework_name, type_list in json['types'].iteritems():
++ for framework_name, type_list in json['types'].items():
+ if not isinstance(type_list, list):
+ raise ParseException("Malformed specification: type list for framework %s is not a list" % framework_name)
+
+@@ -436,7 +436,7 @@ class InputsModel:
+ if not isinstance(json['inputs'], dict):
+ raise ParseException("Malformed specification: inputs is not a dict of framework->input list")
+
+- for framework_name, input_list in json['inputs'].iteritems():
++ for framework_name, input_list in json['inputs'].items():
+ if not isinstance(input_list, list):
+ raise ParseException("Malformed specification: input list for framework %s is not a list" % framework_name)
+
+@@ -597,8 +597,8 @@ class Generator:
+ implementation_file.close()
+
+ def generate_header(self):
+- enums_to_generate = filter(self.should_generate_item, self._model.enum_types())
+- inputs_to_generate = filter(self.should_generate_item, self._model.inputs)
++ enums_to_generate = list(filter(self.should_generate_item, self._model.enum_types()))
++ inputs_to_generate = list(filter(self.should_generate_item, self._model.inputs))
+
+ template_arguments = {
+ 'licenseBlock': self.generate_license(),
+@@ -620,8 +620,8 @@ class Generator:
+ return Template(Templates.HeaderSkeleton).substitute(template_arguments)
+
+ def generate_implementation(self):
+- enums_to_generate = filter(self.should_generate_item, self._model.enum_types())
+- inputs_to_generate = filter(self.should_generate_item, self._model.inputs)
++ enums_to_generate = list(filter(self.should_generate_item, self._model.enum_types()))
++ inputs_to_generate = list(filter(self.should_generate_item, self._model.inputs))
+
+ template_arguments = {
+ 'licenseBlock': self.generate_license(),
+@@ -680,7 +680,7 @@ class Generator:
+ lines = []
+
+ decls_by_framework = {}
+- frameworks = [Framework.fromString(s) for s in FRAMEWORK_CONFIG_MAP.keys() if s != Frameworks.Global.name]
++ frameworks = [Framework.fromString(s) for s in list(FRAMEWORK_CONFIG_MAP.keys()) if s != Frameworks.Global.name]
+ for framework in frameworks:
+ decls_by_framework[framework] = []
+
+@@ -808,7 +808,7 @@ class Generator:
+ return Template(template).substitute(template_arguments)
+
+ def generate_for_each_macro(self):
+- inputs_to_generate = filter(self.should_generate_item, self._model.inputs)
++ inputs_to_generate = list(filter(self.should_generate_item, self._model.inputs))
+
+ macro_name = "%s_REPLAY_INPUT_NAMES_FOR_EACH" % self.setting('prefix').upper()
+ lines = []
+@@ -858,7 +858,7 @@ class Generator:
+ }
+ encodeLines.append(Template(encode_template).substitute(template_arguments))
+
+- for guard, guard_values in _type.guard_values_map.iteritems():
++ for guard, guard_values in _type.guard_values_map.items():
+ guardedLines = []
+ for guard_value in guard_values:
+ template_arguments = {
+@@ -880,7 +880,7 @@ class Generator:
+ }
+ decodeLines.append(Template(decode_template).substitute(template_arguments))
+
+- for guard, guard_values in _type.guard_values_map.iteritems():
++ for guard, guard_values in _type.guard_values_map.items():
+ guardedLines = []
+ for i, guard_value in enumerate(guard_values):
+ template_arguments = {
+@@ -999,7 +999,7 @@ def generate_from_specifications(input_filepaths=[], output_prefix="", output_di
+ except ValueError as e:
+ raise Exception("Error parsing valid JSON in file: " + input_filepath)
+
+- specifications = map(parse_json_from_file, input_filepaths)
++ specifications = list(map(parse_json_from_file, input_filepaths))
+
+ model = InputsModel()
+ for spec in specifications:
+@@ -1012,7 +1012,7 @@ def generate_from_specifications(input_filepaths=[], output_prefix="", output_di
+
+
+ if __name__ == '__main__':
+- allowed_framework_names = FRAMEWORK_CONFIG_MAP.keys()
++ allowed_framework_names = list(FRAMEWORK_CONFIG_MAP.keys())
+
+ cli_parser = optparse.OptionParser(usage="usage: %prog [options] <Inputs.json> [, <MoreInputs.json> ]")
+ cli_parser.add_option("-o", "--outputDir", help="Directory where generated files should be written.")
+diff --git a/Source/ThirdParty/ANGLE/generate_winrt_projects.py b/Source/ThirdParty/ANGLE/generate_winrt_projects.py
+index e0e517772..5e18782c1 100644
+--- a/Source/ThirdParty/ANGLE/generate_winrt_projects.py
++++ b/Source/ThirdParty/ANGLE/generate_winrt_projects.py
+@@ -30,8 +30,8 @@ def generateProjects(generation_dir, build_winphone):
+ gyp_cmd += ' -D angle_standalone=1'
+ gyp_cmd += ' ' + os.path.join(script_dir, 'angle.gyp')
+
+- print 'Generating projects to ' + generation_dir + ' from gyp files...'
+- print gyp_cmd
++ print('Generating projects to ' + generation_dir + ' from gyp files...')
++ print(gyp_cmd)
+ sys.stdout.flush()
+ os.system(gyp_cmd)
+
+diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Float16ToFloat32.py b/Source/ThirdParty/ANGLE/src/libANGLE/Float16ToFloat32.py
+index cf039bfc2..951aa146e 100644
+--- a/Source/ThirdParty/ANGLE/src/libANGLE/Float16ToFloat32.py
++++ b/Source/ThirdParty/ANGLE/src/libANGLE/Float16ToFloat32.py
+@@ -42,7 +42,7 @@ def convertOffset(i):
+ else:
+ return 1024
+
+-print """//
++print("""//
+ // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+@@ -52,27 +52,27 @@ print """//
+
+ namespace gl
+ {
+-"""
++""")
+
+-print "const static unsigned g_mantissa[2048] = {"
++print("const static unsigned g_mantissa[2048] = {")
+ for i in range(0, 2048):
+- print " %#010x," % convertMantissa(i)
+-print "};\n"
++ print(" %#010x," % convertMantissa(i))
++print("};\n")
+
+-print "const static unsigned g_exponent[64] = {"
++print("const static unsigned g_exponent[64] = {")
+ for i in range(0, 64):
+- print " %#010x," % convertExponent(i)
+-print "};\n"
++ print(" %#010x," % convertExponent(i))
++print("};\n")
+
+-print "const static unsigned g_offset[64] = {"
++print("const static unsigned g_offset[64] = {")
+ for i in range(0, 64):
+- print " %#010x," % convertOffset(i)
+-print "};\n"
++ print(" %#010x," % convertOffset(i))
++print("};\n")
+
+-print """float float16ToFloat32(unsigned short h)
++print("""float float16ToFloat32(unsigned short h)
+ {
+ unsigned i32 = g_mantissa[g_offset[h >> 10] + (h & 0x3ff)] + g_exponent[h >> 10];
+ return *(float*) &i32;
+ }
+ }
+-"""
++""")
+diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/generate_new_renderer.py b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/generate_new_renderer.py
+index 5d64fbd23..e0be48b55 100644
+--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/generate_new_renderer.py
++++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/generate_new_renderer.py
+@@ -21,7 +21,7 @@ import re
+ import string
+
+ if len(sys.argv) < 3:
+- print('Usage: ' + sys.argv[0] + ' <renderer name> <renderer suffix>')
++ print(('Usage: ' + sys.argv[0] + ' <renderer name> <renderer suffix>'))
+
+ renderer_name = sys.argv[1]
+ renderer_suffix = sys.argv[2]
+diff --git a/Source/ThirdParty/gtest/scripts/fuse_gtest_files.py b/Source/ThirdParty/gtest/scripts/fuse_gtest_files.py
+index 148444ca7..333d55590 100755
+--- a/Source/ThirdParty/gtest/scripts/fuse_gtest_files.py
++++ b/Source/ThirdParty/gtest/scripts/fuse_gtest_files.py
+@@ -90,8 +90,8 @@ def VerifyFileExists(directory, relative_path):
+ """
+
+ if not os.path.isfile(os.path.join(directory, relative_path)):
+- print 'ERROR: Cannot find %s in directory %s.' % (relative_path,
+- directory)
++ print('ERROR: Cannot find %s in directory %s.' % (relative_path,
++ directory))
+ print ('Please either specify a valid project root directory '
+ 'or omit it on the command line.')
+ sys.exit(1)
+@@ -119,11 +119,11 @@ def VerifyOutputFile(output_dir, relative_path):
+ # TODO(wan@google.com): The following user-interaction doesn't
+ # work with automated processes. We should provide a way for the
+ # Makefile to force overwriting the files.
+- print ('%s already exists in directory %s - overwrite it? (y/N) ' %
+- (relative_path, output_dir))
++ print(('%s already exists in directory %s - overwrite it? (y/N) ' %
++ (relative_path, output_dir)))
+ answer = sys.stdin.readline().strip()
+ if answer not in ['y', 'Y']:
+- print 'ABORTED.'
++ print('ABORTED.')
+ sys.exit(1)
+
+ # Makes sure the directory holding the output file exists; creates
+@@ -242,7 +242,7 @@ def main():
+ # fuse_gtest_files.py GTEST_ROOT_DIR OUTPUT_DIR
+ FuseGTest(sys.argv[1], sys.argv[2])
+ else:
+- print __doc__
++ print(__doc__)
+ sys.exit(1)
+
+
+diff --git a/Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py b/Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py
+index 8307134ad..748bcfeb4 100755
+--- a/Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py
++++ b/Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py
+@@ -183,7 +183,7 @@ def Title(word):
+ def OneTo(n):
+ """Returns the list [1, 2, 3, ..., n]."""
+
+- return range(1, n + 1)
++ return list(range(1, n + 1))
+
+
+ def Iter(n, format, sep=''):
+@@ -305,13 +305,13 @@ def GenerateFile(path, content):
+ """Given a file path and a content string, overwrites it with the
+ given content."""
+
+- print 'Updating file %s . . .' % path
++ print('Updating file %s . . .' % path)
+
+ f = file(path, 'w+')
+- print >>f, content,
++ print(content, end=' ', file=f)
+ f.close()
+
+- print 'File %s has been updated.' % path
++ print('File %s has been updated.' % path)
+
+
+ def GenerateHeader(n):
+@@ -720,8 +720,8 @@ def _Main():
+ unit test."""
+
+ if len(sys.argv) != 2:
+- print __doc__
+- print 'Author: ' + __author__
++ print(__doc__)
++ print('Author: ' + __author__)
+ sys.exit(1)
+
+ n = int(sys.argv[1])
+diff --git a/Source/ThirdParty/gtest/scripts/pump.py b/Source/ThirdParty/gtest/scripts/pump.py
+index f15c1b6ce..92b70ecec 100755
+--- a/Source/ThirdParty/gtest/scripts/pump.py
++++ b/Source/ThirdParty/gtest/scripts/pump.py
+@@ -236,7 +236,7 @@ def ParseToken(lines, pos, regex, token_type):
+ if m and not m.start():
+ return MakeToken(lines, pos, pos + m.end(), token_type)
+ else:
+- print 'ERROR: %s expected at %s.' % (token_type, pos)
++ print('ERROR: %s expected at %s.' % (token_type, pos))
+ sys.exit(1)
+
+
+@@ -263,8 +263,8 @@ def SkipUntil(lines, pos, regex, token_type):
+ if m:
+ return pos + m.start()
+ else:
+- print ('ERROR: %s expected on line %s after column %s.' %
+- (token_type, pos.line + 1, pos.column))
++ print(('ERROR: %s expected on line %s after column %s.' %
++ (token_type, pos.line + 1, pos.column)))
+ sys.exit(1)
+
+
+@@ -444,8 +444,8 @@ def PushFront(a_list, elem):
+ def PopToken(a_list, token_type=None):
+ token = PopFront(a_list)
+ if token_type is not None and token.token_type != token_type:
+- print 'ERROR: %s expected at %s' % (token_type, token.start)
+- print 'ERROR: %s found instead' % (token,)
++ print('ERROR: %s expected at %s' % (token_type, token.start))
++ print('ERROR: %s found instead' % (token,))
+ sys.exit(1)
+
+ return token
+@@ -609,16 +609,16 @@ class Env:
+ if identifier == var:
+ return value
+
+- print 'ERROR: meta variable %s is undefined.' % (identifier,)
++ print('ERROR: meta variable %s is undefined.' % (identifier,))
+ sys.exit(1)
+
+ def EvalExp(self, exp):
+ try:
+ result = eval(exp.python_exp)
+- except Exception, e:
+- print 'ERROR: caught exception %s: %s' % (e.__class__.__name__, e)
+- print ('ERROR: failed to evaluate meta expression %s at %s' %
+- (exp.python_exp, exp.token.start))
++ except Exception as e:
++ print('ERROR: caught exception %s: %s' % (e.__class__.__name__, e))
++ print(('ERROR: failed to evaluate meta expression %s at %s' %
++ (exp.python_exp, exp.token.start)))
+ sys.exit(1)
+ return result
+
+@@ -627,7 +627,7 @@ class Env:
+ if identifier == var:
+ return (lower, upper)
+
+- print 'ERROR: range %s is undefined.' % (identifier,)
++ print('ERROR: range %s is undefined.' % (identifier,))
+ sys.exit(1)
+
+
+@@ -687,8 +687,8 @@ def RunAtomicCode(env, node, output):
+ elif isinstance(node, CodeNode):
+ RunCode(env.Clone(), node, output)
+ else:
+- print 'BAD'
+- print node
++ print('BAD')
++ print(node)
+ sys.exit(1)
+
+
+@@ -807,7 +807,7 @@ def BeautifyCode(string):
+
+ def main(argv):
+ if len(argv) == 1:
+- print __doc__
++ print(__doc__)
+ sys.exit(1)
+
+ file_path = argv[-1]
+@@ -820,7 +820,7 @@ def main(argv):
+ else:
+ output_file_path = '-'
+ if output_file_path == '-':
+- print output_str,
++ print(output_str, end=' ')
+ else:
+ output_file = file(output_file_path, 'w')
+ output_file.write('// This file was GENERATED by command:\n')
+diff --git a/Source/ThirdParty/gtest/scripts/upload.py b/Source/ThirdParty/gtest/scripts/upload.py
+index 6e6f9a147..4890ea16d 100755
+--- a/Source/ThirdParty/gtest/scripts/upload.py
++++ b/Source/ThirdParty/gtest/scripts/upload.py
+@@ -31,7 +31,7 @@ against by using the '--rev' option.
+ # This code is derived from appcfg.py in the App Engine SDK (open source),
+ # and from ASPN recipe #146306.
+
+-import cookielib
++import http.cookiejar
+ import getpass
+ import logging
+ import md5
+@@ -42,9 +42,9 @@ import re
+ import socket
+ import subprocess
+ import sys
+-import urllib
+-import urllib2
+-import urlparse
++import urllib.request, urllib.parse, urllib.error
++import urllib.request, urllib.error, urllib.parse
++import urllib.parse
+
+ try:
+ import readline
+@@ -79,15 +79,15 @@ def GetEmail(prompt):
+ last_email = last_email_file.readline().strip("\n")
+ last_email_file.close()
+ prompt += " [%s]" % last_email
+- except IOError, e:
++ except IOError as e:
+ pass
+- email = raw_input(prompt + ": ").strip()
++ email = input(prompt + ": ").strip()
+ if email:
+ try:
+ last_email_file = open(last_email_file_name, "w")
+ last_email_file.write(email)
+ last_email_file.close()
+- except IOError, e:
++ except IOError as e:
+ pass
+ else:
+ email = last_email
+@@ -103,20 +103,20 @@ def StatusUpdate(msg):
+ msg: The string to print.
+ """
+ if verbosity > 0:
+- print msg
++ print(msg)
+
+
+ def ErrorExit(msg):
+ """Print an error message to stderr and exit."""
+- print >>sys.stderr, msg
++ print(msg, file=sys.stderr)
+ sys.exit(1)
+
+
+-class ClientLoginError(urllib2.HTTPError):
++class ClientLoginError(urllib.error.HTTPError):
+ """Raised to indicate there was an error authenticating with ClientLogin."""
+
+ def __init__(self, url, code, msg, headers, args):
+- urllib2.HTTPError.__init__(self, url, code, msg, headers, None)
++ urllib.error.HTTPError.__init__(self, url, code, msg, headers, None)
+ self.args = args
+ self.reason = args["Error"]
+
+@@ -162,10 +162,10 @@ class AbstractRpcServer(object):
+ def _CreateRequest(self, url, data=None):
+ """Creates a new urllib request."""
+ logging.debug("Creating request for: '%s' with payload:\n%s", url, data)
+- req = urllib2.Request(url, data=data)
++ req = urllib.request.Request(url, data=data)
+ if self.host_override:
+ req.add_header("Host", self.host_override)
+- for key, value in self.extra_headers.iteritems():
++ for key, value in self.extra_headers.items():
+ req.add_header(key, value)
+ return req
+
+@@ -189,7 +189,7 @@ class AbstractRpcServer(object):
+ account_type = "HOSTED"
+ req = self._CreateRequest(
+ url="https://www.google.com/accounts/ClientLogin",
+- data=urllib.urlencode({
++ data=urllib.parse.urlencode({
+ "Email": email,
+ "Passwd": password,
+ "service": "ah",
+@@ -203,7 +203,7 @@ class AbstractRpcServer(object):
+ response_dict = dict(x.split("=")
+ for x in response_body.split("\n") if x)
+ return response_dict["Auth"]
+- except urllib2.HTTPError, e:
++ except urllib.error.HTTPError as e:
+ if e.code == 403:
+ body = e.read()
+ response_dict = dict(x.split("=", 1) for x in body.split("\n") if x)
+@@ -225,14 +225,14 @@ class AbstractRpcServer(object):
+ continue_location = "http://localhost/"
+ args = {"continue": continue_location, "auth": auth_token}
+ req = self._CreateRequest("http://%s/_ah/login?%s" %
+- (self.host, urllib.urlencode(args)))
++ (self.host, urllib.parse.urlencode(args)))
+ try:
+ response = self.opener.open(req)
+- except urllib2.HTTPError, e:
++ except urllib.error.HTTPError as e:
+ response = e
+ if (response.code != 302 or
+ response.info()["location"] != continue_location):
+- raise urllib2.HTTPError(req.get_full_url(), response.code, response.msg,
++ raise urllib.error.HTTPError(req.get_full_url(), response.code, response.msg,
+ response.headers, response.fp)
+ self.authenticated = True
+
+@@ -255,34 +255,34 @@ class AbstractRpcServer(object):
+ credentials = self.auth_function()
+ try:
+ auth_token = self._GetAuthToken(credentials[0], credentials[1])
+- except ClientLoginError, e:
++ except ClientLoginError as e:
+ if e.reason == "BadAuthentication":
+- print >>sys.stderr, "Invalid username or password."
++ print("Invalid username or password.", file=sys.stderr)
+ continue
+ if e.reason == "CaptchaRequired":
+- print >>sys.stderr, (
++ print((
+ "Please go to\n"
+ "https://www.google.com/accounts/DisplayUnlockCaptcha\n"
+- "and verify you are a human. Then try again.")
++ "and verify you are a human. Then try again."), file=sys.stderr)
+ break
+ if e.reason == "NotVerified":
+- print >>sys.stderr, "Account not verified."
++ print("Account not verified.", file=sys.stderr)
+ break
+ if e.reason == "TermsNotAgreed":
+- print >>sys.stderr, "User has not agreed to TOS."
++ print("User has not agreed to TOS.", file=sys.stderr)
+ break
+ if e.reason == "AccountDeleted":
+- print >>sys.stderr, "The user account has been deleted."
++ print("The user account has been deleted.", file=sys.stderr)
+ break
+ if e.reason == "AccountDisabled":
+- print >>sys.stderr, "The user account has been disabled."
++ print("The user account has been disabled.", file=sys.stderr)
+ break
+ if e.reason == "ServiceDisabled":
+- print >>sys.stderr, ("The user's access to the service has been "
+- "disabled.")
++ print(("The user's access to the service has been "
++ "disabled."), file=sys.stderr)
+ break
+ if e.reason == "ServiceUnavailable":
+- print >>sys.stderr, "The service is not available; try again later."
++ print("The service is not available; try again later.", file=sys.stderr)
+ break
+ raise
+ self._GetAuthCookie(auth_token)
+@@ -319,7 +319,7 @@ class AbstractRpcServer(object):
+ args = dict(kwargs)
+ url = "http://%s%s" % (self.host, request_path)
+ if args:
+- url += "?" + urllib.urlencode(args)
++ url += "?" + urllib.parse.urlencode(args)
+ req = self._CreateRequest(url=url, data=payload)
+ req.add_header("Content-Type", content_type)
+ try:
+@@ -327,7 +327,7 @@ class AbstractRpcServer(object):
+ response = f.read()
+ f.close()
+ return response
+- except urllib2.HTTPError, e:
++ except urllib.error.HTTPError as e:
+ if tries > 3:
+ raise
+ elif e.code == 401:
+@@ -357,35 +357,35 @@ class HttpRpcServer(AbstractRpcServer):
+ Returns:
+ A urllib2.OpenerDirector object.
+ """
+- opener = urllib2.OpenerDirector()
+- opener.add_handler(urllib2.ProxyHandler())
+- opener.add_handler(urllib2.UnknownHandler())
+- opener.add_handler(urllib2.HTTPHandler())
+- opener.add_handler(urllib2.HTTPDefaultErrorHandler())
+- opener.add_handler(urllib2.HTTPSHandler())
++ opener = urllib.request.OpenerDirector()
++ opener.add_handler(urllib.request.ProxyHandler())
++ opener.add_handler(urllib.request.UnknownHandler())
++ opener.add_handler(urllib.request.HTTPHandler())
++ opener.add_handler(urllib.request.HTTPDefaultErrorHandler())
++ opener.add_handler(urllib.request.HTTPSHandler())
+ opener.add_handler(urllib2.HTTPErrorProcessor())
+ if self.save_cookies:
+ self.cookie_file = os.path.expanduser("~/.codereview_upload_cookies")
+- self.cookie_jar = cookielib.MozillaCookieJar(self.cookie_file)
++ self.cookie_jar = http.cookiejar.MozillaCookieJar(self.cookie_file)
+ if os.path.exists(self.cookie_file):
+ try:
+ self.cookie_jar.load()
+ self.authenticated = True
+ StatusUpdate("Loaded authentication cookies from %s" %
+ self.cookie_file)
+- except (cookielib.LoadError, IOError):
++ except (http.cookiejar.LoadError, IOError):
+ # Failed to load cookies - just ignore them.
+ pass
+ else:
+ # Create an empty cookie file with mode 600
+- fd = os.open(self.cookie_file, os.O_CREAT, 0600)
++ fd = os.open(self.cookie_file, os.O_CREAT, 0o600)
+ os.close(fd)
+ # Always chmod the cookie file
+- os.chmod(self.cookie_file, 0600)
++ os.chmod(self.cookie_file, 0o600)
+ else:
+ # Don't save cookies across runs of update.py.
+- self.cookie_jar = cookielib.CookieJar()
+- opener.add_handler(urllib2.HTTPCookieProcessor(self.cookie_jar))
++ self.cookie_jar = http.cookiejar.CookieJar()
++ opener.add_handler(urllib.request.HTTPCookieProcessor(self.cookie_jar))
+ return opener
+
+
+@@ -560,7 +560,7 @@ def RunShellWithReturnCode(command, print_output=False,
+ line = p.stdout.readline()
+ if not line:
+ break
+- print line.strip("\n")
++ print(line.strip("\n"))
+ output_array.append(line)
+ output = "".join(output_array)
+ else:
+@@ -568,7 +568,7 @@ def RunShellWithReturnCode(command, print_output=False,
+ p.wait()
+ errout = p.stderr.read()
+ if print_output and errout:
+- print >>sys.stderr, errout
++ print(errout, file=sys.stderr)
+ p.stdout.close()
+ p.stderr.close()
+ return output, p.returncode
+@@ -614,11 +614,11 @@ class VersionControlSystem(object):
+ """Show an "are you sure?" prompt if there are unknown files."""
+ unknown_files = self.GetUnknownFiles()
+ if unknown_files:
+- print "The following files are not added to version control:"
++ print("The following files are not added to version control:")
+ for line in unknown_files:
+- print line
++ print(line)
+ prompt = "Are you sure to continue?(y/N) "
+- answer = raw_input(prompt).strip()
++ answer = input(prompt).strip()
+ if answer != "y":
+ ErrorExit("User aborted")
+
+@@ -670,13 +670,13 @@ class VersionControlSystem(object):
+ else:
+ type = "current"
+ if len(content) > MAX_UPLOAD_SIZE:
+- print ("Not uploading the %s file for %s because it's too large." %
+- (type, filename))
++ print(("Not uploading the %s file for %s because it's too large." %
++ (type, filename)))
+ file_too_large = True
+ content = ""
+ checksum = md5.new(content).hexdigest()
+ if options.verbose > 0 and not file_too_large:
+- print "Uploading %s file for %s" % (type, filename)
++ print("Uploading %s file for %s" % (type, filename))
+ url = "/%d/upload_content/%d/%d" % (int(issue), int(patchset), file_id)
+ form_fields = [("filename", filename),
+ ("status", status),
+@@ -698,7 +698,7 @@ class VersionControlSystem(object):
+
+ patches = dict()
+ [patches.setdefault(v, k) for k, v in patch_list]
+- for filename in patches.keys():
++ for filename in list(patches.keys()):
+ base_content, new_content, is_binary, status = files[filename]
+ file_id_str = patches.get(filename)
+ if file_id_str.find("nobase") != -1:
+@@ -755,8 +755,8 @@ class SubversionVCS(VersionControlSystem):
+ words = line.split()
+ if len(words) == 2 and words[0] == "URL:":
+ url = words[1]
+- scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
+- username, netloc = urllib.splituser(netloc)
++ scheme, netloc, path, params, query, fragment = urllib.parse.urlparse(url)
++ username, netloc = urllib.parse.splituser(netloc)
+ if username:
+ logging.info("Removed username from base URL")
+ if netloc.endswith("svn.python.org"):
+@@ -774,12 +774,12 @@ class SubversionVCS(VersionControlSystem):
+ logging.info("Guessed CollabNet base = %s", base)
+ elif netloc.endswith(".googlecode.com"):
+ path = path + "/"
+- base = urlparse.urlunparse(("http", netloc, path, params,
++ base = urllib.parse.urlunparse(("http", netloc, path, params,
+ query, fragment))
+ logging.info("Guessed Google Code base = %s", base)
+ else:
+ path = path + "/"
+- base = urlparse.urlunparse((scheme, netloc, path, params,
++ base = urllib.parse.urlunparse((scheme, netloc, path, params,
+ query, fragment))
+ logging.info("Guessed base = %s", base)
+ return base
+@@ -1187,8 +1187,8 @@ def UploadSeparatePatches(issue, rpc_server, patchset, data, options):
+ rv = []
+ for patch in patches:
+ if len(patch[1]) > MAX_UPLOAD_SIZE:
+- print ("Not uploading the patch for " + patch[0] +
+- " because the file is too large.")
++ print(("Not uploading the patch for " + patch[0] +
++ " because the file is too large."))
+ continue
+ form_fields = [("filename", patch[0])]
+ if not options.download_base:
+@@ -1196,7 +1196,7 @@ def UploadSeparatePatches(issue, rpc_server, patchset, data, options):
+ files = [("data", "data.diff", patch[1])]
+ ctype, body = EncodeMultipartFormData(form_fields, files)
+ url = "/%d/upload_patch/%d" % (int(issue), int(patchset))
+- print "Uploading patch for " + patch[0]
++ print("Uploading patch for " + patch[0])
+ response_body = rpc_server.Send(url, body, content_type=ctype)
+ lines = response_body.splitlines()
+ if not lines or lines[0] != "OK":
+@@ -1223,7 +1223,8 @@ def GuessVCS(options):
+ out, returncode = RunShellWithReturnCode(["hg", "root"])
+ if returncode == 0:
+ return MercurialVCS(options, out.strip())
+- except OSError, (errno, message):
++ except OSError as xxx_todo_changeme:
++ (errno, message) = xxx_todo_changeme.args
+ if errno != 2: # ENOENT -- they don't have hg installed.
+ raise
+
+@@ -1239,7 +1240,8 @@ def GuessVCS(options):
+ "--is-inside-work-tree"])
+ if returncode == 0:
+ return GitVCS(options)
+- except OSError, (errno, message):
++ except OSError as xxx_todo_changeme1:
++ (errno, message) = xxx_todo_changeme1.args
+ if errno != 2: # ENOENT -- they don't have git installed.
+ raise
+
+@@ -1286,12 +1288,12 @@ def RealMain(argv, data=None):
+ data = vcs.GenerateDiff(args)
+ files = vcs.GetBaseFiles(data)
+ if verbosity >= 1:
+- print "Upload server:", options.server, "(change with -s/--server)"
++ print("Upload server:", options.server, "(change with -s/--server)")
+ if options.issue:
+ prompt = "Message describing this patch set: "
+ else:
+ prompt = "New issue subject: "
+- message = options.message or raw_input(prompt).strip()
++ message = options.message or input(prompt).strip()
+ if not message:
+ ErrorExit("A non-empty message is required")
+ rpc_server = GetRpcServer(options)
+@@ -1324,7 +1326,7 @@ def RealMain(argv, data=None):
+ # Send a hash of all the base file so the server can determine if a copy
+ # already exists in an earlier patchset.
+ base_hashes = ""
+- for file, info in files.iteritems():
++ for file, info in files.items():
+ if not info[0] is None:
+ checksum = md5.new(info[0]).hexdigest()
+ if base_hashes:
+@@ -1338,7 +1340,7 @@ def RealMain(argv, data=None):
+ if not options.download_base:
+ form_fields.append(("content_upload", "1"))
+ if len(data) > MAX_UPLOAD_SIZE:
+- print "Patch is large, so uploading file patches separately."
++ print("Patch is large, so uploading file patches separately.")
+ uploaded_diff_file = []
+ form_fields.append(("separate_patches", "1"))
+ else:
+@@ -1378,7 +1380,7 @@ def main():
+ try:
+ RealMain(sys.argv)
+ except KeyboardInterrupt:
+- print
++ print()
+ StatusUpdate("Interrupted.")
+ sys.exit(1)
+
+diff --git a/Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py b/Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py
+index c81918331..f36abe338 100755
+--- a/Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py
++++ b/Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py
+@@ -145,7 +145,7 @@ class GTestBreakOnFailureUnitTest(gtest_test_utils.TestCase):
+ msg = ('when %s%s, an assertion failure in "%s" %s cause a seg-fault.' %
+ (BREAK_ON_FAILURE_ENV_VAR, env_var_value_msg, ' '.join(command),
+ should_or_not))
+- self.assert_(has_seg_fault == expect_seg_fault, msg)
++ self.assertTrue(has_seg_fault == expect_seg_fault, msg)
+
+ def testDefaultBehavior(self):
+ """Tests the behavior of the default mode."""
+diff --git a/Source/ThirdParty/gtest/test/gtest_color_test.py b/Source/ThirdParty/gtest/test/gtest_color_test.py
+index d02a53ed8..b69ab0947 100755
+--- a/Source/ThirdParty/gtest/test/gtest_color_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_color_test.py
+@@ -72,58 +72,58 @@ class GTestColorTest(gtest_test_utils.TestCase):
+ """Tests the case when there's neither GTEST_COLOR nor --gtest_color."""
+
+ if not IS_WINDOWS:
+- self.assert_(not UsesColor('dumb', None, None))
+- self.assert_(not UsesColor('emacs', None, None))
+- self.assert_(not UsesColor('xterm-mono', None, None))
+- self.assert_(not UsesColor('unknown', None, None))
+- self.assert_(not UsesColor(None, None, None))
+- self.assert_(UsesColor('linux', None, None))
+- self.assert_(UsesColor('cygwin', None, None))
+- self.assert_(UsesColor('xterm', None, None))
+- self.assert_(UsesColor('xterm-color', None, None))
+- self.assert_(UsesColor('xterm-256color', None, None))
++ self.assertTrue(not UsesColor('dumb', None, None))
++ self.assertTrue(not UsesColor('emacs', None, None))
++ self.assertTrue(not UsesColor('xterm-mono', None, None))
++ self.assertTrue(not UsesColor('unknown', None, None))
++ self.assertTrue(not UsesColor(None, None, None))
++ self.assertTrue(UsesColor('linux', None, None))
++ self.assertTrue(UsesColor('cygwin', None, None))
++ self.assertTrue(UsesColor('xterm', None, None))
++ self.assertTrue(UsesColor('xterm-color', None, None))
++ self.assertTrue(UsesColor('xterm-256color', None, None))
+
+ def testFlagOnly(self):
+ """Tests the case when there's --gtest_color but not GTEST_COLOR."""
+
+- self.assert_(not UsesColor('dumb', None, 'no'))
+- self.assert_(not UsesColor('xterm-color', None, 'no'))
++ self.assertTrue(not UsesColor('dumb', None, 'no'))
++ self.assertTrue(not UsesColor('xterm-color', None, 'no'))
+ if not IS_WINDOWS:
+- self.assert_(not UsesColor('emacs', None, 'auto'))
+- self.assert_(UsesColor('xterm', None, 'auto'))
+- self.assert_(UsesColor('dumb', None, 'yes'))
+- self.assert_(UsesColor('xterm', None, 'yes'))
++ self.assertTrue(not UsesColor('emacs', None, 'auto'))
++ self.assertTrue(UsesColor('xterm', None, 'auto'))
++ self.assertTrue(UsesColor('dumb', None, 'yes'))
++ self.assertTrue(UsesColor('xterm', None, 'yes'))
+
+ def testEnvVarOnly(self):
+ """Tests the case when there's GTEST_COLOR but not --gtest_color."""
+
+- self.assert_(not UsesColor('dumb', 'no', None))
+- self.assert_(not UsesColor('xterm-color', 'no', None))
++ self.assertTrue(not UsesColor('dumb', 'no', None))
++ self.assertTrue(not UsesColor('xterm-color', 'no', None))
+ if not IS_WINDOWS:
+- self.assert_(not UsesColor('dumb', 'auto', None))
+- self.assert_(UsesColor('xterm-color', 'auto', None))
+- self.assert_(UsesColor('dumb', 'yes', None))
+- self.assert_(UsesColor('xterm-color', 'yes', None))
++ self.assertTrue(not UsesColor('dumb', 'auto', None))
++ self.assertTrue(UsesColor('xterm-color', 'auto', None))
++ self.assertTrue(UsesColor('dumb', 'yes', None))
++ self.assertTrue(UsesColor('xterm-color', 'yes', None))
+
+ def testEnvVarAndFlag(self):
+ """Tests the case when there are both GTEST_COLOR and --gtest_color."""
+
+- self.assert_(not UsesColor('xterm-color', 'no', 'no'))
+- self.assert_(UsesColor('dumb', 'no', 'yes'))
+- self.assert_(UsesColor('xterm-color', 'no', 'auto'))
++ self.assertTrue(not UsesColor('xterm-color', 'no', 'no'))
++ self.assertTrue(UsesColor('dumb', 'no', 'yes'))
++ self.assertTrue(UsesColor('xterm-color', 'no', 'auto'))
+
+ def testAliasesOfYesAndNo(self):
+ """Tests using aliases in specifying --gtest_color."""
+
+- self.assert_(UsesColor('dumb', None, 'true'))
+- self.assert_(UsesColor('dumb', None, 'YES'))
+- self.assert_(UsesColor('dumb', None, 'T'))
+- self.assert_(UsesColor('dumb', None, '1'))
++ self.assertTrue(UsesColor('dumb', None, 'true'))
++ self.assertTrue(UsesColor('dumb', None, 'YES'))
++ self.assertTrue(UsesColor('dumb', None, 'T'))
++ self.assertTrue(UsesColor('dumb', None, '1'))
+
+- self.assert_(not UsesColor('xterm', None, 'f'))
+- self.assert_(not UsesColor('xterm', None, 'false'))
+- self.assert_(not UsesColor('xterm', None, '0'))
+- self.assert_(not UsesColor('xterm', None, 'unknown'))
++ self.assertTrue(not UsesColor('xterm', None, 'f'))
++ self.assertTrue(not UsesColor('xterm', None, 'false'))
++ self.assertTrue(not UsesColor('xterm', None, '0'))
++ self.assertTrue(not UsesColor('xterm', None, 'unknown'))
+
+
+ if __name__ == '__main__':
+diff --git a/Source/ThirdParty/gtest/test/gtest_env_var_test.py b/Source/ThirdParty/gtest/test/gtest_env_var_test.py
+index bcc0bfd55..868896831 100755
+--- a/Source/ThirdParty/gtest/test/gtest_env_var_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_env_var_test.py
+@@ -47,8 +47,8 @@ environ = os.environ.copy()
+
+ def AssertEq(expected, actual):
+ if expected != actual:
+- print 'Expected: %s' % (expected,)
+- print ' Actual: %s' % (actual,)
++ print('Expected: %s' % (expected,))
++ print(' Actual: %s' % (actual,))
+ raise AssertionError
+
+
+diff --git a/Source/ThirdParty/gtest/test/gtest_filter_unittest.py b/Source/ThirdParty/gtest/test/gtest_filter_unittest.py
+index 0d1a77005..595b2fa33 100755
+--- a/Source/ThirdParty/gtest/test/gtest_filter_unittest.py
++++ b/Source/ThirdParty/gtest/test/gtest_filter_unittest.py
+@@ -231,10 +231,10 @@ class GTestFilterUnitTest(gtest_test_utils.TestCase):
+ """Asserts that two sets are equal."""
+
+ for elem in lhs:
+- self.assert_(elem in rhs, '%s in %s' % (elem, rhs))
++ self.assertTrue(elem in rhs, '%s in %s' % (elem, rhs))
+
+ for elem in rhs:
+- self.assert_(elem in lhs, '%s in %s' % (elem, lhs))
++ self.assertTrue(elem in lhs, '%s in %s' % (elem, lhs))
+
+ def AssertPartitionIsValid(self, set_var, list_of_sets):
+ """Asserts that list_of_sets is a valid partition of set_var."""
+@@ -575,13 +575,13 @@ class GTestFilterUnitTest(gtest_test_utils.TestCase):
+
+ shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
+ 'shard_status_file')
+- self.assert_(not os.path.exists(shard_status_file))
++ self.assertTrue(not os.path.exists(shard_status_file))
+
+ extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
+ try:
+ InvokeWithModifiedEnv(extra_env, RunAndReturnOutput)
+ finally:
+- self.assert_(os.path.exists(shard_status_file))
++ self.assertTrue(os.path.exists(shard_status_file))
+ os.remove(shard_status_file)
+
+ def testShardStatusFileIsCreatedWithListTests(self):
+@@ -589,7 +589,7 @@ class GTestFilterUnitTest(gtest_test_utils.TestCase):
+
+ shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
+ 'shard_status_file2')
+- self.assert_(not os.path.exists(shard_status_file))
++ self.assertTrue(not os.path.exists(shard_status_file))
+
+ extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
+ try:
+@@ -599,12 +599,12 @@ class GTestFilterUnitTest(gtest_test_utils.TestCase):
+ finally:
+ # This assertion ensures that Google Test enumerated the tests as
+ # opposed to running them.
+- self.assert_('[==========]' not in output,
++ self.assertTrue('[==========]' not in output,
+ 'Unexpected output during test enumeration.\n'
+ 'Please ensure that LIST_TESTS_FLAG is assigned the\n'
+ 'correct flag value for listing Google Test tests.')
+
+- self.assert_(os.path.exists(shard_status_file))
++ self.assertTrue(os.path.exists(shard_status_file))
+ os.remove(shard_status_file)
+
+ if SUPPORTS_DEATH_TESTS:
+diff --git a/Source/ThirdParty/gtest/test/gtest_help_test.py b/Source/ThirdParty/gtest/test/gtest_help_test.py
+index 3cb4c48e0..8aae487b4 100755
+--- a/Source/ThirdParty/gtest/test/gtest_help_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_help_test.py
+@@ -107,17 +107,17 @@ class GTestHelpTest(gtest_test_utils.TestCase):
+ """
+
+ exit_code, output = RunWithFlag(flag)
+- self.assertEquals(0, exit_code)
+- self.assert_(HELP_REGEX.search(output), output)
++ self.assertEqual(0, exit_code)
++ self.assertTrue(HELP_REGEX.search(output), output)
+ if IS_WINDOWS:
+- self.assert_(CATCH_EXCEPTIONS_FLAG in output, output)
++ self.assertTrue(CATCH_EXCEPTIONS_FLAG in output, output)
+ else:
+- self.assert_(CATCH_EXCEPTIONS_FLAG not in output, output)
++ self.assertTrue(CATCH_EXCEPTIONS_FLAG not in output, output)
+
+ if SUPPORTS_DEATH_TESTS and not IS_WINDOWS:
+- self.assert_(DEATH_TEST_STYLE_FLAG in output, output)
++ self.assertTrue(DEATH_TEST_STYLE_FLAG in output, output)
+ else:
+- self.assert_(DEATH_TEST_STYLE_FLAG not in output, output)
++ self.assertTrue(DEATH_TEST_STYLE_FLAG not in output, output)
+
+ def TestNonHelpFlag(self, flag):
+ """Verifies correct behavior when no help flag is specified.
+@@ -130,8 +130,8 @@ class GTestHelpTest(gtest_test_utils.TestCase):
+ """
+
+ exit_code, output = RunWithFlag(flag)
+- self.assert_(exit_code != 0)
+- self.assert_(not HELP_REGEX.search(output), output)
++ self.assertTrue(exit_code != 0)
++ self.assertTrue(not HELP_REGEX.search(output), output)
+
+ def testPrintsHelpWithFullFlag(self):
+ self.TestHelpFlag('--help')
+diff --git a/Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py b/Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py
+index ce8c3ef05..1d3ce746c 100755
+--- a/Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py
++++ b/Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py
+@@ -136,9 +136,9 @@ class GTestListTestsUnitTest(gtest_test_utils.TestCase):
+ (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output))
+
+ if expected_output is not None:
+- self.assert_(output == expected_output, msg)
++ self.assertTrue(output == expected_output, msg)
+ else:
+- self.assert_(output != EXPECTED_OUTPUT_NO_FILTER, msg)
++ self.assertTrue(output != EXPECTED_OUTPUT_NO_FILTER, msg)
+
+ def testDefaultBehavior(self):
+ """Tests the behavior of the default mode."""
+diff --git a/Source/ThirdParty/gtest/test/gtest_shuffle_test.py b/Source/ThirdParty/gtest/test/gtest_shuffle_test.py
+index 30d0303d1..e4902f09a 100755
+--- a/Source/ThirdParty/gtest/test/gtest_shuffle_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_shuffle_test.py
+@@ -179,23 +179,23 @@ class GTestShuffleUnitTest(gtest_test_utils.TestCase):
+ self.assertEqual(len(SHARDED_TESTS), len(SHUFFLED_SHARDED_TESTS))
+
+ def testShuffleChangesTestOrder(self):
+- self.assert_(SHUFFLED_ALL_TESTS != ALL_TESTS, SHUFFLED_ALL_TESTS)
+- self.assert_(SHUFFLED_ACTIVE_TESTS != ACTIVE_TESTS, SHUFFLED_ACTIVE_TESTS)
+- self.assert_(SHUFFLED_FILTERED_TESTS != FILTERED_TESTS,
++ self.assertTrue(SHUFFLED_ALL_TESTS != ALL_TESTS, SHUFFLED_ALL_TESTS)
++ self.assertTrue(SHUFFLED_ACTIVE_TESTS != ACTIVE_TESTS, SHUFFLED_ACTIVE_TESTS)
++ self.assertTrue(SHUFFLED_FILTERED_TESTS != FILTERED_TESTS,
+ SHUFFLED_FILTERED_TESTS)
+- self.assert_(SHUFFLED_SHARDED_TESTS != SHARDED_TESTS,
++ self.assertTrue(SHUFFLED_SHARDED_TESTS != SHARDED_TESTS,
+ SHUFFLED_SHARDED_TESTS)
+
+ def testShuffleChangesTestCaseOrder(self):
+- self.assert_(GetTestCases(SHUFFLED_ALL_TESTS) != GetTestCases(ALL_TESTS),
++ self.assertTrue(GetTestCases(SHUFFLED_ALL_TESTS) != GetTestCases(ALL_TESTS),
+ GetTestCases(SHUFFLED_ALL_TESTS))
+- self.assert_(
++ self.assertTrue(
+ GetTestCases(SHUFFLED_ACTIVE_TESTS) != GetTestCases(ACTIVE_TESTS),
+ GetTestCases(SHUFFLED_ACTIVE_TESTS))
+- self.assert_(
++ self.assertTrue(
+ GetTestCases(SHUFFLED_FILTERED_TESTS) != GetTestCases(FILTERED_TESTS),
+ GetTestCases(SHUFFLED_FILTERED_TESTS))
+- self.assert_(
++ self.assertTrue(
+ GetTestCases(SHUFFLED_SHARDED_TESTS) != GetTestCases(SHARDED_TESTS),
+ GetTestCases(SHUFFLED_SHARDED_TESTS))
+
+@@ -215,29 +215,29 @@ class GTestShuffleUnitTest(gtest_test_utils.TestCase):
+
+ def testShuffleDoesNotCreateNewTest(self):
+ for test in SHUFFLED_ALL_TESTS:
+- self.assert_(test in ALL_TESTS, '%s is an invalid test' % (test,))
++ self.assertTrue(test in ALL_TESTS, '%s is an invalid test' % (test,))
+ for test in SHUFFLED_ACTIVE_TESTS:
+- self.assert_(test in ACTIVE_TESTS, '%s is an invalid test' % (test,))
++ self.assertTrue(test in ACTIVE_TESTS, '%s is an invalid test' % (test,))
+ for test in SHUFFLED_FILTERED_TESTS:
+- self.assert_(test in FILTERED_TESTS, '%s is an invalid test' % (test,))
++ self.assertTrue(test in FILTERED_TESTS, '%s is an invalid test' % (test,))
+ for test in SHUFFLED_SHARDED_TESTS:
+- self.assert_(test in SHARDED_TESTS, '%s is an invalid test' % (test,))
++ self.assertTrue(test in SHARDED_TESTS, '%s is an invalid test' % (test,))
+
+ def testShuffleIncludesAllTests(self):
+ for test in ALL_TESTS:
+- self.assert_(test in SHUFFLED_ALL_TESTS, '%s is missing' % (test,))
++ self.assertTrue(test in SHUFFLED_ALL_TESTS, '%s is missing' % (test,))
+ for test in ACTIVE_TESTS:
+- self.assert_(test in SHUFFLED_ACTIVE_TESTS, '%s is missing' % (test,))
++ self.assertTrue(test in SHUFFLED_ACTIVE_TESTS, '%s is missing' % (test,))
+ for test in FILTERED_TESTS:
+- self.assert_(test in SHUFFLED_FILTERED_TESTS, '%s is missing' % (test,))
++ self.assertTrue(test in SHUFFLED_FILTERED_TESTS, '%s is missing' % (test,))
+ for test in SHARDED_TESTS:
+- self.assert_(test in SHUFFLED_SHARDED_TESTS, '%s is missing' % (test,))
++ self.assertTrue(test in SHUFFLED_SHARDED_TESTS, '%s is missing' % (test,))
+
+ def testShuffleLeavesDeathTestsAtFront(self):
+ non_death_test_found = False
+ for test in SHUFFLED_ACTIVE_TESTS:
+ if 'DeathTest.' in test:
+- self.assert_(not non_death_test_found,
++ self.assertTrue(not non_death_test_found,
+ '%s appears after a non-death test' % (test,))
+ else:
+ non_death_test_found = True
+@@ -295,11 +295,11 @@ class GTestShuffleUnitTest(gtest_test_utils.TestCase):
+ GetTestsForAllIterations(
+ {}, [ShuffleFlag(), RandomSeedFlag(1), RepeatFlag(3)]))
+
+- self.assert_(tests_in_iteration1 != tests_in_iteration2,
++ self.assertTrue(tests_in_iteration1 != tests_in_iteration2,
+ tests_in_iteration1)
+- self.assert_(tests_in_iteration1 != tests_in_iteration3,
++ self.assertTrue(tests_in_iteration1 != tests_in_iteration3,
+ tests_in_iteration1)
+- self.assert_(tests_in_iteration2 != tests_in_iteration3,
++ self.assertTrue(tests_in_iteration2 != tests_in_iteration3,
+ tests_in_iteration2)
+
+ def testShuffleShardedTestsPreservesPartition(self):
+diff --git a/Source/ThirdParty/gtest/test/gtest_test_utils.py b/Source/ThirdParty/gtest/test/gtest_test_utils.py
+index e0f5973e7..80a953ea1 100755
+--- a/Source/ThirdParty/gtest/test/gtest_test_utils.py
++++ b/Source/ThirdParty/gtest/test/gtest_test_utils.py
+@@ -167,7 +167,7 @@ def GetTestExecutablePath(executable_name, build_dir=None):
+ # TODO(vladl@google.com): change mk_test.py to test.py after renaming
+ # the file.
+ 'Please run mk_test.py -h for help.')
+- print >> sys.stderr, message
++ print(message, file=sys.stderr)
+ sys.exit(1)
+
+ return path
+diff --git a/Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py b/Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py
+index 5678ffeaf..318e6306c 100755
+--- a/Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py
+@@ -70,7 +70,7 @@ def SetEnvVar(env_var, value):
+ def Run(command):
+ """Runs a command; returns True/False if its exit code is/isn't 0."""
+
+- print 'Running "%s". . .' % ' '.join(command)
++ print('Running "%s". . .' % ' '.join(command))
+ p = gtest_test_utils.Subprocess(command)
+ return p.exited and p.exit_code == 0
+
+@@ -123,7 +123,7 @@ class ThrowOnFailureTest(gtest_test_utils.TestCase):
+ 'exit code.' %
+ (THROW_ON_FAILURE, env_var_value_msg, ' '.join(command),
+ should_or_not))
+- self.assert_(failed == should_fail, msg)
++ self.assertTrue(failed == should_fail, msg)
+
+ def testDefaultBehavior(self):
+ """Tests the behavior of the default mode."""
+diff --git a/Source/ThirdParty/gtest/test/gtest_uninitialized_test.py b/Source/ThirdParty/gtest/test/gtest_uninitialized_test.py
+index 6ae57eeed..435837009 100755
+--- a/Source/ThirdParty/gtest/test/gtest_uninitialized_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_uninitialized_test.py
+@@ -46,8 +46,8 @@ def Assert(condition):
+
+ def AssertEq(expected, actual):
+ if expected != actual:
+- print 'Expected: %s' % (expected,)
+- print ' Actual: %s' % (actual,)
++ print('Expected: %s' % (expected,))
++ print(' Actual: %s' % (actual,))
+ raise AssertionError
+
+
+diff --git a/Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py b/Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py
+index 0fe947f08..7281864c5 100755
+--- a/Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py
++++ b/Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py
+@@ -100,8 +100,8 @@ class GTestXMLOutFilesTest(gtest_xml_test_utils.GTestXMLTestCase):
+ command = [gtest_prog_path, "--gtest_output=xml:%s" % self.output_dir_]
+ p = gtest_test_utils.Subprocess(command,
+ working_dir=gtest_test_utils.GetTempDir())
+- self.assert_(p.exited)
+- self.assertEquals(0, p.exit_code)
++ self.assertTrue(p.exited)
++ self.assertEqual(0, p.exit_code)
+
+ # TODO(wan@google.com): libtool causes the built test binary to be
+ # named lt-gtest_xml_outfiles_test_ instead of
+@@ -112,7 +112,7 @@ class GTestXMLOutFilesTest(gtest_xml_test_utils.GTestXMLTestCase):
+ output_file1 = os.path.join(self.output_dir_, output_file_name1)
+ output_file_name2 = 'lt-' + output_file_name1
+ output_file2 = os.path.join(self.output_dir_, output_file_name2)
+- self.assert_(os.path.isfile(output_file1) or os.path.isfile(output_file2),
++ self.assertTrue(os.path.isfile(output_file1) or os.path.isfile(output_file2),
+ output_file1)
+
+ expected = minidom.parseString(expected_xml)
+diff --git a/Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py b/Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py
+index 6d44929ca..93b67532e 100755
+--- a/Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py
++++ b/Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py
+@@ -145,16 +145,16 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase):
+ "gtest_no_test_unittest")
+ try:
+ os.remove(output_file)
+- except OSError, e:
++ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
+
+ p = gtest_test_utils.Subprocess(
+ [gtest_prog_path, "%s=xml" % GTEST_OUTPUT_FLAG],
+ working_dir=gtest_test_utils.GetTempDir())
+- self.assert_(p.exited)
+- self.assertEquals(0, p.exit_code)
+- self.assert_(os.path.isfile(output_file))
++ self.assertTrue(p.exited)
++ self.assertEqual(0, p.exit_code)
++ self.assertTrue(os.path.isfile(output_file))
+
+ def testSuppressedXmlOutput(self):
+ """
+@@ -174,16 +174,16 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase):
+ "--shut_down_xml"]
+ p = gtest_test_utils.Subprocess(command)
+ if p.terminated_by_signal:
+- self.assert_(False,
++ self.assertTrue(False,
+ "%s was killed by signal %d" % (gtest_prog_name, p.signal))
+ else:
+- self.assert_(p.exited)
+- self.assertEquals(1, p.exit_code,
++ self.assertTrue(p.exited)
++ self.assertEqual(1, p.exit_code,
+ "'%s' exited with code %s, which doesn't match "
+ "the expected exit code %s."
+ % (command, p.exit_code, 1))
+
+- self.assert_(not os.path.isfile(xml_path))
++ self.assertTrue(not os.path.isfile(xml_path))
+
+
+ def _TestXmlOutput(self, gtest_prog_name, expected_xml, expected_exit_code):
+@@ -200,11 +200,11 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase):
+ command = [gtest_prog_path, "%s=xml:%s" % (GTEST_OUTPUT_FLAG, xml_path)]
+ p = gtest_test_utils.Subprocess(command)
+ if p.terminated_by_signal:
+- self.assert_(False,
++ self.assertTrue(False,
+ "%s was killed by signal %d" % (gtest_prog_name, p.signal))
+ else:
+- self.assert_(p.exited)
+- self.assertEquals(expected_exit_code, p.exit_code,
++ self.assertTrue(p.exited)
++ self.assertEqual(expected_exit_code, p.exit_code,
+ "'%s' exited with code %s, which doesn't match "
+ "the expected exit code %s."
+ % (command, p.exit_code, expected_exit_code))
+diff --git a/Source/ThirdParty/gtest/test/gtest_xml_test_utils.py b/Source/ThirdParty/gtest/test/gtest_xml_test_utils.py
+index c83c3b7ea..2d6afb359 100755
+--- a/Source/ThirdParty/gtest/test/gtest_xml_test_utils.py
++++ b/Source/ThirdParty/gtest/test/gtest_xml_test_utils.py
+@@ -67,37 +67,37 @@ class GTestXMLTestCase(gtest_test_utils.TestCase):
+ """
+
+ if expected_node.nodeType == Node.CDATA_SECTION_NODE:
+- self.assertEquals(Node.CDATA_SECTION_NODE, actual_node.nodeType)
+- self.assertEquals(expected_node.nodeValue, actual_node.nodeValue)
++ self.assertEqual(Node.CDATA_SECTION_NODE, actual_node.nodeType)
++ self.assertEqual(expected_node.nodeValue, actual_node.nodeValue)
+ return
+
+- self.assertEquals(Node.ELEMENT_NODE, actual_node.nodeType)
+- self.assertEquals(Node.ELEMENT_NODE, expected_node.nodeType)
+- self.assertEquals(expected_node.tagName, actual_node.tagName)
++ self.assertEqual(Node.ELEMENT_NODE, actual_node.nodeType)
++ self.assertEqual(Node.ELEMENT_NODE, expected_node.nodeType)
++ self.assertEqual(expected_node.tagName, actual_node.tagName)
+
+ expected_attributes = expected_node.attributes
+ actual_attributes = actual_node .attributes
+- self.assertEquals(
++ self.assertEqual(
+ expected_attributes.length, actual_attributes.length,
+ "attribute numbers differ in element " + actual_node.tagName)
+ for i in range(expected_attributes.length):
+ expected_attr = expected_attributes.item(i)
+ actual_attr = actual_attributes.get(expected_attr.name)
+- self.assert_(
++ self.assertTrue(
+ actual_attr is not None,
+ "expected attribute %s not found in element %s" %
+ (expected_attr.name, actual_node.tagName))
+- self.assertEquals(expected_attr.value, actual_attr.value,
++ self.assertEqual(expected_attr.value, actual_attr.value,
+ " values of attribute %s in element %s differ" %
+ (expected_attr.name, actual_node.tagName))
+
+ expected_children = self._GetChildren(expected_node)
+ actual_children = self._GetChildren(actual_node)
+- self.assertEquals(
++ self.assertEqual(
+ len(expected_children), len(actual_children),
+ "number of child elements differ in element " + actual_node.tagName)
+- for child_id, child in expected_children.iteritems():
+- self.assert_(child_id in actual_children,
++ for child_id, child in expected_children.items():
++ self.assertTrue(child_id in actual_children,
+ '<%s> is not in <%s> (in element %s)' %
+ (child_id, actual_children, actual_node.tagName))
+ self.AssertEquivalentNodes(child, actual_children[child_id])
+@@ -125,10 +125,10 @@ class GTestXMLTestCase(gtest_test_utils.TestCase):
+ children = {}
+ for child in element.childNodes:
+ if child.nodeType == Node.ELEMENT_NODE:
+- self.assert_(child.tagName in self.identifying_attribute,
++ self.assertTrue(child.tagName in self.identifying_attribute,
+ "Encountered unknown element <%s>" % child.tagName)
+ childID = child.getAttribute(self.identifying_attribute[child.tagName])
+- self.assert_(childID not in children)
++ self.assertTrue(childID not in children)
+ children[childID] = child
+ elif child.nodeType in [Node.TEXT_NODE, Node.CDATA_SECTION_NODE]:
+ if "detail" not in children:
+diff --git a/Source/ThirdParty/gtest/test/run_tests_util.py b/Source/ThirdParty/gtest/test/run_tests_util.py
+index 9e57931eb..1f4d33af2 100755
+--- a/Source/ThirdParty/gtest/test/run_tests_util.py
++++ b/Source/ThirdParty/gtest/test/run_tests_util.py
+@@ -159,8 +159,8 @@ def _GetConfigFromBuildDir(build_dir):
+ if m:
+ return m.group(1)
+ else:
+- print >>sys.stderr, ('%s is an invalid build directory that does not '
+- 'correspond to any configuration.' % (build_dir,))
++ print(('%s is an invalid build directory that does not '
++ 'correspond to any configuration.' % (build_dir,)), file=sys.stderr)
+ return ''
+
+
+@@ -250,7 +250,7 @@ class TestRunner(object):
+ # If this script is run on a Windows machine that has no association
+ # between the .py extension and a python interpreter, simply passing
+ # the script name into subprocess.Popen/os.spawn will not work.
+- print 'Running %s . . .' % (test,)
++ print('Running %s . . .' % (test,))
+ return self._Run([sys.executable, test])
+
+ finally:
+@@ -308,7 +308,7 @@ class TestRunner(object):
+ # A final list of build directories which will be searched for the test
+ # binaries. First, add directories specified directly on the command
+ # line.
+- build_dirs = filter(self.os.path.isdir, normalized_args)
++ build_dirs = list(filter(self.os.path.isdir, normalized_args))
+
+ # Adds build directories specified via their build configurations using
+ # the -c or -a options.
+@@ -374,8 +374,8 @@ class TestRunner(object):
+ config = _GetConfigFromBuildDir(directory)
+ file_name = os.path.basename(test)
+ if python_tests_to_skip and (config, file_name) in python_tests_to_skip:
+- print ('NOTE: %s is skipped for configuration %s, as it does not '
+- 'work there.' % (file_name, config))
++ print(('NOTE: %s is skipped for configuration %s, as it does not '
++ 'work there.' % (file_name, config)))
+ else:
+ python_test_pairs.append((directory, test))
+
+@@ -418,17 +418,17 @@ class TestRunner(object):
+ failed = [(directory, test)
+ for (directory, test, success) in results
+ if not success]
+- print
+- print '%d tests run.' % len(results)
++ print()
++ print('%d tests run.' % len(results))
+ if failed:
+- print 'The following %d tests failed:' % len(failed)
++ print('The following %d tests failed:' % len(failed))
+ for (directory, test) in failed:
+- print '%s in %s' % (test, directory)
++ print('%s in %s' % (test, directory))
+ return 1
+ else:
+- print 'All tests passed!'
++ print('All tests passed!')
+ else: # No tests defined
+- print 'Nothing to test - no tests specified!'
++ print('Nothing to test - no tests specified!')
+
+ return 0
+
+@@ -440,7 +440,7 @@ def ParseArgs(project_name, argv=None, help_callback=None):
+ # required by optparse, even though they are unused.
+ # pylint: disable-msg=W0613
+ def PrintHelp(option, opt, value, parser):
+- print HELP_MSG % {'proj': project_name}
++ print(HELP_MSG % {'proj': project_name})
+ sys.exit(1)
+
+ parser = optparse.OptionParser()
+diff --git a/Source/ThirdParty/gtest/test/run_tests_util_test.py b/Source/ThirdParty/gtest/test/run_tests_util_test.py
+index 9c55726fd..dce27f3ae 100755
+--- a/Source/ThirdParty/gtest/test/run_tests_util_test.py
++++ b/Source/ThirdParty/gtest/test/run_tests_util_test.py
+@@ -144,7 +144,7 @@ class FakeOs(object):
+ # pylint: disable-msg=C6409
+ def listdir(self, path):
+ assert self.path.isdir(path)
+- return self.path.PathElement(path).iterkeys()
++ return iter(self.path.PathElement(path).keys())
+
+ def spawnv(self, wait, executable, *kargs):
+ assert wait == FakeOs.P_WAIT
+@@ -165,7 +165,7 @@ class GetTestsToRunTest(unittest.TestCase):
+ def NormalizeBinaryTestPair(pair):
+ """Normalizes path data in the (directory, binary_executable) pair."""
+
+- directory, executable = map(os.path.normpath, pair)
++ directory, executable = list(map(os.path.normpath, pair))
+
+ # On Windows and Cygwin, the test file names have the .exe extension, but
+ # they can be invoked either by name or by name+extension. Our test must
+@@ -174,8 +174,8 @@ class GetTestsToRunTest(unittest.TestCase):
+ executable = re.sub(r'\.exe$', '', executable)
+ return (directory, executable)
+
+- python_tests = sets.Set(map(NormalizePythonTestPair, results[0]))
+- binary_tests = sets.Set(map(NormalizeBinaryTestPair, results[1]))
++ python_tests = sets.Set(list(map(NormalizePythonTestPair, results[0])))
++ binary_tests = sets.Set(list(map(NormalizeBinaryTestPair, results[1])))
+ return (python_tests, binary_tests)
+
+ def AssertResultsEqual(self, results, expected):
+@@ -472,7 +472,7 @@ class GetTestsToRunTest(unittest.TestCase):
+ def testNonTestBinary(self):
+ """Exercises GetTestsToRun with a non-test parameter."""
+
+- self.assert_(
++ self.assertTrue(
+ not self.test_runner.GetTestsToRun(
+ ['gtest_unittest_not_really'],
+ '',
+@@ -482,7 +482,7 @@ class GetTestsToRunTest(unittest.TestCase):
+ def testNonExistingPythonTest(self):
+ """Exercises GetTestsToRun with a non-existent Python test parameter."""
+
+- self.assert_(
++ self.assertTrue(
+ not self.test_runner.GetTestsToRun(
+ ['nonexistent_test.py'],
+ '',
+@@ -619,7 +619,7 @@ class ParseArgsTest(unittest.TestCase):
+ def testNoOptions(self):
+ options, args = run_tests_util.ParseArgs('gtest', argv=['script.py'])
+ self.assertEqual(args, ['script.py'])
+- self.assert_(options.configurations is None)
++ self.assertTrue(options.configurations is None)
+ self.assertFalse(options.built_configurations)
+
+ def testOptionC(self):
+@@ -638,7 +638,7 @@ class ParseArgsTest(unittest.TestCase):
+ def testOptionB(self):
+ options, args = run_tests_util.ParseArgs('gtest', argv=['script.py', '-b'])
+ self.assertEqual(args, ['script.py'])
+- self.assert_(options.configurations is None)
++ self.assertTrue(options.configurations is None)
+ self.assertTrue(options.built_configurations)
+
+ def testOptionCAndOptionB(self):
+diff --git a/Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py b/Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py
+index 81de8c96a..ea24f964c 100644
+--- a/Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py
++++ b/Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py
+@@ -54,7 +54,7 @@ import re
+
+ # Read the command line argument (the output directory for Version.h)
+ if (len(sys.argv) < 3):
+- print "Usage: versiongenerate.py input_dir output_dir"
++ print("Usage: versiongenerate.py input_dir output_dir")
+ sys.exit(1)
+ else:
+ input_dir = sys.argv[1]
+diff --git a/Source/WebCore/AVFoundationSupport.py b/Source/WebCore/AVFoundationSupport.py
+index 7f13a8742..a3ab479ad 100644
+--- a/Source/WebCore/AVFoundationSupport.py
++++ b/Source/WebCore/AVFoundationSupport.py
+@@ -42,22 +42,22 @@ def fileContains(relativePath, regexp):
+ return False
+
+
+-print "/* Identifying AVFoundation Support */"
++print("/* Identifying AVFoundation Support */")
+ if lookFor("/include/AVFoundationCF/AVCFBase.h"):
+- print "#define HAVE_AVCF 1"
++ print("#define HAVE_AVCF 1")
+ if lookFor("/include/AVFoundationCF/AVCFPlayerItemLegibleOutput.h"):
+- print "#define HAVE_AVCF_LEGIBLE_OUTPUT 1"
++ print("#define HAVE_AVCF_LEGIBLE_OUTPUT 1")
+ if lookFor("/include/AVFoundationCF/AVCFAssetResourceLoader.h"):
+- print "#define HAVE_AVFOUNDATION_LOADER_DELEGATE 1"
++ print("#define HAVE_AVFOUNDATION_LOADER_DELEGATE 1")
+ if lookFor("/include/AVFoundationCF/AVCFAsset.h"):
+ regexp = re.compile("AVCFURLAssetIsPlayableExtendedMIMEType")
+ if fileContains("/include/AVFoundationCF/AVCFAsset.h", regexp):
+- print "#define HAVE_AVCFURL_PLAYABLE_MIMETYPE 1"
++ print("#define HAVE_AVCFURL_PLAYABLE_MIMETYPE 1")
+ if lookFor("/include/QuartzCore/CACFLayer.h"):
+ regexp = re.compile("CACFLayerSetContentsScale")
+ if fileContains("/include/QuartzCore/CACFLayer.h", regexp):
+- print "#define HAVE_CACFLAYER_SETCONTENTSSCALE 1"
++ print("#define HAVE_CACFLAYER_SETCONTENTSSCALE 1")
+ if lookFor("/include/AVFoundationCF/AVCFPlayerItemLegibleOutput.h"):
+ regexp = re.compile("kAVCFPlayerItemLegibleOutput_CallbacksVersion_2")
+ if fileContains("/include/AVFoundationCF/AVCFPlayerItemLegibleOutput.h", regexp):
+- print "#define HAVE_AVCFPLAYERITEM_CALLBACK_VERSION_2 1"
++ print("#define HAVE_AVCFPLAYERITEM_CALLBACK_VERSION_2 1")
+diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
+index 56b32563a..feac0dbbb 100644
+--- a/Source/WebCore/CMakeLists.txt
++++ b/Source/WebCore/CMakeLists.txt
+@@ -3671,14 +3671,14 @@ set(WebCore_BUILTINS_SOURCES
+ )
+
+ set(BUILTINS_GENERATOR_SCRIPTS
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generator.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_model.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_templates.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_header.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
+- ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generator.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_model.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_templates.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_combined_header.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_combined_implementation.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_separate_header.py
++ ${JavaScriptCore_SCRIPTS_DIR}/mybuiltins_generate_separate_implementation.py
+ ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
+ ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
+ )
+diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make
+index 0f5a79fa4..83bf5f96a 100644
+--- a/Source/WebCore/DerivedSources.make
++++ b/Source/WebCore/DerivedSources.make
+@@ -1286,14 +1286,14 @@ WebCore_BUILTINS_SOURCES = \
+ #
+
+ BUILTINS_GENERATOR_SCRIPTS = \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_generator.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_model.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_templates.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_combined_header.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_combined_implementation.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_separate_header.py \
+- $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_separate_implementation.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_generator.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_model.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_templates.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_generate_combined_header.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_generate_combined_implementation.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_generate_separate_header.py \
++ $(JavaScriptCore_SCRIPTS_DIR)/mybuiltins_generate_separate_implementation.py \
+ $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py \
+ $(JavaScriptCore_SCRIPTS_DIR)/lazywriter.py \
+ #
+diff --git a/Source/WebCore/platform/network/create-http-header-name-table b/Source/WebCore/platform/network/create-http-header-name-table
+index 755d22e94..3dc57a568 100755
+--- a/Source/WebCore/platform/network/create-http-header-name-table
++++ b/Source/WebCore/platform/network/create-http-header-name-table
+@@ -41,7 +41,7 @@ input_file = open(input_path)
+ http_header_name_to_id = { }
+ http_header_names = []
+
+-for line in input_file.xreadlines():
++for line in input_file:
+ http_header_name = line.strip()
+ if not http_header_name or http_header_name[:2] == '//':
+ continue
+diff --git a/Source/WebInspectorUI/Scripts/jsmin.py b/Source/WebInspectorUI/Scripts/jsmin.py
+index 372418b4d..2f9fddfce 100644
+--- a/Source/WebInspectorUI/Scripts/jsmin.py
++++ b/Source/WebInspectorUI/Scripts/jsmin.py
+@@ -23,17 +23,20 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ # THE SOFTWARE.
+
++# stolen from webkitgtk 2.26.2
+
+ import sys
+ is_3 = sys.version_info >= (3, 0)
+ if is_3:
+ import io
++ python_text_type = str
+ else:
+ import StringIO
+ try:
+ import cStringIO
+ except ImportError:
+ cStringIO = None
++ python_text_type = basestring
+
+
+ __all__ = ['jsmin', 'JavascriptMinify']
+@@ -79,14 +82,18 @@ class JavascriptMinify(object):
+ def write(char):
+ # all of this is to support literal regular expressions.
+ # sigh
+- if char in 'return':
++ if str(char) in 'return':
+ self.return_buf += char
+ self.is_return = self.return_buf == 'return'
+ self.outs.write(char)
+ if self.is_return:
+ self.return_buf = ''
+
+- read = self.ins.read
++ def read(n):
++ char = self.ins.read(n)
++ if not isinstance(char, python_text_type):
++ raise ValueError("ERROR: The script jsmin.py can only handle text input, but it received input of type %s" % type(char))
++ return char
+
+ space_strings = "abcdefghijklmnopqrstuvwxyz"\
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\"
+@@ -118,8 +125,8 @@ class JavascriptMinify(object):
+ write(previous)
+ elif not previous:
+ return
+- elif previous >= '!':
+- if previous in "'\"":
++ elif str(previous) >= "!":
++ if str(previous) in "'\"":
+ in_quote = previous
+ write(previous)
+ previous_non_space = previous
+@@ -166,7 +173,7 @@ class JavascriptMinify(object):
+ if numslashes % 2 == 0:
+ in_quote = ''
+ write(''.join(quote_buf))
+- elif next1 in '\r\n':
++ elif str(next1) in '\r\n':
+ if previous_non_space in newlineend_strings \
+ or previous_non_space > '~':
+ while 1:
+@@ -179,7 +186,7 @@ class JavascriptMinify(object):
+ or next2 > '~' or next2 == '/':
+ do_newline = True
+ break
+- elif next1 < '!' and not in_re:
++ elif str(next1) < '!' and not in_re:
+ if (previous_non_space in space_strings \
+ or previous_non_space > '~') \
+ and (next2 in space_strings or next2 > '~'):
+@@ -217,14 +224,14 @@ class JavascriptMinify(object):
+ do_newline = False
+
+ write(next1)
+- if not in_re and next1 in "'\"`":
++ if not in_re and str(next1) in "'\"`":
+ in_quote = next1
+ quote_buf = []
+
+ previous = next1
+ next1 = next2
+
+- if previous >= '!':
++ if str(previous) >= '!':
+ previous_non_space = previous
+
+ if previous == '\\':
+diff --git a/Source/WebKit2/Scripts/generate-message-receiver.py b/Source/WebKit2/Scripts/generate-message-receiver.py
+index 6413a8bf3..8702117f0 100644
+--- a/Source/WebKit2/Scripts/generate-message-receiver.py
++++ b/Source/WebKit2/Scripts/generate-message-receiver.py
+@@ -22,7 +22,7 @@
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-from __future__ import with_statement
++
+ import sys
+
+ import webkit.messages
+diff --git a/Source/WebKit2/Scripts/generate-messages-header.py b/Source/WebKit2/Scripts/generate-messages-header.py
+index ad73a5283..b35ee7d51 100644
+--- a/Source/WebKit2/Scripts/generate-messages-header.py
++++ b/Source/WebKit2/Scripts/generate-messages-header.py
+@@ -22,7 +22,7 @@
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-from __future__ import with_statement
++
+ import sys
+
+ import webkit.messages
+diff --git a/Source/WebKit2/Scripts/webkit/messages_unittest.py b/Source/WebKit2/Scripts/webkit/messages_unittest.py
+index 164199fc2..5f58e1919 100644
+--- a/Source/WebKit2/Scripts/webkit/messages_unittest.py
++++ b/Source/WebKit2/Scripts/webkit/messages_unittest.py
+@@ -24,7 +24,7 @@ import os
+ import re
+ import sys
+ import unittest
+-from StringIO import StringIO
++from io import StringIO
+
+ sys.path.append(os.path.dirname(os.path.dirname(__file__)))
+ from webkit import messages
+@@ -255,43 +255,43 @@ class MessagesTest(unittest.TestCase):
+
+ class ParsingTest(MessagesTest):
+ def check_message(self, message, expected_message):
+- self.assertEquals(message.name, expected_message['name'])
+- self.assertEquals(len(message.parameters), len(expected_message['parameters']))
++ self.assertEqual(message.name, expected_message['name'])
++ self.assertEqual(len(message.parameters), len(expected_message['parameters']))
+ for index, parameter in enumerate(message.parameters):
+ expected_parameter = expected_message['parameters'][index]
+- self.assertEquals(parameter.type, expected_parameter[0])
+- self.assertEquals(parameter.name, expected_parameter[1])
++ self.assertEqual(parameter.type, expected_parameter[0])
++ self.assertEqual(parameter.name, expected_parameter[1])
+ if len(expected_parameter) > 2:
+- self.assertEquals(parameter.attributes, frozenset(expected_parameter[2]))
++ self.assertEqual(parameter.attributes, frozenset(expected_parameter[2]))
+ for attribute in expected_parameter[2]:
+ self.assertTrue(parameter.has_attribute(attribute))
+ else:
+- self.assertEquals(parameter.attributes, frozenset())
++ self.assertEqual(parameter.attributes, frozenset())
+ if message.reply_parameters is not None:
+ for index, parameter in enumerate(message.reply_parameters):
+- self.assertEquals(parameter.type, expected_message['reply_parameters'][index][0])
+- self.assertEquals(parameter.name, expected_message['reply_parameters'][index][1])
++ self.assertEqual(parameter.type, expected_message['reply_parameters'][index][0])
++ self.assertEqual(parameter.name, expected_message['reply_parameters'][index][1])
+ else:
+ self.assertFalse('reply_parameters' in expected_message)
+- self.assertEquals(message.condition, expected_message['conditions'])
++ self.assertEqual(message.condition, expected_message['conditions'])
+
+ def test_receiver(self):
+ """Receiver should be parsed as expected"""
+- self.assertEquals(self.receiver.name, _expected_results['name'])
+- self.assertEquals(self.receiver.condition, _expected_results['conditions'])
+- self.assertEquals(len(self.receiver.messages), len(_expected_results['messages']))
++ self.assertEqual(self.receiver.name, _expected_results['name'])
++ self.assertEqual(self.receiver.condition, _expected_results['conditions'])
++ self.assertEqual(len(self.receiver.messages), len(_expected_results['messages']))
+ for index, message in enumerate(self.receiver.messages):
+ self.check_message(message, _expected_results['messages'][index])
+
+- self.assertEquals(self.legacy_receiver.name, _expected_results['name'])
+- self.assertEquals(self.legacy_receiver.condition, _expected_results['conditions'])
+- self.assertEquals(len(self.legacy_receiver.messages), len(_expected_results['messages']))
++ self.assertEqual(self.legacy_receiver.name, _expected_results['name'])
++ self.assertEqual(self.legacy_receiver.condition, _expected_results['conditions'])
++ self.assertEqual(len(self.legacy_receiver.messages), len(_expected_results['messages']))
+ for index, message in enumerate(self.legacy_receiver.messages):
+ self.check_message(message, _expected_results['messages'][index])
+
+- self.assertEquals(self.superclass_receiver.name, _expected_superclass_results['name'])
+- self.assertEquals(self.superclass_receiver.superclass, _expected_superclass_results['superclass'])
+- self.assertEquals(len(self.superclass_receiver.messages), len(_expected_superclass_results['messages']))
++ self.assertEqual(self.superclass_receiver.name, _expected_superclass_results['name'])
++ self.assertEqual(self.superclass_receiver.superclass, _expected_superclass_results['superclass'])
++ self.assertEqual(len(self.superclass_receiver.messages), len(_expected_superclass_results['messages']))
+ for index, message in enumerate(self.superclass_receiver.messages):
+ self.check_message(message, _expected_superclass_results['messages'][index])
+
+@@ -309,9 +309,9 @@ class GeneratedFileContentsTest(unittest.TestCase):
+ expected_line_list = expected_file_contents.splitlines(False)
+
+ for index, actual_line in enumerate(actual_line_list):
+- self.assertEquals(actual_line, expected_line_list[index])
++ self.assertEqual(actual_line, expected_line_list[index])
+
+- self.assertEquals(len(actual_line_list), len(expected_line_list))
++ self.assertEqual(len(actual_line_list), len(expected_line_list))
+
+ def assertHeaderEqual(self, input_messages_file_contents, expected_file_name):
+ actual_file_contents = messages.generate_messages_header(StringIO(input_messages_file_contents))
+@@ -344,11 +344,11 @@ class ReceiverImplementationTest(GeneratedFileContentsTest):
+
+ class UnsupportedPrecompilerDirectiveTest(unittest.TestCase):
+ def test_error_at_else(self):
+- with self.assertRaisesRegexp(Exception, r"ERROR: '#else.*' is not supported in the \*\.in files"):
++ with self.assertRaisesRegex(Exception, r"ERROR: '#else.*' is not supported in the \*\.in files"):
+ messages.generate_message_handler(StringIO("asd\n#else bla\nfoo"))
+
+ def test_error_at_elif(self):
+- with self.assertRaisesRegexp(Exception, r"ERROR: '#elif.*' is not supported in the \*\.in files"):
++ with self.assertRaisesRegex(Exception, r"ERROR: '#elif.*' is not supported in the \*\.in files"):
+ messages.generate_message_handler(StringIO("asd\n#elif bla\nfoo"))
+
+
+diff --git a/Source/cmake/WebKitCommon.cmake b/Source/cmake/WebKitCommon.cmake
+index de4ac8f65..1ba7b58ea 100644
+--- a/Source/cmake/WebKitCommon.cmake
++++ b/Source/cmake/WebKitCommon.cmake
+@@ -25,9 +25,6 @@ if (NOT HAS_RUN_WEBKIT_COMMON)
+ find_package(Perl 5.10.0 REQUIRED)
+
+ find_package(PythonInterp 2.7.0 REQUIRED)
+- if (PYTHON_VERSION_MAJOR GREATER 2)
+- message(FATAL_ERROR "Python 2 is required, but Python ${PYTHON_VERSION_MAJOR} was found.")
+- endif ()
+
+ # We cannot check for RUBY_FOUND because it is set only when the full package is installed and
+ # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
+diff --git a/Tools/jhbuild/jhbuildutils.py b/Tools/jhbuild/jhbuildutils.py
+index c00160e7e..f4edc29a2 100644
+--- a/Tools/jhbuild/jhbuildutils.py
++++ b/Tools/jhbuild/jhbuildutils.py
+@@ -1,7 +1,7 @@
+ import glob
+ import os.path
+ import sys
+-import __builtin__
++import builtins
+
+ top_level_dir = None
+
+@@ -35,9 +35,9 @@ def enter_jhbuild_environment_if_available(platform):
+ sys.path.insert(0, source_path)
+
+ # When loading jhbuild from the source checkout it fails if the SRCDIR, PKGDATADIR or DATADIR aren't present.
+- __builtin__.__dict__['SRCDIR'] = source_path
+- __builtin__.__dict__['PKGDATADIR'] = None
+- __builtin__.__dict__['DATADIR'] = None
++ builtins.__dict__['SRCDIR'] = source_path
++ builtins.__dict__['PKGDATADIR'] = None
++ builtins.__dict__['DATADIR'] = None
+
+ # We don't know the Python version, so we just assume that we can safely take the first one in the list.
+ site_packages_path = glob.glob(os.path.join(get_dependencies_path(platform), "Root", "lib", "*", "site-packages"))
+@@ -49,7 +49,7 @@ def enter_jhbuild_environment_if_available(platform):
+ import jhbuild.config
+ from jhbuild.errors import FatalError
+ config = jhbuild.config.Config(get_config_file_for_platform(platform), [])
+- except FatalError, exception:
++ except FatalError as exception:
+ sys.stderr.write('Could not load jhbuild config file: %s\n' % exception.args[0])
+ return False
+
+--
+2.21.0
+
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Do-not-skip-build-for-cross-compile.patch
index 4b2b2759..a237d03d 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Do-not-skip-build-for-cross-compile.patch
@@ -1,4 +1,4 @@
-From 1a4e33ac630b0e4f285e238479900f0e10c6d15f Mon Sep 17 00:00:00 2001
+From 34018c2a61045c58f88e09a12ecd62533aa2c2f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 4 Jun 2018 10:35:46 +0200
Subject: [PATCH] Do not skip build for cross-compile
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0003-Fix-build-with-non-glibc-libc-on-musl.patch
index dead46d1..bf79b363 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0003-Fix-build-with-non-glibc-libc-on-musl.patch
@@ -1,4 +1,4 @@
-From 9db9a8850602c2446b1a7ee96608fd74cf56a342 Mon Sep 17 00:00:00 2001
+From c4ceb318aa1064bfa677cdd800c52155eb1bed3a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 23 Aug 2018 04:06:17 +0000
Subject: [PATCH] Fix build with non-glibc libc on musl
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0004-Fix-build-bug-for-armv32-BE.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0004-Fix-build-bug-for-armv32-BE.patch
index 23fed74f..ffd8da0f 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0004-Fix-build-bug-for-armv32-BE.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0004-Fix-build-bug-for-armv32-BE.patch
@@ -1,4 +1,4 @@
-From 5aa039af074c20bea1398f7f18712dc494a5f138 Mon Sep 17 00:00:00 2001
+From f6576377f8bf2c854d8079b7f309f570b3d2bde4 Mon Sep 17 00:00:00 2001
From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Fri, 31 Aug 2018 15:42:48 +0900
Subject: [PATCH] Fix build bug for armv32 BE.
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0005-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch
index 8c718b47..14cb8aa4 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit/0001-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit/0005-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch
@@ -1,4 +1,4 @@
-From c00c61a42f9076aecad195b7f72b7db9b3601181 Mon Sep 17 00:00:00 2001
+From 83aa5b3265d7c9f64e754cb890988cf8a5669ce7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 24 Sep 2018 02:11:10 -0700
Subject: [PATCH] PlatformQt.cmake: Do not generate hardcoded include paths
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
-index 3792def6f..b6cb36bb1 100644
+index 9aed9906e..48638aef4 100644
--- a/Source/WebKit/PlatformQt.cmake
+++ b/Source/WebKit/PlatformQt.cmake
-@@ -510,7 +510,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
+@@ -512,7 +512,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
endif ()
@@ -26,7 +26,7 @@ index 3792def6f..b6cb36bb1 100644
set(WebKit_PRI_ARGUMENTS
BIN_INSTALL_DIR "$$QT_MODULE_BIN_BASE"
LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE"
-@@ -734,7 +734,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
+@@ -737,7 +737,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS)
install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data)
endif ()
@@ -35,6 +35,3 @@ index 3792def6f..b6cb36bb1 100644
set(WebKitWidgets_PRI_ARGUMENTS
BIN_INSTALL_DIR "$$QT_MODULE_BIN_BASE"
LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE"
---
-2.19.0
-
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb
index bd0c6aeb..4655d9fd 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebkit_git.bb
@@ -7,18 +7,21 @@ LIC_FILES_CHKSUM = " \
file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee \
"
-DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt gperf-native bison-native"
+DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt gperf-native bison-native flex-native"
-# Patches from https://github.com/meta-qt5/qtwebkit/commits/b5.11
-# 5.11.meta-qt5.2
+# Patches from https://github.com/meta-qt5/qtwebkit/commits/b5.13
+# 5.13.meta-qt5.1
SRC_URI += "\
- file://0001-Do-not-skip-build-for-cross-compile.patch \
- file://0002-Fix-build-with-non-glibc-libc-on-musl.patch \
+ file://0001-Port-build-to-python3.patch \
+ file://0002-Do-not-skip-build-for-cross-compile.patch \
+ file://0003-Fix-build-with-non-glibc-libc-on-musl.patch \
file://0004-Fix-build-bug-for-armv32-BE.patch \
- file://0001-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch \
+ file://0005-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch \
"
-inherit cmake_qt5 perlnative pythonnative
+inherit cmake_qt5 perlnative
+
+inherit python3native
# qemuarm build fails with:
# | {standard input}: Assembler messages:
@@ -45,10 +48,19 @@ EXTRA_OECMAKE += " \
-DCROSS_COMPILE=ON \
-DECM_MKSPECS_INSTALL_DIR=${libdir}${QT_DIR_NAME}/mkspecs/modules \
-DQML_INSTALL_DIR=${OE_QMAKE_PATH_QML} \
+ -DPYTHON_EXECUTABLE=`which python3` \
"
EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}'"
+# JIT not supported on MIPS/PPC
+EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
+EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
+# Disable gold on mips64/clang
+# mips64-yoe-linux-musl-ld.gold: internal error in get_got_page_offset, at ../../gold/mips.cc:6260
+# mips-yoe-linux-musl-ld.gold: error: Can't find matching LO16 reloc
+EXTRA_OECMAKE_append_toolchain-clang_mipsarch = " -DUSE_LD_GOLD=OFF "
+
PACKAGECONFIG ??= "qtlocation qtmultimedia qtsensors qtwebchannel \
${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
fontconfig \
@@ -71,4 +83,4 @@ PACKAGES_remove = "${PN}-examples"
QT_MODULE_BRANCH = "dev"
-SRCREV = "beaeeb99881184fd368c121fcbb1a31c78b794a3"
+SRCREV = "ab1bd15209abaf7effc51dbc2f272c5681af7223"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb
index f5dcfb05..0f9107c8 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb
@@ -11,4 +11,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase qtdeclarative"
-SRCREV = "395c1f1aed90f740f079d8f980c93f459b44733a"
+SRCREV = "13c3b3edc5ce65ae65d7ed13cd4484a26fc74188"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtwebview_git.bb b/external/meta-qt5/recipes-qt/qt5/qtwebview_git.bb
index 10d5f13f..f08c6ae1 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtwebview_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtwebview_git.bb
@@ -19,4 +19,9 @@ COMPATIBLE_MACHINE_armv7a = "(.*)"
COMPATIBLE_MACHINE_armv7ve = "(.*)"
COMPATIBLE_MACHINE_aarch64 = "(.*)"
-SRCREV = "779bf9c3f24365df3f681a029cafd78c7991e929"
+SRCREV = "9f479ce719c03035d93323322e646dca79b9dc39"
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
diff --git a/external/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb b/external/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb
index f768f75b..a427e589 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtx11extras_git.bb
@@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
-SRCREV = "877c585bc474934e3bb1044293a62c72cb01b9cf"
+SRCREV = "fbed3bc300461823960cfbcb2e1efa80da083b28"
diff --git a/external/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb b/external/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb
index e562bd1c..b8bc6c84 100644
--- a/external/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb
+++ b/external/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb
@@ -14,7 +14,17 @@ LIC_FILES_CHKSUM = " \
DEPENDS += "qtbase"
-SRCREV = "657995db766faa48084024e780c4cd02fa05c527"
+PACKAGECONFIG ?= ""
+PACKAGECONFIG_class-target ?= "qtdeclarative"
+PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative"
-BBCLASSEXTEND =+ "native nativesdk"
+do_configure_prepend() {
+ # disable qtdeclarative test if it isn't enabled by PACKAGECONFIG
+ sed -e 's/qtHaveModule(qml)/OE_QTDECLARATIVE_ENABLED/' -i ${S}/src/src.pro
+}
+
+EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtdeclarative', 'CONFIG+=OE_QTDECLARATIVE_ENABLED', '', d)}"
+SRCREV = "45bf71199c6a5f3c070cad52435ac203c6cd480a"
+
+BBCLASSEXTEND =+ "native nativesdk"
diff --git a/external/meta-qt5/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch b/external/meta-qt5/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch
new file mode 100644
index 00000000..ca281b75
--- /dev/null
+++ b/external/meta-qt5/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch
@@ -0,0 +1,31 @@
+From 7bcf47c1d9ca5eb27da088f93387e42b55d6999c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 13:22:38 -0800
+Subject: [PATCH] Append LIB_ARCH to lib
+
+Creating subdir under lib is not expected in OE, instead it should be
+appending to lib so it becomes lib64 when needed and LIB_ARCH can be set
+in evnironment
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ quazip/quazip.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/quazip/quazip.pro b/quazip/quazip.pro
+index 3e10f36..1ea073e 100644
+--- a/quazip/quazip.pro
++++ b/quazip/quazip.pro
+@@ -42,7 +42,7 @@ CONFIG(debug, debug|release) {
+ unix:!symbian {
+ headers.path=$$PREFIX/include/quazip
+ headers.files=$$HEADERS
+- target.path=$$PREFIX/lib/$${LIB_ARCH}
++ target.path=$$PREFIX/lib$${LIB_ARCH}
+ INSTALLS += headers target
+
+ OBJECTS_DIR=.obj
+--
+2.24.1
+
diff --git a/external/meta-qt5/recipes-qt/quazip/quazip_0.7.3.bb b/external/meta-qt5/recipes-qt/quazip/quazip_0.7.3.bb
index 970204e5..b483ced8 100644
--- a/external/meta-qt5/recipes-qt/quazip/quazip_0.7.3.bb
+++ b/external/meta-qt5/recipes-qt/quazip/quazip_0.7.3.bb
@@ -5,11 +5,13 @@ LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=910d778aab53617cbaf13c4e1810e289"
DEPENDS = "qtbase"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://0001-Append-LIB_ARCH-to-lib.patch \
+ "
SRC_URI[md5sum] = "2ba7dd8b1d6dd588374c9fab5c46e76e"
SRC_URI[sha256sum] = "2ad4f354746e8260d46036cde1496c223ec79765041ea28eb920ced015e269b5"
inherit qmake5
-EXTRA_QMAKEVARS_PRE += "PREFIX=${prefix}"
+EXTRA_QMAKEVARS_PRE += "PREFIX=${prefix} LIB_ARCH=${@d.getVar('baselib').replace('lib', '')}"
EXTRA_QMAKEVARS_POST += "SUBDIRS=${BPN}"
diff --git a/external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.3.bb b/external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.4.bb
index 49f4f9e5..623b45e5 100644
--- a/external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.3.bb
+++ b/external/meta-qt5/recipes-qt/qwt/qwt-qt5_6.1.4.bb
@@ -8,14 +8,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dac2743472b0462ff3cfb4af42051c88"
DEPENDS = "qtbase qtsvg qttools"
+COMPATIBLE_HOST_toolchain-clang_riscv32 = "null"
+COMPATIBLE_HOST_toolchain-clang_riscv64 = "null"
+
inherit qmake5
SRC_URI = " \
${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tar.bz2;name=qwt \
file://0001-Remove-rpath-from-binaries-they-point-to-buuild-area.patch \
"
-SRC_URI[qwt.md5sum] = "19d1f5fa5e22054d22ee3accc37c54ba"
-SRC_URI[qwt.sha256sum] = "f3ecd34e72a9a2b08422fb6c8e909ca76f4ce5fa77acad7a2883b701f4309733"
+SRC_URI[qwt.md5sum] = "4fb1852f694420e3ab9c583526edecc5"
+SRC_URI[qwt.sha256sum] = "1529215329e51fc562e0009505a838f427919a18b362afff441f035b2d9b5bd9"
S = "${WORKDIR}/qwt-${PV}"
@@ -25,7 +28,11 @@ EXTRA_QMAKEVARS_PRE += " \
"
do_configure_prepend() {
- sed -i 's:/usr/local/qwt-$$QWT_VERSION:${prefix}:' ${S}/*.pri
+ sed -i \
+ -e 's:/usr/local/qwt-$$QWT_VERSION:${prefix}:' \
+ -e 's:^QWT_INSTALL_LIBS.*:QWT_INSTALL_LIBS = ${libdir}:' \
+ ${S}/*.pri
+ export QWT_INSTALL_LIBS=${libdir}
}
do_install_append() {