diff options
Diffstat (limited to 'recipes-qt')
32 files changed, 542 insertions, 74 deletions
diff --git a/recipes-qt/examples/cinematicexperience_1.0.bb b/recipes-qt/examples/cinematicexperience_1.0.bb index 9a90f1d4..d7372f61 100644 --- a/recipes-qt/examples/cinematicexperience_1.0.bb +++ b/recipes-qt/examples/cinematicexperience_1.0.bb @@ -10,7 +10,7 @@ SRC_URI += "file://fix_qt5_3_compatibility.patch" SRC_URI[md5sum] = "935a5db0a6b2a72c67236e72f52be7d1" SRC_URI[sha256sum] = "0dd602983ced5f7c0cfd5ad0fbfe2b0b7e3c9ff715e4ef23eef818ccc2b6c60b" -S = "${WORKDIR}/Qt5_CinematicExperience_rpi_${PV}/" +S = "${WORKDIR}/Qt5_CinematicExperience_rpi_${PV}" # other version available for small screens #SRC_URI = "http://quitcoding.com/download/Qt5_CinematicExperience_1.0.tgz" diff --git a/recipes-qt/maliit/maliit-framework-qt5_git.bb b/recipes-qt/maliit/maliit-framework-qt5_git.bb index 1f0dc8d6..72e6be5f 100644 --- a/recipes-qt/maliit/maliit-framework-qt5_git.bb +++ b/recipes-qt/maliit/maliit-framework-qt5_git.bb @@ -75,12 +75,9 @@ do_install_append() { install -m 644 ${WORKDIR}/maliit-server.desktop ${D}${datadir}/applications } -pkg_postinst_${PN} () { +pkg_postinst_ontarget_${PN} () { #!/bin/sh # should run online -if [ "x$D" != "x" ]; then - exit 1 -fi echo "export QT_IM_MODULE=Maliit" >> /etc/xprofile ln -s /usr/share/applications/maliit-server.desktop /etc/xdg/autostart/maliit-server.desktop } @@ -89,12 +86,11 @@ pkg_postrm_${PN} () { #!/bin/sh # should run online if [ "x$D" = "x" ]; then - exit 1 -fi -if [ -e "/etc/xprofile" ]; then - sed -i -e "g|export QT_IM_MODULE=Maliit|d" /etc/xprofile + if [ -e "/etc/xprofile" ]; then + sed -i -e "g|export QT_IM_MODULE=Maliit|d" /etc/xprofile + fi + rm -f /etc/xdg/autostart/maliit-server.desktop fi -rm -f /etc/xdg/autostart/maliit-server.desktop } S = "${WORKDIR}/git" diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb index 60cabe66..4bf81339 100644 --- a/recipes-qt/qt5/nativesdk-qtbase_git.bb +++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb @@ -41,6 +41,7 @@ SRC_URI += "\ 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-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0019-Define-__NR_futex-if-it-does-not-exist.patch \ " # common for qtbase-native and nativesdk-qtbase diff --git a/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch b/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch index da7561ce..25d1ae90 100644 --- a/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch +++ b/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch @@ -11,16 +11,16 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- a/src/plugins/debugger/debugger.pro +++ b/src/plugins/debugger/debugger.pro -@@ -139,3 +139,4 @@ include(console/console.pri) +@@ -140,3 +140,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 - +@@ -4,7 +4,7 @@ CONFIG += exceptions INCLUDEPATH += $$PWD + INCLUDEPATH += $$PWD/components -unix:!openbsd:!osx: LIBS += -lrt # posix shared memory +unix:!openbsd:!osx: LIBS += -lexecinfo -lrt # posix shared memory diff --git a/recipes-qt/qt5/qt5-creator/0001-app-Use-malloc_trim-only-on-glibc.patch b/recipes-qt/qt5/qt5-creator/0001-app-Use-malloc_trim-only-on-glibc.patch new file mode 100644 index 00000000..6ee5b7b5 --- /dev/null +++ b/recipes-qt/qt5/qt5-creator/0001-app-Use-malloc_trim-only-on-glibc.patch @@ -0,0 +1,32 @@ +From 46ec546fdc4427019184f84f24efe3e145b7e40f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 11 Aug 2020 21:19:22 -0700 +Subject: [PATCH] app: Use malloc_trim only on glibc + +musl does not implement it + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/app/main.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/app/main.cpp b/src/app/main.cpp +index 419b9b362a..9e150e7613 100644 +--- a/src/app/main.cpp ++++ b/src/app/main.cpp +@@ -719,7 +719,11 @@ int main(int argc, char **argv) + m_trimTimer.setSingleShot(true); + m_trimTimer.setInterval(60000); + // glibc may not actually free memory in free(). ++#ifdef __GLIBC__ + connect(&m_trimTimer, &QTimer::timeout, this, [] { malloc_trim(0); }); ++#else ++ connect(&m_trimTimer, &QTimer::timeout, this, [] { }); ++#endif + } + + bool eventFilter(QObject *, QEvent *e) override +-- +2.28.0 + diff --git a/recipes-qt/qt5/qt5-creator_git.bb b/recipes-qt/qt5/qt5-creator_git.bb index d046110b..f8d4aa1d 100644 --- a/recipes-qt/qt5/qt5-creator_git.bb +++ b/recipes-qt/qt5/qt5-creator_git.bb @@ -15,16 +15,15 @@ LIC_FILES_CHKSUM = " \ inherit qmake5 mime-xdg 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 = "9e057a55368286058023510efc328f68250ecb5e" -PV = "4.12.0+git${SRCPV}" - +SRCREV = "1da2c1f7666ced45d6eea1cd0adfdc68a828e3a0" +PV = "4.13.1+git${SRCPV}" # 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.12 \ + git://code.qt.io/qt-creator/qt-creator.git;branch=4.13 \ + file://0001-app-Use-malloc_trim-only-on-glibc.patch \ " SRC_URI_append_libc-musl = " file://0001-Link-with-libexecinfo-on-musl.patch" @@ -34,6 +33,13 @@ EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME}" EXTRANATIVEPATH += "chrpath-native" +PACKAGECONFIG ??= "" +PACKAGECONFIG_append_toolchain-clang = " clang" + +# Important note: In case clang was added to qttools' PACKAGECONFIG, it has to +# be added here too - otherwise build fails trying to link native clang libraries +PACKAGECONFIG[clang] = ",,clang llvm-common" + COMPATIBLE_HOST_toolchain-clang_riscv32 = "null" COMPATIBLE_HOST_toolchain-clang_riscv64 = "null" @@ -41,20 +47,20 @@ do_configure_append() { # Find native tools sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile if [ -e ${B}/share/qtcreator/translations/Makefile ]; then - sed -i 's:${STAGING_BINDIR}.*/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile - sed -i 's:${STAGING_BINDIR}.*/lupdate:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate:g' ${B}/share/qtcreator/translations/Makefile - sed -i 's:${STAGING_BINDIR}.*/xmlpatterns:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/xmlpatterns:g' ${B}/share/qtcreator/translations/Makefile - sed -i 's:${STAGING_BINDIR}.*/lconvert:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lconvert:g' ${B}/share/qtcreator/translations/Makefile + sed -i 's:${STAGING_BINDIR}/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile + sed -i 's:${STAGING_BINDIR}/lupdate:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate:g' ${B}/share/qtcreator/translations/Makefile + sed -i 's:${STAGING_BINDIR}/xmlpatterns:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/xmlpatterns:g' ${B}/share/qtcreator/translations/Makefile + sed -i 's:${STAGING_BINDIR}/lconvert:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lconvert:g' ${B}/share/qtcreator/translations/Makefile fi } do_install() { oe_runmake install INSTALL_ROOT=${D}${prefix} -} -do_install_append_toolchain-clang () { - # Remove RPATHs embedded in bins - chrpath --delete ${D}${libdir}/qtcreator/plugins/libClang* - chrpath --delete ${D}${libexecdir}/qtcreator/clang* + if [ "${@bb.utils.contains("PACKAGECONFIG", "clang", "1", "0", d)}" = "1" ]; then + # Remove RPATHs embedded in bins + chrpath --delete ${D}${libdir}/qtcreator/plugins/libClang* + chrpath --delete ${D}${libexecdir}/qtcreator/clang* + fi } FILES_${PN} += " \ @@ -79,6 +85,11 @@ RRECOMMENDS_${PN} += " \ make \ gcc-symlinks g++-symlinks cpp-symlinks \ gdb \ + cmake \ + qtwebengine-dev \ + qtwebengine-mkspecs \ + qtwebengine-plugins \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebengine-qmlplugins', '', d)} \ " # ERROR: qt5-creator-4.5.1-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qt5-creator/4.5.1-r0/packages-split/qt5-creator/usr/lib/qt5/qtcreator/libqbscore.so.1.10.1' @@ -86,3 +97,8 @@ INSANE_SKIP_${PN} += "ldflags" inherit features_check REQUIRED_DISTRO_FEATURES ?= "x11 opengl" + +python() { + if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-python2 to be present.') +} diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb index bfd1a805..4be4aaa8 100644 --- a/recipes-qt/qt5/qtbase-native_git.bb +++ b/recipes-qt/qt5/qtbase-native_git.bb @@ -36,6 +36,7 @@ SRC_URI += "\ 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-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0019-Define-__NR_futex-if-it-does-not-exist.patch \ " # common for qtbase-native and nativesdk-qtbase diff --git a/recipes-qt/qt5/qtbase/0019-Define-__NR_futex-if-it-does-not-exist.patch b/recipes-qt/qt5/qtbase/0019-Define-__NR_futex-if-it-does-not-exist.patch new file mode 100644 index 00000000..2accb08e --- /dev/null +++ b/recipes-qt/qt5/qtbase/0019-Define-__NR_futex-if-it-does-not-exist.patch @@ -0,0 +1,36 @@ +From bf314645e665d82c65771fb0d5f58558bbe1ba87 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 26 Oct 2020 22:10:02 -0700 +Subject: [PATCH] Define __NR_futex if it does not exist + +__NR_futex is not defines by newer architectures e.g. arc, riscv32 as +they only have 64bit variant of time_t. Glibc defines SYS_futex interface based on +__NR_futex, since this is used in applications, such applications start +to fail to build for these newer architectures. This patch defines a +fallback to alias __NR_futex to __NR_futex_tim64 so SYS_futex keeps +working + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/corelib/thread/qfutex_p.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/corelib/thread/qfutex_p.h b/src/corelib/thread/qfutex_p.h +index f287b752d7..fa5307a604 100644 +--- a/src/corelib/thread/qfutex_p.h ++++ b/src/corelib/thread/qfutex_p.h +@@ -76,6 +76,9 @@ QT_END_NAMESPACE + # include <unistd.h> + # include <asm/unistd.h> + # include <linux/futex.h> ++# if !defined(__NR_futex) && defined(__NR_futex_time64) ++# define __NR_futex __NR_futex_time64 ++# endif + # define QT_ALWAYS_USE_FUTEX + + // if not defined in linux/futex.h +-- +2.29.1 + diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb index 989e5abb..a7811ddf 100644 --- a/recipes-qt/qt5/qtbase_git.bb +++ b/recipes-qt/qt5/qtbase_git.bb @@ -32,8 +32,13 @@ SRC_URI += "\ 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-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0019-Define-__NR_futex-if-it-does-not-exist.patch \ " +# Disable LTO for now, QT5 patches are being worked upstream, perhaps revisit with +# next major upgrade of QT +LTO = "" + # for syncqt RDEPENDS_${PN}-tools += "perl" @@ -171,6 +176,8 @@ QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '- QT_CONFIG_FLAGS_GOLD = "-no-use-gold-linker" LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS_append_riscv64 = " -pthread" + QT_CONFIG_FLAGS += " \ ${QT_CONFIG_FLAGS_GOLD} \ -silent \ @@ -249,11 +256,12 @@ do_install_append() { echo "" >> $conf echo "# default compiler options which can be overwritten from the environment" >> $conf - echo "isEmpty(QMAKE_AR): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf + echo "count(QMAKE_AR, 1): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf echo "isEmpty(QMAKE_CC): QMAKE_CC = $OE_QMAKE_CC_NO_SYSROOT" >> $conf - echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${OE_QMAKE_CFLAGS}" >> $conf echo "isEmpty(QMAKE_CXX): QMAKE_CXX = $OE_QMAKE_CXX_NO_SYSROOT" >> $conf - echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${OE_QMAKE_CXXFLAGS}" >> $conf + # OE_QMAKE_CFLAGS and OE_QMAKE_CXXFLAGS contain path of the build host, which is not useful for the target. + echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${OE_QMAKE_CFLAGS}" | sed -e 's/-fdebug-prefix-map=[^ ]*//g' | sed -e 's/-fmacro-prefix-map=[^ ]*//g' >> $conf + echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${OE_QMAKE_CXXFLAGS}" | sed -e 's/-fdebug-prefix-map=[^ ]*//g' | sed -e 's/-fmacro-prefix-map=[^ ]*//g' >> $conf echo "isEmpty(QMAKE_LINK): QMAKE_LINK = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LINK_SHLIB): QMAKE_LINK_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LINK_C): QMAKE_LINK_C = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf diff --git a/recipes-qt/qt5/qtdeclarative_git.bb b/recipes-qt/qt5/qtdeclarative_git.bb index 6eae8173..3ff69d60 100644 --- a/recipes-qt/qt5/qtdeclarative_git.bb +++ b/recipes-qt/qt5/qtdeclarative_git.bb @@ -18,6 +18,8 @@ SRC_URI += " \ file://0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch \ " +LDFLAGS_append_riscv64 = " -pthread" + DEPENDS += "qtbase qtdeclarative-native" PACKAGECONFIG ??= "qml-debug qml-network ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)}" diff --git a/recipes-qt/qt5/qttools/0004-Force-native-build-of-qt-help-tools-as-qhelpgenerato.patch b/recipes-qt/qt5/qttools/0004-Force-native-build-of-qt-help-tools-as-qhelpgenerato.patch new file mode 100644 index 00000000..4bc53c79 --- /dev/null +++ b/recipes-qt/qt5/qttools/0004-Force-native-build-of-qt-help-tools-as-qhelpgenerato.patch @@ -0,0 +1,32 @@ +From 88c20560720693b6b30d48af748ab232238f9ac8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Fri, 14 Aug 2020 21:25:27 +0200 +Subject: [PATCH] Force native build of qt-help tools as qhelpgenerato +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstrem-Statu: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + src/assistant/assistant.pro | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/assistant/assistant.pro b/src/assistant/assistant.pro +index d34b5590..7d87ac48 100644 +--- a/src/assistant/assistant.pro ++++ b/src/assistant/assistant.pro +@@ -14,9 +14,3 @@ SUBDIRS += \ + + assistant.depends = help + qhelpgenerator.depends = help +- +-qtNomakeTools( \ +- assistant \ +- qhelpgenerator \ +- qcollectiongenerator \ +-) +-- +2.26.2 + diff --git a/recipes-qt/qt5/qttools_git.bb b/recipes-qt/qt5/qttools_git.bb index 0c8b3e26..63566035 100644 --- a/recipes-qt/qt5/qttools_git.bb +++ b/recipes-qt/qt5/qttools_git.bb @@ -19,6 +19,7 @@ SRC_URI += " \ file://0002-linguist-tools-cmake-allow-overriding-the-location-f.patch \ file://0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch \ " +SRC_URI_append_class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'file://0004-Force-native-build-of-qt-help-tools-as-qhelpgenerato.patch', '', d)}" FILES_${PN}-tools += "${datadir}${QT_DIR_NAME}/phrasebooks" FILES_${PN}-examples = "${datadir}${QT_DIR_NAME}/examples" @@ -34,21 +35,10 @@ 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 += " \ ${@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)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'CONFIG+=disable_external_rpath CONFIG+=assistant', 'CONFIG+=noqdoc', d)} \ " - SRCREV = "cc52debd905e0ed061290d6fd00a5f1ab67478a5" BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch new file mode 100644 index 00000000..8a6660ff --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch @@ -0,0 +1,88 @@ +From 344e8a3945a29239dd2f27ea4969e3d64d5d8911 Mon Sep 17 00:00:00 2001 +From: Andrej Valek <andrej.valek@siemens.com> +Date: Fri, 17 Apr 2020 09:43:32 +0200 +Subject: [PATCH] chromium: icu: use system library only targets + + - use bundled one for native/v8 internal builds + +Complete system ICU library using requires ICU dev package +be installed on host. Enabling dependency on native package +is not enough due to V8 hosttools toolchain. V8 toolchain +is not using native sysroot, only a host packages. +On the other hand webenegine does not produce external +native artifacts. So external system ICU linking is not +needed. + +Signed-off-by: Andrej Valek <andrej.valek@siemens.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/chromium/third_party/icu/BUILD.gn b/chromium/third_party/icu/BUILD.gn +index 73673fa20ac..a656692c7bf 100644 +--- a/chromium/third_party/icu/BUILD.gn ++++ b/chromium/third_party/icu/BUILD.gn +@@ -7,9 +7,13 @@ import("//build/config/host_byteorder.gni") + import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + import("//third_party/icu/config.gni") ++import("//v8/gni/snapshot_toolchain.gni") + + declare_args() { + use_system_icu = false ++ ++ # Use only target icu library, when system using is enabled ++ use_system_icu_target_only = false + } + + if (is_android) { +@@ -23,6 +27,12 @@ if (is_mac) { + assert(!icu_disable_thin_archive || !is_component_build, + "icu_disable_thin_archive only works in static library builds") + ++if (use_system_icu) { ++ # Use system library only for target, otherwise use bundled ++ if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) { ++ use_system_icu_target_only = true ++ } ++} + # Meta target that includes both icuuc and icui18n. Most targets want both. + # You can depend on the individually if you need to. + group("icu") { +@@ -1222,7 +1232,7 @@ config("system_icu_config") { + } + } + +-if (use_system_icu) { ++if (use_system_icu_target_only) { + pkg_config("system_icui18n") { + packages = [ "icu-i18n" ] + } +@@ -1435,7 +1445,7 @@ shim_headers("icuuc_shim") { + } + + config("icu_config") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + configs = [ ":system_icu_config"] + } else { + configs = [ ":bundled_icu_config"] +@@ -1443,7 +1453,7 @@ config("icu_config") { + } + + group("icuuc") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icuuc_shim" ] + public_configs = [ + ":system_icu_config", +@@ -1455,7 +1465,7 @@ group("icuuc") { + } + + group("icui18n") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icui18n_shim" ] + public_configs = [ + ":system_icu_config", diff --git a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch new file mode 100644 index 00000000..1b43fcbb --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch @@ -0,0 +1,139 @@ +From 5aa69767be0fbbc7a3a5075c6c94366a535c99a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Mon, 20 Apr 2020 23:56:48 +0200 +Subject: [PATCH] chromium: Fix sandbox 'Aw, snap' for syscalls 403 and 407 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken as is from meta-browser. Saw my application freeze for syscall 0407 +trouble: + +| ../../../../git/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +Original commit message: + +* syscall 403: reported by ArchLinux users [1-2] +* syscall 407: reported by me [3] + +Looking at [4-5] it seems that glibc (>=2.31?) introduced extra syscalls for +32Bit systems to handle time64: + +* __NR_clock_gettime -> __NR_clock_gettime64 +* __NR_clock_nanosleep -> __NR_clock_nanosleep_time64 + +To fix +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0403 +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +we handle new systemcalls in the same way as 64bit systems do and 32bit systems +did before glibc 2.31. + +[1] https://bugs.archlinux32.org/index.php?do=details&task_id=105 +[2] https://bbs.archlinux32.org/viewtopic.php?id=2897 +[3] https://github.com/OSSystems/meta-browser/issues/357 +[4] https://sourceware.org/git/?p=glibc.git;a=commit;h=2e44b10b42d68d9887ccab17b76db5d7bbae4fb6 +[5] https://github.com/bminor/glibc/blob/019d828669df966dc4ef2684fce0b1c17bef9aae/sysdeps/unix/sysv/linux/clock_gettime.c#L30 + +Upstream Status: Pending [Have no idea where to send this] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + .../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 9 ++++++++- + .../syscall_parameters_restrictions_unittests.cc | 6 ++++++ + .../sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc | 6 ++++++ + .../sandbox/linux/system_headers/arm_linux_syscalls.h | 8 ++++++++ + .../sandbox/linux/system_headers/mips_linux_syscalls.h | 8 ++++++++ + 5 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 768025ce192..87025d91785 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -148,7 +148,14 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + return Allow(); + #endif + +- if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) { ++ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep ++#if defined(__NR_clock_gettime64) ++ || sysno == __NR_clock_gettime64 ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ || sysno == __NR_clock_nanosleep_time64 ++#endif ++ ) { + return RestrictClockID(); + } + +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +index 76193b62c9f..7731c697002 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf_dsl::Policy { + case __NR_clock_gettime: + case __NR_clock_getres: + case __NR_clock_nanosleep: ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: ++#endif ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: ++#endif + return RestrictClockID(); + default: + return Allow(); +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +index d9d18822f67..0db8745cb57 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int sysno) { + // filtered by RestrictClokID(). + case __NR_clock_gettime: // Parameters filtered by RestrictClockID(). + case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID(). ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: // Parameters filtered by RestrictClockID(). ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: // Parameters filtered by RestrictClockID(). ++#endif + case __NR_clock_settime: // Privileged. + #if defined(__i386__) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) +diff --git a/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +index 1addd53843c..5de2162f981 100644 +--- a/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,14 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) +diff --git a/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h b/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h +index ddbf97f3d8b..fa01b3bbc66 100644 +--- a/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h ++++ b/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h +@@ -1433,4 +1433,12 @@ + #define __NR_memfd_create (__NR_Linux + 354) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_Linux + 403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_Linux + 407) ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_ diff --git a/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch index f654424e..01c46c05 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch @@ -1,4 +1,4 @@ -From 69570c2f3c88c31cca71f87996ed4ab7ab2bc66c Mon Sep 17 00:00:00 2001 +From 0dbcdee3ccc23d3a6c9e66b5abc3fb3d1ccbc297 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch index 19fbca5d..03226154 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch @@ -1,4 +1,4 @@ -From 5b501d5335008e32bd5a62e48a675c8fc61194a9 Mon Sep 17 00:00:00 2001 +From bbb23eb876e1f4500e7c8fd716a73351ad660725 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch index 91bd4057..869ac113 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch @@ -1,4 +1,4 @@ -From 1180600c21260188fd2d3def0f536b4243175fc0 Mon Sep 17 00:00:00 2001 +From d1d6bd4260eb847c1493a8ce4a974bb8d8ee0218 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch index c6c3571c..638c7312 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch @@ -1,4 +1,4 @@ -From f2ff87552f0f2f576bda05f7ccf5855c005ed7b0 Mon Sep 17 00:00:00 2001 +From 7cf2404330f7888f3cc8a25becfe944cc2fc421e 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch index 9cc6744d..55939ddd 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch @@ -1,4 +1,4 @@ -From efa10960aa9ec6b573a9c34cabab90ad2c31c5a3 Mon Sep 17 00:00:00 2001 +From 350b57a5cad7c655ccb68a8b4b91e7d32021a1d7 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch index 15e38eb0..37276844 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch @@ -1,4 +1,4 @@ -From c799e56ed6c073782c9215aa7d9302003b61a395 Mon Sep 17 00:00:00 2001 +From 68decc5d87b4eb013f1455fc4f81f67f926fa3b2 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch index 033780d8..aea690d9 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch @@ -1,4 +1,4 @@ -From a49d5e2c256d18853c0e00e698759f763eaddf04 Mon Sep 17 00:00:00 2001 +From fea443adcea6e081cfee94a19c75e7b0516e1bce 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,7 +13,7 @@ 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 eaa5336c339..18b40d7d005 100644 +index 2e0f06b0c1e..aaafef77d79 100644 --- a/chromium/net/dns/dns_config_service_posix.cc +++ b/chromium/net/dns/dns_config_service_posix.cc @@ -29,6 +29,10 @@ diff --git a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch index 97fce663..cd1059e3 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch @@ -1,4 +1,4 @@ -From 6e44772c5aa78c39d52910aaf4cc2db3bcf0ba7e Mon Sep 17 00:00:00 2001 +From 64e79d346a2038b976f5bafe2b0b2032b1628229 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch b/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch index 53ecedd4..50d17413 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch @@ -1,4 +1,4 @@ -From 31b50a484935d1a610da74fa5a06489f8309fd6d Mon Sep 17 00:00:00 2001 +From cecdf34d89110115948cfde44c04a43c9925b24a 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch b/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch index 750d0d5e..07a1e3d6 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch @@ -1,4 +1,4 @@ -From d687194f970d5ed19d21916eba4f597625d20dfc Mon Sep 17 00:00:00 2001 +From ae4187267b4d0d2ff13a6593b69ca06cee321eea 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch index 4ed957ee..63f93873 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch @@ -1,4 +1,4 @@ -From 976ee610f4bb87d1b5f57756c04f13b06f3ebf26 Mon Sep 17 00:00:00 2001 +From f12f5d2dc91548ca77b296a0be3705aacc9fca33 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch b/recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch index 61a1137c..edeb3272 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch @@ -1,4 +1,4 @@ -From 4cb584454ab1537c1e1e5ae8453f57a98aa9a928 Mon Sep 17 00:00:00 2001 +From 3269ffba733ed7eeb7c2c36912dd19ca1ef35f8b 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 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch b/recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch index 0d73e07c..72adf1cb 100644 --- a/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch @@ -1,4 +1,4 @@ -From acc3b1b674a2568dd19418ec5b3c58330a29521a Mon Sep 17 00:00:00 2001 +From 0b04cbd5b93908bad4dfc6d829048fe90a09b868 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sun, 10 May 2020 08:16:01 -0700 Subject: [PATCH] chromium: musl: initialize msghdr in a compatible manner diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index 1d7fe83f..b00ba48c 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -21,7 +21,7 @@ DEPENDS += " \ qtwebchannel \ qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \ qtlocation \ - libdrm fontconfig pixman openssl pango cairo icu pciutils nss \ + libdrm fontconfig pixman openssl pango cairo pciutils nss \ libcap \ jpeg-native \ freetype-native \ @@ -146,20 +146,22 @@ RDEPENDS_${PN}-examples += " \ QT_MODULE_BRANCH_CHROMIUM = "83-based" -# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15 -# 5.15.meta-qt5.7 +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15-glibc +# 5.15-glibc.meta-qt5.8 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 \ " +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15 +# 5.15-glibc.meta-qt5.8 SRC_URI_append_libc-musl = "\ file://0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \ file://0003-musl-link-against-libexecinfo.patch \ file://0004-mkspecs-Allow-builds-with-libc-glibc.patch \ " -# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based -# 80-based.meta-qt5.3 +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based-glibc +# 80-based-glibc.meta-qt5.4 SRC_URI += " \ 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 \ @@ -173,22 +175,26 @@ SRC_URI += " \ 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 \ + file://chromium/0014-chromium-icu-use-system-library-only-targets.patch;patchdir=src/3rdparty \ + file://chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch;patchdir=src/3rdparty \ " +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based +# 80-based.meta-qt5.4 SRC_URI_append_libc-musl = "\ - file://chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \ - file://chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \ - file://chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \ - file://chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \ - file://chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \ - file://chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \ - file://chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \ - file://chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \ - file://chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \ - file://chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \ - file://chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ - file://chromium/0025-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ - file://chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ + file://chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \ + file://chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \ + file://chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \ + file://chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \ + file://chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \ + file://chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \ + file://chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \ + file://chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \ + file://chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \ + file://chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \ + file://chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ + file://chromium/0028-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ + file://chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ " SRCREV_qtwebengine = "5537ff4437ea7a5f9ea140071343f88bf48deddc" diff --git a/recipes-qt/qt5/qtwebkit/0006-Fix-build-with-bison37.patch b/recipes-qt/qt5/qtwebkit/0006-Fix-build-with-bison37.patch new file mode 100644 index 00000000..9262f5fe --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0006-Fix-build-with-bison37.patch @@ -0,0 +1,52 @@ +From d92b11fea65364fefa700249bd3340e0cd4c5b31 Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev <mitya57@gmail.com> +Date: Tue, 4 Aug 2020 21:04:06 +0300 +Subject: [PATCH] Let Bison generate the header directly, to fix build with + Bison 3.7 + +Starting with Bison 3.7, the generated C++ file #include's the header +by default, instead of duplicating it. So we should not delete it. + +Remove the code to add #ifdef guards to the header, since Bison adds +them itself since version 2.6.3. + +Found at [1] + +[1] https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31 + +Upstream-Status: Pending +--- + Source/WebCore/css/makegrammar.pl | 21 +-------------------- + 1 file changed, 1 insertion(+), 20 deletions(-) + +diff --git a/Source/WebCore/css/makegrammar.pl b/Source/WebCore/css/makegrammar.pl +index 5d63b08102eb..9435701c7061 100644 +--- a/Source/WebCore/css/makegrammar.pl ++++ b/Source/WebCore/css/makegrammar.pl +@@ -73,25 +73,6 @@ + } + + my $fileBase = File::Spec->join($outputDir, $filename); +-my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); ++my @bisonCommand = ($bison, "--defines=$fileBase.h", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); + push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. + system(@bisonCommand) == 0 or die; +- +-open HEADER, ">$fileBase.h" or die; +-print HEADER << "EOF"; +-#ifndef CSSGRAMMAR_H +-#define CSSGRAMMAR_H +-EOF +- +-open HPP, "<$fileBase.cpp.h" or open HPP, "<$fileBase.hpp" or die; +-while (<HPP>) { +- print HEADER; +-} +-close HPP; +- +-print HEADER "#endif\n"; +-close HEADER; +- +-unlink("$fileBase.cpp.h"); +-unlink("$fileBase.hpp"); +- diff --git a/recipes-qt/qt5/qtwebkit/0007-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch b/recipes-qt/qt5/qtwebkit/0007-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch new file mode 100644 index 00000000..15607c0d --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0007-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch @@ -0,0 +1,34 @@ +From 32eb0352d98fcf325b0a94a4f7e141d746938a4b Mon Sep 17 00:00:00 2001 +From: Konstantin Tokarev <annulen@yandex.ru> +Date: Sun, 3 May 2020 18:50:24 +0300 +Subject: [PATCH] Disable code related to HTTP/2 when Qt is configured without SSL support + +For enabling HTTP/2 by default we check if Qt uses OpenSSL and its version +is 1.0.2 or higher via QSslSocket API. While it would be sufficient to +add guards just there, we are not going to enable HTTP/2 for QT_NO_SSL +case by default anyway (note that it still can be done in application code). + +Change-Id: I77b4a423ff1028725ac2c0953c757dce2db23e05 +--- +Upstream-Status: Backport [https://github.com/qtwebkit/qtwebkit/commit/e7ec14144ce58418d94568c41ac94d4d87969363] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + + Source/WebCore/platform/network/qt/ResourceRequest.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/network/qt/ResourceRequest.h b/Source/WebCore/platform/network/qt/ResourceRequest.h +index 1154d56a0..87e21ec3f 100644 +--- a/Source/WebCore/platform/network/qt/ResourceRequest.h ++++ b/Source/WebCore/platform/network/qt/ResourceRequest.h +@@ -32,7 +32,7 @@ + // HTTP/2 is implemented since Qt 5.8, but various QtNetwork bugs make it unusable in browser with Qt < 5.10.1 + // We also don't enable HTTP/2 for unencrypted connections because of possible compatibility issues; it can be + // enabled manually by user application via custom QNAM subclass +-#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 1) ++#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 1) && !defined(QT_NO_SSL) + #define USE_HTTP2 1 + #endif + +-- +2.29.2 + diff --git a/recipes-qt/qt5/qtwebkit/0008-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch b/recipes-qt/qt5/qtwebkit/0008-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch new file mode 100644 index 00000000..4eef3451 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0008-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch @@ -0,0 +1,32 @@ +From df9f6a8c9d59996b52bfdc5ea6f780de517905e5 Mon Sep 17 00:00:00 2001 +From: Konstantin Tokarev <annulen@yandex.ru> +Date: Wed, 3 Jun 2020 15:01:42 +0300 +Subject: [PATCH] Fix compilation with Python 3.9: avoid passing encoding to + json.load() + +In Python 2.7 UTF-8 is assumed by default, while in Python 3 this argument +is not supported. + +Upstream-Status: Backport [https://github.com/qtwebkit/qtwebkit/commit/78360c01c796b6260bf828bc9c8a0ef73c5132fd] +Change-Id: Ic459d60a6b20bc1838d8771bc36ac41614fe61a9 +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Source/JavaScriptCore/generate-bytecode-files | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/JavaScriptCore/generate-bytecode-files b/Source/JavaScriptCore/generate-bytecode-files +index c5dab429c..af3431275 100644 +--- a/Source/JavaScriptCore/generate-bytecode-files ++++ b/Source/JavaScriptCore/generate-bytecode-files +@@ -163,7 +163,7 @@ if __name__ == "__main__": + initBytecodesFile = openOrExit(initASMFileName, "w") + + try: +- bytecodeSections = json.load(bytecodeFile, encoding = "utf-8") ++ bytecodeSections = json.load(bytecodeFile) + except: + print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info())) + +-- +2.29.2 + diff --git a/recipes-qt/qt5/qtwebkit_git.bb b/recipes-qt/qt5/qtwebkit_git.bb index 253c209b..a10346f4 100644 --- a/recipes-qt/qt5/qtwebkit_git.bb +++ b/recipes-qt/qt5/qtwebkit_git.bb @@ -17,6 +17,9 @@ SRC_URI += "\ file://0003-Fix-build-bug-for-armv32-BE.patch \ file://0004-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch \ file://0005-Riscv-Add-support-for-riscv.patch \ + file://0006-Fix-build-with-bison37.patch \ + file://0007-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch \ + file://0008-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch \ " inherit cmake_qt5 perlnative |