diff options
257 files changed, 9147 insertions, 3115 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..cb2381c0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# linguist overrides +recipes-*/**/*.inc linguist-language=BitBake diff --git a/README b/README deleted file mode 100644 index 9817851b..00000000 --- a/README +++ /dev/null @@ -1,33 +0,0 @@ -This layer depends on: - -URI: git://github.com/openembedded/oe-core.git -branch: master -revision: HEAD - -When building stuff like qtdeclarative, qtquick, qtwebkit, make sure that -you have required PACKAGECONFIG options enabled in qtbase build, see qtbase.inc -for detail. - -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-qt5]' in the subject' - -When sending single patches, please using something like: - -git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-qt5][PATCH' - -Change option '-1' to '-n' for n number of patches in series - -You are encouraged to fork the mirror on github[1] to share your -patches. This is preferred for patch sets consisting of more than one -patch. Other services like gitlab, repo.or.cz or self hosted setups -are of course accepted as well, 'git fetch <remote>' works the same on -all of them. We recommend github because it is free, easy to use, has -been proven to be reliable and has a really good web GUI. - -1. https://github.com/meta-qt5/meta-qt5/ - -meta-qt5 has Yocto Project Compatible status since 2013: -https://www.yoctoproject.org/product/meta-qt5 - -Main layer maintainers: - Martin 'JaMa' Jansa <martin.jansa@gmail.com> - Otavio Salvador <otavio@ossystems.com.br> diff --git a/README-COMMERCIAL.md b/README-COMMERCIAL.md new file mode 100644 index 00000000..b4c104ba --- /dev/null +++ b/README-COMMERCIAL.md @@ -0,0 +1,17 @@ +Qt5 Long Term Support Commercial releases +========================================= + +Qt 5.15 has moved to LTS mode where the releases starting with 5.15.3 +are available only for commercial Qt users with appropriate license. + +The Qt 5.15 LTS Commercial source code is available in the tqtc shadow +repositories and their LTS branches as described in +https://wiki.qt.io/Building_Qt_5_from_Git#Getting_the_Qt_5.15_LTS_Commercial_source_code + +The meta-qt5 layer can be used to build the LTS releases using the lts-5.15 branch. +In order to build the LTS release, you must have SSH access set up to the +Qt Gerrit as instructed in +https://wiki.qt.io/Setting_up_Gerrit + +For more information about the Qt 5.15 LTS Commercial releases, see +https://wiki.qt.io/Qt_5.15_Release#Qt_5.15_LTS_Commercial_Releases diff --git a/README.md b/README.md new file mode 100644 index 00000000..fa497153 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +Qt5 OpenEmbedded/Yocto Project layer +==================================== + +This layer depends on: + +URI: https://github.com/openembedded/openembedded-core (branch: master) + +When building stuff like `qtdeclarative`, `qtquick`, `qtwebkit`, make +sure that you have required `PACKAGECONFIG` options enabled in qtbase +build, see `qtbase` recipe for detail. + +Some recipes like qtwebengine would need 32bit multilib compiler on build +host, especially when target to be built is 32bit, e.g. arm since it builds +v8 engine which requires `$CC -m32` to work, so ensure that host compiler +can generate 32bit code, on archlinux distributions this would be +``` +pacman -S lib32-gcc-libs lib32-glibc +``` + +Contributing +------------ + +Please submit any patches against the `meta-qt5` layer by using the +GitHub pull-request feature. Fork the repo, make a branch, do the +work, rebase from upstream, create the pull request, yada-yada. + +Maintainers +----------- + +- Martin 'JaMa' Jansa <martin.jansa@gmail.com> +- Otavio Salvador <otavio@ossystems.com.br> + +Yocto Project Compatible +------------------------ + +![Yocto Project Compatible](https://github.com/meta-qt5/meta-qt5/blob/master/files/YoctoProject_Badge_Compatible.png) + +meta-qt5 has Yocto Project Compatible status since 2013. Check it at: +https://www.yoctoproject.org/product/meta-qt5 diff --git a/classes/cmake_qt5.bbclass b/classes/cmake_qt5.bbclass index 5d605a68..6accb819 100644 --- a/classes/cmake_qt5.bbclass +++ b/classes/cmake_qt5.bbclass @@ -1,9 +1,12 @@ inherit cmake inherit qmake5_paths -DEPENDS_prepend = "qtbase qtbase-native " +DEPENDS:prepend = "${QTBASEDEPENDS} " +QTBASEDEPENDS = "qtbase qtbase-native" +QTBASEDEPENDS:class-native = "qtbase-native" +QTBASEDEPENDS:class-nativesdk = "nativesdk-qtbase qtbase-native" -EXTRA_OECMAKE_prepend = " \ +EXTRA_OECMAKE:prepend = " \ -DOE_QMAKE_PATH_PREFIX=${OE_QMAKE_PATH_PREFIX} \ -DOE_QMAKE_PATH_HEADERS=${OE_QMAKE_PATH_HEADERS} \ -DOE_QMAKE_PATH_LIBS=${OE_QMAKE_PATH_LIBS} \ @@ -12,7 +15,6 @@ EXTRA_OECMAKE_prepend = " \ -DOE_QMAKE_PATH_BINS=${OE_QMAKE_PATH_BINS} \ -DOE_QMAKE_PATH_LIBEXECS=${OE_QMAKE_PATH_LIBEXECS} \ -DOE_QMAKE_PATH_PLUGINS=${OE_QMAKE_PATH_PLUGINS} \ - -DOE_QMAKE_PATH_IMPORTS=${OE_QMAKE_PATH_IMPORTS} \ -DOE_QMAKE_PATH_QML=${OE_QMAKE_PATH_QML} \ -DOE_QMAKE_PATH_TRANSLATIONS=${OE_QMAKE_PATH_TRANSLATIONS} \ -DOE_QMAKE_PATH_DOCS=${OE_QMAKE_PATH_DOCS} \ diff --git a/classes/populate_sdk_qt5.bbclass b/classes/populate_sdk_qt5.bbclass index a10341dc..e0b287eb 100644 --- a/classes/populate_sdk_qt5.bbclass +++ b/classes/populate_sdk_qt5.bbclass @@ -2,7 +2,7 @@ inherit populate_sdk_qt5_base -TOOLCHAIN_HOST_TASK_append = " nativesdk-packagegroup-qt5-toolchain-host" -TOOLCHAIN_TARGET_TASK_append = " packagegroup-qt5-toolchain-target" +TOOLCHAIN_HOST_TASK:append = " nativesdk-packagegroup-qt5-toolchain-host" +TOOLCHAIN_TARGET_TASK:append = " packagegroup-qt5-toolchain-target" FEATURE_PACKAGES_qtcreator-debug = "packagegroup-qt5-qtcreator-debug" diff --git a/classes/populate_sdk_qt5_base.bbclass b/classes/populate_sdk_qt5_base.bbclass index b6ce5967..56341cd1 100644 --- a/classes/populate_sdk_qt5_base.bbclass +++ b/classes/populate_sdk_qt5_base.bbclass @@ -1,7 +1,7 @@ # This allow reuse of Qt paths inherit qmake5_paths -create_sdk_files_prepend () { +create_sdk_files:prepend () { # Generate a qt.conf file to be deployed with the SDK qtconf=${SDK_OUTPUT}/${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS}/qt.conf touch $qtconf @@ -14,7 +14,6 @@ create_sdk_files_prepend () { echo 'Binaries = ${OE_QMAKE_PATH_QT_BINS}' >> $qtconf echo 'LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}' >> $qtconf echo 'Plugins = ${OE_QMAKE_PATH_PLUGINS}' >> $qtconf - echo 'Imports = ${OE_QMAKE_PATH_IMPORTS}' >> $qtconf echo 'Qml2Imports = ${OE_QMAKE_PATH_QML}' >> $qtconf echo 'Translations = ${OE_QMAKE_PATH_QT_TRANSLATIONS}' >> $qtconf echo 'Documentation = ${OE_QMAKE_PATH_QT_DOCS}' >> $qtconf diff --git a/classes/qmake5.bbclass b/classes/qmake5.bbclass index 1a960e8f..d9b919cd 100644 --- a/classes/qmake5.bbclass +++ b/classes/qmake5.bbclass @@ -4,16 +4,18 @@ inherit qmake5_base QT5TOOLSDEPENDS ?= "qtbase-native" -DEPENDS_prepend = "${QT5TOOLSDEPENDS} " +DEPENDS:prepend = "${QT5TOOLSDEPENDS} " -do_configure() { +qmake5_do_configure() { qmake5_base_do_configure } -do_install() { +qmake5_do_install() { qmake5_base_do_install } -do_install_class-native() { +qmake5_do_install:class-native() { qmake5_base_native_do_install } + +EXPORT_FUNCTIONS do_configure do_install diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass index 3bc1279d..cf73f33e 100644 --- a/classes/qmake5_base.bbclass +++ b/classes/qmake5_base.bbclass @@ -1,5 +1,5 @@ # hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds -XPLATFORM_toolchain-clang = "linux-oe-clang" +XPLATFORM:toolchain-clang = "linux-oe-clang" XPLATFORM ?= "linux-oe-g++" OE_QMAKE_PLATFORM_NATIVE = "${XPLATFORM}" @@ -20,7 +20,6 @@ SSTATE_SCAN_FILES += "*.pri *.prl *.prf" # then OE_QMAKE_CFLAGS are exported and used correctly, but then whole CFLAGS is overwritten from env (and -fPIC lost and build fails) EXTRA_OEMAKE = " \ MAKEFLAGS='${PARALLEL_MAKE}' \ - OE_QMAKE_COMPILER='${OE_QMAKE_COMPILER}' \ OE_QMAKE_CC='${OE_QMAKE_CC}' \ OE_QMAKE_CXX='${OE_QMAKE_CXX}' \ OE_QMAKE_CFLAGS='${OE_QMAKE_CFLAGS}' \ @@ -28,12 +27,12 @@ EXTRA_OEMAKE = " \ OE_QMAKE_LINK='${OE_QMAKE_LINK}' \ OE_QMAKE_LDFLAGS='${OE_QMAKE_LDFLAGS}' \ OE_QMAKE_AR='${OE_QMAKE_AR}' \ + OE_QMAKE_OBJCOPY='${OE_QMAKE_OBJCOPY}' \ OE_QMAKE_STRIP='${OE_QMAKE_STRIP}' \ OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \ " OE_QMAKE_QMAKE = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake" -export OE_QMAKE_COMPILER = "${CC}" export OE_QMAKE_CC = "${CC}" export OE_QMAKE_CFLAGS = "${CFLAGS}" export OE_QMAKE_CXX = "${CXX}" @@ -41,12 +40,41 @@ export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}" export OE_QMAKE_LINK = "${CXX}" export OE_QMAKE_LDFLAGS = "${LDFLAGS}" export OE_QMAKE_AR = "${AR}" +export OE_QMAKE_OBJCOPY = "${OBJCOPY}" export OE_QMAKE_STRIP = "echo" # qmake reads if from shell environment export OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf" -inherit qmake5_paths remove-libtool +inherit qmake5_paths + +generate_target_qt_config_file() { + qtconf="$1" + cat > "${qtconf}" <<EOF +[Paths] +Prefix = ${OE_QMAKE_PATH_PREFIX} +Headers = ${OE_QMAKE_PATH_HEADERS} +Libraries = ${OE_QMAKE_PATH_LIBS} +ArchData = ${OE_QMAKE_PATH_ARCHDATA} +Data = ${OE_QMAKE_PATH_DATA} +Binaries = ${OE_QMAKE_PATH_BINS} +LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS} +Plugins = ${OE_QMAKE_PATH_PLUGINS} +Qml2Imports = ${OE_QMAKE_PATH_QML} +Translations = ${OE_QMAKE_PATH_TRANSLATIONS} +Documentation = ${OE_QMAKE_PATH_DOCS} +Settings = ${OE_QMAKE_PATH_SETTINGS} +Examples = ${OE_QMAKE_PATH_EXAMPLES} +Tests = ${OE_QMAKE_PATH_TESTS} +HostBinaries = ${OE_QMAKE_PATH_BINS} +HostData = ${OE_QMAKE_PATH_ARCHDATA} +HostLibraries = ${OE_QMAKE_PATH_LIBS} +HostSpec = ${OE_QMAKE_PLATFORM} +TargetSpec = ${OE_QMAKE_PLATFORM} +ExternalHostBinaries = ${OE_QMAKE_PATH_BINS} +Sysroot = +EOF +} do_generate_qt_config_file() { generate_qt_config_file_paths @@ -64,7 +92,6 @@ Data = ${OE_QMAKE_PATH_DATA} Binaries = ${OE_QMAKE_PATH_BINS} LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS} Plugins = ${OE_QMAKE_PATH_PLUGINS} -Imports = ${OE_QMAKE_PATH_IMPORTS} Qml2Imports = ${OE_QMAKE_PATH_QML} Translations = ${OE_QMAKE_PATH_TRANSLATIONS} Documentation = ${OE_QMAKE_PATH_DOCS} @@ -85,6 +112,7 @@ generate_qt_config_file_effective_paths() { cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF [EffectivePaths] HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} +HostLibraries = ${STAGING_LIBDIR_NATIVE} HostData = ${OE_QMAKE_PATH_HOST_DATA} HostPrefix = ${STAGING_DIR_NATIVE} EOF @@ -215,9 +243,19 @@ qmake5_base_do_install() { qmake5_base_fix_install ${STAGING_DIR_HOST} qmake5_base_fix_install ${STAGING_DIR_NATIVE} - if ls ${D}${libdir}/pkgconfig/*.pc >/dev/null 2>/dev/null; then - sed -i ${D}${libdir}/pkgconfig/*.pc \ - -e "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" \ - -e "s@${STAGING_DIR_TARGET}@@g" - fi + # Replace host paths with qmake built-in properties + find ${D} \( -name "*.pri" -or -name "*.prl" \) -exec \ + sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \ + -e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' {} \ + -e '/QMAKE_PRL_BUILD_DIR/d' {} \; + + # Replace host paths with pkg-config built-in variable + find ${D} -name "*.pc" -exec \ + sed -i -e 's|prefix=${STAGING_DIR_HOST}|prefix=|g' \ + -e 's|${STAGING_DIR_HOST}|${pc_sysrootdir}|g' {} \; + + # Replace resolved lib path with the lib name + find ${D} -name "*.cmake" -exec \ + sed -i -e 's@/[^;]*/lib\([^;]*\)\.\(so\|a\)@\1@g' {} \; + } diff --git a/classes/qmake5_paths.bbclass b/classes/qmake5_paths.bbclass index e1101a9c..abed93b7 100644 --- a/classes/qmake5_paths.bbclass +++ b/classes/qmake5_paths.bbclass @@ -2,15 +2,15 @@ # about conflicts with qt4, then you can add qmake5_paths.bbclass # to your distro layer and flatten all QT_DIR_NAME directories -QT_DIR_NAME ?= "/qt5" +QT_DIR_NAME ?= "" # This is useful for target recipes to reference native mkspecs QMAKE_MKSPEC_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}${QT_DIR_NAME}" QMAKE_MKSPEC_PATH_TARGET = "${STAGING_LIBDIR}${QT_DIR_NAME}" QMAKE_MKSPEC_PATH = "${QMAKE_MKSPEC_PATH_TARGET}" -QMAKE_MKSPEC_PATH_class-native = "${QMAKE_MKSPEC_PATH_NATIVE}" -QMAKE_MKSPEC_PATH_class-nativesdk = "${QMAKE_MKSPEC_PATH_NATIVE}" +QMAKE_MKSPEC_PATH:class-native = "${QMAKE_MKSPEC_PATH_NATIVE}" +QMAKE_MKSPEC_PATH:class-nativesdk = "${QMAKE_MKSPEC_PATH_NATIVE}" OE_QMAKE_PATH_PREFIX = "${prefix}" OE_QMAKE_PATH_HEADERS = "${includedir}${QT_DIR_NAME}" @@ -20,7 +20,6 @@ OE_QMAKE_PATH_DATA = "${datadir}" OE_QMAKE_PATH_BINS = "${bindir}" OE_QMAKE_PATH_LIBEXECS = "${libdir}${QT_DIR_NAME}/libexec" OE_QMAKE_PATH_PLUGINS = "${libdir}${QT_DIR_NAME}/plugins" -OE_QMAKE_PATH_IMPORTS = "${libdir}${QT_DIR_NAME}/imports" OE_QMAKE_PATH_QML = "${libdir}${QT_DIR_NAME}/qml" OE_QMAKE_PATH_TRANSLATIONS = "${datadir}/translations" OE_QMAKE_PATH_DOCS = "${docdir}" @@ -28,7 +27,7 @@ OE_QMAKE_PATH_SETTINGS = "${sysconfdir}" OE_QMAKE_PATH_EXAMPLES = "${datadir}/examples" OE_QMAKE_PATH_TESTS = "${datadir}/tests" OE_QMAKE_PATH_HOST_PREFIX = "" -OE_QMAKE_PATH_HOST_PREFIX_class-target = "${STAGING_DIR_NATIVE}" +OE_QMAKE_PATH_HOST_PREFIX:class-target = "${STAGING_DIR_NATIVE}" OE_QMAKE_PATH_HOST_BINS = "${bindir}${QT_DIR_NAME}" OE_QMAKE_PATH_HOST_DATA = "${QMAKE_MKSPEC_PATH_TARGET}" OE_QMAKE_PATH_HOST_LIBS = "${STAGING_LIBDIR}" diff --git a/coin/dependencies.yaml b/coin/dependencies.yaml new file mode 100644 index 00000000..53aa67d2 --- /dev/null +++ b/coin/dependencies.yaml @@ -0,0 +1,2 @@ +dependencies: + {} diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 00000000..8ae9c795 --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,156 @@ +version: 2 +accept_configuration: + condition: and + conditions: + - condition: property + property: host.compiler + equals_value: Yocto + - condition: property + property: target.arch + in_values: [TARGET1, TARGET2, TARGET3, TARGET4] + +machine_type: + Build: + cores: 16 + +# Target build matrix: +# +# [target1] [target2] [target3] [target4] +# [machine] qemuarm64 qemux86 qemuarm qemux86-64 +# [yocto] kirkstone dunfell langdale master +# + +target1: &target1 + type: Group + instructions: + - type: EnvironmentVariable + variableName: MACHINE + variableValue: qemuarm64 + - type: EnvironmentVariable + variableName: MANIFEST + variableValue: kirkstone.xml + - type: EnvironmentVariable + variableName: TEST_CONFIGS + variableValue: ci configs + enable_if: + condition: property + property: target.arch + equals_value: TARGET1 +target2: &target2 + type: Group + instructions: + - type: EnvironmentVariable + variableName: MACHINE + variableValue: qemux86 + - type: EnvironmentVariable + variableName: MANIFEST + variableValue: dunfell.xml + - type: EnvironmentVariable + variableName: TEST_CONFIGS + variableValue: ci configs + enable_if: + condition: property + property: target.arch + equals_value: TARGET2 +target3: &target3 + type: Group + instructions: + - type: EnvironmentVariable + variableName: MACHINE + variableValue: qemuarm + - type: EnvironmentVariable + variableName: MANIFEST + variableValue: langdale.xml + - type: EnvironmentVariable + variableName: TEST_CONFIGS + variableValue: ci configs + enable_if: + condition: property + property: target.arch + equals_value: TARGET3 +target4: &target4 + type: Group + instructions: + - type: EnvironmentVariable + variableName: MACHINE + variableValue: qemux86-64 + - type: EnvironmentVariable + variableName: MANIFEST + variableValue: master.xml + - type: EnvironmentVariable + variableName: TEST_CONFIGS + variableValue: ci configs + enable_if: + condition: property + property: target.arch + equals_value: TARGET4 + +instructions: + Build: + - *target1 + - *target2 + - *target3 + - *target4 + - type: EnvironmentVariable + variableName: DL_DIR + variableValue: "/mnt/yocto-cache/downloads" + - type: EnvironmentVariable + variableName: SOURCE_DIR + variableValue: "{{.SourceDir}}" + - type: SetBuildDirectory + directory: "{{.AgentWorkingDir}}/build" + - type: MakeDirectory + directory: "{{.BuildDir}}" + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: WriteFile + fileContents: | + #!/bin/bash -xe + + # make hostname unique for NFS + sudo hostname $(hostname -s)-$(date +%s%N) + + sudo mkdir -p /mnt/yocto-cache + sudo mount yocto-cache.ci.qt.io:/srv/yocto-cache /mnt/yocto-cache + + curl https://storage.googleapis.com/git-repo-downloads/repo > repo + chmod +x repo + + ./repo init \ + --repo-url https://github.com/theqtcompany/git-repo \ + -u git://code.qt.io/yocto/boot2qt-manifest \ + -b ci \ + -m ${MANIFEST} \ + --reference /mnt/mirror + ./repo sync + + source ./poky/oe-init-build-env + + # meta-python2 layer master branch compatible with kirkstone only + echo "LAYERSERIES_COMPAT_meta-python2:append = \" langdale mickledore nanbield scarthgap\"" >> ../meta-python2/conf/layer.conf + + bitbake-layers add-layer ../meta-openembedded/meta-oe + bitbake-layers add-layer ../meta-python2 + bitbake-layers add-layer ${SOURCE_DIR} + + for conf in ${TEST_CONFIGS}; do + echo "require ${SOURCE_DIR}/coin/test-${conf}.inc" >> conf/local.conf + done + + # EXCLUDE FROM WORLD + rm -fv ${SOURCE_DIR}/recipes-qt/examples/qt5-opengles2-test_git.bb + + # build only recipes found under recipes-qt + bitbake $(find ${SOURCE_DIR}/recipes-qt -name *.bb | xargs -n1 basename | sed -e 's/\([^._]*\).*/\1/') + filename: "{{.BuildDir}}/start-build" + fileMode: 420 + - type: ExecuteCommand + command: ["bash", "-xe", "{{.BuildDir}}/start-build"] + maxTimeInSeconds: 39600 + maxTimeBetweenOutput: 39600 + userMessageOnFailure: "Build failed." + - type: ExecuteCommand + command: ["sudo", "umount", "/mnt/yocto-cache"] + userMessageOnFailure: "Unmounting cache failed." + + Test: [] diff --git a/coin/test-ci.inc b/coin/test-ci.inc new file mode 100644 index 00000000..8a1df2ad --- /dev/null +++ b/coin/test-ci.inc @@ -0,0 +1,4 @@ +SSTATE_DIR = "/mnt/yocto-cache/sstate-caches/${DISTRO_CODENAME}-meta-qt5" +DL_DIR = "/mnt/yocto-cache/downloads" +BB_GENERATE_MIRROR_TARBALLS = "1" + diff --git a/coin/test-configs.inc b/coin/test-configs.inc new file mode 100644 index 00000000..7b904a1f --- /dev/null +++ b/coin/test-configs.inc @@ -0,0 +1,74 @@ +# https://github.com/shr-project/jenkins-jobs/blob/master/jenkins-job.sh +# need space for dunfell build +INHERIT += "rm_work" +# We want musl and glibc to share the same tmpfs, so instead of appending default "-${TCLIBC}" we append "fs" +TCLIBCAPPEND = "fs" +PREFERRED_PROVIDER_virtual/fftw = "fftw" +# use gold +#DISTRO_FEATURES:append = " ld-is-gold" +# use ptest +DISTRO_FEATURES:append = " ptest" +# use systemd +INIT_MANAGER:forcevariable = "systemd" +# use opengl +DISTRO_FEATURES:append = " opengl" +# use wayland to fix building weston and qtwayland +DISTRO_FEATURES:append = " wayland" +PREFERRED_PROVIDER_jpeg = "libjpeg-turbo" +PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native" +PREFERRED_PROVIDER_gpsd = "gpsd" +PREFERRED_PROVIDER_e-wm-sysactions = "e-wm" +ESYSACTIONS = "e-wm-sysactions" +# don't pull libhybris unless explicitly asked for +PREFERRED_PROVIDER_virtual/libgl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" +PREFERRED_PROVIDER_virtual/egl ?= "mesa" +# to fix fsoaudiod, alsa-state conflict in shr-image-all +VIRTUAL-RUNTIME_alsa-state = "" +# to prevent alsa-state being pulled into -dev or -dbg images +RDEPENDS:${PN}-dev:pn-alsa-state = "" +RDEPENDS:${PN}-dbg:pn-alsa-state = "" +# to fix dependency on conflicting x11-common from packagegroup-core-x11 +VIRTUAL-RUNTIME_xserver_common ?= "xserver-common" +RDEPENDS:${PN}-dev:pn-x11-common = "" +RDEPENDS:${PN}-dbg:pn-x11-common = "" +# to fix apm, fso-apm conflict in shr-image-all +VIRTUAL-RUNTIME_apm = "fso-apm" +# require conf/distro/include/qt5-versions.inc +# QT5_VERSION = "5.4.0+git%" +# for qtwebkit etc +# see https://bugzilla.yoctoproject.org/show_bug.cgi?id=5013 +# DEPENDS:append:pn-qtbase = " mesa" +PACKAGECONFIG:append:pn-qtbase = " icu gl accessibility freetype fontconfig" +# qtwayland doesn't like egl and xcomposite-glx enabled at the same time +# http://lists.openembedded.org/pipermail/openembedded-devel/2016-December/110444.html +PACKAGECONFIG:remove:pn-qtwayland = "xcomposite-egl xcomposite-glx" +# for webkit-efl +PACKAGECONFIG:append:pn-harfbuzz = " icu" +# enable reporting +# needs http://patchwork.openembedded.org/patch/68735/ +#ERR_REPORT_SERVER = "errors.yoctoproject.org" +#ERR_REPORT_PORT = "80" +#ERR_REPORT_USERNAME = "Martin Jansa" +#ERR_REPORT_EMAIL = "Martin.Jansa@gmail.com" +#ERR_REPORT_UPLOAD_FAILURES = "1" +#INHERIT += "report-error" +# needs patch with buildstats-summary.bbclass +INHERIT += "buildstats buildstats-summary" +# be more strict with QA warnings, turn them all to errors: +ERROR_QA:append = " ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel already-stripped incompatible-license files-invalid installed-vs-shipped compile-host-path install-host-path pn-overrides infodir build-deps unknown-configure-option symlink-to-sysroot multilib invalid-packageconfig host-user-contaminated uppercase-pn" +WARN_QA:remove = " ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel already-stripped incompatible-license files-invalid installed-vs-shipped compile-host-path install-host-path pn-overrides infodir build-deps unknown-configure-option symlink-to-sysroot multilib invalid-packageconfig host-user-contaminated uppercase-pn" +# workaround for qemu +# nativesdk-qemu-user-mips rdepends on nativesdk-bash, but it isn't a build dependency +INSANE_SKIP:nativesdk-qemu-user-mips = "build-deps" +# enable thumb for broader test coverage (oe-core autobuilder doesn't have thumb enabled) +PREFERRED_ARM_INSTRUCTION_SET ?= "thumb" +ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}" +# use musl for qemux86 and qemux86copy +TCLIBC:qemux86 = "musl" +TCLIBC:qemux86copy = "musl" +# limit parallel make to avoid OOM +PARALLEL_MAKE:pn-qtwebkit = "-j 8" +# For decrease memory usage. +SDK_XZ_COMPRESSION_LEVEL = "-1" diff --git a/conf/layer.conf b/conf/layer.conf index 7687759c..5e6a2432 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -27,9 +27,9 @@ BBFILE_PRIORITY_qt5-layer = "7" # cause compatibility issues with other layers LAYERVERSION_qt5-layer = "1" -LAYERDEPENDS_qt5-layer = "core" +LAYERDEPENDS_qt5-layer = "core openembedded-layer" -LAYERSERIES_COMPAT_qt5-layer = "rocko sumo" +LAYERSERIES_COMPAT_qt5-layer = "dunfell gatesgarth hardknott honister kirkstone langdale mickledore nanbield scarthgap" LICENSE_PATH += "${LAYERDIR}/licenses" @@ -38,3 +38,13 @@ IMAGE_FEATURES[validitems] += "qtcreator-debug" QT_GIT_PROJECT ?= "qt" QT_GIT ?= "git://code.qt.io/${QT_GIT_PROJECT}" QT_GIT_PROTOCOL ?= "git" + +# Default to commercially licensed Qt LTS +QT_EDITION ?= "commercial" + +# License mapping back to old license files +SPDXLICENSEMAP[GPL-2.0-only] = "GPL-2.0" +SPDXLICENSEMAP[GPL-3.0-only] = "GPL-3.0" +SPDXLICENSEMAP[LGPL-2.1-only] = "LGPLv2.1" +SPDXLICENSEMAP[LGPL-3.0-only] = "LGPL-3.0" +SPDXLICENSEMAP[GPL-2.0-or-later] = "GPL-2.0" diff --git a/lib/recipetool/create_qt5.py b/lib/recipetool/create_qt5.py index 51708b40..dab67b4a 100644 --- a/lib/recipetool/create_qt5.py +++ b/lib/recipetool/create_qt5.py @@ -47,7 +47,6 @@ class Qt5CmakeHandler(CmakeExtensionHandler): 'qtsystems': 'Qt5PublishSubscribe Qt5ServiceFramework Qt5SystemInfo', 'qtscript': 'Qt5Script Qt5ScriptTools', 'qttools': 'Qt5Designer Qt5Help Qt5LinguistTools Qt5UiPlugin Qt5UiTools', - 'qtenginio': 'Qt5Enginio', 'qtsensors': 'Qt5Sensors', 'qtmultimedia': 'Qt5Multimedia Qt5MultimediaWidgets', 'qtwebchannel': 'Qt5WebChannel', @@ -79,7 +78,6 @@ class Qmake5RecipeHandler(RecipeHandler): 'core': 'qtbase', 'gui': 'qtbase', 'dbus': 'qtbase', - 'declarative': 'qtquick1', 'designer': 'qttools', 'help': 'qttools', 'multimedia': 'qtmultimedia', diff --git a/licenses/SIP b/licenses/SIP new file mode 100644 index 00000000..9406c308 --- /dev/null +++ b/licenses/SIP @@ -0,0 +1,49 @@ +RIVERBANK COMPUTING LIMITED LICENSE AGREEMENT FOR SIP + +1. This LICENSE AGREEMENT ("the SIP License") is between Riverbank Computing +Limited ("Riverbank"), and the Individual or Organization ("Licensee") +accessing and otherwise using SIP software in source or binary form and its +associated documentation. SIP comprises a software tool for generating Python +bindings for software C and C++ libraries, and a Python extension module used +at runtime by those generated bindings. This License Agreement may also be +applied to other software packages written by Riverbank. + +2. Subject to the terms and conditions of this License Agreement, Riverbank +hereby grants Licensee a nonexclusive, royalty-free, world-wide license to +reproduce, analyze, test, perform and/or display publicly, prepare derivative +works, distribute, and otherwise use SIP alone or in any derivative version, +provided, however, that Riverbank's License Agreement and Riverbank's notice of +copyright, e.g., "Copyright (c) 2015 Riverbank Computing Limited; All Rights +Reserved" are retained in SIP alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on or +incorporates SIP or any part thereof, and wants to make the derivative work +available to others as provided herein, then Licensee hereby agrees to include +in any such work a brief summary of the changes made to SIP. + +4. Licensee may not use SIP to generate Python bindings for any C or C++ +library for which bindings are already provided by Riverbank. + +5. Riverbank is making SIP available to Licensee on an "AS IS" basis. +RIVERBANK MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY +OF EXAMPLE, BUT NOT LIMITATION, RIVERBANK MAKES NO AND DISCLAIMS ANY +REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF SIP WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +6. RIVERBANK SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF SIP FOR ANY +INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, +DISTRIBUTING, OR OTHERWISE USING SIP, OR ANY DERIVATIVE THEREOF, EVEN IF +ADVISED OF THE POSSIBILITY THEREOF. + +7. This License Agreement will automatically terminate upon a material breach +of its terms and conditions. + +8. Nothing in this License Agreement shall be deemed to create any relationship +of agency, partnership, or joint venture between Riverbank and Licensee. This +License Agreement does not grant permission to use Riverbank trademarks or +trade name in a trademark sense to endorse or promote products or services of +Licensee, or any third party. + +9. By copying, installing or otherwise using SIP, Licensee agrees to be bound +by the terms and conditions of this License Agreement. diff --git a/licenses/The-Qt-Company-Commercial b/licenses/The-Qt-Company-Commercial index 1c8cb00e..ff775f95 100644 --- a/licenses/The-Qt-Company-Commercial +++ b/licenses/The-Qt-Company-Commercial @@ -1,20 +1,2091 @@ -/****************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the <Fill> module. -** -** $QT_BEGIN_LICENSE:COMM$ -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** $QT_END_LICENSE$ -** -******************************************************************************/ +QT LICENSE AGREEMENT +Agreement version 4.4.1 + +This Qt License Agreement ("Agreement") is a legal agreement for the licensing +of Licensed Software (as defined below) between The Qt Company (as defined +below) and the Licensee who has accepted the terms of this Agreement by signing +this Agreement or by downloading or using the Licensed Software or in any other +appropriate means. + +Capitalized terms used herein are defined in Section 1. + +WHEREAS: + (A) Licensee wishes to use the Licensed Software for the purpose of + developing and distributing Applications and/or Devices (each as defined + below); + (B) The Qt Company is willing to grant the Licensee a right to use Licensed + Software for such a purpose pursuant to term and conditions of this + Agreement; and + (C) Parties wish to enable that their respective Affiliates also can sell + and purchase licenses to serve Licensee Affiliates' needs to use Licensed + Software pursuant to terms of the Agreement. Any such license purchases by + Licensee Affiliates from The Qt Company or its Affiliates will create + contractual relationship directly between the relevant The Qt Company and + the respective ordering Licensee Affiliate "Acceding Agreement"). + Accordingly, Licensee shall not be a party to any such Acceding Agreement, + and no rights or obligations are created to the Licensee thereunder but all + rights and obligations under such Acceding Agreement are vested and borne + solely by the ordering Licensee Affiliate and the relevant The Qt Company + as a contracting parties under such Acceding Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity + (i) which is directly or indirectly controlling such Party; + (ii) which is under the same direct or indirect ownership or control as + such Party; or + (iii) which is directly or indirectly owned or controlled by such Party. +For these purposes, an entity shall be treated as being controlled by another +if that other entity has fifty percent (50 %) or more of the votes in such +entity, is able to direct its affairs and/or to control the composition of its +board of directors or equivalent body. + +"Add-on Products" shall mean The Qt Company's specific add-on software products +which are not licensed as part of The Qt Company's standard product offering, +but shall be included into the scope of Licensed Software only if so +specifically agreed between the Parties. + +"Agreement Term" shall mean the validity period of this Agreement, as set forth +in Section 12. + +"Applications" shall mean software products created using the Licensed +Software, which include the Redistributables, or part thereof. + +"Contractor(s)" shall mean third party consultants, distributors and +contractors performing services to the Licensee under applicable contractual +arrangement. + +"Customer(s)" shall mean Licensee's customers to whom Licensee, directly or +indirectly, distributes copies of the Redistributables as integrated or +incorporated into Applications or Devices. + +"Data Protection Legislation" shall mean the General Data Protection Regulation +(EU 2016/679) (GDPR) and any national implementing laws, regulations and +secondary legislation, as may be amended or updated from time to time, as well +as any other data protection laws or regulations applicable in relevant +territory. + +"Deployment Platforms" shall mean target operating systems and/or hardware +specified in the License Certificate, on which the Redistributables can be +distributed pursuant to the terms and conditions of this Agreement. + +"Designated User(s)" shall mean the employee(s) of Licensee or Licensee's +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services on behalf of Licensee. + +"Development License" shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. Development Licenses are available per +respective Licensed Software products, each product having its designated scope +and purpose of use. + +"Development License Term" shall mean the agreed validity period of the +Development License or QA Tools license during which time the relevant Licensed +Software product can be used pursuant to this Agreement. Agreed Development +License Term, as ordered and paid for by the Licensee, shall be memorialized in +the applicable License Certificate. + +"Development Platforms" shall mean those host operating systems specified in +the License Certificate, in which the Licensed Software can be used under the +Development License. + +"Devices" shall mean + (1) hardware devices or products that + i. are manufactured and/or distributed by the Licensee, its Affiliates, + Contractors or Customers, and + ii. incorporate, integrate or link to Applications such that + substantial functionality of such unit, when used by an End User, + is provided by Application(s) or otherwise depends on the Licensed + Software, regardless of whether the Application is developed by + Licensee or its Contractors; or + (2) Applications designed for the hardware devices specified in item (1). + + Devices covered by this Agreement shall be specified in Appendix 2 or in a + quote. + +"Distribution License(s)" shall mean a royalty-bearing license required for any +kind of sale, trade, exchange, loan, lease, rental or other distribution by or +on behalf of Licensee to a third party of Redistributables in connection with +Devices pursuant to license grant described in Section 3.3 of this Agreement. +Distribution Licensed are sold separately for each type of Device respectively +and cannot be used for any type of Devices at Licensee's discretion. + +"Distribution License Packs" shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company's standard +price list, quote, Purchase Order confirmation or in an Appendix 2 hereto, as +the case may be. + +"End User" shall mean the final end user of the Application or a Device. + +"Evaluation License Term" shall mean a time period specified in the License +Certificate for the Licensee to use the relevant Licensed Software for +evaluation purposes according to Section 3.6 herein. + +"Intellectual Property Rights" shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing as +well as any trade secrets. + +"License Certificate" shall mean a certificate generated by The Qt Company for +each Designated User respectively upon them downloading the Licensed Software, +which will be available under respective Designated User's Qt Account at +account.qt.io. License Certificates will specify relevant information +pertaining the Licensed Software purchased by Licensee and Designated User's +license to the Licensed Software. + +"License Fee" shall mean the fee charged to the Licensee for rights granted +under the terms of this Agreement. + +"Licensed Software" shall mean specified product of commercially licensed +version of Qt Software and/or QA Tools defined in Appendix 1 and/or Appendix 3, +which Licensee has purchased and which is provided to Licensee under the terms +of this Agreement. Licensed Software shall include corresponding online or +electronic documentation, associated media and printed materials, including the +source code (where applicable), example programs and the documentation. +Licensed Software does not include Third Party Software (as defined in Section +4) or Open Source Qt. The Qt Company may, in the course of its development +activities, at its free and absolute discretion and without any obligation to +send or publish any notifications to the Licensee or in general, make changes, +additions or deletions in the components and functionalities of the Licensed +Software, provided that no such changes, additions or deletions will affect +the already released version of the Licensed Software, but only upcoming +version(s). + +"Licensee" shall mean the individual or legal entity that is party to this +Agreement. + +"Licensee's Records" shall mean books and records that contain information +bearing on Licensee's compliance with this Agreement, Licensee's use of Open +Source Qt and/or the payments due to The Qt Company under this Agreement, +including, but not limited to user information, assembly logs, sales records +and distribution records. + +"Modified Software" shall have the meaning as set forth in Section 2.3. + +"Online Services" shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +"Open Source Qt" shall mean Qt Software available under the terms of the GNU +Lesser General Public License, version 2.1 or later ("LGPL") or the GNU General +Public License, version 2.0 or later ("GPL"). For clarity, Open Source Qt shall +not be provided, governed or used under this Agreement. + +"Party" or "Parties" shall mean Licensee and/or The Qt Company. + +"Permitted Software" shall mean (i) third party open source software products +that are generally available for public in source code form and free of any +charge under any of the licenses approved by Open Source Initiative as listed +on https://opensource.org/licenses, which may include parts of Open Source Qt +or be developed using Open Source Qt; and (ii) software The Qt Company has made +available via its Qt Marketplace online distribution channel. + +"Pre-Release Code" shall have the meaning as set forth in Section 4. + +"Prohibited Combination" shall mean any effort to use, combine, incorporate, +link or integrate Licensed Software with any software created with or +incorporating Open Source Qt, or use Licensed Software for creation of any such +software. + +"Purchase Order" shall have the meaning as set forth in Section 10.2. + +"QA Tools" shall mean software libraries and tools as defined in Appendix 1 +depending on which product(s) the Licensee has purchased under the Agreement. + +"Qt Software" shall mean the software libraries and tools of The Qt Company, +which The Qt Company makes available under commercial and/or open source +licenses. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1 that may be distributed pursuant to the terms of this Agreement +in object code form only, including any relevant documentation. Where relevant, +any reference to Licensed Software in this Agreement shall include and refer +also to Redistributables. + +"Renewal Term" shall mean an extension of previous Development License Term as +agreed between the Parties. + +"Submitted Modified Software" shall have the meaning as set forth in Section +2.3. + +"Support" shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in accordance +with this Agreement and the Support Terms. + +"Support Terms" shall mean The Qt Company's standard support terms specified in +Appendix 9 hereto. + +"Taxes" shall have the meaning set forth in Section 10.5. + +"The Qt Company" shall mean: + (i) in the event Licensee is an individual residing in the United States or + a legal entity incorporated in the United States or having its + headquarters in the United States, The Qt Company Inc., a Delaware + corporation with its office at 3031 Tisch Way, 110 Plaza West, + San Jose, CA 95128, USA.; or + (ii) in the event the Licensee is an individual residing outside of the + United States or a legal entity incorporated outside of the United + States or having its registered office outside of the United States, + The Qt Company Ltd., a Finnish company with its registered office at + Miestentie 7, 02150 Espoo, Finland. + +"Third-Party Software" shall have the meaning set forth in Section 4. + +"Updates" shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made +available to users of the Licensed Software that have contracted for Support. +Updates are generally depicted as a change to the digits following the decimal +in the Licensed Software version number. The Qt Company shall make Updates +available to the Licensee under the Support. Updates shall be considered as +part of the Licensed Software hereunder. + +"Upgrades" shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as part +of the Licensed Software hereunder. + +2. OWNERSHIP + +2.1. Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and treaties. +The Licensed Software is licensed, not sold. + +All of The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. No rights +to The Qt Company's Intellectual Property Rights are assigned or granted to +Licensee under this Agreement, except when and to the extent expressly +specified herein. + +2.2. Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted +by the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3. Modified Software + +Licensee may create bug-fixes, error corrections, patches or modifications to +the Licensed Software ("Modified Software"). Such Modified Software may break +the source or binary compatibility with the Licensed Software (including +without limitation through changing the application programming interfaces +("API") or by adding, changing or deleting any variable, method, or class +signature in the Licensed Software and/or any inter-process protocols, +services or standards in the Licensed Software libraries). To the extent that +Licensee's Modified Software so breaks source or binary compatibility with the +Licensed Software, Licensee acknowledges that The Qt Company's ability to +provide Support may be prevented or limited and Licensee's ability to make use +of Updates may be restricted. + +Licensee may, at its sole and absolute discretion, choose to submit Modified +Software to The Qt Company ("Submitted Modified Software") in connection with +Licensee's Support request, service request or otherwise. In the event +Licensee does so, then, Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee's Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. + +3. LICENSES GRANTED + +3.1. Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for each Development +License Term, to use, modify and copy the Licensed Software by Designated +Users on the Development Platforms for the sole purposes of designing, +developing, demonstrating and testing Application(s) and/or Devices, and to +provide thereto related support and other related services to Customers. Each +Application and/or Device can only include, incorporate or integrate +contributions by such Designated Users who are duly licensed for the applicable +Development Platform(s) and Deployment Platform(s) (i.e have a valid license +for the appropriate Licensed Software product). + +Licensee may install copies of the Licensed Software on five (5) computers per +Designated User, provided that only the Designated Users who have a valid +Development License may use the Licensed Software. + +Licensee may at any time designate another Designated User to replace a +then-current Designated User by notifying The Qt Company in writing, where such +replacement is due to termination of employment, change of job duties, long +time absence or other such permanent reason affecting Designated User's need +for Licensed Software. + +Upon expiry of the initially agreed Development License Term, the respective +Development License Term shall be automatically extended to one or more Renewal +Term(s), unless and until either Party notifies the other Party in writing, or +any other method acceptable to The Qt Company (it being specifically +acknowledged and understood that verbal notification is explicitly deemed +inadequate in all circumstances), that it does not wish to continue the +Development License Term, such notification to be provided to the other Party +no less than thirty (30) days before expiry of the respective Development +License Term. The Qt Company shall, in good time before the due date for the +above notification, remind the Licensee on the coming Renewal Term. Unless +otherwise agreed between the Parties, Renewal Term shall be 12 months. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company's +standard list pricing applicable at the commencement date of any such +Renewal Term. + +The Qt Company may either request the Licensee to place a purchase order +corresponding to a quote by The Qt Company, or use Licensee's stored Credit +Card information in the Qt Account to automatically charge the Licensee for the +relevant Renewal Term. + +3.2. Distribution of Applications + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable, revocable (for cause pursuant to +this Agreement), right and license, valid for the Agreement Term, to + (i) distribute, by itself or through its Contractors, Redistributables as + installed, incorporated or integrated into Applications for execution + on the Deployment Platforms, and + (ii) grant perpetual and irrevocable sublicenses to Redistributables, as + distributed hereunder, for Customers solely to the extent necessary in + order for the Customers to use the Applications for their respective + intended purposes. + +Right to distribute the Redistributables as part of an Application as provided +herein is not royalty-bearing but is conditional upon the Application having +been created, updated and maintained under a valid and duly paid Development +Licenses. + +3.3. Distribution of Devices + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable, revocable (for cause pursuant to +this Agreement), right and license, valid for the Agreement Term, to + (i) distribute, by itself or through one or more tiers of Contractors, + Redistributables as installed, incorporated or integrated, or intended + to be installed, incorporated or integrated into Devices for execution + on the Deployment Platforms, and + (ii) grant perpetual and irrevocable sublicenses to Redistributables, as + distributed hereunder, for Customers solely to the extent necessary in + order for the Customers to use the Devices for their respective + intended purposes. + +Right to distribute the Devices as provided herein is conditional upon + (i) the Devices having been created, updated and maintained under a valid + and duly paid Development Licenses, and + (ii) the Licensee having acquired corresponding Distribution Licenses at + the time of distribution of any Devices to Customers. + +3.4. Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + (i) Licensee acknowledges that The Qt Company has separate products of + Licensed Software for the purpose of Applications and Devices + respectively, where development and distribution of Devices is only + allowed using the correct designated product. Licensee shall make sure + and bear the burden of proof that Licensee is using a correct product + of Licensed Software entitling Licensee to development and distribution + of Devices; + (ii) Licensee shall not remove or alter any copyright, trademark or other + proprietary rights notice(s) contained in any portion of the Licensed + Software; + (iii) Applications must add primary and substantial functionality to the + Licensed Software so as not to compete with the Licensed Software; + (iv) Applications may not pass on functionality which in any way makes it + possible for others to create software with the Licensed Software; + provided however that Licensee may use the Licensed Software's + scripting and QML ("Qt Quick") functionality solely in order to enable + scripting, themes and styles that augment the functionality and + appearance of the Application(s) without adding primary and substantial + functionality to the Application(s); + (v) Licensee shall not use Licensed Software in any manner or for any + purpose that infringes, misappropriates or otherwise violates any + Intellectual property or right of any third party, or that violates any + applicable law; + (vi) Licensee shall not use The Qt Company's or any of its suppliers' + names, logos, or trademarks to market Applications, except that + Licensee may use "Built with Qt" logo to indicate that Application(s) + or Device(s) was developed using the Licensed Software; + (vii) Licensee shall not distribute, sublicense or disclose source code of + Licensed Software to any third party (provided however that Licensee + may appoint employee(s) of Contractors and Affiliates as Designated + Users to use Licensed Software pursuant to this Agreement). Such right + may be available for the Licensee subject to a separate software + development kit ("SDK") license agreement to be concluded with The Qt + Company; + (viii) Licensee shall not grant the Customers a right to (a) make copies of + the Redistributables except when and to the extent required to use the + Applications and/or Devices for their intended purpose, (b) modify the + Redistributables or create derivative works thereof, (c) decompile, + disassemble or otherwise reverse engineer Redistributables, or (d) + redistribute any copy or portion of the Redistributables to any third + party, except as part of the onward sale of the Application or Device + on which the Redistributables are installed; + (ix) Licensee shall not and shall cause that its Affiliates or Contractors + shall not use Licensed Software in any Prohibited Combination, unless + Licensee has received an advance written permission from The Qt Company + to do so. Absent such written permission, any and all distribution by + the Licensee during the Agreement Term of a hardware device or product + a) which incorporate or integrate any part of Licensed Software or Open + Source Qt; or b) where substantial functionality is provided by + software built with Licensed Software or Open Source Qt or otherwise + depends on the Licensed Software or Open Source Qt, shall be considered + to be Device distribution under this Agreement and shall be dependent + on Licensee's compliance thereof (including but not limited to + obligation to pay applicable License Fees for such distribution). + Notwithstanding what is provided above in this sub-section (ix), + Licensee is entitled to use and combine Licensed Software with any + Permitted Software; + (x) Licensee shall cause all of its Affiliates, Contractors and Customers + entitled to make use of the licenses granted under this Agreement, to + be contractually bound to comply with the relevant terms of this + Agreement and not to use the Licensed Software beyond the terms hereof + and for any purposes other than operating within the scope of their + services for Licensee. Licensee shall be responsible for any and all + actions and omissions of its Affiliates and Contractors relating to the + Licensed Software and use thereof (including but not limited to payment + of all applicable License Fees); + (xi) Except when and to the extent explicitly provided in this Section 3, + Licensee shall not transfer, publish, disclose, display or otherwise + make available the Licensed Software; and + (xii) Licensee shall not attempt or enlist a third party to conduct or + attempt to conduct any of the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is +strictly prohibited and requires an additional license from The Qt Company. + +3.5 QA Tools License + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for the Development +License Term, to use the QA Tools for Licensee's internal business purposes in +the manner provided below and in Appendix 1 hereto. + +Licensee may modify the QA Tools except for altering or removing any details of +ownership, copyright, trademark or other property right connected with the QA +Tools. + +Licensee shall not distribute the QA Tools or any part thereof, modified or +unmodified, separately or as part of any software package, Application or +Device. + +Upon expiry of the initially agreed Development License Term, the respective +Development License Term shall be automatically extended to one or more Renewal +Term(s), unless and until either Party notifies the other Party in writing, or +any other method acceptable to The Qt Company (it being specifically +acknowledged and understood that verbal notification is explicitly deemed +inadequate in all circumstances), that it does not wish to continue the +Development License Term, such notification to be provided to the other Party +no less than thirty (30) days before expiry of the respective Development +License Term. The Qt Company shall, in good time before the due date for the +above notification, remind the Licensee on the coming Renewal Term. Unless +otherwise agreed between the Parties, Renewal Term shall be 12 months. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company's +standard list pricing applicable at the commencement date of any such +Renewal Term. + +3.6 Evaluation License + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for the Evaluation +License Term to use the Licensed Software solely for the Licensee's internal +use to evaluate and determine whether the Licensed Software meets Licensee's +business requirements, specifically excluding any commercial use of the +Licensed Software or any derived work thereof. + +Upon the expiry of the Evaluation License Term, Licensee must either +discontinue use of the relevant Licensed Software or acquire a commercial +Development License or QA Tools License specified herein. + +4. THIRD-PARTY SOFTWARE + +The Licensed Software may provide links or access to third party libraries or +code (collectively "Third-Party Software") to implement various functions. +Third-Party Software does not, however, comprise part of the Licensed Software, +but is provided to Licensee complimentary and use thereof is discretionary for +the Licensee. Third-Party Software will be listed in the ".../src/3rdparty" +source tree delivered with the Licensed Software or documented in the Licensed +Software, as such may be amended from time to time. Licensee acknowledges that +use or distribution of Third-Party Software is in all respects subject to +applicable license terms of applicable third-party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality, or sample +code marked or otherwise stated with appropriate designation such as +"Technology Preview", "Alpha", "Beta", "Sample", "Example" etc. +("Pre-Release Code"). + +Such Pre-Release Code may be present complimentary for the Licensee, in order +to provide experimental support or information for new platforms or +preliminary versions of one or more new functionalities or for other similar +reasons. The Pre-Release Code may not be at the level of performance and +compatibility of a final, generally available, product offering. The +Pre-Release Code may not operate correctly, may contain errors and may be +substantially modified by The Qt Company prior to the first commercial +product release, if any. The Qt Company is under no obligation to make +Pre-Release Code commercially available, or provide any Support or Updates +relating thereto. The Qt Company assumes no liability whatsoever regarding +any Pre-Release Code, but any use thereof is exclusively at Licensee's own risk +and expense. + +For clarity, unless Licensed Software specifies different license terms for the +respective Pre-Release Code, the Licensee is entitled to use such pre-release +code pursuant to Section 3, just like other Licensed Software. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that (i) it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement, and (ii) Licensed Software will operate materially in accordance +with its specifications. + +Except as set forth above, the Licensed Software is licensed to Licensee "as +is" and Licensee's exclusive remedy and The Qt Company's entire liability for +errors in the Licensed Software shall be limited, at The Qt Company's option, +to correction of the error, replacement of the Licensed Software or return of +the applicable fees paid for the defective Licensed Software for the time +period during which the License is not able to utilize the Licensed Software +under the terms of this Agreement. + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER +WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT +WARRANT THAT THE LICENSED SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT +IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE +UNINTERRUPTED. + +7. LIMITATION OF LIABILITY + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT +EXCEED THE AGGREGATE LICENSE FEES PAID OR PAYABLE TO THE QT COMPANY BY LICENSEE +DURING THE DEVELOPMENT LICENSE TERM DURING WHICH THE EVENT RESULTING IN SUCH +LIABILITY OCCURRED. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT +BETWEEN THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE +LIMITATIONS SET FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS +AGREEMENT. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS AGREEMENT, LICENSEE SHALL +ALWAYS BE LIABLE TO PAY THE APPLICABLE LICENSE FEES CORRESPONDING TO ITS +ACTUAL USE OF LICENSED SOFTWARE. + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Upon due payment of the agreed License Fees the Licensee will be eligible to +receive Support and Updates and to use the Online Services during the agreed +Development License Term or other agreed fixed time period. Support is +provided according to agreed support level and subject to applicable +requirements and restrictions, as specified in the Support Terms. + +Unless otherwise decided by The Qt Company at its free and absolute discretion, +Upgrades will not be included in the Support but may be available subject to +additional fees. + +From time to time The Qt Company may change the Support Terms, provided that +during the respective ongoing Support period the level of Support may not be +reduced without the consent of the Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Agreement Term each Party may receive +information about the other Party's business, business methods, business plans, +customers, business relations, technology, and other information, including the +terms of this Agreement, that is confidential and of great value to the other +Party, and the value of which would be significantly reduced if disclosed to +third parties ("Confidential Information"). Accordingly, when a Party (the +"Receiving Party") receives Confidential Information from the other Party (the +"Disclosing Party"), the Receiving Party shall only disclose such information +to employees and Contractors on a need to know basis, and shall cause its +employees and employees of its Affiliates to: (i) maintain any and all +Confidential Information in confidence; (ii) not disclose the Confidential +Information to a third party without the Disclosing Party's prior written +approval; and (iii) not, directly or indirectly, use the Confidential +Information for any purpose other than for exercising its rights and +fulfilling its responsibilities pursuant to this Agreement. Each Party shall +take reasonable measures to protect the Confidential Information of the other +Party, which measures shall not be less than the measures taken by such Party +to protect its own confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven +by the written records of the Receiving Party; (iv) is lawfully disclosed to +the Receiving Party without restrictions, by a third party not under an +obligation of confidentiality; or (v) the Receiving Party is legally compelled +to disclose, in which case the Receiving Party shall notify the Disclosing +Party of such compelled disclosure and assert the privileged and confidential +nature of the information and cooperate fully with the Disclosing Party to +limit the scope of disclosure and the dissemination of disclosed Confidential +Information to the minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1. License Fees + +License Fees are described in The Qt Company's standard price list, quote or +Purchase Order confirmation or in an Appendix 2 hereto, as the case may be. + +Unless otherwise expressly provided in this Agreement, the License Fees shall +not be refunded or claimed as a credit in any event or for any reason +whatsoever. + +10.2. Ordering Licenses + +Licensee may purchase Development Licenses, Distribution Licenses and QA Tools +Licenses pursuant to agreed pricing terms or, if no specific pricing terms have +been agreed upon, at The Qt Company's standard pricing terms applicable at the +time of purchase. + +Unless expressly otherwise agreed, any price or other term quoted to the +Licensee or specified herein shall only be valid for the thirty (30) days from +the effective date of this Agreement, Appendix 2 or the date of the quote, as +applicable. + +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a "Purchase Order") +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +Licensee acknowledges and agrees that all Purchase Orders for Licensed Software +the Licensee makes during the Agreement Term shall be governed exclusively +under the terms of this Agreement. + +10.3. Distribution License Packs + +Unless otherwise agreed, Distribution Licenses shall be purchased by way of +Distribution License Packs. + +Upon due payment of the ordered Distribution License Pack(s), the Licensee will +have an account of Distribution Licenses available for distributing the +Redistributables in accordance with this Agreement. + +Each time Licensee distributes a copy of Redistributables, then one +Distribution License is used, and Licensee's account of available Distribution +Licenses is decreased accordingly. + +Licensee may distribute copies of the Redistributables so long as Licensee has +Distribution Licenses remaining on its account. + +10.4. Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the date of this +Agreement and/or after The Qt Company receives a Purchase Order from Licensee. + +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due and which have not been disputed by the Licensee +in good faith. + +10.5. Taxes + +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax, withholding tax and other +taxes, duties or tariffs ("Taxes") levied directly for the sale, delivery or +use of Licensed Software hereunder pursuant to any applicable law. Such +applicable Taxes shall be paid by Licensee to The Qt Company, or, where +applicable, in lieu of payment of such Taxes to The Qt Company, Licensee shall +provide an exemption certificate to The Qt Company and any applicable +authority. + +11. RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1. Licensee's Record-keeping + +Licensee shall at all times during the Agreement Term and for a period of two +(2) years thereafter maintain Licensee's Records in an accurate and up-to-date +form. Licensee's Records shall be adequate to reasonably enable The Qt Company +to determine Licensee's compliance with the provisions of this Agreement. The +records shall conform to general good accounting practices. + +Licensee shall, within thirty (30) days from receiving The Qt Company's request +to that effect, deliver to The Qt Company a report based on Licensee's Records, +such report to contain information, in sufficient detail, on (i) number and +identity of users working with Licensed Software or Open Source Qt, (ii) copies +of Redistributables distributed by Licensee during the most recent calendar +quarter and/or any other term specified by The Qt Company, , and (iii) any +other information pertaining to Licensee's compliance with the terms of this +Agreement (like e.g. information on products and/or projects relating to use of +Distribution Licenses), as The Qt Company may reasonably require from time to +time. + +11.2. The Qt Company's Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company's, +may, upon at least thirty (30) days' prior written notice and at its expense, +audit Licensee with respect to the Licensee's use of the Licensed Software, but +not more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee's +place of business. Any possible in-person audit shall be conducted during +regular business hours at Licensee's facilities and shall not unreasonably +interfere with Licensee's business activities and shall be limited in scope to +verify Licensee's compliance with the terms of this Agreement. The Qt Company +or the independent auditor acting on behalf of The Qt Company shall be entitled +to inspect Licensee's Records and conduct necessary interviews of Licensee's +relevant employees and Contractors. All such Licensee's Records and use thereof +shall be subject to an obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope +of the licenses Licensee has paid for, Licensee shall pay to The Qt Company any +amounts owed for such unauthorized use within 30 days from receipt of the +corresponding invoice from The Qt Company. + +In addition, in the event the audit reveals a material violation of the terms +of this Agreement (without limitation, either (i) underpayment of more than 10 +% of License Fees or 10,000 euros (whichever is more) or (ii) distribution of +products, which include or result from Prohibited Combination, shall be deemed +a material violation for purposes of this section), then the Licensee shall +pay The Qt Company's reasonable cost of conducting such audit. + +12. TERM AND TERMINATION + +12.1. Agreement Term + +This Agreement shall enter into force upon due acceptance by both Parties and +remain in force until terminated pursuant to the terms of this Section 12 +("Agreement Term"). + +12.2. Termination for breach and suspension of rights +Either Party shall have the right to terminate this Agreement upon thirty (30) +days prior written notice if the other Party commits a material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period. + +Instead of termination, The Qt Company shall have the right to suspend or +withhold grants of all rights to the Licensed Software hereunder, including but +not limited to the Development Licenses, Distribution License, and Support, +should Licensee fail to make payment in timely fashion or otherwise violates or +is reasonably suspected to violate its obligations or terms of this Agreement, +and where such violation or breach is not cured within ten (10) business days +following The Qt Company's written notice thereof. + +12.3. Termination for insolvency + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has +a receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act +equivalent to any of the above occurs under the laws of the jurisdiction of the +other Party. + +12.4. Parties' Rights and Duties upon Termination + +Upon expiry or termination of the Agreement, Licensee shall cease and shall +cause all Designated Users (including those of its Affiliates' and +Contractors') to cease using the Licensed Software under this Agreement. For +clarity, a Development License of a Designated User or a QA Tools License, and +all rights relating thereto, shall always terminate at the expiry of the +respective Development License Term, even if the Agreement continues to remain +in force. + +Upon such termination the Licensee shall destroy or return to The Qt Company +all copies of the Licensed Software and all related materials and will certify +the same by Licensee's duly authorized officer to The Qt Company upon its +request, provided however that Licensee may retain and exploit such copies of +the Licensed Software as it may reasonably require in providing continued +support to Customers. + +Except when this Agreement is terminated by The Qt Company due to Licensee's +material breach as set forth in Section 12.2, the Licensee may continue +distribution of Applications and Devices under the terms of this Agreement +despite the termination of this Agreement. In such event the terms hereof will +continue to be applicable and govern any such distribution of Applications and +Devices beyond the expiry or termination of this Agreement. In case of +termination by The Qt Company due to Licensee's material breach, Licensee must +cease any distribution of Applications and Devices at the date of termination +of this Agreement. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable +to The Qt Company prior to the effective date of termination, and Licensee pay +to The Qt Company all such fees within 30 days from the effective date of +termination of this Agreement. + +Termination of this Agreement shall not affect any rights of Customers to +continue use of Applications and Devices (and therein incorporated +Redistributables). + +12.5. Extension of Rights under Special Circumstances + +In the event of The Qt Company choosing not to renew the Development License(s) +or QA Tools Licenses, as set forth in Section 3.1 and 3.5 respectively, and +where such decision of non-renewal is not due to any ongoing breach or alleged +breach (as reasonably determined by The Qt Company) by Licensee of the terms of +this Agreement or any applicable license terms of Open Source Qt, then all +valid and affected Development Licenses and QA Tools licenses possessed by the +Licensee at such date shall be extended to be valid in perpetuity under the +terms of this Agreement and Licensee is entitled to purchase additional +licenses as set forth in Section 10.2. + +In the event The Qt Company is declared bankrupt under a final, non-cancellable +decision by relevant court of law, and this Agreement is not, at the date of +expiry of the Development License(s) or QA Tools Licenses, assigned to party, +who has assumed The Qt Company's position as a legitimate licensor of Licensed +Software under this Agreement, then all valid Development Licenses and QA Tools +Licenses possessed by the Licensee at such date of expiry, and which the +Licensee has not notified for expiry, shall be extended to be valid in +perpetuity under the terms of this Agreement. + +For clarity, in case of an extension under this Section 12.5, any such +extension shall not apply to The Qt Company's Support obligations, but Support +shall be provided only up until the end of the respective fixed Development +License Term regardless of the extension of relevant Development License or QA +Tools License, unless otherwise agreed between the Parties. + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: + (i) this Agreement shall be construed and interpreted in accordance with + the laws of the State of California, USA, excluding its choice of law + provisions; + (ii) the United Nations Convention on Contracts for the International Sale + of Goods will not apply to this Agreement; and + (iii) any dispute, claim or controversy arising out of or relating to this + Agreement or the breach, termination, enforcement, interpretation or + validity thereof, including the determination of the scope or + applicability of this Agreement to arbitrate, shall be determined by + arbitration in San Francisco, USA, before one arbitrator. The + arbitration shall be administered by JAMS pursuant to JAMS' Streamlined + Arbitration Rules and Procedures. Judgment on the Award may be entered + in any court having jurisdiction. This Section shall not preclude + parties from seeking provisional remedies in aid of arbitration from a + court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: + (i) this Agreement shall be construed and interpreted in accordance with + the laws of Finland, excluding its choice of law provisions; + (ii) the United Nations Convention on Contracts for the International Sale + of Goods will not apply to this Agreement; and + (iii) any disputes, controversy or claim arising out of or relating to this + Agreement, or the breach, termination or validity thereof shall be + finally settled by arbitration in accordance with the Arbitration Rules + of International Chamber of Commerce. The arbitration tribunal shall + consist of one (1), or if either Party so requires, of three (3), + arbitrators. The award shall be final and binding and enforceable in + any court of competent jurisdiction. The arbitration shall be held in + Helsinki, Finland and the process shall be conducted in the English + language. This Section shall not preclude parties from seeking + provisional remedies in aid of arbitration from a court of appropriate + jurisdiction. + +14. GENERAL PROVISIONS + +14.1. No Assignment + +Except in the case of a merger or sale of substantially all of its corporate +assets, Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior written +consent of The Qt Company, which shall not be unreasonably withheld or delayed. +The Qt Company shall be entitled to freely assign or transfer any of its +rights, benefits or obligations under this Agreement. + +14.2. No Third-Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company's behalf shall be void as to +The Qt Company. + +14.3. Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. Such +sections include especially the following: 1, 2, 6, 7, 9, 11, 12.4, 13 and 14. + +14.4. Entire Agreement + +This Agreement, the Appendices hereto, the License Certificate and any +applicable quote and Purchase Order accepted by The Qt Company constitute the +complete agreement between the Parties and supersedes all prior or +contemporaneous discussions, representations, and proposals, written or oral, +with respect to the subject matters discussed herein. + +In the event of any conflict or inconsistency between this Agreement and any +Purchase Order, the terms of this Agreement will prevail over the terms of the +Purchase Order with respect to such conflict or inconsistency. + +Parties specifically acknowledge and agree that this Agreement prevails over +any click-to-accept or similar agreements the Designated Users may need to +accept online upon download of the Licensed Software, as may be required by +The Qt Company's applicable processes relating to Licensed Software. + +14.5. Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order ("Deviating Terms") shall +apply unless The Qt Company has expressly agreed such Deviating Terms in +writing. Unless and to the extent expressly agreed by The Qt Company, any such +Deviating Terms shall be deemed void and with no legal effect. For clarity, +delivery of the Licensed Software following the receipt of the Purchase Order +including Deviating Terms shall not constitute acceptance of such Deviating +Terms. + +14.6. Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non-performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent ("Force Majeure +Event"). If the Force Majeure Event results in a delay or non-performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7. Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special +courier during normal business hours on a business day to the addresses +specified for each Party on the signature page. Each communication and document +made or delivered by one Party to the other Party pursuant to this Agreement +shall be in the English language. + +14.8. Export Control + +Licensee acknowledges that the Redistributables, as incorporated in +Applications or Devices, may be subject to export control restrictions under +the applicable laws of respective countries. Licensee shall fully comply with +all applicable export license restrictions and requirements as well as with all +laws and regulations relating to the Redistributables and exercise of licenses +hereunder and shall procure all necessary governmental authorizations, +including without limitation, all necessary licenses, approvals, permissions or +consents, where necessary for the re-exportation of the Redistributables, +Applications and/or Devices. + +14.9. No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this +Agreement. + +14.10. Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney's fees and costs in connection with such action, as to +be ordered by the relevant dispute resolution body. + +14.11. Privacy + +Licensee acknowledges and agrees that for the purpose of this Agreement, +The Qt Company may collect, use, transfer and disclose personal data pertaining +to Designated Users as well as any other employees and directors of the +Licensee and its Contractors relevant for carrying out the intent of this +Agreement. Such personal data will be primarily collected from the relevant +individuals but may be collected also from Licensee (e.g. in the course of +Licensee's reporting obligations). The Parties acknowledge that as +The Qt Company determines the purpose and means for such collection and +processing of the applicable personal data, The Qt Company shall be regarded as +the Data Controller under the applicable Data Protection Legislation. +The Qt Company shall process any such personal data in accordance with its +privacy and security policies and practices, which will comply with all +applicable requirements of the Data Protection Legislation. + +14.12. Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + +14.13. Marketing Rights + +Parties have agreed upon Marketing Rights pursuant to Appendix 7, if any. + + + + +APPENDICES +The Agreement includes following Appendices 1-10, as applicable. +- Appendix 1: Licensed Software details +- Appendix 2: Pricing +- Appendix 3: Add-on Software details (optional) +- Appendix 4: Small business and startup Licenses (optional) +- Appendix 5: Non-commercial and educational Licenses (optional) +- Appendix 6: License Reporting (optional) +- Appendix 7: Marketing Rights (optional) +- Appendix 8: Intentionally left blank (optional) +- Appendix 9: Support Terms +- Appendix 10: Conversion from legacy Licenses to Subscription (optional) +- Appendix 11: TERMS OF USE - QT INSIGHT TRACKER LIBRARY + + +APPENDIX 1: LICENSED SOFTWARE + +The modules and/or tools that are included in the latest publicly available +version of the respective product at the effective date of this Agreement- Qt +for Application Development Professional (ADP), Qt for Application Development +Enterprise (ADE), Qt for Device Creation Professional (DCP), Qt for Device +Creation Enterprise (DCE), - are marked with "X" in the below table. The +modules and tools are specific to each product version respectively and may +vary from version to version. Modules and tools included in the latest publicly +available version of the respective product at any given time are listed in +Appendix 1 of the latest version of this Agreement available at +www.qt.io/terms-conditions/. If a new version of Licensed Software does not +include a module or tool present in an older version which Licensee is entitled +to use under a valid license from The Qt Company, then Licensee will continue +to have such right during the Term of this Agreement. In the event a new +version of the Licensed Software adds modules or tools to any previous +version(s), Licensee's rights will extend to cover also such additional modules +and tools. + +Parts of the product that are permitted for distribution in object-code form +only ("Redistributables") are marked with "R" in the below table. + ++----------------------------------------------------------+ +| Modules / Tools | ADP | ADE | DCP | DCE | ++----------------------------------------------------------+ +| Active Qt | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt 5 Core Compatibility APIs | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Android Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Bluetooth | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Canvas 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Charts | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Concurrent | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Core | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Data Visualization | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt D-Bus | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt for Python | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt for WebAssembly | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Gamepad | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Graphical Effects | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt GUI | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Help | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Image Formats | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Location | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Lottie Animation | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Mac Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Multimedia | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Multimedia Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Network | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Network Authorization | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt NFC | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt OpenGL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt PDF | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Platform Headers | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Positioning | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Print Support | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Purchasing | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt QML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Controls 1 | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Controls | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Dialogs | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Layouts | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Test | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Timeline | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick WebGL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Remote Objects | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Script | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Script Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SCXML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Sensors | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Serial Bus | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Serial Port | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Shader Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Speech | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt State Machine | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SQL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SVG | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Test | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt UI Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Virtual Keyboard | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Wayland Compositor | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebChannel | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebEngine | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebSockets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebView | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Windows Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt X11 Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt XML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt XML Patterns | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Designer (Qt Widget Designer) | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Linguist | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Assistant | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lupdate | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lrelease | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lconvert | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt MQTT | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt KNX | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt OPC UA | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt CoAP | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Boot 2 Qt stacks | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt OTA | | | X,R | X,R | ++----------------------------------------------------------+ +| Device Utilities | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Debugging Bridge (QDB) Daemon | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Ultralite Controls | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Ultralite | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Safe Renderer (QSR) | | | | X,R | ++----------------------------------------------------------+ +| Qt Application Manager | | | | X,R | ++----------------------------------------------------------+ +| Qt Interface Framework | | | | X,R | ++----------------------------------------------------------+ +| Neptune Reference UI | | | | X,R | ++----------------------------------------------------------+ +| Qt for Android Automotive (QAA) | | | | X,R | ++----------------------------------------------------------+ +| Qt Creator | X | X | X | X | ++----------------------------------------------------------+ +| Qt Design Studio Professional | X | X | X | X | ++----------------------------------------------------------+ +| androiddeployqt | X | X | X | X | ++----------------------------------------------------------+ +| androidtestrunner | X | X | X | X | ++----------------------------------------------------------+ +| canbusutil | X | X | X | X | ++----------------------------------------------------------+ +| dumpcpp | X | X | X | X | ++----------------------------------------------------------+ +| dumpdoc | X | X | X | X | ++----------------------------------------------------------+ +| fixqt4headers.pl | X | X | X | X | ++----------------------------------------------------------+ +| idc | X | X | X | X | ++----------------------------------------------------------+ +| moc | X | X | X | X | ++----------------------------------------------------------+ +| pixeltool | X | X | X | X | ++----------------------------------------------------------+ +| qdbus | X | X | X | X | ++----------------------------------------------------------+ +| qdbuscpp2xml | X | X | X | X | ++----------------------------------------------------------+ +| qdbusviwer | X | X | X | X | ++----------------------------------------------------------+ +| qdbusxml2cpp | X | X | X | X | ++----------------------------------------------------------+ +| qdistancefieldgenerator | X | X | X | X | ++----------------------------------------------------------+ +| qdoc | X | X | X | X | ++----------------------------------------------------------+ +| qhelpgenerator | X | X | X | X | ++----------------------------------------------------------+ +| qlalr | X | X | X | X | ++----------------------------------------------------------+ +| qmake | X | X | X | X | ++----------------------------------------------------------+ +| qml | X | X | X | X | ++----------------------------------------------------------+ +| qmlcachegen | X | X | X | X | ++----------------------------------------------------------+ +| qmldom | X | X | X | X | ++----------------------------------------------------------+ +| qmleasing | X | X | X | X | ++----------------------------------------------------------+ +| qmlformat | X | X | X | X | ++----------------------------------------------------------+ +| qmllint | X | X | X | X | ++----------------------------------------------------------+ +| qmlpreview | X | X | X | X | ++----------------------------------------------------------+ +| qmlprofiler | X | X | X | X | ++----------------------------------------------------------+ +| qmlscene | X | X | X | X | ++----------------------------------------------------------+ +| qmltestrunner | X | X | X | X | ++----------------------------------------------------------+ +| qmltime | X | X | X | X | ++----------------------------------------------------------+ +| qmlviewer | X | X | X | X | ++----------------------------------------------------------+ +| qtdiag | X | X | X | X | ++----------------------------------------------------------+ +| qtpaths | X | X | X | X | ++----------------------------------------------------------+ +| qtplugininfo | X | X | X | X | ++----------------------------------------------------------+ +| qvkgen | X | X | X | X | ++----------------------------------------------------------+ +| rcc | X | X | X | X | ++----------------------------------------------------------+ +| tracegen | X | X | X | X | ++----------------------------------------------------------+ +| uic | X | X | X | X | ++----------------------------------------------------------+ +| windeployqt | X | X | X | X | ++----------------------------------------------------------+ +| Target toolchains | | | X | X | ++----------------------------------------------------------+ +| Qt Debugging Bridge Host Tools | | | X | X | ++----------------------------------------------------------+ +| qtconfig-gui | | | X | X | ++----------------------------------------------------------+ +| Qt Emulator | | | X | X | ++----------------------------------------------------------+ +| Qt Creator VxWorks plugin | | | X | X | ++----------------------------------------------------------+ +| Qt Creator plugin for Qt | | | | X | +| Application Manager | | | | | ++----------------------------------------------------------+ +| qmlinterfacegenerator | | | | X | ++----------------------------------------------------------+ +| qmltocpp | | | | X | ++----------------------------------------------------------+ +| qulfontcompiler | | | | X | ++----------------------------------------------------------+ +| Qt Deployment Server | | | | X | ++----------------------------------------------------------+ + + +Rights for Application and Device use cases + +Following table summarizes the rights afforded by different products of the +Licensed Software to create and distribute Applications and Devices as defined +in this Agreement (X marks for rights): + ++---------------------------------------------------------------+ +| | Applications | Devices | ++---------------------------------------------------------------+ +| ADP | X | | ++---------------------------------------------------------------+ +| ADE | X | | ++---------------------------------------------------------------+ +| DCP | X | X | ++---------------------------------------------------------------+ +| DCE | X | X | ++---------------------------------------------------------------+ + +Licensed Software: Designer tools and modules + +The modules and/or tools that are included in the respective product - Qt for +Design Studio Professional (DSP), Qt for Design Studio Enterprise (DSE) - are +marked with "X" in the below table. + +Designer tools provides no Redistributables. + ++---------------------------------------------+ +| | DSP | DSE | ++---------------------------------------------+ +| Qt Design Studio | X | X | ++---------------------------------------------+ +| Qt Design Bridges | | X | ++---------------------------------------------+ +| QML Live on host | X | X | ++---------------------------------------------+ +| QML Live on target | | X | ++---------------------------------------------+ +| Variant Management | | X | ++---------------------------------------------+ +| Shader creation tools | | X | ++---------------------------------------------+ +| Profiling tools | | X | ++---------------------------------------------+ +| Simulink support | | X | ++---------------------------------------------+ + + +Both DSP and DSE can be used to create an user interface for use cases covered +by ADP, ADE, DCP and DCE. + +Licensed Software: QA Tools + +The modules and/or tools that are included in the respective QA Tools product +- Squish (both Tester and execution Licenses), Coco or Test Center - are marked +with "X" in the below table. Optional features that will need additional +licenses are marked with "O". QA Tools include no Redistributables. + ++---------------------------------------------------------------------+ +| | Squish | Coco | Test Center | ++---------------------------------------------------------------------+ +| Squish IDE | X | | | ++---------------------------------------------------------------------+ +| QA Tool-specific command line tools | X | X | X | ++---------------------------------------------------------------------+ +| Coverage Browser | | X | | ++---------------------------------------------------------------------+ +| HTML interface | | | X | ++---------------------------------------------------------------------+ +| Qt Support Module | X | | | ++---------------------------------------------------------------------+ +| Java support module | X | | | ++---------------------------------------------------------------------+ +| Windows support module | X | | | ++---------------------------------------------------------------------+ +| iOS support module | X | | | ++---------------------------------------------------------------------+ +| Android support module | X | | | ++---------------------------------------------------------------------+ +| Web support module | X | | | ++---------------------------------------------------------------------+ +| macOS support module | X | | | ++---------------------------------------------------------------------+ +| VNC support module | X | | | ++---------------------------------------------------------------------+ +| MCU support module | X | | | ++---------------------------------------------------------------------+ +| C and C++ language module | | X | | ++---------------------------------------------------------------------+ +| C# language module | | X | | ++---------------------------------------------------------------------+ +| QML language module | | X | | ++---------------------------------------------------------------------+ +| Tester Cross-Compilation Add-On | O | O | | ++---------------------------------------------------------------------+ + +License capabilities for Squish + +License capabilities that are included in the Squish Tester and Execution +Licenses are marked with "X" in the below table. + ++-----------------------------------------------------------------------------+ +| | Squish Tester License | Squish Execution License | ++-----------------------------------------------------------------------------+ +| Ability to create, edit, | X | | +| and debug test cas | | | ++-----------------------------------------------------------------------------+ +| Ability to execute test | X | X | +| cases | | | ++-----------------------------------------------------------------------------+ + +Install and use capabilities for QA Tools + +Install and use capabilities that are included in the respective QA Tools +products are defined in the below table. + ++-----------------------------------------------------------------------------+ +| | Squish | Squish | Coco | Test | +| | Tester | Execution | License | Center | +| | License | License | | License | ++-----------------------------------------------------------------------------+ +| Number of installation | Unlimited | Unlimited | Unlimited | One(1) | +| instances per license | | | | | ++-----------------------------------------------------------------------------+ +| Number of concurrent | Limited by| Limited by | Limited by | Limited by | +| users | number of | number of | number of | number of | +| | Squish | Squish | Coco | Test Center | +| | Tester | Execution | Tester | Licenses | +| | Licenses | Licenses | Licenses | | ++-----------------------------------------------------------------------------+ + + +APPENDIX 2: PRICING + +Separate template + +APPENDIX 3: ADD-ON PRODUCTS TO LICENSED SOFTWARE + +Intentionally left blank. + +APPENDIX 4: SMALL BUSINESS AND STARTUP + +The provisions of this Appendix 4 are applicable for companies with an annual +revenue, including funding, equivalent to maximum of 250,000 USD (in applicable +currency) during the latest full calendar year, as evidenced by duly audited +records of the Licensee and approved by The Qt Company ("Start-up Company"). + +Start-up Companies are qualified for a discounted License Fee for maximum of +four (4) Development Licenses ("Start-up Development License") unless otherwise +agreed between the parties. + +Start-up Development License entitles the respective Designated User for +Support only for Install Support as defined in Appendix 9, Support Terms. + +Upon expiry of the respective Development License Term, the Start-up +Development Licenses shall be automatically extended, pursuant to Section 3.1 +of the Agreement, for a Renewal Term either as new Start-up Development +Licenses (if the Licensee still qualifies as a Start-up Company), or as normal +then standard list price Development Licenses (if the Licensee no longer +qualifies as a Start-up Company). + +APPENDIX 5: NON-COMMERCIAL AND EDUCATIONAL USE + +The provisions of this Appendix 5 are applicable for non-commercial use of the +Licensed Software by the Licensee. + +For the purpose of this Appendix 5, the following additional definitions +(replacing the relevant definition of the Agreement, where applicable) shall be +applicable: + +"Demo Units" shall mean (i) hardware development platform, which incorporates +the Licensed Software along with Licensee's software and/or hardware, and (ii) +prototype versions of Applications or Devices. + +"Designated User(s)" shall mean the employees and students of the Licensee. + +"Licensee Products" shall mean Applications and/or Devices. + +"Permitted Purpose" shall mean (i) Licensee's internal evaluation and testing +of Licensed Software, (ii) building Demo Units as well as (iii) educational +use. + +"Agreement Term" shall mean a period of twelve (12) months or any such other +period as may be agreed between the Parties. + +For the purpose of this Appendix 5, the following changes shall be agreed with +respect to relevant Sections of the Agreement: + I. Recital (A) shall be replaced in its entirety to read as follows: + "(A) Licensee wishes to use the Licensed Software for the Permitted + Purpose." + II. Section 3.1 shall be replaced in its entirety to read as follows: + "The Qt Company grants to Licensee a personal, non-exclusive, + non-transferable, revocable, royalty-free license, valid for the + Agreement Term, to use, modify and copy the Licensed Software solely + for the Permitted Purpose. Licensee may install copies of the Licensed + Software on five (5) computers per Designated User, provided that only + the Designated Users who have a valid Development License may use the + Licensed Software. Licensee may demonstrate the Demo Units, provided + that such demonstrations must be conducted by Licensee, and the Demo + Units must remain in Licensee's possession and under Licensee's control + at all times. + For clarity, this Agreement does not (i) entitle Licensee to use + Licensed Software to create Applications or Devices (other than + prototypes thereof) or (ii) carry any distribution rights to Licensee, + but such rights are subject to and conditional upon conclusion of a + separate license agreement with The Qt Company." + III. Sections 3.2, 3.3, 3.5, 3.6, 8 and 10 shall be deleted. + IV. Section 3.4 shall be replaced in its entirety to read as follows: + "Licensee shall not: + - remove or alter any copyright, trademark or other proprietary rights + notice contained in any portion of the Licensed Software; + - transfer, publish, sublicense, disclose, display or otherwise make + the Licensed Software available to any third party (except that + Licensee may demonstrate the Demo Units pursuant to Section 3.1); + - in any way combine, incorporate or integrate Licensed Software with, + or use Licensed Software for creation of, any software created with + or incorporating Open Source Qt; Licensee shall cause all Designated + Users who make use of the licenses granted under this Agreement, to + be contractually bound to comply with the relevant terms of this + Agreement and not to use the Licensed Software beyond the terms + hereof. Licensee shall be responsible for any and all actions and + omissions of its Designated Users relating to the Licensed Software + and use thereof. Any use of Licensed Software beyond the provisions + of this Agreement is strictly prohibited and requires an additional + license from The Qt Company." + V. Section 12 shall be replaced in its entirety to read as follows: + "This Agreement shall enter into force upon due acceptance by both + Parties and remain in force for the Agreement Term, unless and until + terminated pursuant to the terms of Section 12. + Upon termination of the Agreement, Licensee shall cease using the + Licensed Software. All other copies of Licensed Software in the + possession or control of Licensee must be erased or destroyed. An + officer of Licensee must, upon request, promptly deliver to The Qt + Company a written confirmation that this has occurred." + +Except for the modifications specified above, this Appendix carries no change +to the terms of the Agreement which shall remain in full force. + +APPENDIX 6: LICENSE REPORTING + +Separate template + +APPENDIX 7: MARKETING RIGHTS + +This Appendix 7 has the purpose to grant visibility through The Qt Company +marketing channels of the usage of Qt and related product and service in +Licensee product. Following related marketing right are agreed between the Qt +Company and the Licensee. + +1. LICENSEE NAME AND LICENSEE LOGO + +The Qt Company has the right to use Licensee name and Licensee logo in public +channel, in respect of the value proposition that the Qt company provided to +the Licensee. + +2. MARKETING CONTENT COOPERATION + +2.1. LICENSEE CASES + +The Licensee is open to collaborate on content creation for marketing and +communication purpose. The Licensee will nominate one responsible that will be +in charge to support The Qt company with this content creation, according to +content format paragraph, answering technical questions or sharing professional +picture or video of required content. The Qt Company will have the right to +advertise this in Content Format and Channel as mentioned in paragraph 3 and 4. + +2.2. FINAL PRODUCT REFERRAL + +Licensee agree that The Qt Company could connect their software product and +services with the Licensee device or application, that the Licensee has created +using The Qt Company technology and competence. Licensee will provide high +quality picture, and video of the created final product where the Qt technology +is running into. The Qt Company will have the right to advertise this in +Content Format and Channel as mentioned in paragraph 3 and 4. + +3. CONTENT FORMAT + +- Video +- Written Licensee case +- Press release +- Social media posts +- Emails +- Event booth Graphics +- Printed material + +4. CHANNELS + +- Social media +- The Qt Company resource center and website +- Email to the Qt company contact database +- Events +- Online webinars +- Public speech +- Public presentations + +APPENDIX 8: INTENTIONALLY LEFT BLANK + +APPENDIX 9: SUPPORT TERMS +Version 2023-04 + +These Qt support terms and conditions (“Support Terms”) set forth the legal +framework, where under The Qt Company (“The Qt Company”) provides support +services (as herein defined) to the Licensee. + +1 DEFINITIONS + +“Application Code” shall mean a computer software program written strictly +using the Qt programming language, by or for the Licensee, with a user +interface, enabling the Licensee or their users to accomplish a specific task +and display any results of the task on the display monitor or screen. + +“Customer Portal” shall mean The Qt Company’s web-based service and support +user interface located at https://account.qt.io/ or at another location +designated by The Qt Company. Customer Portal is used by a Designated User with +Qt Account, and it provides downloads, license management, license certificate +and other services for Designated Users. + +“Dedicated Contact” shall mean the employee of The Qt Company who will be the +first point of contact for all Designated Users’ requests for Support. + +“Errors” shall mean an error, flaw, mistake, failure, or fault in Licensed +Software that prevents it from behaving as described in the relevant +documentation or as agreed between the Parties. Designated User can follow the +state and progress of Errors in Customer Portal. + +“Extended Support” shall mean a continuation to the normal Support period, +which allows Designated Users to receive selected Support (Standard Support or +Premium Support) for a version of Licensed Software that is no longer generally +supported by The Qt Company. + +”Install Support” shall mean Support that is limited to installation-related +Error(s) on Development Platforms specified as supported host platforms for +each Qt release under doc.qt.io. Install Support covers also operational use of +the QA Tools, but not operational use of Qt Software. + +“Maintenance Release” shall mean a release or version of Licensed Software +containing bug fixes, error corrections and other changes targeted to +maintaining and improving product stability and quality. Maintenance Releases +are generally depicted as a change to the third digit of Licensed Software +version number. + +“Platforms” shall mean both Development Platforms and Deployment Platforms. +Supported host and target Platforms may vary from for each Qt release as +defined under doc.qt.io. + +“Premium Support” shall mean an upgraded level of Support that The Qt Company +provides pursuant to these Support Terms to Licensee if Licensee has purchased +Premium Support instead of Standard Support. Premium Support also covers what +is included in Standard Support. Premium Support shall always be purchased for +all Designated User(s) in the respective development team of the Licensee. + +“Qt Account” shall mean the Qt Account for a Designated User used for using Qt +services and Customer Portal. A Qt Account is mapped to the Licensee company +with the corporate email domain or domains. + +”Qualification Kit” shall mean a set of documents and validation test cases +used for product certification needs as defined in section 2.6. + +“Response Time” shall mean the period of time from when Licensee notifies The +Qt Company about an Error or requests Support until The Qt Company provides +Licensee with a response that addresses (but not necessarily resolves) the +reported Error or provides the requested Support. + +“Standard Support” shall mean standard level of Support that The Qt Company +provides pursuant to these Support Terms to Licensee. Standard Support also +covers what is included in Install Support. + +“Security Issue” shall mean an Error that may cause a vulnerability in a system +or application that uses the Licensed Software. + +“Support” shall mean developer assistance that is provided by The Qt Company to +assist eligible Designated Users in Licensed Software installation, usage and +functionality problem resolution for Error(s) and Error workarounds pursuant to +the terms of these Support Terms. Support for different products is available +as specified in the below table (‘X’ marking the Support that is included in +the license price, optional Add-on Support services are marked as ‘O’): + ++-----------------------------------------------------------------------------+ +| | Install| Standard| Premium| Extended| Qualification| +| | Support| Support | Support| Support | Kit | ++-----------------------------------------------------------------------------+ +| DSP | X | X | O | O | | ++-----------------------------------------------------------------------------+ +| DSE | X | X | O | O | | ++-----------------------------------------------------------------------------+ +| ADP | X | | | | | ++-----------------------------------------------------------------------------+ +| ADE | X | X | O | O | | ++-----------------------------------------------------------------------------+ +| DCP | X | X | O | O | | ++-----------------------------------------------------------------------------+ +| DCE | X | X | O | O | | ++-----------------------------------------------------------------------------+ +| Squish | X | X | O | | O | ++-----------------------------------------------------------------------------+ +| Coco | X | X | O | | O | ++-----------------------------------------------------------------------------+ +| Test Center | X | X | O | | O | ++-----------------------------------------------------------------------------+ +| Axivion Suite | X | X | | | | ++-----------------------------------------------------------------------------+ +| Architecture Analysis | X | X | | | | ++-----------------------------------------------------------------------------+ +| Static Code Analysis | X | X | | | | ++-----------------------------------------------------------------------------+ +| Static Coverage | X | X | | | | +| Analysis Professional | | | | | | ++-----------------------------------------------------------------------------+ +| Qt Insight | | X | | | | ++-----------------------------------------------------------------------------+ + +“Support Validity Term” shall mean the Development License Term or any other +fixed time period agreed between the Parties during which time the Licensee is +eligible to receive Support from The Qt Company. + +2 SUPPORT SERVICES + +2.1 Support Services Provided by The Qt Company + +Subject to these Support Terms and during the Support Validity Term, The Qt +Company will via its Customer Portal, provide Designated User(s) with Support +for the Licensed Software which Licensee has licensed under the Agreement. The +Qt Company will make commercially reasonable efforts to solve any Errors +reported by Designated User(s). Resolution of an Error may be provided through +Designated User(s) themselves downloading of a later released version of the +applicable Licensed Software product(s) or providing the Designated User with a +workaround addressing such Error or providing the Designated User with an +updated tool configuration. + +2.2 Licensee's Obligations + +To report an Error, the Designated User shall register the Error on the +Customer Portal. If the Designated User considers the reported Error to be a +Security Issue, the Error shall be marked as a Security Issue. + +The Designated User must provide adequate information and documentation to The +Qt Company to enable it to recreate the Error or problem for which the +Designated User has sought assistance. To ensure efficient handling of Errors, +the Designated User must provide the following information, where relevant: +- A clear, detailed description of the problem, question or suggestion; +- Identification of which Licensed Software product and version is affected; +- Identification of the operating environment (e.g. operating system, hardware + Platform, build tools, tool configuration, etc.) on which the problem exists; +- Marking the issue as a Security Issue, when reporting a Security Issue; +- On Standard Support: A complete and compilable test case of not more than 500 + lines of code that demonstrates the problem; +- On Premium Support: A complete and compilable test case that demonstrates the + problem or access to Application Code source codes. + +Additional relevant content, such as screenshots, etc. +Additional content should be included as attachments. The preferred image +formats are JPEG and PNG. Compressed content should be included in zip or +tar.gz archives. Executable content and documents in platform specific formats +such as Microsoft Office' are not accepted. + +In order for The Qt Company to provide prompt handling of Errors, the +Designated User shall promptly respond to any requests from The Qt Company for +additional information. + +2.3 Support Limitations + +General limitations: + +Each version or release of the Licensed Software will be Supported under +Standard Support or Premium Support only for limited time period as set forth +in doc.qt.io or in documentation provided with the respective Licensed Software +product. If nothing is documented, a release of Licensed Software is supported +for one (1) year from the release date of the version x.y.0 and Long Term +Support (LTS) Releases are supported for a period of three (3) years from the +release date of the LTS version x.y.0. + +The Qt Company shall only provide Support for Designated User(s) through +Customer Portal.Support is made available for the entire development teams +only: It is not allowed to purchase Support only for some members of the +development team, and all Designated Users of the respective development team +must be eligible for the same level of Support. + +Support is not provided for snapshots, preview releases, beta releases or +release candidates. + +The Qt Company shall have no obligation to provide Support for 3rd party +components, hardware or operating system specific problems or problems arising +from improper use, accident, neglect, or modification of Qt. + +Limitations with Install Support: + +Support limited to (i) Error(s) regarding installation and setting up of the Qt +development environment on host Platforms, or (ii) Errors impacting operational +use of the QA Tools. + +Limitations with Standard Support: + +The Qt Company shall not provide Support for third-party software or problems +caused by third-party software even if such third-party software is distributed +together with Licensed Software product(s). + +The Qt Company shall only provide Support for Error(s) that are reported on and +can be reproduced on Platforms that are officially supported for the release of +the Licensed Software. + +Limitations with Premium support: + +The Qt Company shall not provide Support for third-party software or problems +caused by third-party software. However, if such third-party software is +distributed together with Licensed Software, The Qt Company will make +commercially reasonable efforts to solve such problems. + +The Qt Company shall only provide Support for Error(s) that can be reproduced +on Platforms that are officially supported for the release of the Licensed +Software. If the Error is on a Platform that is not supported, The Qt Company +will make commercially reasonable efforts to provide a solution on closest +corresponding supported Platform. + +Premium Support is optional and purchased for an agreed bucket of hours +(“Bucket”). Hours can be used by any Designated User in the respective +development team. To encourage continuous usage of the Support, ten percent +(10%) of the purchased Bucket shall automatically expire (regardless of whether +such support hours are actually used or not by the Licensee) each month after +three (3) months from the purchase of the Premium Support. + +2.4 Handling of Security Issues + +The reported Errors marked as Security Issues will be assessed by experts to +determine the severity of the issue and to verify if it indeed is a valid +Security Issue. The Designated User who reported the issue may be contacted for +more details. If the reported issue is not deemed to be a Security Issue, it +will be treated as a normal Error and handled accordingly. + +A verified Security Issue will be fixed as soon as possible. Qt Company will +notify all Licensees via appropriate channels about the Security Errors and +availability of patches for Licensed Software. Typically, a fix for the +Security Issue is included in the next Maintenance Release of Licensed +Software. + +If the Security Issue is reported in a third-party library used in Licensed +Software, The Qt Company will notify the relevant third party of such Security +Issue detected in their library. When the Security Issue is fixed in the +third-party library, the new version of the third-party library will be in the +next feasible Maintenance Release of the Licensed Software. If a fixed version +of the third-party library is not available, The Qt Company may instead decide +to include documentation regarding the issue, or a patch for this third-party +library. + +All known Security Issues in Licensed Software will be mentioned as part of the +change notes released with each version of Licensed Software. + +2.5 Extended Support + +Extended Support extends the Support Validity Term for a release of Licensed +Software that is no longer generally supported. + +Extended Support includes and is by default provided with Standard Support +rules and limitations, unless Extended Support is purchased together with +Premium Support in which case Premium Support rules and limitations will apply. + +Extended Support is optional and purchased with annual fee and separately per +each Licensee product. Extended Support will need definition of (i) Licensee +product, (ii) used Platform(s) and (iii) Licensed Software version(s). For +avoidance of doubt, Extended Support requires that the Designated User has a +valid license for the respective Licensed Software. + +2.6 Qualification Kit + +The Qt Company shall provide a set of documents and validation tests that +enable the Licensee to qualify QA testing tool (subject to a separate fee) or +Qt Safe Renderer for the purpose of safety certification of Licensee end-to-end +solution. Exact complied safety standards may vary between products, used +features, use case, and industry. + +3 RESPONSE TIME + +In performing Support, The Qt Company shall commit to following, non-binding, +Response Times: + +Standard Support: Errors and Support requests will have a Response Time not to +exceed two (2) business days. + +Premium Support: Errors and Support requests will have a Response Time not to +exceed one (1) business day. + +Security Issues: Errors that are Security Issues will have a Response Time not +to exceed one (1) business day. + +For complex issues, The Qt Company may provide an initial response to the +Designated User and then follow up, without undue delay, with additional +communication before an Error is properly addressed or Support provided. + +4 ADDITIONAL SERVICES IN PREMIUM SUPPORT + +The Designated User(s) will be assigned a Dedicated Contact to handle requests +for Support. Dedicated Contact is subject to change in cases such as sick +leave, vacation and other similar reasons. + +The Designated User(s) can on request ask The Qt Company to access their +computer remotely in order to resolve problems directly. + +The Designated User(s) can request a session via Instant Messaging or phone +call in the support request to The Qt Company. + +Premium Support can assist Licensee in implementing new features, bug fixes +and accessing patches in Licensed Software or Application Code. + +All Support requests will be handled with high priority. + +5 MAINTENANCE RELEASES, UPDATES AND UPGRADES + +Under the Support the Licensee is eligible for Maintenance Releases and Updates +that The Qt Company generally makes available to customers who has purchased +Support. Unless otherwise decided by The Company at its free and absolute +discretion, Upgrades will not be provided under the Support. + +The primary focus of Maintenance Releases is product quality. Therefore, each +Maintenance Release typically includes the following types of changes to the +previous version of Licensed Software: +- Bug fixes caused by changes to previously working code; +- Fixes related to build issues on supported Platforms; +- Error corrections specific to a single Platform that are not present on other + Platforms; +- Corrections to Security Issues; +- Critical Error corrections such as crashes, data corruption, loss of data, + race conditions; and +- Updates to documentation and license information when deemed necessary by + The Qt Company. + +The primary focus of Updates is introducing new features to Licensed Software +and covering new platforms. Therefore, each Updates typically includes the +following types of changes to the previous version of Licensed Software: +- New platform support; +- New toolchain support; +- New features and Qt modules; + +6 WARRANTY DISCLAIMER + +The Qt Company makes no warranties that the Support provided will be successful +in resolving any difficulties or problems or in diagnosing faults reported by +Licensee. Support is provided to Licensee on an "as is" basis. To the maximum +extent permitted by applicable law, The Qt Company disclaims all warranties and +conditions, either express or implied, including, but not limited to, implied +warranties of merchantability and fitness for a particular purpose for the +Support provided by The Qt Company to Licensee. + +APPENDIX 10: CONVERSION TO SUBSCRIPTION + +Subject to the terms of this Appendix Licensee's current development licenses +("Current Licenses") for commercial version of Qt Software and the license +agreements governing such Current Licenses ("Existing Agreements") are being +replaced by this Agreement and subscription based Development Licenses +governed hereunder, as further specified below. + ++---------------------------------------------------------------------------+ +| Existing Agreement(s) | <Trolltech, Nokia, Digia, The Qt Company> and | +| signing parties, version | <Licensee> <Version of the Agreement, e.g. 2,0,| +| and date of signatures | 3.2 or 4.1> <Date of the agreement signatures> | +| thereof | | ++---------------------------------------------------------------------------+ + +Parties hereby agree on conversion of Current Licenses listed in attached +Exhibit A to the subscription licenses listed in attached Exhibit B for use +through License Term. As of the date hereof, + +i. Licensee's Current Licenses as listed in Exhibit A shall terminate and be +replaced with the Subscription licenses listed in Exhibit B and; +ii. Existing Agreements are terminated. + +Prices for the conversion of Current Licenses are defined in Appendix 2 +Pricing or Quote. + +Notwithstanding anything in this Appendix to the contrary, and in addition to +any payments due pursuant to this Appendix, Licensee remains fully obligated to +fulfill any and all outstanding payment obligations to The Qt Company under any +applicable Existing Agreements. For the avoidance of doubt, if any payments +remain outstanding on the Current Licenses under the applicable terms Licensee +will continue to make such payments in accordance with the applicable order +documentation, notwithstanding the fact that the Current Licenses are being +converted to Development Licenses pursuant to this Appendix. + +APPENDIX 11: TERMS OF USE - QT INSIGHT TRACKER LIBRARY +Version 1.0 + +Qt Insight Tracker Library ("Tracker Library") is a software module used to +collect end user data from Customer's Application and Devices relating to The +Qt Company's Qt Insight online service the Customer is ordering from The Qt +Company under a separate service agreement ("Service Agreement"). + +Unless otherwise set forth herein, definitions written in capital letters used +herein shall have the meaning set forth in the Service Agreement. + +Subject to these terms The Qt Company grants to Customer a worldwide, +non-exclusive, non-transferable, royalty-free, revocable (for cause) right and +license, valid for the term of the Service Agreement, to + (i) use, copy and modify Tracker Library for the purpose of including it + into the Devices and Applications and solely for the purpose of being + used only in conjunction with Insight Cloud or Insight Private Cloud, + and + (ii) distribute, by itself or through its Contractors, Tracker Library as + installed, incorporated, or integrated into Applications and/or + Devices. + +Use of Tracker Library in a way or for the purpose other than the above is +strictly prohibited. Tracker Library is licensed to the Customer in all +respects "as is". + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER +WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT WITH REGARD TO THE TRACKER LIBRARY. THE QT COMPANY DOES NOT +WARRANT THAT THE TRACKER LIBRARY WILL SATISFY CUSTOMER'S REQUIREMENTS OR THAT +IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE +UNINTERRUPTED. +IN NO EVENT SHALL THE QT COMPANY BE LIABLE TO THE CUSTOMER FOR ANY LOSS OF +PROFIT, LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, +SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY +KIND, HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THE USE OF THE TRACKER +LIBRARY. + +THE TOTAL MAXIMUM LIABILITY OF THE QT COMPANY UNDER THESE TERMS SHALL IN NO +EVENT EXCEED 10,000 EUROS. diff --git a/licenses/The-Qt-Company-Qt-LGPL-Exception-1.1 b/licenses/The-Qt-Company-Qt-LGPL-Exception-1.1 deleted file mode 100644 index 5cdacb9a..00000000 --- a/licenses/The-Qt-Company-Qt-LGPL-Exception-1.1 +++ /dev/null @@ -1,22 +0,0 @@ -The Qt Company Qt LGPL Exception version 1.1 - -As an additional permission to the GNU Lesser General Public License version -2.1, the object code form of a "work that uses the Library" may incorporate -material from a header file that is part of the Library. You may distribute -such object code under terms of your choice, provided that: - (i) the header files of the Library have not been modified; and - (ii) the incorporated material is limited to numerical parameters, data - structure layouts, accessors, macros, inline functions and - templates; and - (iii) you comply with the terms of Section 6 of the GNU Lesser General - Public License version 2.1. - -Moreover, you may apply this exception to a modified version of the Library, -provided that such modification does not involve copying material from the -Library into the modified Library's header files unless such material is -limited to (i) numerical parameters; (ii) data structure layouts; -(iii) accessors; and (iv) small macros, templates and inline functions of -five lines or less in length. - -Furthermore, you are not required to apply this additional permission to a -modified version of the Library. diff --git a/licenses/The-Qt-Company-TPLA-2.4 b/licenses/The-Qt-Company-TPLA-2.4 deleted file mode 100644 index 1f59ab24..00000000 --- a/licenses/The-Qt-Company-TPLA-2.4 +++ /dev/null @@ -1,627 +0,0 @@ -TECHNOLOGY PREVIEW LICENSE AGREEMENT - -For individuals and/or legal entities resident in the Americas (North -America, Central America and South America), the applicable licensing -terms are specified under the heading "Technology Preview License -Agreement: The Americas". - -For individuals and/or legal entities not resident in The Americas, the -applicable licensing terms are specified under the heading "Technology -Preview License Agreement: Rest of the World". - - -TECHNOLOGY PREVIEW LICENSE AGREEMENT: The Americas -Agreement version 2.4 - -This Technology Preview License Agreement ("Agreement")is a legal agreement -between The Qt Company USA, Inc. ("The Qt Company"), with its registered -office at 2350 Mission College Blvd., Suite 1020, Santa Clara, California -95054, U.S.A. and you (either an individual or a legal entity) ("Licensee") -for the Licensed Software (as defined below). - -1. DEFINITIONS - -"Affiliate" of a Party shall mean an entity (i) which is directly or -indirectly controlling such Party; (ii) which is under the same direct -or indirect ownership or control as such Party; or (iii) which is -directly or indirectly owned or controlled by such Party. For these -purposes, an entity shall be treated as being controlled by another if -that other entity has fifty percent (50 %) or more of the votes in such -entity, is able to direct its affairs and/or to control the composition -of its board of directors or equivalent body. - -"Applications" shall mean Licensee's software products created using the -Licensed Software which may include portions of the Licensed Software. - -"Term" shall mean the period of time six (6) months from the later of -(a) the Effective Date; or (b) the date the Licensed Software was -initially delivered to Licensee by The Qt Company. If no specific Effective -Date is set forth in the Agreement, the Effective Date shall be deemed to be -the date the Licensed Software was initially delivered to Licensee. - -"Licensed Software" shall mean the computer software, "online" or -electronic documentation, associated media and printed materials, -including the source code, example programs and the documentation -delivered by The Qt Company to Licensee in conjunction with this Agreement. - -"Party" or "Parties" shall mean Licensee and/or The Qt Company. - - -2. OWNERSHIP - -The Licensed Software is protected by copyright laws and international -copyright treaties, as well as other intellectual property laws and -treaties. The Licensed Software is licensed, not sold. - -If Licensee provides any findings, proposals, suggestions or other -feedback ("Feedback") to The Qt Company regarding the Licensed Software, -The Qt Company shall own all right, title and interest including the -intellectual property rights in and to such Feedback, excluding however any -existing patent rights of Licensee. To the extent Licensee owns or controls -any patents for such Feedback Licensee hereby grants to The Qt Company and its -Affiliates, a worldwide, perpetual, non-transferable, sublicensable, -royalty-free license to (i) use, copy and modify Feedback and to create -derivative works thereof, (ii) to make (and have made), use, import, -sell, offer for sale, lease, dispose, offer for disposal or otherwise -exploit any products or services of The Qt Company containing Feedback, and -(iii) sublicense all the foregoing rights to third party licensees and -customers of The Qt Company and/or its Affiliates. - - -3. VALIDITY OF THE AGREEMENT - -By installing, copying, or otherwise using the Licensed Software, -Licensee agrees to be bound by the terms of this Agreement. If Licensee -does not agree to the terms of this Agreement, Licensee may not install, -copy, or otherwise use the Licensed Software. Upon Licensee's acceptance -of the terms and conditions of this Agreement, The Qt Company grants Licensee -the right to use the Licensed Software in the manner provided below. - - -4. LICENSES - -4.1. Using and Copying - -The Qt Company grants to Licensee a non-exclusive, non-transferable, -time-limited license to use and copy the Licensed Software for sole purpose -of designing, developing and testing Applications, and evaluating and the -Licensed Software during the Term. - -Licensee may install copies of the Licensed Software on an unlimited -number of computers provided that (a) if an individual, only such -individual; or (b) if a legal entity only its employees; use the -Licensed Software for the authorized purposes. - -4.2 No Distribution or Modifications - -Licensee may not disclose, modify, sell, market, commercialise, -distribute, loan, rent, lease, or license the Licensed Software or any -copy of it or use the Licensed Software for any purpose that is not -expressly granted in this Section 4. Licensee may not alter or remove -any details of ownership, copyright, trademark or other property right -connected with the Licensed Software. Licensee may not distribute any -software statically or dynamically linked with the Licensed Software. - -4.3 No Technical Support - -The Qt Company has no obligation to furnish Licensee with any technical -support whatsoever. Any such support is subject to separate agreement between -the Parties. - - -5. PRE-RELEASE CODE -The Licensed Software contains pre-release code that is not at the level -of performance and compatibility of a final, generally available, -product offering. The Licensed Software may not operate correctly and -may be substantially modified prior to the first commercial product -release, if any. The Qt Company is not obligated to make this or any later -version of the Licensed Software commercially available. The License -Software is "Not for Commercial Use" and may only be used for the -purposes described in Section 4. The Licensed Software may not be used -in a live operating environment where it may be relied upon to perform -in the same manner as a commercially released product or with data that -has not been sufficiently backed up. - -6. THIRD PARTY SOFTWARE - -The Licensed Software may provide links to third party libraries or code -(collectively "Third Party Software") to implement various functions. -Third Party Software does not comprise part of the Licensed Software. In -some cases, access to Third Party Software may be included along with -the Licensed Software delivery as a convenience for development and -testing only. Such source code and libraries may be listed in the -".../src/3rdparty" source tree delivered with the Licensed Software or -documented in the Licensed Software where the Third Party Software is -used, as may be amended from time to time, do not comprise the Licensed -Software. Licensee acknowledges (1) that some part of Third Party -Software may require additional licensing of copyright and patents from -the owners of such, and (2) that distribution of any of the Licensed -Software referencing any portion of a Third Party Software may require -appropriate licensing from such third parties. - - -7. LIMITED WARRANTY AND WARRANTY DISCLAIMER - -The Licensed Software is licensed to Licensee "as is". To the maximum -extent permitted by applicable law, The Qt Company on behalf of itself and -its suppliers, disclaims all warranties and conditions, either express or -implied, including, but not limited to, implied warranties of -merchantability, fitness for a particular purpose, title and -non-infringement with regard to the Licensed Software. - - -8. LIMITATION OF LIABILITY - -If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is -held liable to Licensee, whether in contract, tort or any other legal theory, -based on the Licensed Software, The Qt Company's entire liability to Licensee -and Licensee's exclusive remedy shall be, at The Qt Company's option, either -(A) return of the price Licensee paid for the Licensed Software, or (B) -repair or replacement of the Licensed Software, provided Licensee -returns to The Qt Company all copies of the Licensed Software as originally -delivered to Licensee. The Qt Company shall not under any circumstances be -liable to Licensee based on failure of the Licensed Software if the failure -resulted from accident, abuse or misapplication, nor shall The Qt Company -under any circumstances be liable for special damages, punitive or exemplary -damages, damages for loss of profits or interruption of business or for -loss or corruption of data. Any award of damages from The Qt Company to -Licensee shall not exceed the total amount Licensee has paid to The Qt -Company in connection with this Agreement. - - -9. CONFIDENTIALITY - -Each party acknowledges that during the Term of this Agreement it shall -have access to information about the other party's business, business -methods, business plans, customers, business relations, technology, and -other information, including the terms of this Agreement, that is -confidential and of great value to the other party, and the value of -which would be significantly reduced if disclosed to third parties (the -"Confidential Information"). Accordingly, when a party (the "Receiving -Party") receives Confidential Information from another party (the -"Disclosing Party"), the Receiving Party shall, and shall obligate its -employees and agents and employees and agents of its Affiliates to: (i) -maintain the Confidential Information in strict confidence; (ii) not -disclose the Confidential Information to a third party without the -Disclosing Party's prior written approval; and (iii) not, directly or -indirectly, use the Confidential Information for any purpose other than -for exercising its rights and fulfilling its responsibilities pursuant -to this Agreement. Each party shall take reasonable measures to protect -the Confidential Information of the other party, which measures shall -not be less than the measures taken by such party to protect its own -confidential and proprietary information. - -"Confidential Information" shall not include information that (a) is or -becomes generally known to the public through no act or omission of the -Receiving Party; (b) was in the Receiving Party's lawful possession -prior to the disclosure hereunder and was not subject to limitations on -disclosure or use; (c) is developed by the Receiving Party without -access to the Confidential Information of the Disclosing Party or by -persons who have not had access to the Confidential Information of the -Disclosing Party as proven by the written records of the Receiving -Party; (d) is lawfully disclosed to the Receiving Party without -restrictions, by a third party not under an obligation of -confidentiality; or (e) the Receiving Party is legally compelled to -disclose the information, in which case the Receiving Party shall assert -the privileged and confidential nature of the information and cooperate -fully with the Disclosing Party to protect against and prevent -disclosure of any Confidential Information and to limit the scope of -disclosure and the dissemination of disclosed Confidential Information -by all legally available means. - -The obligations of the Receiving Party under this Section shall continue -during the Initial Term and for a period of five (5) years after -expiration or termination of this Agreement. To the extent that the -terms of the Non-Disclosure Agreement between The Qt Company and Licensee -conflict with the terms of this Section 9, this Section 9 shall be -controlling over the terms of the Non-Disclosure Agreement. - - -10. GENERAL PROVISIONS - -10.1 No Assignment - -Licensee shall not be entitled to assign or transfer all or any of its -rights, benefits and obligations under this Agreement without the prior -written consent of The Qt Company, which shall not be unreasonably withheld. - -10.2 Termination - -The Qt Company may terminate the Agreement at any time immediately upon -written notice by The Qt Company to Licensee if Licensee breaches this -Agreement. - -Upon termination of this Agreement, Licensee shall return to The Qt Company -all copies of Licensed Software that were supplied by The Qt Company. All -other copies of Licensed Software in the possession or control of Licensee -must be erased or destroyed. An officer of Licensee must promptly -deliver to The Qt Company a written confirmation that this has occurred. - -10.3 Surviving Sections - -Any terms and conditions that by their nature or otherwise reasonably -should survive a cancellation or termination of this Agreement shall -also be deemed to survive. Such terms and conditions include, but are -not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4, -10.5, 10.6, 10.7, and 10.8 of this Agreement. - -10.4 Entire Agreement - -This Agreement constitutes the complete agreement between the parties -and supersedes all prior or contemporaneous discussions, -representations, and proposals, written or oral, with respect to the -subject matters discussed herein, with the exception of the -non-disclosure agreement executed by the parties in connection with this -Agreement ("Non-Disclosure Agreement"), if any, shall be subject to -Section 9. No modification of this Agreement shall be effective unless -contained in a writing executed by an authorized representative of each -party. No term or condition contained in Licensee's purchase order shall -apply unless expressly accepted by The Qt Company in writing. If any -provision of the Agreement is found void or unenforceable, the remainder -shall remain valid and enforceable according to its terms. If any remedy -provided is determined to have failed for its essential purpose, all -limitations of liability and exclusions of damages set forth in this -Agreement shall remain in effect. - -10.5 Export Control - -Licensee acknowledges that the Licensed Software may be subject to -export control restrictions of various countries. Licensee shall fully -comply with all applicable export license restrictions and requirements -as well as with all laws and regulations relating to the importation of -the Licensed Software and shall procure all necessary governmental -authorizations, including without limitation, all necessary licenses, -approvals, permissions or consents, where necessary for the -re-exportation of the Licensed Software., - -10.6 Governing Law and Legal Venue - -This Agreement shall be governed by and construed in accordance with the -federal laws of the United States of America and the internal laws of -the State of New York without given effect to any choice of law rule -that would result in the application of the laws of any other -jurisdiction. The United Nations Convention on Contracts for the -International Sale of Goods (CISG) shall not apply. Each Party (a) -hereby irrevocably submits itself to and consents to the jurisdiction of -the United States District Court for the Southern District of New York -(or if such court lacks jurisdiction, the state courts of the State of -New York) for the purposes of any action, claim, suit or proceeding -between the Parties in connection with any controversy, claim, or -dispute arising out of or relating to this Agreement; and (b) hereby -waives, and agrees not to assert by way of motion, as a defense or -otherwise, in any such action, claim, suit or proceeding, any claim that -is not personally subject to the jurisdiction of such court(s), that the -action, claim, suit or proceeding is brought in an inconvenient forum or -that the venue of the action, claim, suit or proceeding is improper. -Notwithstanding the foregoing, nothing in this Section 9.6 is intended -to, or shall be deemed to, constitute a submission or consent to, or -selection of, jurisdiction, forum or venue for any action for patent -infringement, whether or not such action relates to this Agreement. - -10.7 No Implied License - -There are no implied licenses or other implied rights granted under this -Agreement, and all rights, save for those expressly granted hereunder, -shall remain with The Qt Company and its licensors. In addition, no licenses -or immunities are granted to the combination of the Licensed Software with -any other software or hardware not delivered by The Qt Company under this -Agreement. - -10.8 Government End Users - -A "U.S. Government End User" shall mean any agency or entity of the -government of the United States. The following shall apply if Licensee -is a U.S. Government End User. The Licensed Software is a "commercial -item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), -consisting of "commercial computer software" and "commercial computer -software documentation," as such terms are used in 48 C.F.R. 12.212 -(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 -through 227.7202-4 (June 1995), all U.S. Government End Users acquire -the Licensed Software with only those rights set forth herein. The -Licensed Software (including related documentation) is provided to U.S. -Government End Users: (a) only as a commercial end item; and (b) only -pursuant to this Agreement. - - - - - -TECHNOLOGY PREVIEW LICENSE AGREEMENT: Rest of the World -Agreement version 2.4 - -This Technology Preview License Agreement ("Agreement") is a legal -agreement between The Qt Company Ltd ("The Qt Company"), with its registered -office at Valimotie 21,FI-00380 Helsinki, Finland and you (either an -individual or a legal entity) ("Licensee") for the Licensed Software. - -1. DEFINITIONS - -"Affiliate" of a Party shall mean an entity (i) which is directly or -indirectly controlling such Party; (ii) which is under the same direct -or indirect ownership or control as such Party; or (iii) which is -directly or indirectly owned or controlled by such Party. For these -purposes, an entity shall be treated as being controlled by another if -that other entity has fifty percent (50 %) or more of the votes in such -entity, is able to direct its affairs and/or to control the composition -of its board of directors or equivalent body. - -"Applications" shall mean Licensee's software products created using the -Licensed Software which may include portions of the Licensed Software. - -"Term" shall mean the period of time six (6) months from the later of -(a) the Effective Date; or (b) the date the Licensed Software was -initially delivered to Licensee by The Qt Company. If no specific Effective -Date is set forth in the Agreement, the Effective Date shall be deemed to be -the date the Licensed Software was initially delivered to Licensee. - -"Licensed Software" shall mean the computer software, "online" or -electronic documentation, associated media and printed materials, -including the source code, example programs and the documentation -delivered by The Qt Company to Licensee in conjunction with this Agreement. - -"Party" or "Parties" shall mean Licensee and/or The Qt Company. - - -2. OWNERSHIP - -The Licensed Software is protected by copyright laws and international -copyright treaties, as well as other intellectual property laws and -treaties. The Licensed Software is licensed, not sold. - -If Licensee provides any findings, proposals, suggestions or other -feedback ("Feedback") to The Qt Company regarding the Licensed Software, -The Qt Companyshall own all right, title and interest including the -intellectual property rights in and to such Feedback, excluding however any -existing patent rights of Licensee. To the extent Licensee owns or controls -any patents for such Feedback Licensee hereby grants to The Qt Company and -its Affiliates, a worldwide, perpetual, non-transferable, sublicensable, -royalty-free license to (i) use, copy and modify Feedback and to create -derivative works thereof, (ii) to make (and have made), use, import, -sell, offer for sale, lease, dispose, offer for disposal or otherwise -exploit any products or services of The Qt Company containing Feedback, and -(iii) sublicense all the foregoing rights to third party licensees and -customers of The Qt Company and/or its Affiliates. - -3. VALIDITY OF THE AGREEMENT - -By installing, copying, or otherwise using the Licensed Software, -Licensee agrees to be bound by the terms of this Agreement. If Licensee -does not agree to the terms of this Agreement, Licensee may not install, -copy, or otherwise use the Licensed Software. Upon Licensee's acceptance -of the terms and conditions of this Agreement, The Qt Company grants Licensee -the right to use the Licensed Software in the manner provided below. - - -4. LICENSES - -4.1. Using and Copying - -The Qt Company grants to Licensee a non-exclusive, non-transferable, -time-limited license to use and copy the Licensed Software for sole purpose -of designing, developing and testing Applications, and evaluating and the -Licensed Software during the Term. - -Licensee may install copies of the Licensed Software on an unlimited -number of computers provided that (a) if an individual, only such -individual; or (b) if a legal entity only its employees; use the -Licensed Software for the authorized purposes. - -4.2 No Distribution or Modifications - -Licensee may not disclose, modify, sell, market, commercialise, -distribute, loan, rent, lease, or license the Licensed Software or any -copy of it or use the Licensed Software for any purpose that is not -expressly granted in this Section 4. Licensee may not alter or remove -any details of ownership, copyright, trademark or other property right -connected with the Licensed Software. Licensee may not distribute any -software statically or dynamically linked with the Licensed Software. - -4.3 No Technical Support - -The Qt Company has no obligation to furnish Licensee with any technical -support whatsoever. Any such support is subject to separate agreement -between the Parties. - - -5. PRE-RELEASE CODE - -The Licensed Software contains pre-release code that is not at the level -of performance and compatibility of a final, generally available, -product offering. The Licensed Software may not operate correctly and -may be substantially modified prior to the first commercial product -release, if any. The Qt Company is not obligated to make this or any later -version of the Licensed Software commercially available. The License -Software is "Not for Commercial Use" and may only be used for the -purposes described in Section 4. The Licensed Software may not be used -in a live operating environment where it may be relied upon to perform -in the same manner as a commercially released product or with data that -has not been sufficiently backed up. - -6. THIRD PARTY SOFTWARE - -The Licensed Software may provide links to third party libraries or code -(collectively "Third Party Software") to implement various functions. -Third Party Software does not comprise part of the Licensed Software. In -some cases, access to Third Party Software may be included along with -the Licensed Software delivery as a convenience for development and -testing only. Such source code and libraries may be listed in the -".../src/3rdparty" source tree delivered with the Licensed Software or -documented in the Licensed Software where the Third Party Software is -used, as may be amended from time to time, do not comprise the Licensed -Software. Licensee acknowledges (1) that some part of Third Party -Software may require additional licensing of copyright and patents from -the owners of such, and (2) that distribution of any of the Licensed -Software referencing any portion of a Third Party Software may require -appropriate licensing from such third parties. - - -7. LIMITED WARRANTY AND WARRANTY DISCLAIMER - -The Licensed Software is licensed to Licensee "as is". To the maximum -extent permitted by applicable law, The Qt Company on behalf of itself and -its suppliers, disclaims all warranties and conditions, either express or -implied, including, but not limited to, implied warranties of -merchantability, fitness for a particular purpose, title and -non-infringement with regard to the Licensed Software. - - -8. LIMITATION OF LIABILITY - -If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is -held liable to Licensee, whether in contract, tort or any other legal theory, -based on the Licensed Software, The Qt Company's entire liability to Licensee -and Licensee's exclusive remedy shall be, at The Qt Company's option, either -(A) return of the price Licensee paid for the Licensed Software, or (B) -repair or replacement of the Licensed Software, provided Licensee -returns to The Qt Company all copies of the Licensed Software as originally -delivered to Licensee. The Qt Company shall not under any circumstances be -liable to Licensee based on failure of the Licensed Software if the failure -resulted from accident, abuse or misapplication, nor shall The Qt Company -under any circumstances be liable for special damages, punitive or exemplary -damages, damages for loss of profits or interruption of business or for -loss or corruption of data. Any award of damages from The Qt Company to -Licensee shall not exceed the total amount Licensee has paid to -The Qt Company in connection with this Agreement. - - -9. CONFIDENTIALITY - -Each party acknowledges that during the Term of this Agreement it shall -have access to information about the other party's business, business -methods, business plans, customers, business relations, technology, and -other information, including the terms of this Agreement, that is -confidential and of great value to the other party, and the value of -which would be significantly reduced if disclosed to third parties (the -"Confidential Information"). Accordingly, when a party (the "Receiving -Party") receives Confidential Information from another party (the -"Disclosing Party"), the Receiving Party shall, and shall obligate its -employees and agents and employees and agents of its Affiliates to: (i) -maintain the Confidential Information in strict confidence; (ii) not -disclose the Confidential Information to a third party without the -Disclosing Party's prior written approval; and (iii) not, directly or -indirectly, use the Confidential Information for any purpose other than -for exercising its rights and fulfilling its responsibilities pursuant -to this Agreement. Each party shall take reasonable measures to protect -the Confidential Information of the other party, which measures shall -not be less than the measures taken by such party to protect its own -confidential and proprietary information. - -"Confidential Information" shall not include information that (a) is or -becomes generally known to the public through no act or omission of the -Receiving Party; (b) was in the Receiving Party's lawful possession -prior to the disclosure hereunder and was not subject to limitations on -disclosure or use; (c) is developed by the Receiving Party without -access to the Confidential Information of the Disclosing Party or by -persons who have not had access to the Confidential Information of the -Disclosing Party as proven by the written records of the Receiving -Party; (d) is lawfully disclosed to the Receiving Party without -restrictions, by a third party not under an obligation of -confidentiality; or (e) the Receiving Party is legally compelled to -disclose the information, in which case the Receiving Party shall assert -the privileged and confidential nature of the information and cooperate -fully with the Disclosing Party to protect against and prevent -disclosure of any Confidential Information and to limit the scope of -disclosure and the dissemination of disclosed Confidential Information -by all legally available means. - -The obligations of the Receiving Party under this Section shall continue -during the Initial Term and for a period of five (5) years after -expiration or termination of this Agreement. To the extent that the -terms of the Non-Disclosure Agreement between The Qt Company and Licensee -conflict with the terms of this Section 9, this Section 9 shall be -controlling over the terms of the Non-Disclosure Agreement. - - -10. GENERAL PROVISIONS - -10.1 No Assignment - -Licensee shall not be entitled to assign or transfer all or any of its -rights, benefits and obligations under this Agreement without the prior -written consent of The Qt Company, which shall not be unreasonably withheld. - -10.2 Termination - -The Qt Company may terminate the Agreement at any time immediately upon -written notice by The Qt Company to Licensee if Licensee breaches this -Agreement. - -Upon termination of this Agreement, Licensee shall return to The Qt Company -all copies of Licensed Software that were supplied by The Qt Company. All -other copies of Licensed Software in the possession or control of Licensee -must be erased or destroyed. An officer of Licensee must promptly -deliver to The Qt Company a written confirmation that this has occurred. - -10.3 Surviving Sections - -Any terms and conditions that by their nature or otherwise reasonably -should survive a cancellation or termination of this Agreement shall -also be deemed to survive. Such terms and conditions include, but are -not limited to the following Sections: 2, 5, 6, 7, 8, 9, 10.2, 10.3, 10.4, -10.5, 10.6, 10.7, and 10.8 of this Agreement. - -10.4 Entire Agreement - -This Agreement constitutes the complete agreement between the parties -and supersedes all prior or contemporaneous discussions, -representations, and proposals, written or oral, with respect to the -subject matters discussed herein, with the exception of the -non-disclosure agreement executed by the parties in connection with this -Agreement ("Non-Disclosure Agreement"), if any, shall be subject to -Section 9. No modification of this Agreement shall be effective unless -contained in a writing executed by an authorized representative of each -party. No term or condition contained in Licensee's purchase order shall -apply unless expressly accepted by The Qt Company in writing. If any provision -of the Agreement is found void or unenforceable, the remainder shall remain -valid and enforceable according to its terms. If any remedy provided is -determined to have failed for its essential purpose, all limitations of -liability and exclusions of damages set forth in this Agreement shall -remain in effect. - -10.5 Export Control - -Licensee acknowledges that the Licensed Software may be subject to -export control restrictions of various countries. Licensee shall fully -comply with all applicable export license restrictions and requirements -as well as with all laws and regulations relating to the importation of -the Licensed Software and shall procure all necessary governmental -authorizations, including without limitation, all necessary licenses, -approvals, permissions or consents, where necessary for the -re-exportation of the Licensed Software., - -10.6 Governing Law and Legal Venue - -This Agreement shall be construed and interpreted in accordance with the -laws of Finland, excluding its choice of law provisions. Any disputes -arising out of or relating to this Agreement shall be resolved in -arbitration under the Rules of Arbitration of the Chamber of Commerce of -Helsinki, Finland. The arbitration tribunal shall consist of one (1), or -if either Party so requires, of three (3), arbitrators. The award shall -be final and binding and enforceable in any court of competent -jurisdiction. The arbitration shall be held in Helsinki, Finland and the -process shall be conducted in the English language. - -10.7 No Implied License - -There are no implied licenses or other implied rights granted under this -Agreement, and all rights, save for those expressly granted hereunder, -shall remain with The Qt Company and its licensors. In addition, no licenses -or immunities are granted to the combination of the Licensed Software with -any other software or hardware not delivered by The Qt Company under this -Agreement. - -10.8 Government End Users - -A "U.S. Government End User" shall mean any agency or entity of the -government of the United States. The following shall apply if Licensee -is a U.S. Government End User. The Licensed Software is a "commercial -item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), -consisting of "commercial computer software" and "commercial computer -software documentation," as such terms are used in 48 C.F.R. 12.212 -(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 -through 227.7202-4 (June 1995), all U.S. Government End Users acquire -the Licensed Software with only those rights set forth herein. The -Licensed Software (including related documentation) is provided to U.S. -Government End Users: (a) only as a commercial end item; and (b) only -pursuant to this Agreement. - diff --git a/recipes-connectivity/libconnman-qt/libconnman-qt5/0001-Don-t-use-MeeGo-as-prefix-in-order-to-make-this-a-co.patch b/recipes-connectivity/libconnman-qt/libconnman-qt5/0001-Don-t-use-MeeGo-as-prefix-in-order-to-make-this-a-co.patch deleted file mode 100644 index 7a67c744..00000000 --- a/recipes-connectivity/libconnman-qt/libconnman-qt5/0001-Don-t-use-MeeGo-as-prefix-in-order-to-make-this-a-co.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 827b323ee9a6db04c1f5b644abea0ced2095096a Mon Sep 17 00:00:00 2001 -From: Christophe Chapuis <chris.chapuis@gmail.com> -Date: Tue, 26 Jan 2016 18:56:42 +0100 -Subject: [PATCH] Don't use MeeGo as prefix in order to make this a common - component - -Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com> -Signed-off-by: Herman van Hazendonk <github.com@herrie.org> ---- - plugin/plugin.cpp | 2 +- - plugin/plugin.pro | 2 +- - plugin/qmldir | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugin/plugin.cpp b/plugin/plugin.cpp -index a383482..451c95f 100644 ---- a/plugin/plugin.cpp -+++ b/plugin/plugin.cpp -@@ -24,7 +24,7 @@ - class ConnmanPlugin: public QQmlExtensionPlugin - { - Q_OBJECT -- Q_PLUGIN_METADATA(IID "MeeGo.Connman") -+ Q_PLUGIN_METADATA(IID "Connman") - - public: - void registerTypes(const char *uri); -diff --git a/plugin/plugin.pro b/plugin/plugin.pro -index c4f54cf..3763f57 100644 ---- a/plugin/plugin.pro -+++ b/plugin/plugin.pro -@@ -17,7 +17,7 @@ LIBS += -l$$qtLibraryTarget(connman-$$TARGET_SUFFIX) - QT += qml - OTHER_FILES += plugin.json qmldirs - --MODULENAME = MeeGo/Connman -+MODULENAME = Connman - TARGETPATH = $$[QT_INSTALL_QML]/$$MODULENAME - - target.path = $$TARGETPATH -diff --git a/plugin/qmldir b/plugin/qmldir -index 5db82b7..de56688 100644 ---- a/plugin/qmldir -+++ b/plugin/qmldir -@@ -1,2 +1,2 @@ --module MeeGo.Connman -+module Connman - plugin ConnmanQtDeclarative --- -2.11.0.windows.3 - diff --git a/recipes-connectivity/libconnman-qt/libconnman-qt5_git.bb b/recipes-connectivity/libconnman-qt/libconnman-qt5_git.bb index ecd295c3..a3d7f279 100644 --- a/recipes-connectivity/libconnman-qt/libconnman-qt5_git.bb +++ b/recipes-connectivity/libconnman-qt/libconnman-qt5_git.bb @@ -1,24 +1,26 @@ require recipes-qt/qt5/qt5.inc -SUMMARY = "Qt Library for ConnMan" -HOMEPAGE = "https://git.merproject.org/mer-core/libconnman-qt" +SUMMARY = "Qt 5/6 Library for ConnMan" +HOMEPAGE = "https://github.com/sailfishos/libconnman-qt" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://libconnman-qt/clockmodel.h;endline=8;md5=ea9f724050803f15d2d900ce3c5dac88" DEPENDS += "qtbase qtdeclarative" -PV = "1.2.4+git${SRCPV}" -SRCREV = "9d98e12ed60ae4fa9da62485cb8a82129ed1a464" -SRC_URI = "git://git.merproject.org/mer-core/libconnman-qt.git;protocol=https \ - file://0001-Don-t-use-MeeGo-as-prefix-in-order-to-make-this-a-co.patch \ -" +VERSION = "1.2.46" +PV = "${VERSION}+git${SRCPV}" + +SRCREV = "6786936cba9048ee943c0cd5d051c0b8fc70896f" +SRC_URI = "git://github.com/sailfishos/libconnman-qt.git;protocol=https;branch=master" S = "${WORKDIR}/git" inherit pkgconfig -RDEPENDS_${PN} += "connman" +EXTRA_QMAKEVARS_PRE = "CONFIG+=no-module-prefix VERSION=${VERSION}" + +RDEPENDS:${PN} += "connman" -do_install_append() { +do_install:append() { if ls ${D}${libdir}/pkgconfig/connman-qt5.pc >/dev/null 2>/dev/null; then sed -i "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" ${D}${libdir}/pkgconfig/connman-qt5.pc fi diff --git a/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch b/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch new file mode 100644 index 00000000..219b5fd3 --- /dev/null +++ b/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch @@ -0,0 +1,53 @@ +From d2ceb83fe889d7cb40ad1e0d71e75d726a87fb28 Mon Sep 17 00:00:00 2001 +From: Christophe Chapuis <chris.chapuis@gmail.com> +Date: Sat, 13 Jul 2019 11:17:08 +0000 +Subject: [PATCH] onGetModemsFinished: also emit modemRemoved and modemAdded + +VoiceCall only subscribes to these events, so we need to emit these +more "atomic" events too. + +Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com> + +Upstream-Status: Pending +--- + src/qofonomanager.cpp | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/src/qofonomanager.cpp b/src/qofonomanager.cpp +index e1da658..38cf0e4 100644 +--- a/src/qofonomanager.cpp ++++ b/src/qofonomanager.cpp +@@ -88,15 +88,30 @@ void QOfonoManager::Private::handleGetModemsReply(QOfonoManager *obj, ObjectPath + { + const bool wasAvailable = available; + QString prevDefault = defaultModem(); +- QStringList newModems; ++ QStringList newModems, oldModems; + const int n = reply.count(); + for (int i = 0; i < n; i++) { + newModems.append(reply.at(i).path.path()); + } + qSort(newModems); + available = true; +- if (modems != newModems) { +- modems = newModems; ++ oldModems = modems; ++ modems = newModems; ++ ++ // emit atomic events for add/remove ++ Q_FOREACH(QString modem, oldModems) { ++ if(!newModems.contains(modem)) { ++ Q_EMIT obj->modemRemoved(modem); ++ } ++ } ++ Q_FOREACH(QString modem, newModems) { ++ if(!oldModems.contains(modem)) { ++ Q_EMIT obj->modemAdded(modem); ++ } ++ } ++ ++ // then update the whole list ++ if (oldModems != newModems) { + Q_EMIT obj->modemsChanged(modems); + } + QString newDefault = defaultModem(); diff --git a/recipes-connectivity/libqofono/libqofono_git.bb b/recipes-connectivity/libqofono/libqofono_git.bb index 18e9b8fd..f89e052d 100644 --- a/recipes-connectivity/libqofono/libqofono_git.bb +++ b/recipes-connectivity/libqofono/libqofono_git.bb @@ -1,19 +1,22 @@ DESCRIPTION = "Qt 5 bindings for the ofono dbus API" SECTION = "libs" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -DEPENDS += "qtbase qtdeclarative" +DEPENDS += "qtbase qtdeclarative qtxmlpatterns" -SRCREV = "6916cd030b05f0bd137ea9b669fee48f20c19084" -SRC_URI = "git://git.merproject.org/mer-core/libqofono.git" +SRCREV = "047b667f18ca73cb7f884f174d1d164a616d6814" + +SRC_URI = "git://github.com/sailfishos/libqofono.git;protocol=https;branch=master \ + file://0001-also-emit-modemRemoved-and-modemAdded.patch \ +" S = "${WORKDIR}/git" -PV = "0.92+gitr${SRCPV}" +PV = "0.103+gitr${SRCPV}" inherit qmake5 -do_install_append() { +do_install:append() { if ls ${D}${libdir}/pkgconfig/qofono-qt5.pc >/dev/null 2>/dev/null; then sed -i "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" ${D}${libdir}/pkgconfig/qofono-qt5.pc fi @@ -21,19 +24,18 @@ do_install_append() { PACKAGES += "${PN}-tests" -FILES_${PN}-dbg += " \ - /lib/libqofono-qt5/tests/.debug \ - ${libdir}/qt5/qml/MeeGo/QOfono/.debug \ -" -FILES_${PN}-tests = " \ +FILES:${PN}-tests = " \ ${libdir}/libqofono-qt5/tests/tst_* \ + /opt/examples/libqofono-qt5/ \ /opt/tests/libqofono-qt5 \ " -FILES_${PN} += " \ - ${libdir}/qt5/qml/MeeGo/QOfono/qmldir \ - ${libdir}/qt5/qml/MeeGo/QOfono/libQOfonoQtDeclarative.so \ +FILES:${PN} += " \ + ${OE_QMAKE_PATH_QML}/MeeGo/QOfono/qmldir \ + ${OE_QMAKE_PATH_QML}/MeeGo/QOfono/plugins.qmltypes \ + ${OE_QMAKE_PATH_QML}/MeeGo/QOfono/libQOfonoQtDeclarative.so \ " -FILES_${PN}-dev += " \ - ${datadir}/qt5/mkspecs \ +FILES:${PN}-dev += " \ + ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ ${libdir}/libqofono-qt5.prl \ + ${datadir}/qt5/mkspecs \ " diff --git a/recipes-connectivity/libqofono/libqofonoext_git.bb b/recipes-connectivity/libqofono/libqofonoext_git.bb new file mode 100644 index 00000000..68d54052 --- /dev/null +++ b/recipes-connectivity/libqofono/libqofonoext_git.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Qt 5 bindings for the ofono dbus API for Jolla's oFono extensions" +SECTION = "libs" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://src/qofonoext.cpp;;beginline=1;endline=14;md5=e78738e9230b2e0f55eb7f63e3444df5" + +DEPENDS += "qtbase qtdeclarative qtxmlpatterns libqofono" + +SRCREV = "ebe45e0fe46578c24e9fe241e84cd5ca0f097372" +SRC_URI = "git://github.com/sailfishos/libqofonoext.git;protocol=https;branch=master" +S = "${WORKDIR}/git" + +PV = "1.027+gitr${SRCPV}" + +inherit pkgconfig qmake5 + +do_install:append() { + if ls ${D}${libdir}/pkgconfig/qofono-qt5.pc >/dev/null 2>/dev/null; then + sed -i "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" ${D}${libdir}/pkgconfig/qofono-qt5.pc + fi +} + +PACKAGES += "${PN}-tests" + +FILES:${PN} += " \ + ${OE_QMAKE_PATH_QML}/org/nemomobile/ofono/qmldir \ + ${OE_QMAKE_PATH_QML}/org/nemomobile/ofono/plugins.qmltypes \ + ${OE_QMAKE_PATH_QML}/org/nemomobile/ofono/libqofonoextdeclarative.so \ +" diff --git a/recipes-connectivity/libvcard/libvcard_git.bb b/recipes-connectivity/libvcard/libvcard_git.bb new file mode 100644 index 00000000..776d7d0a --- /dev/null +++ b/recipes-connectivity/libvcard/libvcard_git.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Qt vCard library" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f94eaed54ffa1718d593504bae740faf" + +DEPENDS += "qtbase" + +SRCREV = "4250e2468552ea01954244a2d9cd5d2b44b00042" +SRC_URI = "git://github.com/pol51/libvcard.git;protocol=https;branch=master" + +PV = "1.0+gitr${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake_qt5 diff --git a/recipes-devtools/gdb/gdb_%.bbappend b/recipes-devtools/gdb/gdb_%.bbappend deleted file mode 100644 index 3e663e71..00000000 --- a/recipes-devtools/gdb/gdb_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -PACKAGECONFIG ??= "readline python" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend deleted file mode 100644 index b42338ab..00000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend +++ /dev/null @@ -1,15 +0,0 @@ -inherit qmake5_paths - -PACKAGECONFIG[qt5] = '--enable-qt \ - --with-moc="${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc" \ - --with-uic="${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic" \ - --with-rcc="${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc" \ - ,--disable-qt,qtbase qtdeclarative qtbase-native' - -# The GStreamer Qt5 plugin needs desktop OpenGL or OpenGL ES to work, so make sure it is enabled -python() { - cur_packageconfig = d.getVar('PACKAGECONFIG',True).split() - if 'qt5' in cur_packageconfig and not (('opengl' in cur_packageconfig) or ('gles2' in cur_packageconfig)): - gl_packageconfig = d.getVar('PACKAGECONFIG_GL',True) - d.appendVar('PACKAGECONFIG', ' ' + gl_packageconfig) -} diff --git a/recipes-python/pyqt5/files/0001-qtabbar.sip-fix-build-with-accessibility-disabled.patch b/recipes-python/pyqt5/files/0001-qtabbar.sip-fix-build-with-accessibility-disabled.patch deleted file mode 100644 index 7e1c7bf4..00000000 --- a/recipes-python/pyqt5/files/0001-qtabbar.sip-fix-build-with-accessibility-disabled.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8a2f852417414e19d060da66cd7c5cba76e43c7d Mon Sep 17 00:00:00 2001 -From: Diego Rondini <diego.rondini@kynetics.com> -Date: Wed, 19 Jul 2017 14:17:51 +0200 -Subject: [PATCH] qtabbar.sip: fix build with accessibility disabled - -Upstream-Status: Submitted - -Signed-off-by: Diego Rondini <diego.rondini@kynetics.com> ---- - sip/QtWidgets/qtabbar.sip | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/sip/QtWidgets/qtabbar.sip b/sip/QtWidgets/qtabbar.sip -index ffe2d3b..80ad816 100644 ---- a/sip/QtWidgets/qtabbar.sip -+++ b/sip/QtWidgets/qtabbar.sip -@@ -166,11 +166,15 @@ protected: - - public: - %If (Qt_5_8_0 -) -+%If (PyQt_Accessibility) - QString accessibleTabName(int index) const; - %End -+%End - %If (Qt_5_8_0 -) -+%If (PyQt_Accessibility) - void setAccessibleTabName(int index, const QString &name); - %End -+%End - - private: - QTabBar(const QTabBar &); --- -2.7.4 - diff --git a/recipes-python/pyqt5/files/fix-sm.patch b/recipes-python/pyqt5/files/fix-sm.patch deleted file mode 100644 index f2936a23..00000000 --- a/recipes-python/pyqt5/files/fix-sm.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- PyQt5_gpl-5.8.2/sip/QtGui/qguiapplication.sip.orig 2017-05-13 13:28:42.523392315 -0400 -+++ PyQt5_gpl-5.8.2/sip/QtGui/qguiapplication.sip 2017-05-13 13:30:08.081207211 -0400 -@@ -270,12 +270,14 @@ - %End - - public: -+%If (PyQt_SessionManager) - %If (Qt_5_6_0 -) - static bool isFallbackSessionManagementEnabled(); - %End - %If (Qt_5_6_0 -) - static void setFallbackSessionManagementEnabled(bool); - %End -+%End - - signals: - %If (Qt_5_6_0 -) diff --git a/recipes-python/pyqt5/python-pyqt5_5.8.2.bb b/recipes-python/pyqt5/python-pyqt5_5.8.2.bb deleted file mode 100644 index fdfa1205..00000000 --- a/recipes-python/pyqt5/python-pyqt5_5.8.2.bb +++ /dev/null @@ -1,70 +0,0 @@ -SUMMARY = "Python Qt5 Bindings" -AUTHOR = "Phil Thomson @ riverbank.co.uk" -HOMEPAGE = "http://riverbankcomputing.co.uk" -SECTION = "devel/python" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "\ - file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \ -" -DEPENDS = "sip sip-native qtbase python" - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/pyqt/PyQt5_gpl-${PV}.tar.gz \ - file://fix-sm.patch \ - file://0001-qtabbar.sip-fix-build-with-accessibility-disabled.patch \ -" -SRC_URI[md5sum] = "c3048e9d242f3e72fd393630da1d971a" -SRC_URI[sha256sum] = "ebd70515b30bbd6098fee29e6271a6696b1183c5530ee30e6ba9aaab195536e8" - -S = "${WORKDIR}/PyQt5_gpl-${PV}" - - -inherit qmake5 pythonnative python-dir distro_features_check -# depends on qt4-x11-free -REQUIRED_DISTRO_FEATURES = "x11" - -export BUILD_SYS -export HOST_SYS -export STAGING_INCDIR -export STAGING_LIBDIR - -DISABLED_FEATURES = "PyQt_Desktop_OpenGL PyQt_Accessibility PyQt_SessionManager" - -DISABLED_FEATURES_append_arm = " PyQt_qreal_double" - -PYQT_MODULES = "QtCore QtGui QtNetwork QtWidgets" -PYQT_MODULES_aarch64 = "QtCore QtGui QtNetwork QtWidgets" - -do_configure_prepend() { - cd ${S} - echo "py_platform = linux" > pyqt.cfg - echo "py_inc_dir = %(sysroot)/$includedir/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "py_pylib_dir = %(sysroot)/${libdir}/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "py_pylib_lib = python%(py_major).%(py_minor)mu" >> pyqt.cfg - echo "pyqt_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> pyqt.cfg - echo "pyqt_bin_dir = ${D}/${bindir}" >> pyqt.cfg - echo "pyqt_sip_dir = ${D}/${datadir}/sip/PyQt5" >> pyqt.cfg - echo "pyuic_interpreter = ${D}/${bindir}/python%(py_major).%(py_minor)" >> pyqt.cfg - echo "pyqt_disabled_features = ${DISABLED_FEATURES}" >> pyqt.cfg - echo "qt_shared = True" >> pyqt.cfg - QT_VERSION=`${OE_QMAKE_QMAKE} -query QT_VERSION` - echo "[Qt $QT_VERSION]" >> pyqt.cfg - echo "pyqt_modules = ${PYQT_MODULES}" >> pyqt.cfg - echo yes | python configure.py --verbose --qmake ${STAGING_BINDIR_NATIVE}/qt5/qmake --configuration pyqt.cfg --sysroot ${STAGING_DIR_HOST} -} - -do_compile() { - cd ${S} - oe_runmake -} - -do_install() { - cd ${S} - oe_runmake install -} - -RDEPENDS_${PN} = "python-core python-sip" - -FILES_${PN} += "${libdir}/${PYTHON_DIR}/site-packages ${datadir}/sip/PyQt5/" -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*/.debug/" - diff --git a/recipes-python/pyqt5/python3-pyqt-builder-native_1.15.0.bb b/recipes-python/pyqt5/python3-pyqt-builder-native_1.15.0.bb new file mode 100644 index 00000000..7f16eb7b --- /dev/null +++ b/recipes-python/pyqt5/python3-pyqt-builder-native_1.15.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "The PEP 517 compliant PyQt build system" +HOMEPAGE = "https://pypi.org/project/PyQt-builder/" +LICENSE = "SIP | GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9cd437778ebd1c056a76b4ded73b3a6d" + +SRC_URI[sha256sum] = "a90553703897eb41e27c2f1abd31fb9ed304c32ec3271b380015b54ea9762ddd" + +inherit pypi setuptools3 native + +PYPI_PACKAGE = "PyQt-builder" diff --git a/recipes-python/pyqt5/python3-pyqt5-sip_12.12.1.bb b/recipes-python/pyqt5/python3-pyqt5-sip_12.12.1.bb new file mode 100644 index 00000000..a776324e --- /dev/null +++ b/recipes-python/pyqt5/python3-pyqt5-sip_12.12.1.bb @@ -0,0 +1,10 @@ +SUMMARY = "The sip module support for PyQt5" +HOMEPAGE = "https://pypi.org/project/PyQt5-sip/" +LICENSE = "SIP | GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9cd437778ebd1c056a76b4ded73b3a6d" + +SRC_URI[sha256sum] = "8fdc6e0148abd12d977a1d3828e7b79aae958e83c6cb5adae614916d888a6b10" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "PyQt5_sip" diff --git a/recipes-python/pyqt5/python3-pyqt5_5.15.9.bb b/recipes-python/pyqt5/python3-pyqt5_5.15.9.bb new file mode 100644 index 00000000..3361cd50 --- /dev/null +++ b/recipes-python/pyqt5/python3-pyqt5_5.15.9.bb @@ -0,0 +1,97 @@ +SUMMARY = "Python qt5 Bindings" +HOMEPAGE = "https://www.riverbankcomputing.com/software/pyqt" +SECTION = "devel/python" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +inherit pypi python3-dir python3native qmake5 qmake5_paths + +SRC_URI[sha256sum] = "dc41e8401a90dc3e2b692b411bd5492ab559ae27a27424eed4bd3915564ec4c0" +PYPI_PACKAGE = "PyQt5" + +S = "${WORKDIR}/PyQt5-${PV}" + +DEPENDS = " \ + python3 \ + python3-ply-native \ + python3-pyqt-builder-native \ + python3-toml-native \ + qtbase \ + qtdeclarative \ + qtquickcontrols2 \ + sip \ + sip-native \ +" + +DISABLED_FEATURES = " \ + PyQt_Desktop_OpenGL \ + PyQt_Accessibility \ + PyQt_SessionManager \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '', 'PyQt_OpenGL', d)} \ +" + +PYQT_MODULES = " \ + QtCore \ + QtGui \ + QtNetwork \ + QtXml \ + QtNetwork \ + QtQml \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'QtQuick QtWidgets QtQuickWidgets', '', d)} \ +" + +do_configure:prepend() { + local i + local extra_args + + cd ${S} + + for i in ${DISABLED_FEATURES}; do + extra_args="${extra_args} --disabled-feature=${i}" + done + + for i in ${PYQT_MODULES}; do + extra_args="${extra_args} --enable=${i}" + done + + sip-build \ + --verbose \ + --confirm-license \ + --scripts-dir="${bindir}" \ + --build-dir="${B}" \ + --target-dir="${PYTHON_SITEPACKAGES_DIR}" \ + --qmake=${OE_QMAKE_QMAKE} \ + --no-make \ + --enable=pylupdate \ + --enable=pyrcc \ + --enable=Qt \ + --enable=QtCore \ + --no-dbus-python \ + ${extra_args} + + QMAKE_PROFILES=${B}/PyQt5.pro +} + +do_compile:append() { + sed -i "s,${STAGING_DIR_TARGET},," ${B}/inventory.txt +} + +do_install:append() { + sed -i "s,exec .*nativepython3,exec ${bindir}/python3," ${D}/${bindir}/* +} + +pyqt_fix_sources() { + find ${PKGD}/usr/src/debug/${PN} -type f -exec sed -i "s,\(${B}\|${S}\),/usr/src/debug/${PN}/${PV},g" {} \; +} +PACKAGESPLITFUNCS += "pyqt_fix_sources" + +FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${OE_QMAKE_PATH_PLUGINS}" +RDEPENDS:${PN} = " \ + python3-core \ + python3-pyqt5-sip \ + qtbase \ + qtdeclarative \ + qtquickcontrols2 \ + qtquickcontrols2-mkspecs \ + sip \ +" diff --git a/recipes-python/pyqtchart/python3-pyqtchart_5.15.1.bb b/recipes-python/pyqtchart/python3-pyqtchart_5.15.1.bb new file mode 100644 index 00000000..0bb84fe0 --- /dev/null +++ b/recipes-python/pyqtchart/python3-pyqtchart_5.15.1.bb @@ -0,0 +1,69 @@ +SUMMARY = "Python Qt Chart Bindings" +AUTHOR = "Adrian.Fiergolski@fastree3d.com" +HOMEPAGE = "https://www.riverbankcomputing.com/software/pyqtchart" +SECTION = "devel/python" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "\ + file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \ +" + +inherit pypi + +PYPI_PACKAGE = "PyQtChart" + +SRC_URI[md5sum] = "8a36bc796b0d9a2301e613c382336b0e" +SRC_URI[sha256sum] = "8d976b3dbfb233fb0123129323c68adb9d3693c945bba1e227e004208f0747bc" + +S = "${WORKDIR}/PyQtChart-${PV}" + +inherit qmake5 +inherit python3native python3-dir + +DEPENDS = "qtcharts" +DEPENDS += "sip sip-native python3 python3-pyqt5" + +export BUILD_SYS +export HOST_SYS +export STAGING_INCDIR +export STAGING_LIBDIR + +PARALLEL_MAKEINST = "" + +DISABLED_FEATURES = "PyQt_Desktop_OpenGL PyQt_Accessibility PyQt_SessionManager" + +do_configure:prepend() { + cd ${S} + echo "[PyQt 5]" > pyqt.cfg + echo "py_platform = linux" >> pyqt.cfg + echo "py_inc_dir = %(sysroot)/$includedir/python%(py_major).%(py_minor)${PYTHON_ABI}" >> pyqt.cfg + echo "py_pylib_dir = %(sysroot)/${libdir}/python%(py_major).%(py_minor)" >> pyqt.cfg + echo "pyqt_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> pyqt.cfg + echo "py_sip_dir = ${STAGING_EXECPREFIXDIR}/share/sip" >> pyqt.cfg + echo "sip_module = PyQt5.sip" >> pyqt.cfg + echo "pyqt_disabled_features = ${DISABLED_FEATURES}" >> pyqt.cfg + echo yes | ${PYTHON} configure.py --verbose --qmake ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qmake --configuration pyqt.cfg --sysroot ${STAGING_DIR_HOST} +} + +do_configure:append() { + #Fix installation paths + sed -i -e s:'$(INSTALL_ROOT)'${STAGING_EXECPREFIXDIR}:'$(INSTALL_ROOT)'${D}${exec_prefix}:g ${S}/Makefile + sed -i -e s:'$(INSTALL_ROOT)'${STAGING_EXECPREFIXDIR}:'$(INSTALL_ROOT)'${D}${exec_prefix}:g ${S}/QtChart/Makefile + #Skip installed.txt creation + sed -i -e s:" install_distinfo ":" ": ${S}/Makefile +} + +do_compile() { + cd ${S} + oe_runmake +} + +do_install() { + cd ${S} + oe_runmake MAKEFLAGS='-j 1' install +} + + +FILES:${PN} += "${libdir}/${PYTHON_DIR}/site-packages ${datadir}/" + +RDEPENDS:${PN} = "qtbase qtdeclarative qtquickcontrols2 qtquickcontrols2-mkspecs qtcharts" +RDEPENDS:${PN} += "python3-core sip python3-pyqt5" diff --git a/recipes-python/pytest-qt/python3-pytest-qt_4.0.2.bb b/recipes-python/pytest-qt/python3-pytest-qt_4.0.2.bb new file mode 100644 index 00000000..ea061120 --- /dev/null +++ b/recipes-python/pytest-qt/python3-pytest-qt_4.0.2.bb @@ -0,0 +1,12 @@ +SUMMARY = "pytest support for PyQt and PySide applications" +HOMEPAGE = "http://github.com/pytest-dev/pytest-qt" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=be0db96616c6ec3cabe975402c4c687f" + +SRC_URI[sha256sum] = "dfc5240dec7eb43b76bcb5f9a87eecae6ef83592af49f3af5f1d5d093acaa93e" + +inherit pypi setuptools3 + +DEPENDS = "python3-setuptools-scm-native" + +RDEPENDS:${PN} += "python3-pytest" diff --git a/recipes-qt/demo-extrafiles/qt5-demo-extrafiles.bb b/recipes-qt/demo-extrafiles/qt5-demo-extrafiles.bb index 0d65ba13..5986b21c 100644 --- a/recipes-qt/demo-extrafiles/qt5-demo-extrafiles.bb +++ b/recipes-qt/demo-extrafiles/qt5-demo-extrafiles.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Extra files for qt5 demo" -LICENSE = "LGPLv2" +LICENSE = "LGPL-2.0-only" S="${WORKDIR}" LIC_FILES_CHKSUM = "file://LICENSE;md5=88355dc91a186cc816d9f64757793895" diff --git a/recipes-qt/examples/cinematicexperience/fix_qt5_3_compatibility.patch b/recipes-qt/examples/cinematicexperience/fix_qt5_3_compatibility.patch index fc132ecc..c9149c41 100644 --- a/recipes-qt/examples/cinematicexperience/fix_qt5_3_compatibility.patch +++ b/recipes-qt/examples/cinematicexperience/fix_qt5_3_compatibility.patch @@ -1,3 +1,7 @@ +Upstream-Status: Pending + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + Index: Qt5_CinematicExperience_rpi_1.0/content/SettingsView.qml =================================================================== --- Qt5_CinematicExperience_rpi_1.0.orig/content/SettingsView.qml diff --git a/recipes-qt/examples/cinematicexperience_1.0.bb b/recipes-qt/examples/cinematicexperience_1.0.bb index 0c535730..b2e6072f 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" @@ -19,15 +19,17 @@ S = "${WORKDIR}/Qt5_CinematicExperience_rpi_${PV}/" #S = "${WORKDIR}/Qt5_CinematicExperience_${PV}/" DEPENDS = "qtdeclarative qtgraphicaleffects" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "liberation-fonts qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" require recipes-qt/qt5/qt5.inc do_install() { - install -d ${D}${datadir}/${P} - install -m 0755 ${B}/Qt5_CinematicExperience ${D}${datadir}/${P} - cp -R --no-dereference --preserve=mode,links ${S}/content ${D}${datadir}/${P} - install -m 0644 ${S}/Qt5_CinematicExperience.qml ${D}${datadir}/${P} + install -d ${D}${datadir}/${P}/content/ ${D}${datadir}/${P}/content/images/ + install -m 0755 ${B}/Qt5_CinematicExperience ${D}${datadir}/${P}/Qt5_CinematicExperience + install -m 0644 ${S}/content/*.qml ${D}${datadir}/${P}/content/ + install -m 0644 ${S}/content/images/*.png ${D}${datadir}/${P}/content/images/ + install -m 0644 ${S}/content/images/*.xcf ${D}${datadir}/${P}/content/images/ + install -m 0644 ${S}/Qt5_CinematicExperience.qml ${D}${datadir}/${P}/Qt5_CinematicExperience.qml install -d ${D}${bindir} echo "#!/bin/sh" > ${D}${bindir}/Qt5_CinematicExperience @@ -37,5 +39,4 @@ do_install() { chmod +x ${D}${bindir}/Qt5_CinematicExperience } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" diff --git a/recipes-qt/examples/qt5-opengles2-test_git.bb b/recipes-qt/examples/qt5-opengles2-test_git.bb index 5da25dc9..3634fbae 100644 --- a/recipes-qt/examples/qt5-opengles2-test_git.bb +++ b/recipes-qt/examples/qt5-opengles2-test_git.bb @@ -12,8 +12,8 @@ DEPENDS = "qtbase qtsensors" # Depends on gles2 enabled and that's not default configuration EXCLUDE_FROM_WORLD = "1" -SRC_URI = "git://github.com/smk-embedded/qt5-opengles2-test.git" -SRCREV = "938390507054ed1258345f70ed55770d2fe56176" +SRC_URI = "git://github.com/smk-embedded/qt5-opengles2-test.git;branch=master;protocol=https" +SRCREV = "293ae5cfedf48c97178057932d06db409117e4ad" S = "${WORKDIR}/git" inherit qmake5 diff --git a/recipes-qt/examples/qt5everywheredemo_1.0.bb b/recipes-qt/examples/qt5everywheredemo_1.0.bb index 493344f7..c9c726a3 100644 --- a/recipes-qt/examples/qt5everywheredemo_1.0.bb +++ b/recipes-qt/examples/qt5everywheredemo_1.0.bb @@ -1,14 +1,15 @@ 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" +LICENSE = "BSD-3-Clause" +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" -SRC_URI = "${QT_GIT}/qt5-everywhere-demo" +QT_MODULE_BRANCH = "master" +SRC_URI = "${QT_GIT}/qt5-everywhere-demo;branch=${QT_MODULE_BRANCH};protocol=${QT_GIT_PROTOCOL}" S = "${WORKDIR}/git/QtDemo" @@ -20,7 +21,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/qml ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/qt5ledscreen_1.0.bb b/recipes-qt/examples/qt5ledscreen_1.0.bb index e2b994bc..395d3d1b 100644 --- a/recipes-qt/examples/qt5ledscreen_1.0.bb +++ b/recipes-qt/examples/qt5ledscreen_1.0.bb @@ -18,7 +18,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/* ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/qt5nmapcarousedemo_1.0.bb b/recipes-qt/examples/qt5nmapcarousedemo_1.0.bb index 145f7974..fad6c4bc 100644 --- a/recipes-qt/examples/qt5nmapcarousedemo_1.0.bb +++ b/recipes-qt/examples/qt5nmapcarousedemo_1.0.bb @@ -21,7 +21,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/content ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/qt5nmapper/change-property-string.patch b/recipes-qt/examples/qt5nmapper/change-property-string.patch index dae2fdcc..46541244 100644 --- a/recipes-qt/examples/qt5nmapper/change-property-string.patch +++ b/recipes-qt/examples/qt5nmapper/change-property-string.patch @@ -1,6 +1,7 @@ qt5nmapper: Change property string to onTextString Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> diff --git a/content_org/Switch.qml b/content/Switch.qml index 08a2cba..a8b8b26 100644 diff --git a/recipes-qt/examples/qt5nmapper_1.0.bb b/recipes-qt/examples/qt5nmapper_1.0.bb index 762ad20b..10324cee 100644 --- a/recipes-qt/examples/qt5nmapper_1.0.bb +++ b/recipes-qt/examples/qt5nmapper_1.0.bb @@ -22,8 +22,7 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/content ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/qtsmarthome_1.0.bb b/recipes-qt/examples/qtsmarthome_1.0.bb index da1bbdf3..2f95be4c 100644 --- a/recipes-qt/examples/qtsmarthome_1.0.bb +++ b/recipes-qt/examples/qtsmarthome_1.0.bb @@ -1,13 +1,13 @@ SUMMARY = "Qt5 smarthome QML demo application" DESCRIPTION = "This is the Smarthome QML demo application. It shows some user interfaces for controlling an automated house" HOMEPAGE = "http://www.basyskom.com/news/143-demos-qt5-port.html" -LICENSE = "LGPLv2.1+ & GFDL-1.2" +LICENSE = "LGPL-2.1-or-later & GFDL-1.2" LIC_FILES_CHKSUM = "file://COPYING.DOC;md5=ad1419ecc56e060eccf8184a87c4285f \ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "qtdeclarative qtgraphicaleffects" -SRC_URI = "http://share.basyskom.com/demos/smarthome_src.tar.gz" +SRC_URI = "https://artifacts.toradex.com/artifactory/tdxref-oe-prod-frankfurt/dunfell-5.x.y/release/4/sources/smarthome_src.tar.gz" SRC_URI[md5sum] = "883b0376239baec20ebec072e938a995" SRC_URI[sha256sum] = "fceaa813c33e462bad6c0383eaef81a6f6e586c15d1fa73898173b517fc1cda6" @@ -22,7 +22,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/components ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/quitbattery_1.0.0.bb b/recipes-qt/examples/quitbattery_1.0.0.bb index 6c2d3d11..c8dddb17 100644 --- a/recipes-qt/examples/quitbattery_1.0.0.bb +++ b/recipes-qt/examples/quitbattery_1.0.0.bb @@ -20,7 +20,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/qml ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/examples/quitindicators_1.0.1.bb b/recipes-qt/examples/quitindicators_1.0.1.bb index 3e42d047..48b72041 100644 --- a/recipes-qt/examples/quitindicators_1.0.1.bb +++ b/recipes-qt/examples/quitindicators_1.0.1.bb @@ -19,7 +19,6 @@ do_install() { cp -R --no-dereference --preserve=mode,links ${S}/qml ${D}${datadir}/${P} } -FILES_${PN}-dbg += "${datadir}/${P}/.debug" -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -RDEPENDS_${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" +RDEPENDS:${PN} = "qtdeclarative-qmlplugins qtgraphicaleffects-qmlplugins" diff --git a/recipes-qt/maliit/maliit-framework-qt5/0001-Drop-tr1-namespace-its-not-there-in-c-11-and-newer.patch b/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/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/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch b/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch new file mode 100644 index 00000000..f8f2981f --- /dev/null +++ b/recipes-qt/maliit/maliit-framework-qt5/0001-Fix-test-installations.patch @@ -0,0 +1,63 @@ +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. + +Upstream-Status: Pending +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/recipes-qt/maliit/maliit-framework-qt5/0001-config.pri-Use-O1-optimization-in-DEBUG-flags.patch b/recipes-qt/maliit/maliit-framework-qt5/0001-config.pri-Use-O1-optimization-in-DEBUG-flags.patch index 2310e637..8f793dc5 100644 --- a/recipes-qt/maliit/maliit-framework-qt5/0001-config.pri-Use-O1-optimization-in-DEBUG-flags.patch +++ b/recipes-qt/maliit/maliit-framework-qt5/0001-config.pri-Use-O1-optimization-in-DEBUG-flags.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + From fb4316ca6e44a6b34e7d109360fc716c372e1293 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Wed, 12 Jul 2017 11:45:06 -0700 diff --git a/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch b/recipes-qt/maliit/maliit-framework-qt5/0001-examples-plugins-Replace-obsolete-screenGeometry.patch new file mode 100644 index 00000000..84c8aeac --- /dev/null +++ b/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/recipes-qt/maliit/maliit-framework-qt5_git.bb b/recipes-qt/maliit/maliit-framework-qt5_git.bb index e0a0e0e1..1df83e7c 100644 --- a/recipes-qt/maliit/maliit-framework-qt5_git.bb +++ b/recipes-qt/maliit/maliit-framework-qt5_git.bb @@ -1,15 +1,18 @@ DESCRIPTION = "A virtual keyboard for touch-screen based user interfaces" HOMEPAGE = "https://wiki.maliit.org/Main_Page" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=5c917f6ce94ceb8d8d5e16e2fca5b9ad" -inherit qmake5 qmake5_paths +inherit qmake5 qmake5_paths pkgconfig -SRC_URI = "git://github.com/maliit/framework.git;branch=master \ +SRC_URI = "git://github.com/maliit/framework.git;branch=master;protocol=https \ 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" @@ -21,9 +24,9 @@ GTKIMMODULES_PACKAGES = "${PN}-gtk" DEPENDS = "qtdeclarative" -RRECOMMENDS_${PN} = "maliit-plugins-qt5" +RRECOMMENDS:${PN} = "maliit-plugins-qt5" -FILES_${PN} += "\ +FILES:${PN} += "\ ${libdir}/*.so* \ ${bindir} \ ${datadir}/applications/maliit-server.desktop \ @@ -31,12 +34,11 @@ FILES_${PN} += "\ ${OE_QMAKE_PATH_PLUGINS}/platforminputcontexts \ " -FILES_${PN}-dbg += "\ +FILES:${PN}-dbg += "\ ${libdir}/maliit-framework-tests \ - ${OE_QMAKE_PATH_PLUGINS}/platforminputcontexts/.debug \ " -FILES_${PN}-dev += "\ +FILES:${PN}-dev += "\ ${includedir}/maliit \ ${libdir}/pkgconfig \ ${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs \ @@ -58,9 +60,13 @@ EXTRA_QMAKEVARS_PRE = "\ CONFIG+=enable-dbus-activation \ CONFIG+=qt5-inputcontext \ " + +# tests fail to build with gcc12/clang +EXTRA_QMAKEVARS_PRE:append = " CONFIG+=notests" + EXTRA_OEMAKE += "INSTALL_ROOT=${D}" -do_install_append() { +do_install:append() { #Fix absolute paths sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/maliit-framework.prf sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/maliit-plugins.prf @@ -69,26 +75,22 @@ 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 } -pkg_postrm_${PN} () { +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/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch b/recipes-qt/maliit/maliit-plugins-qt5/0001-Do-not-use-tr1-namespace.patch new file mode 100644 index 00000000..e5525379 --- /dev/null +++ b/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/recipes-qt/maliit/maliit-plugins-qt5_git.bb b/recipes-qt/maliit/maliit-plugins-qt5_git.bb index 7dc1a730..d0576415 100644 --- a/recipes-qt/maliit/maliit-plugins-qt5_git.bb +++ b/recipes-qt/maliit/maliit-plugins-qt5_git.bb @@ -1,16 +1,20 @@ DESCRIPTION = "Plugins for a virtual keyboard for touch-screen based user interfaces" HOMEPAGE = "https://wiki.maliit.org/Main_Page" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=f29b21caa8e460097bfad9c026a33621" inherit qmake5 DEPENDS = "maliit-framework-qt5" -RDEPENDS_${PN} += "qtsvg-plugins" +inherit pkgconfig -SRC_URI = "git://github.com/maliit/plugins.git;branch=master" +RDEPENDS:${PN} += "qtsvg-plugins" + +SRC_URI = "git://github.com/maliit/plugins.git;branch=master;protocol=https \ + file://0001-Do-not-use-tr1-namespace.patch \ + " SRCREV = "c6a348592607248a771a3dde5a0e33dc3c433a2a" PV = "0.99.0+git${SRCPV}" @@ -23,13 +27,14 @@ EXTRA_QMAKEVARS_PRE = "\ CONFIG+=nodoc \ " -FILES_${PN} += "\ +# tests fail to build with gcc12/clang +EXTRA_QMAKEVARS_PRE:append = " CONFIG+=notests" + +FILES:${PN} += "\ ${libdir}/maliit \ ${datadir} \ " -FILES_${PN}-dbg += "${libdir}/maliit/plugins/.debug" - S= "${WORKDIR}/git" EXTRA_OEMAKE += "INSTALL_ROOT=${D}" diff --git a/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb b/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb index 71746f03..36d56fd5 100644 --- a/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb +++ b/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb @@ -3,12 +3,15 @@ SUMMARY = "Host packages for the Qt5 standalone SDK or external toolchain" LICENSE = "MIT" -inherit nativesdk packagegroup +inherit packagegroup nativesdk PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ nativesdk-packagegroup-sdk-host \ nativesdk-qttools-tools \ - nativesdk-qtbase-tools \ + nativesdk-qtbase \ + nativesdk-qtbase-dev \ + nativesdk-perl-modules \ + nativesdk-qtdeclarative-tools \ " diff --git a/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb b/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb index b34dbffa..67c4ef21 100644 --- a/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb +++ b/recipes-qt/packagegroups/packagegroup-qt5-qtcreator-debug.bb @@ -8,9 +8,9 @@ inherit packagegroup # Override by distro if needed VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon ?= "openssh-sshd" -RDEPENDS_${PN} = " \ +RDEPENDS:${PN} = " \ gdbserver \ ${VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon} \ openssh-sftp-server \ - qtdeclarative-plugins \ + qtdeclarative \ " diff --git a/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb b/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb index df805146..98f7be2c 100755 --- a/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb +++ b/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb @@ -3,22 +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 = " \ - qtquick1-dev \ - qtquick1-mkspecs \ - qtquick1-plugins \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtquick1-qmlplugins', '', d)} \ - qttranslations-qtquick1 \ - qtwebkit-dev \ - qtwebkit-mkspecs \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebkit-qmlplugins', '', d)} \ -" - # Requires Wayland to work USE_WAYLAND = " \ qtwayland-dev \ @@ -33,7 +22,7 @@ USE_X11 = " \ qtx11extras-mkspecs \ " -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ packagegroup-core-standalone-sdk-target \ libsqlite3-dev \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qt3d-dev', '', d)} \ @@ -43,9 +32,12 @@ RDEPENDS_${PN} += " \ qtbase-mkspecs \ qtbase-plugins \ qtbase-staticdev \ - qttranslations-qt \ + qtbase-tools \ qttranslations-qtbase \ qttranslations-qthelp \ + qtcharts-dev \ + qtcharts-mkspecs \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtcharts-qmlplugins', '', d)} \ qtconnectivity-dev \ qtconnectivity-mkspecs \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtconnectivity-qmlplugins', '', d)} \ @@ -55,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 \ @@ -68,6 +56,8 @@ RDEPENDS_${PN} += " \ qtlocation-plugins \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtlocation-qmlplugins', '', d)} \ qttranslations-qtlocation \ + qtmqtt-dev \ + qtmqtt-mkspecs \ qtmultimedia-dev \ qtmultimedia-mkspecs \ qtmultimedia-plugins \ @@ -95,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 \ @@ -111,8 +100,14 @@ 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} += " \ +RRECOMMENDS:${PN} += " \ qtquickcontrols-qmlplugins \ + qtquickcontrols2-qmlplugins \ qttools-plugins \ " + +RRECOMMENDS:${PN}:remove:toolchain-clang:riscv32 = "qttools-plugins" +RRECOMMENDS:${PN}:remove:toolchain-clang:riscv64 = "qttools-plugins" diff --git a/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch b/recipes-qt/qmllive/qmllive/0001-lib.pro-Append-LIB_ARCH-to-lib.patch new file mode 100644 index 00000000..9a54b902 --- /dev/null +++ b/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/recipes-qt/qmllive/qmllive_git.bb b/recipes-qt/qmllive/qmllive_git.bb new file mode 100644 index 00000000..70b0eb0d --- /dev/null +++ b/recipes-qt/qmllive/qmllive_git.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "QmlLive is a live reloader environment for rapid UI development" +HOMEPAGE = "https://github.com/qtproject/qt-apps-qmllive" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.GPL3;md5=75cd0dbc6f2d24e7eeb128ff59b74f4c" +DEPENDS = "qtbase qtdeclarative" + +PV = "5.12+git${SRCPV}" + +QT_GIT_PROJECT = "qt-apps" +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/recipes-qt/qsiv/qsiv_1.1.bb b/recipes-qt/qsiv/qsiv_1.1.bb index bb2efa69..02bbee5e 100644 --- a/recipes-qt/qsiv/qsiv_1.1.bb +++ b/recipes-qt/qsiv/qsiv_1.1.bb @@ -1,11 +1,11 @@ SUMMARY = "Qt Simple Image Viewer" DESCRIPTION = "A simple image viewer using a mix of C++ and qml code for demonstration." -LICENSE = "GPL-2.0" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11c7965a9059e287de5d93b98adf6d1a" DEPENDS = "qtdeclarative" SRCREV = "7b9810b0f02f9ac74fae3ead6e2e9fb5c1382173" -SRC_URI = "git://code.ossystems.com.br/qt/qsiv;protocol=http" +SRC_URI = "git://code.ossystems.com.br/qt/qsiv;protocol=http;branch=master" S = "${WORKDIR}/git" @@ -13,7 +13,7 @@ inherit qmake5 EXTRA_QMAKEVARS_PRE += "target.path=${libdir}/${P}" -do_install_append() { +do_install:append() { install -d ${D}${bindir} echo "#!/bin/sh" > ${D}${bindir}/qsiv echo "export QML_IMPORT_PATH=${libdir}/${P}/qml/qsiv" >> ${D}${bindir}/qsiv @@ -22,7 +22,5 @@ do_install_append() { chmod +x ${D}${bindir}/qsiv } -FILES_${PN} += "${libdir}/${P}" -RDEPENDS_${PN} += "qtdeclarative-qmlplugins" - -FILES_${PN}-dbg += "${libdir}/${P}/.debug" +FILES:${PN} += "${libdir}/${P}" +RDEPENDS:${PN} += "qtdeclarative-qmlplugins" diff --git a/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf b/recipes-qt/qt-kiosk-browser/qt-kiosk-browser/qt-kiosk-browser.conf new file mode 100644 index 00000000..4f4849b5 --- /dev/null +++ b/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/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb b/recipes-qt/qt-kiosk-browser/qt-kiosk-browser_git.bb new file mode 100644 index 00000000..60b6e428 --- /dev/null +++ b/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 = "GPL-3.0-only" + +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;branch=master \ + 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/recipes-qt/qt5/nativesdk-qt5.inc b/recipes-qt/qt5/nativesdk-qt5.inc index 2eb8c142..5472012c 100644 --- a/recipes-qt/qt5/nativesdk-qt5.inc +++ b/recipes-qt/qt5/nativesdk-qt5.inc @@ -1,4 +1,4 @@ -inherit nativesdk qmake5_base +inherit qmake5_base nativesdk # we don't want conflicts with qt4 OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb index fe280dc3..56e0a0a8 100644 --- a/recipes-qt/qt5/nativesdk-qtbase_git.bb +++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb @@ -3,30 +3,29 @@ DEPENDS = "nativesdk-zlib qtbase-native" SECTION = "libs" HOMEPAGE = "http://qt-project.org" -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \ - file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ + file://LICENSE.QT-LICENSE-AGREEMENT;md5=485e1d58b313def058a0d72598aa6efe \ " QT_MODULE = "qtbase" +inherit pkgconfig + require nativesdk-qt5.inc -require qt5-git.inc +require qt5-lts.inc # it's already included with newer oe-core, but include it here for dylan FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:" # common for qtbase-native, qtbase-nativesdk and qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-shared -# 5.9.meta-qt5-shared.5 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-shared +# 5.15.meta-qt5-shared.4 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -35,17 +34,27 @@ SRC_URI += "\ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \ file://0007-Delete-qlonglong-and-qulonglong.patch \ - file://0008-Replace-pthread_yield-with-sched_yield.patch \ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \ + file://0012-Disable-ltcg-for-host_build.patch \ + file://0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ + file://0014-corelib-Include-sys-types.h-for-uint32_t.patch \ + file://0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0017-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0018-Revert-Fix-workaround-in-pthread-destructor.patch \ + file://0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch \ + file://0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch \ + file://0022-testlib-don-t-track-the-build-or-source-directories.patch \ " # common for qtbase-native and nativesdk-qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-native -# 5.9.meta-qt5-native.5 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-native +# 5.15.meta-qt5-native.4 SRC_URI += " \ - file://0012-Always-build-uic.patch \ + file://0023-Always-build-uic-and-qvkgen.patch \ + file://0024-Avoid-renameeat2-for-native-sdk-builds.patch \ " # CMake's toolchain configuration of nativesdk-qtbase @@ -53,45 +62,34 @@ SRC_URI += " \ file://OEQt5Toolchain.cmake \ " -PACKAGES = "${PN}-tools-dbg ${PN}-tools-dev ${PN}-tools-staticdev ${PN}-tools" - PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" -FILES_${PN}-tools-dev = " \ - ${includedir} \ - ${FILES_SOLIBSDEV} ${libdir}/*.la \ - ${libdir}/*.prl \ +FILES:${PN}-dev += " \ ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ ${OE_QMAKE_PATH_LIBS}/*.prl \ " -FILES_${PN}-tools-staticdev = " \ - ${OE_QMAKE_PATH_LIBS}/*.a \ -" - -FILES_${PN}-tools-dbg = " \ - ${libdir}/.debug \ - ${OE_QMAKE_PATH_BINS}/.debug \ -" - -FILES_${PN}-tools = " \ - ${libdir}/lib*${SOLIBS} \ - ${OE_QMAKE_PATH_BINS}/* \ +FILES:${PN} += " \ ${SDKPATHNATIVE}/environment-setup.d \ - ${datadir}/cmake \ + ${OE_QMAKE_PATH_PLUGINS} \ + ${OE_QMAKE_PATH_LIBS}/metatypes \ " # qttools binaries are placed in a subdir of bin in order to avoid # collisions with qt4. This would trigger debian.bbclass to rename the # package, since it doesn't detect binaries in subdirs. Explicitly # disable package auto-renaming for the tools-package. -DEBIAN_NOAUTONAME_${PN}-tools = "1" +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,23 +103,22 @@ OE_QMAKE_PATH_HOST_LIBS = "${libdir}" deltask generate_qt_config_file do_configure() { + # Regenerate header files when they are included in source tarball + # Otherwise cmake files don't set PRIVATE_HEADERS correctly + rm -rf ${S}/include + mkdir -p ${S}/.git || true + ${S}/configure -v \ - -opensource -confirm-license \ + -${QT_EDITION} -confirm-license \ -sysroot ${STAGING_DIR_TARGET} \ -no-gcc-sysroot \ -system-zlib \ -dbus-runtime \ - -no-libjpeg \ - -no-libpng \ - -no-gif \ -no-accessibility \ -no-cups \ - -no-gui \ - -no-qml-debug \ -no-sql-mysql \ -no-sql-sqlite \ -no-opengl \ - -no-openssl \ -no-xcb \ -no-feature-bearermanagement \ -no-icu \ @@ -137,7 +134,6 @@ do_configure() { -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \ -libexecdir ${OE_QMAKE_PATH_LIBEXECS} \ -plugindir ${OE_QMAKE_PATH_PLUGINS} \ - -importdir ${OE_QMAKE_PATH_IMPORTS} \ -qmldir ${OE_QMAKE_PATH_QML} \ -translationdir ${OE_QMAKE_PATH_TRANSLATIONS} \ -testsdir ${OE_QMAKE_PATH_TESTS} \ @@ -149,8 +145,8 @@ do_configure() { -silent \ -nomake examples \ -nomake tests \ + -make tools \ -no-compile-examples \ - -no-rpath \ -platform ${OE_QMAKE_PLATFORM_NATIVE} \ -xplatform ${OE_QMAKE_PLATFORM} \ ${QT_CONFIG_FLAGS} @@ -161,13 +157,16 @@ do_install() { # remove things unused in nativesdk, we need the headers and libs rm -rf ${D}${datadir} \ - ${D}/${OE_QMAKE_PATH_PLUGINS} \ ${D}${libdir}/cmake \ ${D}${libdir}/pkgconfig # Install CMake's toolchain configuration mkdir -p ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/ install -m 644 ${WORKDIR}/OEQt5Toolchain.cmake ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/ + + # Fix up absolute paths in scripts + sed -i -e '1s,#!/usr/bin/python,#! ${USRBINPATH}/env python,' \ + ${D}${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/uikit/devices.py } fakeroot do_generate_qt_environment_file() { @@ -178,10 +177,12 @@ fakeroot do_generate_qt_environment_file() { echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script - echo 'export OE_QMAKE_CC=$CC' >> $script - echo 'export OE_QMAKE_CXX=$CXX' >> $script - echo 'export OE_QMAKE_LINK=$CXX' >> $script + echo 'export OE_QMAKE_CC="$CC"' >> $script + echo 'export OE_QMAKE_CXX="$CXX"' >> $script + echo 'export OE_QMAKE_LINK="$CXX"' >> $script echo 'export OE_QMAKE_AR=$AR' >> $script + echo 'export OE_QMAKE_OBJCOPY=$OBJCOPY' >> $script + echo 'export OE_QMAKE_STRIP=$STRIP' >> $script echo 'export QT_CONF_PATH=${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script @@ -198,6 +199,7 @@ fakeroot do_generate_qt_environment_file() { sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script } +do_generate_qt_environment_file[umask] = "022" addtask generate_qt_environment_file after do_install before do_package -SRCREV = "159f7e9c39c57177d25f524ae3cad4e533b89da8" +SRCREV = "8a25db3204f39a228d14148d9cdf414393d239a5" diff --git a/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch b/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch new file mode 100644 index 00000000..2e15543a --- /dev/null +++ b/recipes-qt/qt5/ogl-runtime/0001-Fix-examples-build-error.patch @@ -0,0 +1,63 @@ +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> +Upstream-Status: Pending +--- + 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/recipes-qt/qt5/ogl-runtime/0001-Qt3D-Add-support-to-fix-build-on-ppc64.patch b/recipes-qt/qt5/ogl-runtime/0001-Qt3D-Add-support-to-fix-build-on-ppc64.patch new file mode 100644 index 00000000..9f61a1e7 --- /dev/null +++ b/recipes-qt/qt5/ogl-runtime/0001-Qt3D-Add-support-to-fix-build-on-ppc64.patch @@ -0,0 +1,70 @@ +From c70df6bf52cdcdceb73ed965a28642177df32943 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 13 Mar 2021 12:58:32 -0800 +Subject: [PATCH] Qt3D: Add support to fix build on ppc64 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/foundation/Qt3DSPreprocessor.h | 2 +- + src/foundation/Qt3DSSystem.cpp | 8 +++++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +--- a/src/foundation/Qt3DSPreprocessor.h ++++ b/src/foundation/Qt3DSPreprocessor.h +@@ -112,11 +112,11 @@ Platform define + #define QT3DS_VMX + #elif defined(__x86_64__) + #define QT3DS_X64 +-#elif defined(__ppc__) +-#define QT3DS_PPC +-#elif defined(__ppc64__) ++#elif defined(__powerpc64__) + #define QT3DS_PPC + #define QT3DS_PPC64 ++#elif defined(__ppc__) ++#define QT3DS_PPC + //# elif defined(__aarch64__) + //# define QT3DS_ARM_64 + #else +--- a/src/foundation/Qt3DSSystem.cpp ++++ b/src/foundation/Qt3DSSystem.cpp +@@ -62,6 +62,10 @@ const char *qt3ds::foundation::System::g + const char *qt3ds::foundation::System::g_Processor = "x64"; + const char *qt3ds::foundation::System::g_BitWidth = "64"; + const char *qt3ds::foundation::System::g_FloatingPointModel = ""; ++#elif defined(QT3DS_PPC64) ++const char *qt3ds::foundation::System::g_Processor = "ppc64"; ++const char *qt3ds::foundation::System::g_BitWidth = "64"; ++const char *qt3ds::foundation::System::g_FloatingPointModel = ""; + #elif defined(QT3DS_ARM) + #if defined(__aarch64__) || defined(__ARM64__) + const char *qt3ds::foundation::System::g_Processor = "arm"; +@@ -79,7 +83,7 @@ const char *qt3ds::foundation::System::g + #endif + #endif + #else +-#error "Unknown Platform" ++//#error "Unknown Platform" + #endif + + #if defined(QT3DS_ARM) +@@ -97,8 +101,10 @@ const char *qt3ds::foundation::System::g + const char *qt3ds::foundation::System::g_GPUType = ""; + #elif defined(QT3DS_X64) + const char *qt3ds::foundation::System::g_GPUType = ""; ++#elif defined(QT3DS_PPC64) ++const char *qt3ds::foundation::System::g_GPUType = ""; + #else +-#error "Must define a processor type (QT3DS_ARM or QT3DS_X86)" ++//#error "Must define a processor type (QT3DS_ARM or QT3DS_X86)" + #endif + + namespace { +@@ -136,4 +142,4 @@ const char *System::getPlatformGLStr() + strcpy(text, str.c_str()); + } + return text; +-} +\ No newline at end of file ++} diff --git a/recipes-qt/qt5/ogl-runtime/0001-Qt3DSSimpleTypes-make-QT3DSU64-as-unsigned-long-on-l.patch b/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/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/recipes-qt/qt5/ogl-runtime_git.bb b/recipes-qt/qt5/ogl-runtime_git.bb new file mode 100644 index 00000000..1aee97b5 --- /dev/null +++ b/recipes-qt/qt5/ogl-runtime_git.bb @@ -0,0 +1,30 @@ +require qt5.inc +require qt5-git.inc + +LICENSE = "GPL-3.0-only & 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 = "master" +QT_MODULE_BRANCH_EASTL = "master" +QT_GIT_PROJECT = "qt3dstudio" +PV = "2.8.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 \ + file://0001-Qt3D-Add-support-to-fix-build-on-ppc64.patch \ +" + +SRCREV_ogl-runtime = "b53aeb784f950d7b2a5ebe38ea37c5bb6f456c9c" +SRCREV_EASTL = "31697c758f2ed19bd7c6bbe61f1b91f9e12035b5" +SRCREV = "${SRCREV_ogl-runtime}" + +SRCREV_FORMAT = "ogl-runtime_EASTL" diff --git a/recipes-qt/qt5/qtbase/run-ptest b/recipes-qt/qt5/ptest/run-ptest index 044f834d..044f834d 100644 --- a/recipes-qt/qt5/qtbase/run-ptest +++ b/recipes-qt/qt5/ptest/run-ptest diff --git a/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch b/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch index c0ef6849..774d66f7 100644 --- a/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch +++ b/recipes-qt/qt5/qt3d/0001-Allow-a-tools-only-build.patch @@ -1,36 +1,38 @@ -From f61a6e50fbff57b17c113a70d8c50e460831fe70 Mon Sep 17 00:00:00 2001 -From: Samuli Piippo <samuli.piippo@theqtcompany.com> -Date: Wed, 10 Feb 2016 09:02:09 +0200 +From 4cd75323c448db3dd06a0f0f70ec4d8f9ae3ad2c 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 -Change-Id: I4de6b96ec51fe297a0eeb757cef56d8fb40bd6f0 +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- 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 2cc347a..81cdeef 100644 +index c5232e116..cf5345352 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) - +@@ -16,3 +16,8 @@ load(qt_parts) OTHER_FILES += \ - sync.profile + sync.profile \ + .qmake.conf + +tools-only { + sub_tools.depends -= sub_src + SUBDIRS = sub_tools +} +\ No newline at end of file diff --git a/src/3rdparty/assimp/assimp_dependency.pri b/src/3rdparty/assimp/assimp_dependency.pri -index 8ba2d9a..e973d93 100644 +index 8ba2d9a41..e973d93dd 100644 --- a/src/3rdparty/assimp/assimp_dependency.pri +++ b/src/3rdparty/assimp/assimp_dependency.pri @@ -1,5 +1,5 @@ @@ -41,12 +43,18 @@ index 8ba2d9a..e973d93 100644 } else { include(assimp.pri) diff --git a/tools/tools.pro b/tools/tools.pro -index 8e973ae..ad51db5 100644 +index 3b457ed50..9f5376a0a 100644 --- a/tools/tools.pro +++ b/tools/tools.pro -@@ -1,4 +1,4 @@ +@@ -1,9 +1,9 @@ TEMPLATE = subdirs + +-!qtHaveModule(3dcore): \ ++!tools-only:!qtHaveModule(3dcore): \ + return() + QT_FOR_CONFIG += 3dcore-private --!android:qtConfig(assimp):qtConfig(commandlineparser): \ -+!android:tools-only|qtConfig(assimp):qtConfig(commandlineparser): \ +-qtConfig(assimp):qtConfig(commandlineparser): { ++tools-only|qtConfig(assimp):qtConfig(commandlineparser): { SUBDIRS += qgltf + } diff --git a/recipes-qt/qt5/qt3d/0001-renderers-opengl-Link-in-libatomic-on-riscv.patch b/recipes-qt/qt5/qt3d/0001-renderers-opengl-Link-in-libatomic-on-riscv.patch new file mode 100644 index 00000000..82feaf2e --- /dev/null +++ b/recipes-qt/qt5/qt3d/0001-renderers-opengl-Link-in-libatomic-on-riscv.patch @@ -0,0 +1,29 @@ +From b2c6dd0330d9dee417192a32ae6c636b77b6bf46 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 8 Mar 2021 15:16:01 -0800 +Subject: [PATCH] renderers/opengl: Link in libatomic on riscv + +GCC 11 needs this since it failing to find a builtin function + +Fixes +src/plugins/renderers/opengl/renderer/renderview.cpp:107: undefined reference to `__atomic_exchange_1' + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/plugins/renderers/opengl/opengl.pri | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/plugins/renderers/opengl/opengl.pri b/src/plugins/renderers/opengl/opengl.pri +index 1682ab7b3..31b71dd6b 100644 +--- a/src/plugins/renderers/opengl/opengl.pri ++++ b/src/plugins/renderers/opengl/opengl.pri +@@ -39,3 +39,5 @@ qtConfig(qt3d-simd-sse2):!qtConfig(qt3d-simd-avx2) { + CONFIG += simd + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2 + } ++ ++LIBS += "-latomic" +-- +2.30.1 + diff --git a/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch b/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch deleted file mode 100644 index d6875f31..00000000 --- a/recipes-qt/qt5/qt3d/0002-Fix-BlenderDNA-for-clang-cross-compiler.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 535d2ecd0ccaae5a36d40e9b64ffa2ef32f09cdb Mon Sep 17 00:00:00 2001 -From: Kim Kulling <kim.kulling@googlemail.com> -Date: Mon, 7 Nov 2016 17:19:49 +0100 -Subject: [PATCH] Fix BlenderDNA for clang cross compiler. - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - src/3rdparty/assimp/code/BlenderDNA.cpp | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/3rdparty/assimp/code/BlenderDNA.cpp b/src/3rdparty/assimp/code/BlenderDNA.cpp -index 18ec9f2..5b0b209 100644 ---- a/src/3rdparty/assimp/code/BlenderDNA.cpp -+++ b/src/3rdparty/assimp/code/BlenderDNA.cpp -@@ -55,10 +55,10 @@ using namespace Assimp::Formatter; - - bool match4(StreamReaderAny& stream, const char* string) { - char tmp[] = { -- (stream).GetI1(), -- (stream).GetI1(), -- (stream).GetI1(), -- (stream).GetI1() -+ (const char)(stream).GetI1(), -+ (const char)(stream).GetI1(), -+ (const char)(stream).GetI1(), -+ (const char)(stream).GetI1() - }; - return (tmp[0]==string[0] && tmp[1]==string[1] && tmp[2]==string[2] && tmp[3]==string[3]); - } -@@ -345,10 +345,10 @@ void SectionParser :: Next() - stream.SetCurrentPos(current.start + current.size); - - const char tmp[] = { -- stream.GetI1(), -- stream.GetI1(), -- stream.GetI1(), -- stream.GetI1() -+ (const char)stream.GetI1(), -+ (const char)stream.GetI1(), -+ (const char)stream.GetI1(), -+ (const char)stream.GetI1() - }; - current.id = std::string(tmp,tmp[3]?4:tmp[2]?3:tmp[1]?2:1); - diff --git a/recipes-qt/qt5/qt3d_git.bb b/recipes-qt/qt5/qt3d_git.bb index 9570b9b4..df338b69 100644 --- a/recipes-qt/qt5/qt3d_git.bb +++ b/recipes-qt/qt5/qt3d_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "LGPL-3.0 | GPL-2.0 | The-Qt-Company-Commercial" +LICENSE = "LGPL-3.0-only | GPL-2.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPLv3;md5=8211fde12cc8a4e2477602f5953f5b71 \ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ @@ -9,18 +9,25 @@ LIC_FILES_CHKSUM = " \ " DEPENDS += "qtbase" -DEPENDS_class-target += "qtdeclarative qt3d-native" +DEPENDS:class-target += "qtdeclarative qt3d-native" -# Patches from https://github.com/meta-qt5/qt3d/commits/b5.9 -# 5.9.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qt3d/commits/b5.15 +# 5.15.meta-qt5.2 SRC_URI += " \ file://0001-Allow-a-tools-only-build.patch \ - file://0002-Fix-BlenderDNA-for-clang-cross-compiler.patch \ " +# For assimp submodule +SRC_URI += " \ + git://code.qt.io/qt/qtquick3d-assimp.git;name=assimp;branch=qt6_assimp;protocol=https;destsuffix=git/src/3rdparty/assimp/src \ +" + +SRC_URI:append:riscv64 = " file://0001-renderers-opengl-Link-in-libatomic-on-riscv.patch" +SRC_URI:append:riscv32 = " file://0001-renderers-opengl-Link-in-libatomic-on-riscv.patch" + PACKAGECONFIG ??= "" -PACKAGECONFIG_class-native ??= "tools-only" -PACKAGECONFIG_class-nativesdk ??= "tools-only" +PACKAGECONFIG:class-native ??= "tools-only" +PACKAGECONFIG:class-nativesdk ??= "tools-only" PACKAGECONFIG[tools-only] = "" PACKAGECONFIG[system-assimp] = "-feature-system-assimp,-no-feature-system-assimp,assimp" PACKAGECONFIG[qtgamepad] = ",,qtgamepad" @@ -30,13 +37,16 @@ EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tools-only', 'CONFIG+=tools-only QMAKE_USE_PRIVATE+=zlib', '', d)}" EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtgamepad', 'CONFIG+=OE_QTGAMEPAD_ENABLED', '', d)}" -do_configure_prepend() { +do_configure:prepend() { # disable qtgamepad test if it isn't enabled by PACKAGECONFIG sed -e 's/^\(qtHaveModule(gamepad)\)/OE_QTGAMEPAD_ENABLED:\1/' -i \ ${S}/src/input/frontend/frontend.pri \ ${S}/src/quick3d/imports/input/importsinput.pro } -SRCREV = "90151ffffd83cb8555dc915250ac60cdc5c77c2b" +SRCREV_qt3d = "dac2afc9c6cffd42e49030dcafffc1e0a05873b9" +SRCREV_assimp = "8f0c6b04b2257a520aaab38421b2e090204b69df" + +SRCREV_FORMAT = "qt3d_assimp" BBCLASSEXTEND += "native nativesdk" diff --git a/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch b/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch deleted file mode 100644 index c4ee34bf..00000000 --- a/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 056bc88a15df06443a4a6bdea2b1ead045f89bf6 Mon Sep 17 00:00:00 2001 -From: Greg Nietsky <gregory@distrotech.co.za> -Date: Tue, 4 Mar 2014 11:33:40 +0200 -Subject: [PATCH] Fix: Allow qt-creator to build on arm aarch32 and aarch64 - -Botan is imported hardwired for x86 this small patch allows it -too operate on arm other platforms could be added. - -Task-number: QTCREATORBUG-8107 -Change-Id: Iddea28f21c9fa1afd2fdd5d16a44e6c96a516a7a ---- - src/libs/3rdparty/botan/botan.cpp | 16 +++++++++++++++- - src/libs/3rdparty/botan/botan.h | 2 ++ - 2 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp -index e6a5f22..7b625ac 100644 ---- a/src/libs/3rdparty/botan/botan.cpp -+++ b/src/libs/3rdparty/botan/botan.cpp -@@ -1101,6 +1101,8 @@ class Montgomery_Exponentiator : public Modular_Exponentiator - - #if (BOTAN_MP_WORD_BITS != 32) - #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32 -+#elif !defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) -+typedef Botan::u64bit dword; - #endif - - #ifdef Q_OS_UNIX -@@ -1118,6 +1120,7 @@ extern "C" { - */ - inline word word_madd2(word a, word b, word* c) - { -+#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - asm( - ASM("mull %[b]") - ASM("addl %[c],%[a]") -@@ -1127,6 +1130,11 @@ inline word word_madd2(word a, word b, word* c) - : "0"(a), "1"(b), [c]"g"(*c) : "cc"); - - return a; -+#else -+ dword z = (dword)a * b + *c; -+ *c = (word)(z >> BOTAN_MP_WORD_BITS); -+ return (word)z; -+#endif - } - - /* -@@ -1134,6 +1142,7 @@ inline word word_madd2(word a, word b, word* c) - */ - inline word word_madd3(word a, word b, word c, word* d) - { -+#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - asm( - ASM("mull %[b]") - -@@ -1147,6 +1156,11 @@ inline word word_madd3(word a, word b, word c, word* d) - : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc"); - - return a; -+#else -+ dword z = (dword)a * b + c + *d; -+ *d = (word)(z >> BOTAN_MP_WORD_BITS); -+ return (word)z; -+#endif - } - - } -@@ -2315,7 +2329,7 @@ namespace Botan { - - extern "C" { - --#ifdef Q_OS_UNIX -+#if defined(Q_OS_UNIX) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - /* - * Helper Macros for x86 Assembly - */ -diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h -index 2caa4a3..39b8079 100644 ---- a/src/libs/3rdparty/botan/botan.h -+++ b/src/libs/3rdparty/botan/botan.h -@@ -85,7 +85,9 @@ - #endif - - #define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN -+#if !defined(__arm__) && !defined(__aarch64__) - #define BOTAN_TARGET_CPU_IS_X86_FAMILY -+#endif - #define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1 - - #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \ diff --git a/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 new file mode 100644 index 00000000..c1fd2340 --- /dev/null +++ b/recipes-qt/qt5/qt5-creator/0001-Link-with-libexecinfo-on-musl.patch @@ -0,0 +1,36 @@ +From 0701dd54b228e58b913d09e5a87f70de77575cc7 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 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- + src/plugins/debugger/debugger.pro | 1 + + src/plugins/qmldesigner/qmldesignerplugin.pro | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro +index 6c38efaca8..ba86639d72 100644 +--- a/src/plugins/debugger/debugger.pro ++++ b/src/plugins/debugger/debugger.pro +@@ -137,3 +137,4 @@ include(console/console.pri) + include(analyzer/analyzer.pri) + + include(shared/shared.pri) ++LIBS *= -lexecinfo +diff --git a/src/plugins/qmldesigner/qmldesignerplugin.pro b/src/plugins/qmldesigner/qmldesignerplugin.pro +index 85a7685da5..d69cabcaaf 100644 +--- a/src/plugins/qmldesigner/qmldesignerplugin.pro ++++ b/src/plugins/qmldesigner/qmldesignerplugin.pro +@@ -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 + + include(../../qtcreatorplugin.pri) + 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..5a3ce4db --- /dev/null +++ b/recipes-qt/qt5/qt5-creator/0001-app-Use-malloc_trim-only-on-glibc.patch @@ -0,0 +1,30 @@ +From 79c3b7761bc63f42bdfbcc94b9cc6cca58b8a4a4 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 248fa8efef..12980f3b37 100644 +--- a/src/app/main.cpp ++++ b/src/app/main.cpp +@@ -791,7 +791,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 diff --git a/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch b/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch deleted file mode 100644 index 8d953c99..00000000 --- a/recipes-qt/qt5/qt5-creator/0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch +++ /dev/null @@ -1,35 +0,0 @@ -From fbae8e85e74976b79308c203d38839b364757302 Mon Sep 17 00:00:00 2001 -From: Eike Ziller <eike.ziller@qt.io> -Date: Fri, 24 Jun 2016 10:23:24 +0200 -Subject: [PATCH] Fix compilation with QT_NO_ACCESSIBILITY - -Task-number: QTCREATORBUG-16446 -Change-Id: If75122c23a697f26ccf56391fe2e8d316aad6367 -Reviewed-by: hjk <hjk@theqtcompany.com> ---- - src/libs/utils/fancymainwindow.cpp | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp -index 9477f17..1ee425f 100644 ---- a/src/libs/utils/fancymainwindow.cpp -+++ b/src/libs/utils/fancymainwindow.cpp -@@ -159,13 +159,16 @@ public: - - m_floatButton = new DockWidgetTitleButton(this); - m_floatButton->setIcon(q->style()->standardIcon(QStyle::SP_TitleBarNormalButton, &opt, q)); -- m_floatButton->setAccessibleName(QDockWidget::tr("Float")); -- m_floatButton->setAccessibleDescription(QDockWidget::tr("Undocks and re-attaches the dock widget")); - - m_closeButton = new DockWidgetTitleButton(this); - m_closeButton->setIcon(q->style()->standardIcon(QStyle::SP_TitleBarCloseButton, &opt, q)); -+ -+#ifndef QT_NO_ACCESSIBILITY -+ m_floatButton->setAccessibleName(QDockWidget::tr("Float")); -+ m_floatButton->setAccessibleDescription(QDockWidget::tr("Undocks and re-attaches the dock widget")); - m_closeButton->setAccessibleName(QDockWidget::tr("Close")); - m_closeButton->setAccessibleDescription(QDockWidget::tr("Closes the dock widget")); -+#endif - - setActive(false); - diff --git a/recipes-qt/qt5/qt5-creator/0002-clangformat-Fix-build-with-LLVM-13.patch b/recipes-qt/qt5/qt5-creator/0002-clangformat-Fix-build-with-LLVM-13.patch new file mode 100644 index 00000000..d88a4b21 --- /dev/null +++ b/recipes-qt/qt5/qt5-creator/0002-clangformat-Fix-build-with-LLVM-13.patch @@ -0,0 +1,47 @@ +From ec82db9b97aa77c499d7f0bf70b130c242fb3c2b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= <bjoern@hazardy.de> +Date: Mon, 8 Mar 2021 21:56:06 +0100 +Subject: [PATCH] clangformat: Fix build with LLVM 13 + +Change-Id: I5eaad17a6f240aa1e3f246492b69f093b4f59fee +Reviewed-by: David Schulz <david.schulz@qt.io> + +Upstream-Status: Accepted [https://code.qt.io/cgit/qt-creator/qt-creator.git/commit/?id=14eb5b382cabf90352634393c19bf87a4c15766a] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/plugins/clangformat/clangformatbaseindenter.cpp | 4 ++++ + src/plugins/clangformat/clangformatutils.cpp | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp +index fb8e693809..6378b2af53 100644 +--- a/src/plugins/clangformat/clangformatbaseindenter.cpp ++++ b/src/plugins/clangformat/clangformatbaseindenter.cpp +@@ -42,7 +42,11 @@ void adjustFormatStyleForLineBreak(clang::format::FormatStyle &style, + ReplacementsToKeep replacementsToKeep) + { + style.MaxEmptyLinesToKeep = 100; ++#if LLVM_VERSION_MAJOR >= 13 ++ style.SortIncludes = clang::format::FormatStyle::SI_Never; ++#else + style.SortIncludes = false; ++#endif + style.SortUsingDeclarations = false; + + // This is a separate pass, don't do it unless it's the full formatting. +diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp +index a249327d0e..770e75908c 100644 +--- a/src/plugins/clangformat/clangformatutils.cpp ++++ b/src/plugins/clangformat/clangformatutils.cpp +@@ -145,7 +145,11 @@ static clang::format::FormatStyle qtcStyle() + style.PenaltyReturnTypeOnItsOwnLine = 300; + style.PointerAlignment = FormatStyle::PAS_Right; + style.ReflowComments = false; ++#ifdef LLVM_VERSION_MAJOR >= 13 ++ style.SortIncludes = FormatStyle::SI_CaseSensitive; ++#else + style.SortIncludes = true; ++#endif + style.SortUsingDeclarations = true; + style.SpaceAfterCStyleCast = true; + style.SpaceAfterTemplateKeyword = false; diff --git a/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch b/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch deleted file mode 100644 index e64b6d9a..00000000 --- a/recipes-qt/qt5/qt5-creator/0003-Qmlpuppet-add-missing-includes.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 896624d715e20e658344ac85db91cd55d25e7211 Mon Sep 17 00:00:00 2001 -From: Marco Benelli <marco.benelli@qt.io> -Date: Thu, 6 Jul 2017 09:31:41 +0200 -Subject: [PATCH] Qmlpuppet: add missing includes - -Task-number: QTCREATORBUG-18498 -Change-Id: Ie40a066508bb52f53b8ad528f9d4cf6969fc0632 -Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> ---- - .../qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp | 2 ++ - .../qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp | 1 + - 2 files changed, 3 insertions(+) - -diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp -index 3f9f148..160e5c4 100644 ---- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp -+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/layoutnodeinstance.cpp -@@ -29,6 +29,8 @@ - ****************************************************************************/ - #include "layoutnodeinstance.h" - -+#include <QCoreApplication> -+ - namespace QmlDesigner { - namespace Internal { - -diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp -index 5a9342f..bacbc12 100644 ---- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp -+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp -@@ -33,6 +33,7 @@ - #include <enumeration.h> - #include <qmlprivategate.h> - -+#include <QDebug> - #include <QEvent> - #include <QQmlContext> - #include <QQmlError> diff --git a/recipes-qt/qt5/qt5-creator/0003-clangformat-Fix-build-with-LLVM-13.patch b/recipes-qt/qt5/qt5-creator/0003-clangformat-Fix-build-with-LLVM-13.patch new file mode 100644 index 00000000..d2678b0c --- /dev/null +++ b/recipes-qt/qt5/qt5-creator/0003-clangformat-Fix-build-with-LLVM-13.patch @@ -0,0 +1,30 @@ +From d13fc5742cb3afc876218fab303880a5da124c8a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= <bjoern@hazardy.de> +Date: Wed, 16 Jun 2021 20:59:29 +0200 +Subject: [PATCH] clangformat: Fix build with LLVM 13 + +Change-Id: Ia9db10696fd129c8b989ecc4c9ecbb7f1f10e68c +Reviewed-by: David Schulz <david.schulz@qt.io> + +Upstream-Status: Accepted [https://code.qt.io/cgit/qt-creator/qt-creator.git/commit/?id=55b91a76172a3235b4879daf0b675519d5b02db7] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/plugins/clangformat/clangformatutils.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp +index 770e75908c..8017411fb3 100644 +--- a/src/plugins/clangformat/clangformatutils.cpp ++++ b/src/plugins/clangformat/clangformatutils.cpp +@@ -157,7 +157,11 @@ static clang::format::FormatStyle qtcStyle() + style.SpaceBeforeParens = FormatStyle::SBPO_ControlStatements; + style.SpaceInEmptyParentheses = false; + style.SpacesBeforeTrailingComments = 1; ++#if LLVM_VERSION_MAJOR >= 13 ++ style.SpacesInAngles = FormatStyle::SIAS_Never; ++#else + style.SpacesInAngles = false; ++#endif + style.SpacesInContainerLiterals = false; + style.SpacesInCStyleCastParentheses = false; + style.SpacesInParentheses = false; diff --git a/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch b/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch deleted file mode 100644 index 59687e55..00000000 --- a/recipes-qt/qt5/qt5-creator/0004-Link-with-libexecinfo-on-musl.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7fb65b82d247123c7fdb61436183f1d76067b66b Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 16 Jan 2018 13:26:57 +0000 -Subject: [PATCH] Link with libexecinfo on musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - src/plugins/debugger/debugger.pro | 1 + - src/plugins/qmldesigner/config.pri | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro -index c40bd63..96ab542 100644 ---- a/src/plugins/debugger/debugger.pro -+++ b/src/plugins/debugger/debugger.pro -@@ -148,3 +148,4 @@ include(qml/qml.pri) - include(namedemangler/namedemangler.pri) - - include(shared/shared.pri) -+LIBS *= -lexecinfo -diff --git a/src/plugins/qmldesigner/config.pri b/src/plugins/qmldesigner/config.pri -index 1b559b2..b485b63 100644 ---- a/src/plugins/qmldesigner/config.pri -+++ b/src/plugins/qmldesigner/config.pri -@@ -9,3 +9,4 @@ equals(TMP_BAUHAUS_NO_OUTPUT, true):DEFINES += QT_NO_DEBUG_OUTPUT \ - DEFINES += ENABLE_TEXT_VIEW - - isEmpty($$(BAUHAUS_OUTPUT_IN_TEST)):DEFINES += QDEBUG_IN_TESTS WARNINGS_IN_TESTS -+LIBS *= -lexecinfo diff --git a/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in b/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in deleted file mode 100644 index 64f7c6ba..00000000 --- a/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Type=Application -Exec=sh -c "PATH=$PATH:@QT5_QMAKE@ qtcreator %F" -Name=Qt Creator -GenericName=C++ IDE for developing Qt applications -X-KDE-StartupNotify=true -Icon=QtProject-qtcreator -Terminal=false -Categories=Development;IDE;Qt; -MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource; diff --git a/recipes-qt/qt5/qt5-creator_3.5.1.bb b/recipes-qt/qt5/qt5-creator_3.5.1.bb deleted file mode 100644 index fe9cb414..00000000 --- a/recipes-qt/qt5/qt5-creator_3.5.1.bb +++ /dev/null @@ -1,93 +0,0 @@ -SUMMARY = "Qt Creator is a new cross-platform Qt IDE" - -# Note: -# The toolchain auto detection does not work completely yet. To compile/debug -# open menu 'Tools/Options and select 'Build & Run'. In tab 'Kits' select 'Desktop' -# 'Compiler/Manage...' and add local gcc'. At 'Debugger' select -# 'System GDB at /usr/bin/gdb. - -HOMEPAGE = "https://qt-project.org/" -LICENSE = "LGPLv2.1 | GPLv3" -LIC_FILES_CHKSUM = " \ - file://LGPL_EXCEPTION.TXT;md5=f4748b0d1a72c5c8fb5dab2dd1f7fa46 \ - file://LICENSE.LGPLv21;md5=825920de5f6db2eeb1bebe625476346d \ - file://LICENSE.LGPLv3;md5=0786418af032b9e608909874f334a2d1 \ -" - -inherit qmake5 - -DEPENDS = "qtbase qtscript qtwebkit qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg qtquick1" -DEPENDS_append_libc-musl = " libexecinfo" - -# Patches from https://github.com/meta-qt5/qtcreator/commits/b5.3.1 -# 5.3.1.meta-qt5.1 -SRC_URI = " \ - http://download.qt.io/official_releases/qtcreator/3.5/${PV}/qt-creator-opensource-src-${PV}.tar.gz \ - file://0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch \ - file://0002-Fix-compilation-with-QT_NO_ACCESSIBILITY.patch \ - file://0003-Qmlpuppet-add-missing-includes.patch \ - file://qtcreator.desktop.in \ -" - -SRC_URI_append_libc-musl = " file://0004-Link-with-libexecinfo-on-musl.patch" - - -SRC_URI[md5sum] = "77aef7df837eba07c7ce6037ee504c05" -SRC_URI[sha256sum] = "5925ac818a08be919094e0f28fb4c5d8896765e0975d54d353e4c50f13d63e65" - -S = "${WORKDIR}/qt-creator-opensource-src-${PV}" - -EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME}" - -LDFLAGS_append_libc-musl = " -lexecinfo " -do_configure_append() { - # Find native tools - sed -i 's:${STAGING_BINDIR}.*/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile - sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile - - # see qtbase-native.inc - # sed -i 's:QT_INSTALL_DOCS=${docdir}:QT_INSTALL_DOCS=${STAGING_DATADIR_NATIVE}${QT_DIR_NAME}/doc:g' ${B}/Makefile -} - -do_compile_append() { - # build docs - #oe_runmake docs_online -} - -do_install() { - oe_runmake install INSTALL_ROOT=${D}${prefix} - oe_runmake install_inst_qch_docs INSTALL_ROOT=${D}${prefix} - # install desktop and ensure that qt-creator finds qmake - install -d ${D}${datadir}/applications - install -m 0644 ${WORKDIR}/qtcreator.desktop.in ${D}${datadir}/applications/qtcreator.desktop - sed -i 's:@QT5_QMAKE@:${OE_QMAKE_PATH_QT_BINS}:g' ${D}${datadir}/applications/qtcreator.desktop -} - -FILES_${PN} += " \ - ${datadir}/qtcreator \ - ${datadir}/icons \ - ${libdir}${QT_DIR_NAME}/qtcreator \ -" -FILES_${PN}-dbg += " \ - ${libdir}${QT_DIR_NAME}/qtcreator/.debug \ - ${libdir}${QT_DIR_NAME}/qtcreator/plugins/.debug \ - ${libdir}${QT_DIR_NAME}/qtcreator/plugins/qmldesigner/.debug \ - ${libdir}${QT_DIR_NAME}/qtcreator/plugins/qbs/plugins/.debug \ -" - -FILES_${PN}-dev += " \ - ${libdir}${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \ -" - -RDEPENDS_${PN} += "perl" -RCONFLICTS_${PN} = "qt-creator" - -# To give best user experience out of the box.. -RRECOMMENDS_${PN} += " \ - packagegroup-qt5-toolchain-target \ - binutils \ - ccache \ - make \ - gcc-symlinks g++-symlinks cpp-symlinks \ - gdb \ -" diff --git a/recipes-qt/qt5/qt5-creator_git.bb b/recipes-qt/qt5/qt5-creator_git.bb new file mode 100644 index 00000000..85bfcc35 --- /dev/null +++ b/recipes-qt/qt5/qt5-creator_git.bb @@ -0,0 +1,109 @@ +SUMMARY = "Qt Creator is a new cross-platform Qt IDE" + +# Note: +# The toolchain auto detection does not work completely yet. To compile/debug +# open menu 'Tools/Options and select 'Build & Run'. In tab 'Kits' select 'Desktop' +# 'Compiler/Manage...' and add local gcc'. At 'Debugger' select +# 'System GDB at /usr/bin/gdb. + +HOMEPAGE = "https://qt-project.org/" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = " \ + file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ +" + +inherit qmake5 pkgconfig mime-xdg + +DEPENDS += "qtbase qtscript qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg chrpath-replacement-native zlib" +DEPENDS:append:libc-musl = " libexecinfo" + +SRCREV = "39ac7b1bf6add473026687003311b702742b6b21" +PV = "4.15.2+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.15 \ + file://0001-app-Use-malloc_trim-only-on-glibc.patch \ + file://0002-clangformat-Fix-build-with-LLVM-13.patch \ + file://0003-clangformat-Fix-build-with-LLVM-13.patch \ +" +SRC_URI:append:libc-musl = " file://0001-Link-with-libexecinfo-on-musl.patch" + +S = "${WORKDIR}/git" + +EXTRA_QMAKEVARS_PRE += " \ + IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME} \ + CONFIG+=disable_external_rpath \ +" + +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" + +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 + 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 + fi +} + +do_install() { + oe_runmake install INSTALL_ROOT=${D}${prefix} + 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} += " \ + ${datadir}/qtcreator \ + ${datadir}/metainfo \ + ${datadir}/icons \ + ${libdir}${QT_DIR_NAME}/qtcreator \ +" + +FILES:${PN}-dev += " \ + ${libdir}${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \ +" + +RDEPENDS:${PN} += "perl python3" +RCONFLICTS:${PN} = "qt-creator" + +# To give best user experience out of the box.. +RRECOMMENDS:${PN} += " \ + packagegroup-qt5-toolchain-target \ + binutils \ + ccache \ + make \ + gcc-symlinks g++-symlinks cpp-symlinks \ + gdb \ + 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' +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/qt5-git.inc b/recipes-qt/qt5/qt5-git.inc index 3cb44c2b..a6d757af 100644 --- a/recipes-qt/qt5/qt5-git.inc +++ b/recipes-qt/qt5/qt5-git.inc @@ -1,17 +1,18 @@ # Copyright (C) 2012-2016 O.S. Systems Software LTDA. -# Copyright (C) 2013-2018 Martin Jansa <martin.jansa@gmail.com> +# Copyright (C) 2013-2022 Martin Jansa <martin.jansa@gmail.com> QT_MODULE ?= "${BPN}" -QT_MODULE_BRANCH ?= "5.9" +QT_MODULE_BRANCH ?= "5.15" QT_MODULE_BRANCH_PARAM ?= "branch=${QT_MODULE_BRANCH};nobranch=1" +QT_MODULE_REPO ?= "${QT_MODULE}.git" # each module needs to define valid SRCREV SRC_URI = " \ - ${QT_GIT}/${QT_MODULE}.git;name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL} \ + ${QT_GIT}/${QT_MODULE_REPO};name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL} \ " -CVE_PRODUCT = "qt" +CVE_PRODUCT:append = " qt" S = "${WORKDIR}/git" -PV = "5.9.8+git${SRCPV}" +PV = "5.15.17+git${SRCPV}" diff --git a/recipes-qt/qt5/qt5-lts.inc b/recipes-qt/qt5/qt5-lts.inc new file mode 100644 index 00000000..af611ce4 --- /dev/null +++ b/recipes-qt/qt5/qt5-lts.inc @@ -0,0 +1,9 @@ +require qt5-git.inc + +QT_LTS_GIT ?= "git://codereview.qt-project.org/${QT_GIT_PROJECT}" +QT_GIT = "${QT_LTS_GIT}" +QT_LTS_GIT_PROTOCOL ?= "ssh" +QT_GIT_PROTOCOL = "${QT_LTS_GIT_PROTOCOL}" +QT_MODULE_BRANCH = "tqtc/lts-5.15" +QT_LTS_MODULE_REPO ?= "tqtc-${QT_MODULE}.git" +QT_MODULE_REPO = "${QT_LTS_MODULE_REPO}" diff --git a/recipes-qt/qt5/qt5-native.inc b/recipes-qt/qt5/qt5-native.inc index 85350288..3afc3f28 100644 --- a/recipes-qt/qt5/qt5-native.inc +++ b/recipes-qt/qt5/qt5-native.inc @@ -1,4 +1,4 @@ -inherit native qmake5_base +inherit qmake5_base native # we don't want conflicts with qt4 OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" @@ -10,10 +10,3 @@ OE_QMAKE_PATH_DOCS = "${OE_QMAKE_PATH_QT_DOCS}" OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}" OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}" OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}" - -# Regenerate header files when they are included in source tarball -# Otherwise cmake files don't set PRIVATE_HEADERS correctly -do_configure_prepend() { - rm -rf ${S}/include - mkdir -p ${S}/.git || true -} diff --git a/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch b/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch new file mode 100644 index 00000000..d4fb132c --- /dev/null +++ b/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch @@ -0,0 +1,75 @@ +From 29665ab1a97bb0ca4b74275f5526e9afe09ccc64 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Tue, 18 Dec 2018 17:38:21 +0000 +Subject: [PATCH] VirtualboxTouchScreenHandler initialize m_mouse + +* make sure m_mouse is initialized for cases where shutdown is called before: + m_mouse = EvdevMouseHandler::create(evdev_device, specification); + e.g. with following ioctl fails with vboxguest driver from vanila 4.19 kernel: + ioctl(m_fd, _IOWR('V', 10, features), &features); + +* fixes following crash: +(gdb) set args -plugin evdevkeyboard -plugin vboxtouch +(gdb) r +Starting program: /usr/sbin/luna-next -plugin evdevkeyboard -plugin vboxtouch +warning: File "/usr/lib/libstdc++.so.6.0.25-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". +To enable execution of this file add + add-auto-load-safe-path /usr/lib/libstdc++.so.6.0.25-gdb.py +line to your configuration file "/media/internal/.gdbinit". +To completely disable this security protection add + set auto-load safe-path / +line to your configuration file "/media/internal/.gdbinit". +For more information about this security protection see the +"Auto-loading safe path" section in the GDB manual. E.g., run from the shell: + info "(gdb)Auto-loading safe path" +[Thread debugging using libthread_db enabled] +Using host libthread_db library "/lib/libthread_db.so.1". +** Message: 17:05:20.472: App to allow in Low memory: org.webosports.app.phone +** Message: 17:05:20.479: App to allow in Low memory: org.webosports.app.contacts +** Message: 17:05:20.479: App to allow in Low memory: org.webosports.app.messaging + +** (process:993): WARNING **: 17:05:20.485: Settings::load(): 6 application paths defined: +** Message: 17:05:20.487: Running on authenticamd with hardware type emulator +pci id for fd 7: 80ee:beef, driver (null) +BFD: error: /usr/lib/llvm6.0/.debug/libLLVM-6.0.so(.debug_info) is too large (0x2a793ad1 bytes) +warning: Can't read data for section '.debug_info' in file '/usr/lib/llvm6.0/.debug/libLLVM-6.0.so' +[New Thread 0xafe21b40 (LWP 997)] +[New Thread 0xaf620b40 (LWP 998)] +BFD: error: /usr/lib/.debug/libQt5Quick.so.5.11.3(.debug_info) is too large (0x5a05c4d bytes) +warning: Can't read data for section '.debug_info' in file '/usr/lib/.debug/libQt5Quick.so.5.11.3' +DEBUG: 17:05:39.393: vboxtouch: Using vbox device /dev/vboxguest +WARNING: 17:05:39.402: vboxtouch setpointershape: ioctl error: Invalid argument +WARNING: 17:05:39.403: vboxtouch init: ioctl error: Invalid argument +DEBUG: 17:05:39.403: shutting down vboxtouch + +Thread 1 "luna-next" received signal SIGSEGV, Segmentation fault. +0xaee18e1c in VirtualboxTouchScreenHandler::shutdown (this=0x80da570) at /usr/src/debug/qt5-plugin-generic-vboxtouch/1.1.4+gitrAUTOINC+3f2bdb5a1d-r0/git/vboxtouch/vboxtouch.cpp:179 +179 delete m_mouse; +(gdb) bt + #0 0xaee18e1c in VirtualboxTouchScreenHandler::shutdown (this=0x80da570) at /usr/src/debug/qt5-plugin-generic-vboxtouch/1.1.4+gitrAUTOINC+3f2bdb5a1d-r0/git/vboxtouch/vboxtouch.cpp:179 + #1 0xaee19319 in VirtualboxTouchScreenHandler::VirtualboxTouchScreenHandler (this=0x80da570, specification=..., parent=0x0) at /usr/src/debug/qt5-plugin-generic-vboxtouch/1.1.4+gitrAUTOINC+3f2bdb5a1d-r0/git/vboxtouch/vboxtouch.cpp:122 + #2 0xaee1877b in VirtualboxTouchScreenPlugin::create (this=0x80d7a30, key=..., specification=...) at /usr/src/debug/qt5-plugin-generic-vboxtouch/1.1.4+gitrAUTOINC+3f2bdb5a1d-r0/git/vboxtouch/main.cpp:51 + #3 0xb7afc6c1 in qLoadPlugin<QObject, QGenericPlugin, QString const&> (key=..., loader=<optimized out>) at ../../include/QtCore/../../../git/src/corelib/kernel/qobject.h:499 + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Upstream-Status: Pending +--- + vboxtouch/vboxtouch.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/vboxtouch/vboxtouch.cpp b/vboxtouch/vboxtouch.cpp +index 6e0aac8..345fdcb 100644 +--- a/vboxtouch/vboxtouch.cpp ++++ b/vboxtouch/vboxtouch.cpp +@@ -82,7 +82,7 @@ const static vbox_mouse_status_request blank_mouse_status_request = { + #define VBOXMOUSE_IS_ABSOLUTE 2 + + VirtualboxTouchScreenHandler::VirtualboxTouchScreenHandler(const QString &specification, QObject *parent) +- : QObject(parent), m_fd(-1), m_notifier(0), m_device(0), m_failures(0), ++ : QObject(parent), m_fd(-1), m_notifier(0), m_device(0), m_failures(0), m_mouse(0), + m_button(false), m_x(0), m_y(0) + { + setObjectName("Virtualbox Touch Handler"); +-- +2.17.1 + diff --git a/recipes-qt/qt5/qt5-plugin-generic-vboxtouch/0001-include-errno.h-for-errno-definition.patch b/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/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/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb b/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb index 383145be..60eeb32b 100644 --- a/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb +++ b/recipes-qt/qt5/qt5-plugin-generic-vboxtouch_git.bb @@ -3,7 +3,7 @@ It uses the integrated pointer feature to create a smooth conversion from \ the host pointer to touchscreen events in the guest, without grabbing the \ host pointer." SUMMARY = "Touchscreen driver for integrated mouse pointer in VirtualBox" -LICENSE = "LGPL-2.1 & GPL-3.0" +LICENSE = "LGPL-2.1-only & GPL-3.0-only" LIC_FILES_CHKSUM = " \ file://vboxtouch.cpp;beginline=1;endline=22;md5=ca51db8f7c0606c77f702dcee4cf31d9 \ file://evdevmousehandler.cpp;beginline=1;endline=40;md5=9081062f6e7f74b6e62ad7ecee4a71be \ @@ -16,12 +16,15 @@ 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;branch=master;protocol=https \ + file://0001-VirtualboxTouchScreenHandler-initialize-m_mouse.patch;patchdir=.. \ + file://0001-include-errno.h-for-errno-definition.patch;patchdir=.. \ + " SRCREV = "3f2bdb5a1d346f02d5ab185522271ba2288a42bb" S = "${WORKDIR}/git/vboxtouch" inherit qmake5 -FILES_${PN} += "${OE_QMAKE_PATH_PLUGINS}/generic/libvboxtouchplugin.so" -FILES_${PN}-dbg += "${OE_QMAKE_PATH_PLUGINS}/generic/.debug/" -FILES_${PN}-dev += "${OE_QMAKE_PATH_LIBS}/cmake/*" +FILES:${PN} += "${OE_QMAKE_PATH_PLUGINS}/generic/libvboxtouchplugin.so" +FILES:${PN}-dev += "${OE_QMAKE_PATH_LIBS}/cmake/*" + diff --git a/recipes-qt/qt5/qt5-ptest.inc b/recipes-qt/qt5/qt5-ptest.inc index 97bce88e..75d71ba9 100644 --- a/recipes-qt/qt5/qt5-ptest.inc +++ b/recipes-qt/qt5/qt5-ptest.inc @@ -1,63 +1,26 @@ +FILESEXTRAPATHS:append := ":${THISDIR}/ptest" SRC_URI += "file://run-ptest" inherit ptest -addtask do_populate_sysroot after do_install before do_compile_ptest_base -deltask do_compile_ptest_base -addtask do_compile_ptest_base after do_populate_sysroot before do_install_ptest_base -deltask do_install_ptest_base -addtask do_install_ptest_base after do_compile_ptest_base before do_package - do_compile_ptest() { - cd ${S}/tests - qmake -o Makefile tests.pro + mkdir -p ${B}/tests + cd ${B}/tests + ${OE_QMAKE_QMAKE} -o Makefile ${S}/tests/tests.pro oe_runmake } -do_populate_sysroot_append_class-target() { - workdir = d.getVar('WORKDIR', True) - srcdir = workdir + '/sysroot-destdir/usr/' - destdir = workdir + '/recipe-sysroot/usr/' - - def copyFiles(sourceDir, targetDir, filelist): - for file in os.listdir(sourceDir): - sourceFile = os.path.join(sourceDir, file) - targetFile = os.path.join(targetDir, file) - filelist.append(targetFile) #record the file list - if os.path.isfile(sourceFile): - if not os.path.exists(targetDir): - os.makedirs(targetDir) - if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))): - open(targetFile, "wb").write(open(sourceFile, "rb").read()) - if os.path.isdir(sourceFile): - First_Directory = False - copyFiles(sourceFile, targetFile, filelist) - - if os.path.exists(destdir): - Tmpfilelist = [] - copyFiles(srcdir, destdir, Tmpfilelist) - - fp=open(workdir + '/filelist', 'w') - for i in Tmpfilelist: - fp.write(i) - fp.write("\n") - fp.close() -} +DEBUG_PREFIX_MAP += "\ + -fmacro-prefix-map=${D}= \ +" fakeroot do_install_ptest() { mkdir -p ${D}${PTEST_PATH} t=${D}${PTEST_PATH} - for var in ` find ${S}/tests/auto/ -name tst_*`; do + 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 - for file in `cat ${WORKDIR}/filelist`; do - if [ -f $file ]; then - rm -f $file - fi - done - rm -f ${WORKDIR}/filelist } - diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc index 4b5fe8a8..2f8de7e0 100644 --- a/recipes-qt/qt5/qt5.inc +++ b/recipes-qt/qt5/qt5.inc @@ -1,5 +1,5 @@ # Copyright (C) 2012, 2014 O.S. Systems Software LTDA. -# Copyright (C) 2013 Martin Jansa <martin.jansa@gmail.com> +# Copyright (C) 2013-2018 Martin Jansa <martin.jansa@gmail.com> inherit qmake5 @@ -7,8 +7,10 @@ PACKAGECONFIG_OPENSSL ?= "openssl" PACKAGECONFIG[examples] = "" PACKAGECONFIG[tests] = "" -EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'QT_BUILD_PARTS+=examples', '', d)}" -EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tests', 'QT_BUILD_PARTS+=tests', '', d)}" +PACKAGECONFIG[qtquickcompiler] = ",,qtdeclarative-native" +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 OE_QMAKE_PATH_HEADERS = "${OE_QMAKE_PATH_QT_HEADERS}" @@ -35,70 +37,47 @@ python __anonymous() { d.setVar("PACKAGE_ARCH", tarch) } -# Regenerate header files when they are included in source tarball -# Otherwise cmake files don't set PRIVATE_HEADERS correctly -do_configure_prepend() { - rm -rf ${S}/include - mkdir -p ${S}/.git || true +# if building static Qt5, add qtdeclarative-native dependency to all recipes +# that depend on qtdeclarative as it's required for qmlimportscannertool +python __anonymous() { + if bb.utils.contains('DISTRO_FEATURES', "qt5-static", True, False, d): + if bb.utils.contains('DEPENDS', "qtdeclarative", True, False, d): + d.appendVar("DEPENDS", " qtdeclarative-native") } # Many examples come with libraries installed outside of standard libdir, # suppress QA check complaining -INSANE_SKIP_${PN}-dbg += "libdir" -INSANE_SKIP_${PN}-examples += "libdir" -INSANE_SKIP_${PN}-examples-dbg += "libdir" -INSANE_SKIP_${PN}-examples-dev += "libdir dev-elf" +INSANE_SKIP:${PN}-dbg += "libdir" +INSANE_SKIP:${PN}-examples += "libdir staticdev dev-so" -PACKAGES =. "${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmldesigner ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples " +PACKAGES =. "${PN}-qmldesigner ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples " -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-dbg = "1" +ALLOW_EMPTY:${PN} = "1" +ALLOW_EMPTY:${PN}-mkspecs = "1" +ALLOW_EMPTY:${PN}-plugins = "1" +ALLOW_EMPTY:${PN}-qmlplugins = "1" -RRECOMMENDS_${PN} = " \ +RRECOMMENDS:${PN} = " \ ${PN}-plugins \ ${PN}-qmlplugins \ " -RRECOMMENDS_${PN}_class-native = "" +RRECOMMENDS:${PN}:class-native = "" -RRECOMMENDS_${PN}-dev = " \ +RRECOMMENDS:${PN}-dev = " \ ${PN} \ ${PN}-mkspecs \ ${PN}-qmldesigner \ " -RRECOMMENDS_${PN}-dbg = " \ - ${PN}-plugins-dbg \ - ${PN}-qmlplugins-dbg \ - " - -# extra -dbg packages -FILES_${PN}-qmlplugins-dbg = " \ - ${OE_QMAKE_PATH_QML}/*/.debug \ - ${OE_QMAKE_PATH_QML}/*/*/.debug \ - ${OE_QMAKE_PATH_QML}/*/*/*/.debug \ - ${OE_QMAKE_PATH_QML}/*/*/*/*/.debug \ - ${OE_QMAKE_PATH_IMPORTS}/*/.debug \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/.debug \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*/.debug \ -" -FILES_${PN}-tools-dbg = " \ - ${OE_QMAKE_PATH_BINS}/.debug \ -" -FILES_${PN}-plugins-dbg = " \ - ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \ - ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \ - ${OE_QMAKE_PATH_PLUGINS}/*/*/*/.debug/* \ -" - # extra packages -FILES_${PN}-qmldesigner += " \ +FILES:${PN}-qmldesigner += " \ ${OE_QMAKE_PATH_QML}/*/designer \ ${OE_QMAKE_PATH_QML}/*/*/designer \ ${OE_QMAKE_PATH_QML}/*/*/*/designer \ " # qmlplugins 1-4 levels of subdirs qmldir + *{.so,*.qmltypes,*.qml,*.qmlc,*.js,*.jsc} -FILES_${PN}-qmlplugins = " \ +FILES:${PN}-qmlplugins = " \ ${OE_QMAKE_PATH_QML}/*.qmltypes \ ${OE_QMAKE_PATH_QML}/*/*${SOLIBSDEV} \ ${OE_QMAKE_PATH_QML}/*/qmldir \ @@ -134,36 +113,27 @@ FILES_${PN}-qmlplugins = " \ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.js \ ${OE_QMAKE_PATH_QML}/*/*/*/*/*.jsc \ ${OE_QMAKE_PATH_QML}/*/*/*/*/*/*.png \ - ${OE_QMAKE_PATH_IMPORTS}/*.qmltypes \ - ${OE_QMAKE_PATH_IMPORTS}/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_IMPORTS}/*/*.qmltypes \ - ${OE_QMAKE_PATH_IMPORTS}/*/qmldir \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*.qmltypes \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/qmldir \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*/*.qmltypes \ - ${OE_QMAKE_PATH_IMPORTS}/*/*/*/qmldir \ " -FILES_${PN}-tools = " \ +FILES:${PN}-tools = " \ ${OE_QMAKE_PATH_BINS}/* \ " -FILES_${PN}-plugins = " \ +FILES:${PN}-plugins = " \ ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \ ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \ ${OE_QMAKE_PATH_PLUGINS}/*/*/*/*${SOLIBSDEV} \ " -FILES_${PN}-mkspecs = "\ +FILES:${PN}-mkspecs = "\ ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ " # modifications to normal packages -FILES_${PN} += " \ +FILES:${PN} += " \ + ${OE_QMAKE_PATH_LIBS}/metatypes \ ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBS} \ ${OE_QMAKE_PATH_LIBEXECS} \ " -FILES_${PN}-dev += " \ +FILES:${PN}-dev += " \ ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBSDEV} \ ${OE_QMAKE_PATH_LIBS}/pkgconfig \ ${OE_QMAKE_PATH_LIBS}/cmake/* \ @@ -171,45 +141,23 @@ FILES_${PN}-dev += " \ ${OE_QMAKE_PATH_LIBS}/*.la \ ${OE_QMAKE_PATH_HEADERS}/* \ " -FILES_${PN}-dbg += " \ - ${OE_QMAKE_PATH_LIBS}/.debug \ - ${OE_QMAKE_PATH_LIBEXECS}/.debug \ -" -FILES_${PN}-staticdev += " \ +FILES:${PN}-staticdev += " \ ${OE_QMAKE_PATH_LIBS}/*.a \ -" -FILES_${PN}-examples = " \ - ${OE_QMAKE_PATH_EXAMPLES}/* \ -" -FILES_${PN}-examples-dev = " \ - ${OE_QMAKE_PATH_EXAMPLES}/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*${SOLIBSDEV} \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*${SOLIBSDEV} \ -" -FILES_${PN}-examples-dbg = " \ - ${OE_QMAKE_PATH_EXAMPLES}/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/.debug \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/.debug \ -" -FILES_${PN}-examples-staticdev = " \ - ${OE_QMAKE_PATH_EXAMPLES}/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*.a \ - ${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*/*/*.a \ -" - -PATH_prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:" + ${OE_QMAKE_PATH_PLUGINS}/*/*.a \ + ${OE_QMAKE_PATH_PLUGINS}/*/*.prl \ + ${OE_QMAKE_PATH_PLUGINS}/*/*/*.a \ + ${OE_QMAKE_PATH_PLUGINS}/*/*/*.prl \ + ${OE_QMAKE_PATH_QML}/*/*.a \ + ${OE_QMAKE_PATH_QML}/*/*.prl \ + ${OE_QMAKE_PATH_QML}/*/*/*.a \ + ${OE_QMAKE_PATH_QML}/*/*/*.prl \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.a \ + ${OE_QMAKE_PATH_QML}/*/*/*/*.prl \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*.a \ + ${OE_QMAKE_PATH_QML}/*/*/*/*/*.prl \ +" +FILES:${PN}-examples = " \ + ${OE_QMAKE_PATH_EXAMPLES} \ +" + +PATH:prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:" diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb index cffdca2f..2ed8aa50 100644 --- a/recipes-qt/qt5/qtbase-native_git.bb +++ b/recipes-qt/qt5/qtbase-native_git.bb @@ -3,25 +3,22 @@ DEPENDS = "zlib-native dbus-native" SECTION = "libs" HOMEPAGE = "http://qt-project.org" -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \ - file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ + file://LICENSE.QT-LICENSE-AGREEMENT;md5=485e1d58b313def058a0d72598aa6efe \ " require qt5-native.inc -require qt5-git.inc +require qt5-lts.inc # common for qtbase-native, qtbase-nativesdk and qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-shared -# 5.9.meta-qt5-shared.5 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-shared +# 5.15.meta-qt5-shared.4 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -30,40 +27,58 @@ SRC_URI += "\ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \ file://0007-Delete-qlonglong-and-qulonglong.patch \ - file://0008-Replace-pthread_yield-with-sched_yield.patch \ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \ + file://0012-Disable-ltcg-for-host_build.patch \ + file://0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ + file://0014-corelib-Include-sys-types.h-for-uint32_t.patch \ + file://0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0017-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0018-Revert-Fix-workaround-in-pthread-destructor.patch \ + file://0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch \ + file://0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch \ + file://0022-testlib-don-t-track-the-build-or-source-directories.patch \ " # common for qtbase-native and nativesdk-qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-native -# 5.9.meta-qt5-native.5 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-native +# 5.15.meta-qt5-native.4 SRC_URI += " \ - file://0012-Always-build-uic.patch \ + file://0023-Always-build-uic-and-qvkgen.patch \ + file://0024-Avoid-renameeat2-for-native-sdk-builds.patch \ +" + +# only for qtbase-native +SRC_URI += " \ + file://0025-Bootstrap-without-linkat-feature.patch \ " CLEANBROKEN = "1" -XPLATFORM_toolchain-clang = "linux-oe-clang" +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-qml-debug \ -no-sql-mysql \ -no-sql-sqlite \ + -no-sql-psql \ -no-opengl \ - -no-openssl \ + -no-vulkan \ -no-xcb \ -no-icu \ -verbose \ @@ -86,18 +101,25 @@ PACKAGECONFIG_CONFARGS = " \ -nomake examples \ -nomake tests \ -no-rpath \ + -no-feature-linkat \ -platform ${XPLATFORM} \ + ${PACKAGECONFIG_CONFARGS} \ " # for qtbase configuration we need default settings # since we cannot set empty set filename to a not existent file deltask generate_qt_config_file -do_configure_prepend() { +do_configure:prepend() { + # Regenerate header files when they are included in source tarball + # Otherwise cmake files don't set PRIVATE_HEADERS correctly + rm -rf ${S}/include + mkdir -p ${S}/.git || true + # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" touch ${S}/mkspecs/oe-device-extra.pri - MAKEFLAGS="${PARALLEL_MAKE}" ${S}/configure -opensource -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() { @@ -118,11 +140,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 = "159f7e9c39c57177d25f524ae3cad4e533b89da8" +SRCREV = "8a25db3204f39a228d14148d9cdf414393d239a5" diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch index 130c5890..85789f0d 100644 --- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch +++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch @@ -1,4 +1,4 @@ -From a77e7c2996ca25cc59b04b165a24575440dd7efa Mon Sep 17 00:00:00 2001 +From 8f7ac021d483eca1b181fd9f0551f317aa7c5965 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 @@ -19,21 +19,23 @@ Upstream-Status: Inappropriate [embedded specific] Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + --- configure | 2 +- - mkspecs/features/configure.prf | 4 ++-- + mkspecs/features/configure.prf | 4 +-- + mkspecs/features/qt.prf | 6 ++--- mkspecs/features/qt_functions.prf | 2 +- - mkspecs/linux-oe-g++/qmake.conf | 42 ++++++++++++++++++++++++++++++++++++ + mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++++++++++++++++ mkspecs/linux-oe-g++/qplatformdefs.h | 1 + - 5 files changed, 47 insertions(+), 4 deletions(-) + 6 files changed, 48 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 08b49a8..5876721 100755 +index b6c9b462f2..4e3fcd41d1 100755 --- a/configure +++ b/configure -@@ -712,7 +712,7 @@ fi +@@ -708,7 +708,7 @@ fi # is where the resulting variable is written to setBootstrapVariable() { @@ -43,7 +45,7 @@ index 08b49a8..5876721 100755 # build qmake diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf -index 934a18a..0f5b1b6 100644 +index 934a18a924..0f5b1b6333 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -46,14 +46,14 @@ defineTest(qtCompileTest) { @@ -63,11 +65,35 @@ index 934a18a..0f5b1b6 100644 log("yes$$escape_expand(\\n)") msg = "test $$1 succeeded" write_file($$QMAKE_CONFIG_LOG, msg, append) +diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf +index 69d1954306..37f7c9c4a2 100644 +--- a/mkspecs/features/qt.prf ++++ b/mkspecs/features/qt.prf +@@ -151,7 +151,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 += $$plug_path/$$plug_type/$$plug_name + } else { + LIBS += -l$${plug}$$qtPlatformTargetSuffix() +@@ -274,8 +274,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 { +- exists($$[QT_INSTALL_QML/get]): \ +- QMLPATHS *= $$[QT_INSTALL_QML/get] ++ exists($$[QT_INSTALL_QML]): \ ++ QMLPATHS *= $$[QT_INSTALL_QML] + + # run qmlimportscanner + qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf -index 1903e50..c093dd4 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) { @@ -78,10 +104,10 @@ index 1903e50..c093dd4 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 0000000..30d31ed +index 0000000000..087e13bb91 --- /dev/null +++ b/mkspecs/linux-oe-g++/qmake.conf -@@ -0,0 +1,42 @@ +@@ -0,0 +1,40 @@ +# +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded +# @@ -92,8 +118,9 @@ index 0000000..30d31ed + +include(../common/linux.conf) + -+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip ++# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar, objcopy and strip +QMAKE_AR = $$(OE_QMAKE_AR) cqs ++QMAKE_OBJCOPY = $$(OE_QMAKE_OBJCOPY) +QMAKE_STRIP = $$(OE_QMAKE_STRIP) + +include(../common/gcc-base-unix.conf) @@ -106,17 +133,14 @@ index 0000000..30d31ed +include(../common/g++-unix.conf) + +# tc settings from g++-base.conf -+QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc +QMAKE_CC = $$(OE_QMAKE_CC) +QMAKE_CXX = $$(OE_QMAKE_CXX) + -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS) -+ +QMAKE_LINK = $$(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK) +QMAKE_LINK_C = $$(OE_QMAKE_LINK) +QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) -+ ++QMAKE_CFLAGS_ISYSTEM = +# for the SDK +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) + @@ -126,7 +150,7 @@ index 0000000..30d31ed +load(qt_config) diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h new file mode 100644 -index 0000000..5d22fb4 +index 0000000000..5d22fb4101 --- /dev/null +++ b/mkspecs/linux-oe-g++/qplatformdefs.h @@ -0,0 +1 @@ diff --git a/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch index 5d247d19..80c6e042 100644 --- a/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch +++ b/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch @@ -1,4 +1,4 @@ -From 3ffab93bd68226b63350a38fdb64b64ab66a808b Mon Sep 17 00:00:00 2001 +From c92850bf1a43d0a0271f8c5e356b91f710189ebf 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,38 +19,38 @@ 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 545b9a3..c991a9b 100644 +index 0d02edb41c..ec934c3931 100644 --- a/src/corelib/Qt5CoreConfigExtras.cmake.in +++ b/src/corelib/Qt5CoreConfigExtras.cmake.in -@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake) +@@ -8,7 +8,7 @@ if (NOT TARGET Qt5::qmake) !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") !!ELSE - set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake${OE_QMAKE_BIN_SUFFIX}\") !!ENDIF _qt5_Core_check_file_exists(${imported_location}) -@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc) +@@ -23,7 +23,7 @@ if (NOT TARGET Qt5::moc) !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") !!ELSE - set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc${OE_QMAKE_BIN_SUFFIX}\") !!ENDIF _qt5_Core_check_file_exists(${imported_location}) -@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc) +@@ -40,7 +40,7 @@ if (NOT TARGET Qt5::rcc) !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") !!ELSE - set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\") ++ 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 1d94715..301af8f 100644 +index a814678f7b..8546e4b4dc 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 1d94715..301af8f 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 1d94715..301af8f 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 99d87e2..5621dc0 100644 +index 83d8004a08..d0651ee44b 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 99d87e2..5621dc0 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/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch index e137b089..170ade15 100644 --- a/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch +++ b/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch @@ -1,4 +1,4 @@ -From b3c893e8af76e64d59051401fd86acd24f4d5369 Mon Sep 17 00:00:00 2001 +From 31a126a7e5e08fe1d3ba84639d2121453a71606f 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 @@ -13,23 +13,24 @@ Upstream-Status: Inappropriate [embedded specific] qmake from sstate and replacing all configured paths in it with qt.conf from environment). +Change-Id: I41595c6ce7514e8f197d0a19a1308c9460037d1b Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- src/corelib/global/qlibraryinfo.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp -index b4ba0b5..11d4c00 100644 +index 8ceb763491..ea102f788d 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 - QString qtconfig = qmake_libraryInfoFile(); + QByteArray config = getenv("OE_QMAKE_QTCONF_PATH"); + QString qtconfig = QFile::decodeName(config); -+ if(!QFile::exists(qtconfig)) ++ if(qtconfig.isEmpty() || !QFile::exists(qtconfig)) + qtconfig = qmake_libraryInfoFile(); if (QFile::exists(qtconfig)) return new QSettings(qtconfig, QSettings::IniFormat); diff --git a/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch b/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch index 9d1f2963..ccac9b69 100644 --- a/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch +++ b/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch @@ -1,4 +1,4 @@ -From 4c827328e3d654b4e179864149cb9edee1a58f53 Mon Sep 17 00:00:00 2001 +From 20cadec59408c63adcdb41619a886422e34e6410 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 @@ -10,17 +10,18 @@ Also update length of EXT_PREFIX and HOST_PREFIX now. Change-Id: If98dd57160efe9c98c36148cdf872f50b3d38118 Signed-off-by: Denys Dmytriyenko <denys@ti.com> +Upstream-Status: Pending --- configure.pri | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.pri b/configure.pri -index dc703ec..961b41e 100644 +index 49755f7abf..f84862d1ca 100644 --- a/configure.pri +++ b/configure.pri -@@ -796,10 +796,10 @@ defineTest(qtConfOutput_preparePaths) { - "static const char qt_configure_installation [12+11] = \"qt_instdate=2012-12-20\";" \ - "" \ +@@ -883,10 +883,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/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch b/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch index 8dade548..136b4ce1 100644 --- a/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch +++ b/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch @@ -1,19 +1,21 @@ -From 6ca3f881b0d0f6feb824aad35ce85ddb3be2146b Mon Sep 17 00:00:00 2001 +From 33e847c682efe11e10a0a42a262f096343418b97 Mon Sep 17 00:00:00 2001 From: Samuli Piippo <samuli.piippo@qt.io> Date: Mon, 24 Oct 2016 09:45:18 +0300 Subject: [PATCH] Disable all unknown features instead of erroring out Task-number: QTBUG-56656 Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447 +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- mkspecs/features/qt_configure.prf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf -index d5dcda2..501151d 100644 +index 6537d98c5d..06d23e3847 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf -@@ -1251,7 +1251,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/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch b/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch index 9aefbf9f..a7864efb 100644 --- a/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch +++ b/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch @@ -1,4 +1,4 @@ -From 9c6fc0f0e5f2da02b6b2a21c113f6b29588fc52c Mon Sep 17 00:00:00 2001 +From 4afd71e88a906eba8a8f14a12599abcc8582d22c 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,12 +30,12 @@ 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 55c74aa..f9ec328 100644 +index db18dbece6..13908c8fe5 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -@@ -9,6 +9,11 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0) +@@ -2,6 +2,11 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0) + message(FATAL_ERROR \"Qt 5 $${CMAKE_MODULE_NAME} module requires at least CMake version 3.1.0\") endif() - !!ENDIF +if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) + message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined") @@ -46,11 +46,11 @@ index 55c74aa..f9ec328 100644 !!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in -index 75b5348..ed31888 100644 +index 6b6544f932..d317912632 100644 --- a/src/corelib/Qt5Config.cmake.in +++ b/src/corelib/Qt5Config.cmake.in -@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 2.8.9) - message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\") +@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0) + message(FATAL_ERROR \"Qt5 requires at least CMake version 3.1.0\") endif() +if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) diff --git a/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch b/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch index 3d687c71..3210f2c8 100644 --- a/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch +++ b/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch @@ -1,15 +1,16 @@ -From 70eb95bcde17f4e67b4660caa8183e24ec876102 Mon Sep 17 00:00:00 2001 +From 7974ec566c4ede9cbd73fd0df2c35d7ff3dbcba5 Mon Sep 17 00:00:00 2001 From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> Date: Wed, 7 Jun 2017 21:00:49 +0900 Subject: [PATCH] Delete qlonglong and qulonglong Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> +Upstream-Status: Pending --- tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro -index 09458bd..59a120e 100644 +index 09458bd9c3..59a120eb26 100644 --- a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro +++ b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro @@ -5,10 +5,8 @@ SUBDIRS=\ diff --git a/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch b/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch deleted file mode 100644 index 71ab6ff6..00000000 --- a/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 08d705e3a5e16ba75b0ca281400bba0d85f64f77 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 27 Jul 2017 08:02:51 -0700 -Subject: [PATCH] Replace pthread_yield with sched_yield - -On Linux pthead_yield is same as sched_yield implementation wise -and sched_yield is available on all libc -implementations on Linux - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 4 ++-- - tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp | 5 +++-- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -index f9ddd59..2f92db9 100644 ---- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -@@ -34,7 +34,7 @@ - #include "tst_qvariant_common.h" - - #ifdef Q_OS_LINUX --# include <pthread.h> -+# include <sched.h> - #endif - - #include <algorithm> -@@ -197,7 +197,7 @@ protected: - const char *nm = name.constData(); - int tp = qRegisterMetaType<Bar>(nm); - #if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) -- pthread_yield(); -+ sched_yield(); - #endif - QMetaType info(tp); - if (!info.isValid()) { -diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -index f64a88c..997218b 100644 ---- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -@@ -77,6 +77,7 @@ - #include <stdlib.h> - #include <sys/stat.h> - #include <unistd.h> -+#include <sched.h> - #endif - - #include "private/qhostinfo_p.h" -@@ -2138,8 +2139,8 @@ public slots: - - #if defined(Q_OS_MAC) - pthread_yield_np(); --#elif defined Q_OS_LINUX && !defined Q_OS_ANDROID -- pthread_yield(); -+#elif defined Q_OS_LINUX -+ sched_yield(); - #endif - if (!sock->waitForConnected()) { - networkTimeout = true; diff --git a/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch b/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch index d393352e..3cebfc11 100644 --- a/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch +++ b/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch @@ -1,22 +1,23 @@ -From 1b576218b875cd10fcbcbd227d0011fc0bb917da Mon Sep 17 00:00:00 2001 +From 9bf5632187b8f17cc0d626926df2784c38059875 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> +Upstream-Status: Pending --- - mkspecs/linux-oe-clang/qmake.conf | 43 ++++++++++++++++++++++++++++++++++ + mkspecs/linux-oe-clang/qmake.conf | 40 ++++++++++++++++++++++++++ mkspecs/linux-oe-clang/qplatformdefs.h | 1 + - 2 files changed, 44 insertions(+) + 2 files changed, 41 insertions(+) create mode 100644 mkspecs/linux-oe-clang/qmake.conf create mode 100644 mkspecs/linux-oe-clang/qplatformdefs.h diff --git a/mkspecs/linux-oe-clang/qmake.conf b/mkspecs/linux-oe-clang/qmake.conf new file mode 100644 -index 0000000..ffc9f05 +index 0000000000..c09b132ac8 --- /dev/null +++ b/mkspecs/linux-oe-clang/qmake.conf -@@ -0,0 +1,43 @@ +@@ -0,0 +1,40 @@ +# +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded +# @@ -27,10 +28,10 @@ index 0000000..ffc9f05 + +include(../common/linux.conf) + -+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip ++# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar, objcopy and strip +QMAKE_AR = $$(OE_QMAKE_AR) cqs ++QMAKE_OBJCOPY = $$(OE_QMAKE_OBJCOPY) +QMAKE_STRIP = $$(OE_QMAKE_STRIP) -+QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER) + +include(../common/gcc-base-unix.conf) + @@ -42,17 +43,14 @@ index 0000000..ffc9f05 +include(../common/clang.conf) + +# tc settings from g++-base.conf -+QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) clang +QMAKE_CC = $$(OE_QMAKE_CC) +QMAKE_CXX = $$(OE_QMAKE_CXX) + -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS) -+ +QMAKE_LINK = $$(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK) +QMAKE_LINK_C = $$(OE_QMAKE_LINK) +QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) -+ ++QMAKE_CFLAGS_ISYSTEM = +# for the SDK +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) + @@ -62,7 +60,7 @@ index 0000000..ffc9f05 +load(qt_config) diff --git a/mkspecs/linux-oe-clang/qplatformdefs.h b/mkspecs/linux-oe-clang/qplatformdefs.h new file mode 100644 -index 0000000..880c927 +index 0000000000..880c927b21 --- /dev/null +++ b/mkspecs/linux-oe-clang/qplatformdefs.h @@ -0,0 +1 @@ diff --git a/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch b/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch index 6e8aa738..6279dc57 100644 --- a/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch +++ b/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch @@ -1,4 +1,4 @@ -From c295b6fad2183ff47c8f5c061484713f2fe44583 Mon Sep 17 00:00:00 2001 +From 638dcaa0123c170473594d2e44217755008f145e 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 @@ -8,15 +8,16 @@ only when its glibc < 2 and not for other libcswhich may define it as per standards but are not glibc, e.g. musl Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- mkspecs/linux-clang/qplatformdefs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkspecs/linux-clang/qplatformdefs.h b/mkspecs/linux-clang/qplatformdefs.h -index d29225f..a0cdb57 100644 +index a818d973f0..959a508d3a 100644 --- a/mkspecs/linux-clang/qplatformdefs.h +++ b/mkspecs/linux-clang/qplatformdefs.h -@@ -84,10 +84,10 @@ +@@ -81,10 +81,10 @@ #undef QT_SOCKLEN_T diff --git a/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch b/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch index ab124fe3..561cda05 100644 --- a/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch +++ b/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch @@ -1,4 +1,4 @@ -From 5d00d9490866ee2b3eb88463f45b7d5ea0a8654a Mon Sep 17 00:00:00 2001 +From eaf5d2ec9953b8bd299f486fc96d85d2f114c40d 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 @@ -6,14 +6,15 @@ Subject: [PATCH] tst_qlocale: Enable QT_USE_FENV only on glibc musl does not have feenableexcept function Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- - 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 10d78b1..a59f358 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 6ff6995440..1f36c6fefa 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/recipes-qt/qt5/qtbase/0012-Disable-ltcg-for-host_build.patch b/recipes-qt/qt5/qtbase/0012-Disable-ltcg-for-host_build.patch new file mode 100644 index 00000000..66945d21 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0012-Disable-ltcg-for-host_build.patch @@ -0,0 +1,29 @@ +From 5c5461c606b028bf3b31e370a43fba2ce8156b36 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 + +debug-prefix-map does not work correctly for static libraries +when using ltcg, and since host_build compilations link agaist +the libQt5Bootstrap.a library, it breaks source file packaging +into debug packages. + +Task-number: QTBUG-71230 +Upstream-Status: Inappropriate [embedded specific] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + mkspecs/features/ltcg.prf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf +index d81f340edd..dc1d196710 100644 +--- a/mkspecs/features/ltcg.prf ++++ b/mkspecs/features/ltcg.prf +@@ -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/recipes-qt/qt5/qtbase/0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch b/recipes-qt/qt5/qtbase/0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch new file mode 100644 index 00000000..e8c7201b --- /dev/null +++ b/recipes-qt/qt5/qtbase/0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch @@ -0,0 +1,66 @@ +From 0574975fb4a981568e69461c4df99767cc1faa72 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 + sysroot + +EGL is configured to need an include path into the recipe-specific sysroot. +However users of the cmake file will have a different absolute path than that +used when creating the cmake file from cmake.in in qtbase. + +Change to store the relative path within the sysroot and then prepend the +currently used sysroot in the _qt5gui_find_extra_libs macro. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> +--- + src/gui/Qt5GuiConfigExtras.cmake.in | 22 ++++++++-------------- + 1 file changed, 8 insertions(+), 14 deletions(-) + +diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in +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) + + macro(_qt5gui_find_extra_libs Name Libs LibDir IncDirs) + set(Qt5Gui_${Name}_LIBRARIES) +-!!IF !mac +- set(Qt5Gui_${Name}_INCLUDE_DIRS ${IncDirs}) +-!!ELSE ++ + foreach(_dir ${IncDirs}) +- if (EXISTS ${_dir}) +- list(APPEND Qt5Gui_${Name}_INCLUDE_DIRS ${_dir}) +- else() +- find_path(_actual_dir ${_dir}) # Look in sdk directories +- if (_actual_dir) +- list(APPEND Qt5Gui_${Name}_INCLUDE_DIRS ${_actual_dir}) +- endif() +- unset(_actual_dir CACHE) ++ find_path(_actual_dir ${_dir}) ++ if (_actual_dir) ++ list(APPEND Qt5Gui_${Name}_INCLUDE_DIRS ${_actual_dir}) + endif() ++ unset(_actual_dir CACHE) + endforeach() +-!!ENDIF ++ + foreach(_lib ${Libs}) + if (IS_ABSOLUTE ${_lib}) + get_filename_component(_libFile ${_lib} NAME_WE) +@@ -171,11 +165,11 @@ endmacro() + + + !!IF !isEmpty(CMAKE_EGL_LIBS) +-_qt5gui_find_extra_libs(EGL \"$$CMAKE_EGL_LIBS\" \"$$CMAKE_EGL_LIBDIR\" \"$$CMAKE_EGL_INCDIRS\") ++_qt5gui_find_extra_libs(EGL \"$$CMAKE_EGL_LIBS\" \"$$CMAKE_EGL_LIBDIR\" \"$$replace(CMAKE_EGL_INCDIRS,$$re_escape($$PKG_CONFIG_SYSROOT_DIR),)\") + !!ENDIF + + !!IF !isEmpty(CMAKE_OPENGL_LIBS) +-_qt5gui_find_extra_libs(OPENGL \"$$CMAKE_OPENGL_LIBS\" \"$$CMAKE_OPENGL_LIBDIR\" \"$$CMAKE_OPENGL_INCDIRS\") ++_qt5gui_find_extra_libs(OPENGL \"$$CMAKE_OPENGL_LIBS\" \"$$CMAKE_OPENGL_LIBDIR\" \"$$replace(CMAKE_OPENGL_INCDIRS,$$re_escape($$PKG_CONFIG_SYSROOT_DIR),)\") + + !!ENDIF + diff --git a/recipes-qt/qt5/qtbase/0014-corelib-Include-sys-types.h-for-uint32_t.patch b/recipes-qt/qt5/qtbase/0014-corelib-Include-sys-types.h-for-uint32_t.patch new file mode 100644 index 00000000..15631feb --- /dev/null +++ b/recipes-qt/qt5/qtbase/0014-corelib-Include-sys-types.h-for-uint32_t.patch @@ -0,0 +1,27 @@ +From e98382d11622179a2ab4712fa781c2b46d8b35b2 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 + +This has been includes indirectly on glibc/linux systems +via inttypes.h -> stdint.h -> sys/types.h but it breaks on +musl where this indirect include chain does not exist. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/corelib/global/qnumeric_p.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/corelib/global/qnumeric_p.h b/src/corelib/global/qnumeric_p.h +index 7418579fe0..aba29de499 100644 +--- a/src/corelib/global/qnumeric_p.h ++++ b/src/corelib/global/qnumeric_p.h +@@ -55,6 +55,7 @@ + #include "QtCore/private/qglobal_p.h" + #include <cmath> + #include <limits> ++#include <sys/types.h> + + #if defined(Q_CC_MSVC) + # include <intrin.h> diff --git a/recipes-qt/qt5/qtbase/0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch b/recipes-qt/qt5/qtbase/0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch new file mode 100644 index 00000000..a3605718 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch @@ -0,0 +1,41 @@ +From f339005f6ee97911bd0c2ed9d9445f5aac514155 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 + +This is required when using clang for compiler, fixes +mkspecs/features/toolchain.prf:215: Variable QMAKE_CXX.COMPILER_MACROS is not defined. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + mkspecs/features/toolchain.prf | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf +index 11ecd6b2a5..a9a65c6800 100644 +--- a/mkspecs/features/toolchain.prf ++++ b/mkspecs/features/toolchain.prf +@@ -41,6 +41,13 @@ defineReplace(qtVariablesFromGCC) { + return($$ret) + } + ++defineReplace(qtVariablesFromCLANG) { ++ ret = $$system("$$1 $$2 -E $$system_quote($$PWD/data/macros.cpp) \ ++ <$$QMAKE_SYSTEM_NULL_DEVICE 2>$$QMAKE_SYSTEM_NULL_DEVICE", lines, ec) ++ !equals(ec, 0): qtCompilerErrror($$1, $$ret) ++ return($$ret) ++} ++ + isEmpty($${target_prefix}.COMPILER_MACROS) { + msvc { + clang_cl { +@@ -60,6 +67,8 @@ isEmpty($${target_prefix}.COMPILER_MACROS) { + } else { + vars = $$qtVariablesFromMSVC($$QMAKE_CXX) + } ++ } else: clang { ++ vars = $$qtVariablesFromCLANG($$QMAKE_CXX, $$QMAKE_CXXFLAGS) + } else: gcc|ghs { + vars = $$qtVariablesFromGCC($$QMAKE_CXX) + } diff --git a/recipes-qt/qt5/qtbase/0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch b/recipes-qt/qt5/qtbase/0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch new file mode 100644 index 00000000..aa11a4be --- /dev/null +++ b/recipes-qt/qt5/qtbase/0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch @@ -0,0 +1,123 @@ +From be12f3c3a5240b8bbb6837a3b23d36b61303b455 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 42e98ce363..0ca9b87f04 100644 +--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp ++++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +@@ -2931,19 +2931,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"); + } +@@ -2969,7 +2993,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); +@@ -2981,7 +3005,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); + +@@ -3009,7 +3033,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); + +@@ -3021,7 +3045,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); + +@@ -3044,7 +3068,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); + +@@ -3063,7 +3087,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/recipes-qt/qt5/qtbase/0017-Define-__NR_futex-if-it-does-not-exist.patch b/recipes-qt/qt5/qtbase/0017-Define-__NR_futex-if-it-does-not-exist.patch new file mode 100644 index 00000000..8198b4f5 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0017-Define-__NR_futex-if-it-does-not-exist.patch @@ -0,0 +1,33 @@ +From 308746ac207de4f1c3429d6e61ff071809378b70 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 diff --git a/recipes-qt/qt5/qtbase/0018-Revert-Fix-workaround-in-pthread-destructor.patch b/recipes-qt/qt5/qtbase/0018-Revert-Fix-workaround-in-pthread-destructor.patch new file mode 100644 index 00000000..93a4a6ba --- /dev/null +++ b/recipes-qt/qt5/qtbase/0018-Revert-Fix-workaround-in-pthread-destructor.patch @@ -0,0 +1,69 @@ +From d46b92ecdae0c7dd2f284e3333641866aab4f604 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Tue, 26 Jan 2021 08:50:45 +0100 +Subject: [PATCH] Revert "Fix workaround in pthread destructor" + +This reverts commit 81ce2d1d6fa741de4d27b939a378147a02019ec1. + +currentThreadData was reverted in 5.12 before this commit: + +81ce2d1d6f Fix workaround in pthread destructor +8867e0eaa7 Revert "Remove pthread storage for thread local data" +78665d8a0c Remove pthread storage for thread local data + +causing build failures in configurations which use this +| /home/jenkins/workspace/luneos-unstable/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-halium-webos-linux-gnueabi/qtbase/5.15.2+gitAUTOINC+40143c189b-r0/git/src/corelib/thread/qthread_unix.cpp: In function 'void destroy_current_thread_data(void*)': +| /home/jenkins/workspace/luneos-unstable/webos-ports/tmp-glibc/work/cortexa8t2hf-neon-halium-webos-linux-gnueabi/qtbase/5.15.2+gitAUTOINC+40143c189b-r0/git/src/corelib/thread/qthread_unix.cpp:121:5: error: 'currentThreadData' was not declared in this scope +| 121 | currentThreadData = data; +| | ^~~~~~~~~~~~~~~~~ + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/corelib/thread/qthread_unix.cpp | 25 +++++++++++++++++++------ + 1 file changed, 19 insertions(+), 6 deletions(-) + +diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp +index 659d5fb03c..1da68b3130 100644 +--- a/src/corelib/thread/qthread_unix.cpp ++++ b/src/corelib/thread/qthread_unix.cpp +@@ -116,11 +116,18 @@ static pthread_key_t current_thread_data_key; + + static void destroy_current_thread_data(void *p) + { ++#if defined(Q_OS_VXWORKS) ++ // Calling setspecific(..., 0) sets the value to 0 for ALL threads. ++ // The 'set to 1' workaround adds a bit of an overhead though, ++ // since this function is called twice now. ++ if (p == (void *)1) ++ return; ++#endif ++ // POSIX says the value in our key is set to zero before calling ++ // this destructor function, so we need to set it back to the ++ // right value... ++ pthread_setspecific(current_thread_data_key, p); + QThreadData *data = static_cast<QThreadData *>(p); +- // thread_local variables are set to zero before calling this destructor function, +- // if they are internally using pthread-specific data management, +- // so we need to set it back to the right value... +- currentThreadData = data; + if (data->isAdopted) { + QThread *thread = data->thread.loadAcquire(); + Q_ASSERT(thread); +@@ -131,8 +138,14 @@ static void destroy_current_thread_data(void *p) + data->deref(); + + // ... but we must reset it to zero before returning so we aren't +- // leaving a dangling pointer. +- currentThreadData = nullptr; ++ // called again (POSIX allows implementations to call destructor ++ // functions repeatedly until all values are zero) ++ pthread_setspecific(current_thread_data_key, ++#if defined(Q_OS_VXWORKS) ++ (void *)1); ++#else ++ nullptr); ++#endif + } + + static void create_current_thread_data_key() diff --git a/recipes-qt/qt5/qtbase/0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch b/recipes-qt/qt5/qtbase/0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch new file mode 100644 index 00000000..1f1945c8 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch @@ -0,0 +1,63 @@ +From f6b67c71be078d5f58042882e801b9af6634e483 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> +Date: Fri, 20 Aug 2021 12:10:25 +0300 +Subject: [PATCH] tst_QPluginLoader: Simplify creating a fake pointer in + fakeplugin.cpp + +When assigning multiple variables to a specific section, both GCC +and Clang legitimately error out if those variables wouldn't end +up in the same section (e.g. if one of them is going to a read-only +section while the other one is going to a read-write section). + +In C++, when a seemingly const variable needs dynamic initialization, +it needs to be stored in a read-write section. + +Clang 13 changed internals for how some constants are materialized. +Now, when a variable is initialized with an expression containing +plain old fashioned casts, it is considered to be potentially +runtime initialized (at the point when section assignment conflicts +is evaluated). Therefore, Clang 13 errors out on fakeplugin.cpp +with errors like: + + fakeplugin.cpp:36:39: error: 'message' causes a section type conflict with 'pluginSection' + QT_PLUGIN_METADATA_SECTION const char message[] = "QTMETADATA"; + ^ + fakeplugin.cpp:32:40: note: declared here + QT_PLUGIN_METADATA_SECTION void *const pluginSection = (void*)(0xc0ffeec0ffeeL); + ^ + +See https://bugs.llvm.org/show_bug.cgi?id=51442 for discussion +on the matter in Clang. + +To simplify things, just initialize the fake pointers as regular +uintptr_t instead, avoiding the whole matter. This produces the +exact same contents in the section as before. + +For what it's worth, the actual manually constructed metadata in +fakeplugin.cpp doesn't seem to have any effect on running the +QPluginLoader tests on either ELF or MachO right now. + +Upstream-Status: Backport [https://codereview.qt-project.org/c/qt/qtbase/+/366218] +Change-Id: Ib84a2ceb20cb8e3a1bb5132a5715538e08049616 +Pick-to: 6.2 6.1 +Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tests/auto/corelib/plugin/qpluginloader/fakeplugin.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/auto/corelib/plugin/qpluginloader/fakeplugin.cpp b/tests/auto/corelib/plugin/qpluginloader/fakeplugin.cpp +index 9e7a1f750b..a6d53f350f 100644 +--- a/tests/auto/corelib/plugin/qpluginloader/fakeplugin.cpp ++++ b/tests/auto/corelib/plugin/qpluginloader/fakeplugin.cpp +@@ -29,8 +29,8 @@ + #include <QtCore/qplugin.h> + + #if QT_POINTER_SIZE == 8 +-QT_PLUGIN_METADATA_SECTION void *const pluginSection = (void*)(0xc0ffeec0ffeeL); ++QT_PLUGIN_METADATA_SECTION const uintptr_t pluginSection = 0xc0ffeec0ffeeULL; + #else +-QT_PLUGIN_METADATA_SECTION void *const pluginSection = (void*)0xc0ffee; ++QT_PLUGIN_METADATA_SECTION const uintptr_t pluginSection = 0xc0ffee; + #endif + QT_PLUGIN_METADATA_SECTION const char message[] = "QTMETADATA"; diff --git a/recipes-qt/qt5/qtbase/0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch b/recipes-qt/qt5/qtbase/0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch new file mode 100644 index 00000000..521e6cc3 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch @@ -0,0 +1,29 @@ +From a2b11501812e0e34bd49b1950bac52dadd4e3cff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Sat, 15 Oct 2022 15:50:34 +0200 +Subject: [PATCH] rcc: Just dcument file name without full path to reduce qa + warnings +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + src/tools/rcc/rcc.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp +index c5e3d2ae4c..2d76cfd081 100644 +--- a/src/tools/rcc/rcc.cpp ++++ b/src/tools/rcc/rcc.cpp +@@ -344,7 +344,7 @@ qint64 RCCFileInfo::writeDataBlob(RCCResourceLibrary &lib, qint64 offset, + // some info + if (text || pass1) { + lib.writeString(" // "); +- lib.writeByteArray(m_fileInfo.absoluteFilePath().toLocal8Bit()); ++ lib.writeByteArray(m_fileInfo.baseName().toLocal8Bit()); + lib.writeString("\n "); + } + diff --git a/recipes-qt/qt5/qtbase/0022-testlib-don-t-track-the-build-or-source-directories.patch b/recipes-qt/qt5/qtbase/0022-testlib-don-t-track-the-build-or-source-directories.patch new file mode 100644 index 00000000..f16afed5 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0022-testlib-don-t-track-the-build-or-source-directories.patch @@ -0,0 +1,32 @@ +From 7d4da27df6ab641390de75dd7c04b755295a653b Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Mon, 22 Aug 2022 15:01:28 +0300 +Subject: [PATCH] testlib: don't track the build or source directories + +Build tests without location of the build and sources directories. + +Upstream-Status: Inappropriate [embedded specific] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Change-Id: I8d5add473623a3d9f481097649819c9fb906e4b2 +--- + mkspecs/features/testlib_defines.prf | 2 -- + src/testlib/Qt5TestConfigExtras.cmake.in | 5 ----- + 2 files changed, 7 deletions(-) + +diff --git a/mkspecs/features/testlib_defines.prf b/mkspecs/features/testlib_defines.prf +index 901e03a91d..e69de29bb2 100644 +--- a/mkspecs/features/testlib_defines.prf ++++ b/mkspecs/features/testlib_defines.prf +@@ -1,2 +0,0 @@ +-contains(TEMPLATE, vc.*): DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\" +-else: DEFINES += QT_TESTCASE_BUILDDIR=$$shell_quote(\"$$OUT_PWD\") +diff --git a/src/testlib/Qt5TestConfigExtras.cmake.in b/src/testlib/Qt5TestConfigExtras.cmake.in +index 2a575958ae..e69de29bb2 100644 +--- a/src/testlib/Qt5TestConfigExtras.cmake.in ++++ b/src/testlib/Qt5TestConfigExtras.cmake.in +@@ -1,5 +0,0 @@ +- +-set_property(TARGET Qt5::Test +- APPEND PROPERTY +- INTERFACE_COMPILE_DEFINITIONS QT_TESTCASE_BUILDDIR=\\\"\${CMAKE_BINARY_DIR}\\\" +-) diff --git a/recipes-qt/qt5/qtbase/0012-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0023-Always-build-uic-and-qvkgen.patch index 0cb36e18..7a100a69 100644 --- a/recipes-qt/qt5/qtbase/0012-Always-build-uic.patch +++ b/recipes-qt/qt5/qtbase/0023-Always-build-uic-and-qvkgen.patch @@ -1,7 +1,7 @@ -From 7ad9a6e116879730543ae947abef0fe74a5b0dbb Mon Sep 17 00:00:00 2001 +From 5f415fb09ea64765e60d1d52721064f53545a413 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 +Subject: [PATCH] Always build uic and qvkgen Even if we are not building gui or widgets. This tool is needed later as a native tool when compiling the target. @@ -9,20 +9,21 @@ as a native tool when compiling the target. Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Upstream-Status: Pending --- src/src.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/src.pro b/src/src.pro -index 3e32f7e..18b268b 100644 +index 8990109743..105feee924 100644 --- a/src/src.pro +++ b/src/src.pro -@@ -205,7 +205,7 @@ qtConfig(gui) { +@@ -244,7 +244,7 @@ qtConfig(gui) { } } } -SUBDIRS += src_plugins -+SUBDIRS += src_plugins src_tools_uic ++SUBDIRS += src_plugins src_tools_uic src_tools_qvkgen nacl: SUBDIRS -= src_network src_testlib diff --git a/recipes-qt/qt5/qtbase/0024-Avoid-renameeat2-for-native-sdk-builds.patch b/recipes-qt/qt5/qtbase/0024-Avoid-renameeat2-for-native-sdk-builds.patch new file mode 100644 index 00000000..97e4ff6c --- /dev/null +++ b/recipes-qt/qt5/qtbase/0024-Avoid-renameeat2-for-native-sdk-builds.patch @@ -0,0 +1,68 @@ +From 77196464454a1c66e57ad5aac237a55de211a107 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 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Recently pseudo changed to not support reanameeat2 as glibc wrapper [1]. This +causes massive failures at do_install [2] on qtbase. + +To work around tell Qt build configuration not to use ranameet2 independent +of glibc version. + +[1] https://git.openembedded.org/openembedded-core/commit/?id=0fb257121b68f38b40c078150db8f7d0979b7ea5 +[2] https://github.com/meta-qt5/meta-qt5/issues/187 + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + src/corelib/global/qconfig-bootstrapped.h | 4 ++-- + src/corelib/io/qfilesystemengine_unix.cpp | 10 ---------- + 2 files changed, 2 insertions(+), 12 deletions(-) + +diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h +index b3daf43c04..e1df2ac580 100644 +--- a/src/corelib/global/qconfig-bootstrapped.h ++++ b/src/corelib/global/qconfig-bootstrapped.h +@@ -107,7 +107,7 @@ + #define QT_FEATURE_process -1 + #define QT_FEATURE_regularexpression -1 + #ifdef __GLIBC_PREREQ +-# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1) ++# define QT_FEATURE_renameat2 -1 + #else + # define QT_FEATURE_renameat2 -1 + #endif +@@ -115,7 +115,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) ++# define QT_FEATURE_statx -1 + #else + # define QT_FEATURE_statx -1 + #endif +diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp +index 231e5cb0ea..8da5872c5e 100644 +--- a/src/corelib/io/qfilesystemengine_unix.cpp ++++ b/src/corelib/io/qfilesystemengine_unix.cpp +@@ -1443,16 +1443,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) +- return true; +- +- // We can also get EINVAL for some non-local filesystems. +- if (errno != EINVAL) { +- error = QSystemError(errno, QSystemError::StandardLibraryError); +- return false; +- } +-#endif + #if defined(Q_OS_DARWIN) && defined(RENAME_EXCL) + if (renameatx_np(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_EXCL) == 0) + return true; diff --git a/recipes-qt/qt5/qtbase/0025-Bootstrap-without-linkat-feature.patch b/recipes-qt/qt5/qtbase/0025-Bootstrap-without-linkat-feature.patch new file mode 100644 index 00000000..b759214b --- /dev/null +++ b/recipes-qt/qt5/qtbase/0025-Bootstrap-without-linkat-feature.patch @@ -0,0 +1,28 @@ +From a052a876d0639db2f919aada2ae0afe1718928af Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Fri, 24 Nov 2017 15:16:31 +0200 +Subject: [PATCH] Bootstrap without linkat feature + +qmake does not work together with pseudo when unnamed temporary files +are used with linkat. + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +[YOCTO #11996] +--- + src/corelib/global/qconfig-bootstrapped.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h +index e1df2ac580..151cc1d2c2 100644 +--- a/src/corelib/global/qconfig-bootstrapped.h ++++ b/src/corelib/global/qconfig-bootstrapped.h +@@ -98,7 +98,7 @@ + #define QT_FEATURE_itemmodel -1 + #define QT_FEATURE_library -1 + #ifdef __linux__ +-# define QT_FEATURE_linkat 1 ++# define QT_FEATURE_linkat -1 + #else + # define QT_FEATURE_linkat -1 + #endif diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb index 52156174..4009afc5 100644 --- a/recipes-qt/qt5/qtbase_git.bb +++ b/recipes-qt/qt5/qtbase_git.bb @@ -1,22 +1,20 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc +require qt5-ptest.inc -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - file://LICENSE.LGPLv21;md5=fb91571854638f10b2e5f36562661a5a \ - file://LICENSE.LGPLv3;md5=a909b94c1c9674b2aa15ff03a86f518a \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ + file://LICENSE.QT-LICENSE-AGREEMENT;md5=485e1d58b313def058a0d72598aa6efe \ " # common for qtbase-native, qtbase-nativesdk and qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-shared -# 5.9.meta-qt5-shared.5 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-shared +# 5.15.meta-qt5-shared.4 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -25,46 +23,35 @@ SRC_URI += "\ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \ file://0007-Delete-qlonglong-and-qulonglong.patch \ - file://0008-Replace-pthread_yield-with-sched_yield.patch \ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \ - file://run-ptest \ + file://0012-Disable-ltcg-for-host_build.patch \ + file://0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ + file://0014-corelib-Include-sys-types.h-for-uint32_t.patch \ + file://0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0017-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0018-Revert-Fix-workaround-in-pthread-destructor.patch \ + file://0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch \ + file://0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch \ + file://0022-testlib-don-t-track-the-build-or-source-directories.patch \ " -inherit ptest - -# LGPL-3.0 is used only in src/plugins/platforms/android/extract.cpp +# 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" +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)}" +inherit pkgconfig # separate some parts of PACKAGECONFIG which are often changed -PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}" +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 glib 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" PACKAGECONFIG_DISTRO ?= "" @@ -72,7 +59,12 @@ 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 ?= "dbus udev evdev widgets tools libs freetype tests" +PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype pcre \ + ${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)} \ +" PACKAGECONFIG ?= " \ ${PACKAGECONFIG_RELEASE} \ @@ -81,15 +73,21 @@ PACKAGECONFIG ?= " \ ${PACKAGECONFIG_GL} \ ${PACKAGECONFIG_FB} \ ${PACKAGECONFIG_X11} \ + ${PACKAGECONFIG_KDE} \ ${PACKAGECONFIG_FONTS} \ ${PACKAGECONFIG_SYSTEM} \ ${PACKAGECONFIG_DISTRO} \ " +# Choose whether to link to OpenSSL library at linking time or run time +# Leave the variable empty to let the buildsystem decide, or specify -linked or -runtime +OPENSSL_LINKING_MODE ??= "" +PACKAGECONFIG[static] = "-static,-shared" PACKAGECONFIG[release] = "-release,-debug" PACKAGECONFIG[debug] = "" PACKAGECONFIG[developer] = "-developer-build" -PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug" +PACKAGECONFIG[optimize-size] = "-optimize-size" +PACKAGECONFIG[ltcg] = "-ltcg" PACKAGECONFIG[sm] = "-sm,-no-sm" PACKAGECONFIG[tests] = "-make tests,-nomake tests" PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples" @@ -109,7 +107,7 @@ PACKAGECONFIG[libpng] = "-system-libpng,-no-libpng,libpng" PACKAGECONFIG[gif] = "-gif,-no-gif" PACKAGECONFIG[ico] = "-ico,-no-ico" PACKAGECONFIG[zlib] = "-system-zlib,-qt-zlib,zlib" -PACKAGECONFIG[pcre] = "-system-pcre,-qt-pcre,pcre" +PACKAGECONFIG[pcre] = "-system-pcre,-qt-pcre,pcre2" PACKAGECONFIG[eglfs] = "-eglfs,-no-eglfs,drm" PACKAGECONFIG[gl] = "-opengl desktop,,virtual/libgl" PACKAGECONFIG[gles2] = "-opengl es2,,virtual/libgles2 virtual/egl" @@ -117,41 +115,76 @@ 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 -no-bundled-xcb-xinput -DUSE_X11=ON,-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" -PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc" +PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc,unixodbc" PACKAGECONFIG[sql-oci] = "-sql-oci,-no-sql-oci" PACKAGECONFIG[sql-tds] = "-sql-tds,-no-sql-tds" PACKAGECONFIG[sql-db2] = "-sql-db2,-no-sql-db2" PACKAGECONFIG[sql-sqlite2] = "-sql-sqlite2,-no-sql-sqlite2,sqlite" PACKAGECONFIG[sql-sqlite] = "-sql-sqlite -system-sqlite,-no-sql-sqlite,sqlite3" -PACKAGECONFIG[xinput2] = "-xinput2,-no-xinput2,libxi" PACKAGECONFIG[iconv] = "-iconv,-no-iconv,virtual/libiconv" -PACKAGECONFIG[xkb] = "-xkb,-no-xkb -no-xkbcommon,libxkbcommon" -PACKAGECONFIG[xkbcommon-evdev] = "-xkbcommon-evdev,-no-xkbcommon-evdev,libxkbcommon,xkeyboard-config" +PACKAGECONFIG[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" PACKAGECONFIG[directfb] = "-directfb,-no-directfb,directfb" PACKAGECONFIG[linuxfb] = "-linuxfb,-no-linuxfb" PACKAGECONFIG[kms] = "-kms,-no-kms,drm virtual/egl" -PACKAGECONFIG[gbm] = "-gbm,-no-gbm,virtual/mesa" +PACKAGECONFIG[gbm] = "-gbm,-no-gbm,virtual/libgbm" PACKAGECONFIG[icu] = "-icu,-no-icu,icu" PACKAGECONFIG[udev] = "-libudev,-no-libudev,udev" -PACKAGECONFIG[openssl] = "-openssl,-no-openssl,openssl,libssl" +PACKAGECONFIG[openssl] = "-openssl${OPENSSL_LINKING_MODE},-no-openssl,openssl,libssl" PACKAGECONFIG[widgets] = "-widgets,-no-widgets" PACKAGECONFIG[libproxy] = "-libproxy,-no-libproxy,libproxy" PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput" PACKAGECONFIG[journald] = "-journald,-no-journald,systemd" +# 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)}" + +LDFLAGS:append:riscv64 = " -pthread" + QT_CONFIG_FLAGS += " \ ${QT_CONFIG_FLAGS_GOLD} \ - -shared \ -silent \ -no-pch \ -no-rpath \ @@ -159,19 +192,36 @@ 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 -XPLATFORM_toolchain-clang = "linux-oe-clang" +XPLATFORM:toolchain-clang = "linux-oe-clang" XPLATFORM ?= "linux-oe-g++" +# Causes qdrawhelper.s: Error: unaligned opcodes detected in executable segment +# when building qtbase/5.6.3+gitAUTOINC+e6f8b072d2-r0/git/src/gui/painting/qdrawhelper.cpp +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" + do_configure() { + # Regenerate header files when they are included in source tarball + # Otherwise cmake files don't set PRIVATE_HEADERS correctly + rm -rf ${S}/include + mkdir -p ${S}/.git || true + # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" during configuration touch ${S}/mkspecs/oe-device-extra.pri ${S}/configure -v \ - -opensource -confirm-license \ + -${QT_EDITION} -confirm-license \ -sysroot ${STAGING_DIR_TARGET} \ -prefix ${OE_QMAKE_PATH_PREFIX} \ -bindir ${OE_QMAKE_PATH_BINS} \ @@ -183,7 +233,6 @@ do_configure() { -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \ -libexecdir ${OE_QMAKE_PATH_LIBEXECS} \ -plugindir ${OE_QMAKE_PATH_PLUGINS} \ - -importdir ${OE_QMAKE_PATH_IMPORTS} \ -qmldir ${OE_QMAKE_PATH_QML} \ -translationdir ${OE_QMAKE_PATH_TRANSLATIONS} \ -testsdir ${OE_QMAKE_PATH_TESTS} \ @@ -198,34 +247,65 @@ do_configure() { ${QT_CONFIG_FLAGS} } -fakeroot do_install_ptest() { - mkdir -p ${D}${PTEST_PATH} - t=${D}${PTEST_PATH} - for var in ` find ${B}/tests/auto/ -name tst_*`; do - if [ not ` echo ${var##*/} | grep '\.'` ]; then - echo ${var##*/} >> ${t}/tst_list - install -m 0644 ${var} ${t} - fi - done -} - -do_install_append() { +do_install:append() { # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" touch ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/oe-device-extra.pri - # Replace host paths with qmake built-in properties - sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \ - -e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \ - ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/*.pri + # Update the mkspecs to include the default OE toolchain config for the target + conf=${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/${XPLATFORM}/qmake.conf + + # qmake already knows the sysroot, see above $$[QT_SYSROOT], so remove the hardcoded sysroot + OE_QMAKE_CC_NO_SYSROOT=$(echo ${OE_QMAKE_CC} | sed -e 's!--sysroot=[^ ]*!!g') + OE_QMAKE_CXX_NO_SYSROOT=$(echo ${OE_QMAKE_CXX} | sed -e 's!--sysroot=[^ ]*!!g') + OE_QMAKE_LINK_NO_SYSROOT=$(echo ${OE_QMAKE_LINK} | sed -e 's!--sysroot=[^ ]*!!g') - # Fix up absolute paths in scripts - grep -lr /usr/bin/perl ${D}${OE_QMAKE_PATH_QT_ARCHDATA}/ | \ - xargs -r sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' + echo "" >> $conf + echo "# default compiler options which can be overwritten from the environment" >> $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_CXX): QMAKE_CXX = $OE_QMAKE_CXX_NO_SYSROOT" >> $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 + 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_OBJCOPY): QMAKE_OBJCOPY = ${TARGET_PREFIX}objcopy" >> $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 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 } # mkspecs have mac specific scripts that depend on perl and bash -INSANE_SKIP_${PN}-mkspecs += "file-rdeps" +INSANE_SKIP:${PN}-mkspecs += "file-rdeps" + +RRECOMMENDS:${PN}-plugins += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', '', d)}" + +TARGET_MKSPEC ?= "linux-g++" -RRECOMMENDS_${PN}-plugins += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', '', d)}" +# use clean mkspecs on target +pkg_postinst:${PN}-tools () { +sed -i \ + -e 's:HostSpec =.*:HostSpec = ${TARGET_MKSPEC}:g' \ + -e 's:TargetSpec =.*:TargetSpec = ${TARGET_MKSPEC}:g' \ + $D${OE_QMAKE_PATH_BINS}/qt.conf +} + +pkg_postinst:${PN}-mkspecs () { +sed -i 's: cross_compile : :g' $D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qconfig.pri +sed -i \ + -e 's: cross_compile : :g' \ + -e 's:HOST_QT_TOOLS =.*::g' \ + $D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qmodule.pri +} -SRCREV = "159f7e9c39c57177d25f524ae3cad4e533b89da8" +SRCREV = "8a25db3204f39a228d14148d9cdf414393d239a5" diff --git a/recipes-qt/qt5/qtcanvas3d_git.bb b/recipes-qt/qt5/qtcanvas3d_git.bb deleted file mode 100644 index 9f9d7a1d..00000000 --- a/recipes-qt/qt5/qtcanvas3d_git.bb +++ /dev/null @@ -1,13 +0,0 @@ -require qt5.inc -require qt5-git.inc - -LICENSE = "LGPL-3.0 | GPL-3.0 | The-Qt-Company-Commercial" -LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ - file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ -" - -DEPENDS = "qtdeclarative" - -SRCREV = "c50045eacfdaa85b4bfd2f1ecfd776d320684228" diff --git a/recipes-qt/qt5/qtcharts_git.bb b/recipes-qt/qt5/qtcharts_git.bb index edaeea45..05160cb2 100644 --- a/recipes-qt/qt5/qtcharts_git.bb +++ b/recipes-qt/qt5/qtcharts_git.bb @@ -1,15 +1,17 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GPL-3.0 | The-Qt-Company-Commercial" +LICENSE = "GPL-3.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ " DEPENDS += "qtbase qtdeclarative qtmultimedia" -SRCREV = "7468a3977a246688e43446ca385c71af389e1196" +SRCREV = "9da73121e87e7078f4f5ae2260c884d644242164" # 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)}" +LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +PACKAGECONFIG ?= "qtquickcompiler" diff --git a/recipes-qt/qt5/qtcoap_git.bb b/recipes-qt/qt5/qtcoap_git.bb new file mode 100644 index 00000000..df48de45 --- /dev/null +++ b/recipes-qt/qt5/qtcoap_git.bb @@ -0,0 +1,14 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "GFDL-1.3 & BSD-3-Clause & GPL-3.0-only | The-Qt-Company-Commercial" +LIC_FILES_CHKSUM = " \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ +" + +PACKAGECONFIG ?= "qtdeclarative" +PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative" + +DEPENDS += "qtbase" + +SRCREV = "a9401d789d70e36d7f431bc1272c3ae95c2a5def" diff --git a/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch b/recipes-qt/qt5/qtconnectivity/0001-Add-missing-header-for-errno.patch new file mode 100644 index 00000000..72afac30 --- /dev/null +++ b/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/recipes-qt/qt5/qtconnectivity_git.bb b/recipes-qt/qt5/qtconnectivity_git.bb index 7312e9f7..47c31f4b 100644 --- a/recipes-qt/qt5/qtconnectivity_git.bb +++ b/recipes-qt/qt5/qtconnectivity_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -10,13 +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 = "1d82115795a4b9a39e5ba969b6de02f2ff6d4891" +SRCREV = "4c39684c31a2bfae5ac7d15b4c959ceb50101451" diff --git a/recipes-qt/qt5/qtdatavis3d_git.bb b/recipes-qt/qt5/qtdatavis3d_git.bb index ddae9856..9565c834 100644 --- a/recipes-qt/qt5/qtdatavis3d_git.bb +++ b/recipes-qt/qt5/qtdatavis3d_git.bb @@ -1,11 +1,11 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GPL-3.0 | The-Qt-Company-Commercial" +LICENSE = "GPL-3.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ " DEPENDS += "qtbase qtdeclarative qtmultimedia qtxmlpatterns" -SRCREV = "d8a9d236eace348bfc09e6976dd4ee0bb930c6a9" +SRCREV = "4482ce78012a754f0a95bcbf0ab7f29b6326eb86" diff --git a/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch b/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch new file mode 100644 index 00000000..f5dd675a --- /dev/null +++ b/recipes-qt/qt5/qtdeclarative/0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch @@ -0,0 +1,32 @@ +From e9a8985fe1fd45da990e821283dcb16109d1d674 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 26d42c02a9..7b4186c837 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/recipes-qt/qt5/qtdeclarative/run-ptest b/recipes-qt/qt5/qtdeclarative/run-ptest deleted file mode 100644 index 6c3f522b..00000000 --- a/recipes-qt/qt5/qtdeclarative/run-ptest +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -for x in ` awk '{print $1}' tst_list `;do - ./${x}; -done diff --git a/recipes-qt/qt5/qtdeclarative_git.bb b/recipes-qt/qt5/qtdeclarative_git.bb index 8b873078..5ade81be 100644 --- a/recipes-qt/qt5/qtdeclarative_git.bb +++ b/recipes-qt/qt5/qtdeclarative_git.bb @@ -1,9 +1,9 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -12,24 +12,47 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " -DEPENDS += "qtbase" - -PACKAGECONFIG ??= "qtxmlpatterns" -PACKAGECONFIG[qtxmlpatterns] = ",,qtxmlpatterns" +# Patches from https://github.com/meta-qt5/qtdeclarative/commits/b5.15 +# 5.15.meta-qt5.1 +SRC_URI += " \ + file://0001-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-locate-qmlca.patch \ +" -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 +LDFLAGS:append:riscv64 = " -pthread" + +DEPENDS += "qtbase qtdeclarative-native" + +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" + +EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH} + for var in `find ${B}/tests/auto/ -name tst_*`; do + case=$(basename ${var}) + if [ -z `echo ${case} | grep '\.'` ]; then + dname=$(dirname ${var}) + pdir=$(basename ${dname}) + echo ${pdir}/${case} >> ${D}${PTEST_PATH}/tst_list + + mkdir ${D}${PTEST_PATH}/${pdir} + install -m 0744 ${var} ${D}${PTEST_PATH}/${pdir} + data_dir=${S}/${dname##${B}}/data + if [ -d ${data_dir} ]; then + cp -r ${data_dir} ${D}${PTEST_PATH}/${pdir} + fi + fi + done } -do_install_append_class-nativesdk() { +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 = "282d5530534c0297710759b81568cdb1c7c627c6" +SRCREV = "73eeb35f09fd1ea846bb0f5ce507316f587fda9f" BBCLASSEXTEND =+ "native nativesdk" diff --git a/recipes-qt/qt5/qtenginio_git.bb b/recipes-qt/qt5/qtenginio_git.bb deleted file mode 100644 index 30d5eeae..00000000 --- a/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/recipes-qt/qt5/qtgamepad_git.bb b/recipes-qt/qt5/qtgamepad_git.bb index 13885f25..dbe696b5 100644 --- a/recipes-qt/qt5/qtgamepad_git.bb +++ b/recipes-qt/qt5/qtgamepad_git.bb @@ -1,7 +1,9 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GPL-3.0 | LGPL-3.0 | The-Qt-Company-Commercial" +inherit pkgconfig + +LICENSE = "GPL-3.0-only | LGPL-3.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPLv3;md5=c4fe8c6de4eef597feec6e90ed62e962 \ file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \ @@ -14,4 +16,4 @@ PACKAGECONFIG[sdl2] = "-feature-sdl2,-no-feature-sdl2,libsdl2" EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" -SRCREV = "5811f1752f8084f8b7aebc315dc40705739966ee" +SRCREV = "01a74df25b14981cf054d58ac238083f5715c80c" diff --git a/recipes-qt/qt5/qtgraphicaleffects_git.bb b/recipes-qt/qt5/qtgraphicaleffects_git.bb index f593fd1c..2a7f7268 100644 --- a/recipes-qt/qt5/qtgraphicaleffects_git.bb +++ b/recipes-qt/qt5/qtgraphicaleffects_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -10,12 +10,12 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " -DEPENDS += "qtdeclarative" +DEPENDS += "qtdeclarative qtdeclarative-native" -RDEPENDS_${PN}-dev = "" +RDEPENDS:${PN}-dev = "" # The same issue as in qtbase: # http://errors.yoctoproject.org/Errors/Build/44912/ -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" -SRCREV = "cd1ce384b9ffb85b41864da3c27dcdf6705510c5" +SRCREV = "161bf75024a8d04bf843c058717feef93de73624" diff --git a/recipes-qt/qt5/qtimageformats_git.bb b/recipes-qt/qt5/qtimageformats_git.bb index 37c3ada2..4986276c 100644 --- a/recipes-qt/qt5/qtimageformats_git.bb +++ b/recipes-qt/qt5/qtimageformats_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \ @@ -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 = "950add07f0f2ee20a2af60f081dc1676f9405d5e" +SRCREV = "348a2b3860519a00f8b8f4cb690497b3f2ac5e7b" diff --git a/recipes-qt/qt5/qtknx_git.bb b/recipes-qt/qt5/qtknx_git.bb new file mode 100644 index 00000000..3ce3a0ef --- /dev/null +++ b/recipes-qt/qt5/qtknx_git.bb @@ -0,0 +1,12 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "(GPL-3.0-only & 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" + +SRCREV = "f3a5a0a7b03ec565ab565ab316db974384eb59e1" diff --git a/recipes-qt/qt5/qtlocation/0001-mapbox-gl-explicitly-include-cstdint-header.patch b/recipes-qt/qt5/qtlocation/0001-mapbox-gl-explicitly-include-cstdint-header.patch new file mode 100644 index 00000000..78b5468e --- /dev/null +++ b/recipes-qt/qt5/qtlocation/0001-mapbox-gl-explicitly-include-cstdint-header.patch @@ -0,0 +1,52 @@ +From 92ce461e77dad3451eb5791efe7413a989dc2c3c Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko <denys@konsulko.com> +Date: Wed, 7 Jun 2023 22:59:53 +0000 +Subject: [PATCH] mapbox-gl: explicitly include cstdint header + +Otherwise gcc13 report "undeclared" error for uint8_t and uint32_t + +Upstream-Status: Pending + +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> +--- + include/mbgl/util/geometry.hpp | 1 + + include/mbgl/util/string.hpp | 1 + + src/mbgl/gl/stencil_mode.hpp | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/include/mbgl/util/geometry.hpp b/include/mbgl/util/geometry.hpp +index a28c59a47..92d928a37 100644 +--- a/include/mbgl/util/geometry.hpp ++++ b/include/mbgl/util/geometry.hpp +@@ -1,5 +1,6 @@ + #pragma once + ++#include <cstdint> + #include <mapbox/geometry/geometry.hpp> + #include <mapbox/geometry/point_arithmetic.hpp> + #include <mapbox/geometry/for_each_point.hpp> +diff --git a/include/mbgl/util/string.hpp b/include/mbgl/util/string.hpp +index 13498ccb9..726f7f6fc 100644 +--- a/include/mbgl/util/string.hpp ++++ b/include/mbgl/util/string.hpp +@@ -1,5 +1,6 @@ + #pragma once + ++#include <cstdint> + #include <sstream> + #include <string> + #include <cassert> +diff --git a/src/mbgl/gl/stencil_mode.hpp b/src/mbgl/gl/stencil_mode.hpp +index bc959c9a7..2fc62bba7 100644 +--- a/src/mbgl/gl/stencil_mode.hpp ++++ b/src/mbgl/gl/stencil_mode.hpp +@@ -1,5 +1,6 @@ + #pragma once + ++#include <cstdint> + #include <mbgl/util/variant.hpp> + + namespace mbgl { +-- +2.25.1 + diff --git a/recipes-qt/qt5/qtlocation_git.bb b/recipes-qt/qt5/qtlocation_git.bb index ed00c405..0aaaf9d2 100644 --- a/recipes-qt/qt5/qtlocation_git.bb +++ b/recipes-qt/qt5/qtlocation_git.bb @@ -1,35 +1,42 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & The-Qt-Company-Qt-LGPL-Exception-1.1 | LGPL-3.0) | GPL-2.0 | The-Qt-Company-Commercial" +LICENSE = "Apache-2.0 & MIT & OpenSSL & BSL-1.0 & GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | 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.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ - file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ + file://src/3rdparty/mapbox-gl-native/LICENSE.md;md5=0ab9025299bcee16858021d557f09449 \ " DEPENDS += "qtbase qtxmlpatterns qtdeclarative qtquickcontrols" PACKAGECONFIG ??= "" -# older geoclue 0.12.99 is needed -PACKAGECONFIG[geoclue] = ",,geoclue" +PACKAGECONFIG[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}" # The same issue as in qtbase: # http://errors.yoctoproject.org/Errors/Details/152640/ -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +QT_MODULE_BRANCH_MAPBOXGL = "upstream/qt-staging" SRC_URI += " \ - ${QT_GIT}/qtlocation-mapboxgl.git;name=qtlocation-mapboxgl;branch=upstream/qt-staging;protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/mapbox-gl-native \ + ${QT_GIT}/qtlocation-mapboxgl.git;name=qtlocation-mapboxgl;branch=${QT_MODULE_BRANCH_MAPBOXGL};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/mapbox-gl-native \ + file://0001-mapbox-gl-explicitly-include-cstdint-header.patch;patchdir=src/3rdparty/mapbox-gl-native \ " -SRCREV_qtlocation = "1ab65694be69f328515389589998e5a321ee1104" -SRCREV_qtlocation-mapboxgl = "8c1be4ec01ef46bf453856531ebf53b48ce3dbe7" +SRCREV_qtlocation = "ff8d83c1b94fe6f13247b844268c0c6816081e6d" +SRCREV_qtlocation-mapboxgl = "d3101bbc22edd41c9036ea487d4a71eabd97823d" SRCREV_FORMAT = "qtlocation_qtlocation-mapboxgl" diff --git a/recipes-qt/qt5/qtlottie_git.bb b/recipes-qt/qt5/qtlottie_git.bb new file mode 100644 index 00000000..c6a6e0cb --- /dev/null +++ b/recipes-qt/qt5/qtlottie_git.bb @@ -0,0 +1,12 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "(GPL-3.0-only & 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 = "a56808f219f9a660dd48ee7e330d0bf86d2cee9b" diff --git a/recipes-qt/qt5/qtmqtt_git.bb b/recipes-qt/qt5/qtmqtt_git.bb new file mode 100644 index 00000000..f2caefb2 --- /dev/null +++ b/recipes-qt/qt5/qtmqtt_git.bb @@ -0,0 +1,12 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "(GPL-3.0-only & 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" + +SRCREV = "690889a590a18495b79217d4ef0436165bf1a74b" diff --git a/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch b/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch index 0bcac424..6973e235 100644 --- a/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch +++ b/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch @@ -1,4 +1,4 @@ -From bf2fa82b9ee1a9ab38ddbcdd68327bb5aed06c12 Mon Sep 17 00:00:00 2001 +From dc8c12331e567ace9e05fce3198c1c121ec2927d 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 @@ -7,16 +7,17 @@ Use lgl2.h instead of gl2.h and gl2ext.h, fix a "conflicting declaration" error. Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +Upstream-Status: Pending --- - src/plugins/videonode/imx6/lgl2.h | 46 ++++++++++++++++++++++ - .../videonode/imx6/qsgvivantevideomaterial.cpp | 5 ++- - src/plugins/videonode/imx6/qsgvivantevideonode.cpp | 5 ++- + src/plugins/videonode/imx6/lgl2.h | 46 +++++++++++++++++++ + .../imx6/qsgvivantevideomaterial.cpp | 5 +- + .../videonode/imx6/qsgvivantevideonode.cpp | 5 +- 3 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 src/plugins/videonode/imx6/lgl2.h diff --git a/src/plugins/videonode/imx6/lgl2.h b/src/plugins/videonode/imx6/lgl2.h new file mode 100644 -index 0000000..2423697 +index 00000000..24236976 --- /dev/null +++ b/src/plugins/videonode/imx6/lgl2.h @@ -0,0 +1,46 @@ @@ -67,7 +68,7 @@ index 0000000..2423697 + +#endif diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp -index 465ccfa..40e7592 100644 +index e1468fe3..a77a9d6a 100644 --- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp +++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp @@ -37,8 +37,9 @@ @@ -83,7 +84,7 @@ index 465ccfa..40e7592 100644 #include "qsgvivantevideomaterial.h" #include "qsgvivantevideomaterialshader.h" diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp -index c8d83b4..5b1b8f2 100644 +index c8d83b4b..5b1b8f24 100644 --- a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp +++ b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp @@ -37,8 +37,9 @@ diff --git a/recipes-qt/qt5/qtmultimedia_git.bb b/recipes-qt/qt5/qtmultimedia_git.bb index 1453bcd1..8d90bd9b 100644 --- a/recipes-qt/qt5/qtmultimedia_git.bb +++ b/recipes-qt/qt5/qtmultimedia_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -12,7 +12,10 @@ LIC_FILES_CHKSUM = " \ DEPENDS += "qtdeclarative" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ +inherit pkgconfig + +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" @@ -25,14 +28,22 @@ EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" # Disable GStreamer if completely disabled EXTRA_QMAKEVARS_CONFIGURE += "${@bb.utils.contains_any('PACKAGECONFIG', 'gstreamer gstreamer010', '', '-no-gstreamer', d)}" -# Patches from https://github.com/meta-qt5/qtmultimedia/commits/b5.9 -# 5.9.meta-qt5.5 +CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DMESA_EGL_NO_X11_HEADERS=1', d)}" + +# Patches from https://github.com/meta-qt5/qtmultimedia/commits/b5.15 +# 5.15.meta-qt5.1 SRC_URI += "\ file://0001-qtmultimedia-fix-a-conflicting-declaration.patch \ " # The same issue as in qtbase: # http://errors.yoctoproject.org/Errors/Build/44914/ -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +SRCREV = "b46203a7c4e4889c76f59e4a72da68a069a8f9c4" -SRCREV = "1e70299bba804ef919c4c39ad15c1762c239d60c" +# Temporary work around for Qt5MultimediaConfig.cmake referencing non-existent videoeglvideonode directory +do_install:append() { + install -d ${D}${OE_QMAKE_PATH_PLUGINS}/videoeglvideonode +} +FILES:${PN} += "${OE_QMAKE_PATH_PLUGINS}/videoeglvideonode" diff --git a/recipes-qt/qt5/qtnetworkauth_git.bb b/recipes-qt/qt5/qtnetworkauth_git.bb index ea4b8ccc..197ccbf4 100644 --- a/recipes-qt/qt5/qtnetworkauth_git.bb +++ b/recipes-qt/qt5/qtnetworkauth_git.bb @@ -1,12 +1,12 @@ -LICENSE = "BSD & GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" +LICENSE = "BSD-3-Clause & GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " require qt5.inc -require qt5-git.inc +require qt5-lts.inc DEPENDS += "qtbase" -SRCREV = "8c0018db2a15c771707615061e767a955d2847d7" +SRCREV = "100c1e57b571ef00d9f715f24e945dd1cfb07044" diff --git a/recipes-qt/qt5/qtopcua_git.bb b/recipes-qt/qt5/qtopcua_git.bb new file mode 100644 index 00000000..46fc7c9a --- /dev/null +++ b/recipes-qt/qt5/qtopcua_git.bb @@ -0,0 +1,21 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "( GFDL-1.3 & ( GPL-2.0-or-later | LGPL-3.0-only ) | 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 = "950f40dcc2d365d6e9ac60fe20178c8ba48a1b6a" diff --git a/recipes-qt/qt5/qtpdf/0001-configure.json-remove-python2-dependency.patch b/recipes-qt/qt5/qtpdf/0001-configure.json-remove-python2-dependency.patch new file mode 100644 index 00000000..013832e5 --- /dev/null +++ b/recipes-qt/qt5/qtpdf/0001-configure.json-remove-python2-dependency.patch @@ -0,0 +1,23 @@ +From be54e6e336001ed3ed342f65f379c2e355d847f0 Mon Sep 17 00:00:00 2001 +From: Leif Middelschulte <Leif.Middelschulte@klsmartin.com> +Date: Tue, 8 Feb 2022 14:14:02 +0100 +Subject: [PATCH] configure.json: remove python2 dependency + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/buildtools/configure.json | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json +index 5e5d9d725..541b7b740 100644 +--- a/src/buildtools/configure.json ++++ b/src/buildtools/configure.json +@@ -422,7 +422,6 @@ + && features.webengine-gperf + && features.webengine-bison + && features.webengine-flex +- && features.webengine-python + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) + && (!config.linux || features.webengine-host-pkg-config) diff --git a/recipes-qt/qt5/qtpdf/0002-gn.pro-do-not-try-to-statically-link-stdc.patch b/recipes-qt/qt5/qtpdf/0002-gn.pro-do-not-try-to-statically-link-stdc.patch new file mode 100644 index 00000000..c95e7d02 --- /dev/null +++ b/recipes-qt/qt5/qtpdf/0002-gn.pro-do-not-try-to-statically-link-stdc.patch @@ -0,0 +1,25 @@ +From 6e25650c829bf1052f607b3f3edbdf88f163efe0 Mon Sep 17 00:00:00 2001 +From: Leif Middelschulte <Leif.Middelschulte@klsmartin.com> +Date: Tue, 8 Feb 2022 16:28:14 +0100 +Subject: [PATCH] gn.pro: do not try to statically link stdc++ + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/buildtools/gn.pro | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro +index a8ca6567b..9632f0ef7 100644 +--- a/src/buildtools/gn.pro ++++ b/src/buildtools/gn.pro +@@ -20,7 +20,8 @@ build_pass|!debug_and_release { + + gn_gen_args = --no-last-commit-position --out-path $$out_path \ + --cc \"$$which($$CC_host)\" --cxx \"$$which($$CXX_host)\" \ +- --ld \"$$which($$CXX_host)\" --ar \"$$which(ar)\" ++ --ld \"$$which($$CXX_host)\" --ar \"$$which(ar)\" \ ++ --no-static-libstdc++ + + msvc:!clang_cl: gn_gen_args += --use-lto + diff --git a/recipes-qt/qt5/qtpdf/0003-Fix-build-with-clang.patch b/recipes-qt/qt5/qtpdf/0003-Fix-build-with-clang.patch new file mode 100644 index 00000000..21fe4f0b --- /dev/null +++ b/recipes-qt/qt5/qtpdf/0003-Fix-build-with-clang.patch @@ -0,0 +1,40 @@ +From 9e1036a25207f9013a13b23401feacd72866be4c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 26 Feb 2022 18:15:28 -0800 +Subject: [PATCH] Fix build with clang + +use GNU runtime when building native tools like gn +when using native clang compiler + +Fixes +| FAILED: gn +| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/qtpdf/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot-native/usr/bin/clang++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-stri +p-all -Wl,--as-needed -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl +| /mnt/b/yoe/master/build/tmp/hosttools/ld: cannot find /usr/lib/clang/14.0.0/lib/linux/libclang_rt.builtins-x86_64.a: No such file or directory + +Fix building with clang from meta-clang + +Clang defaults to llvm runtime and this patch is needed +for building the host tools, since its using native runtime + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/buildtools/gn.pro | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro +index 9632f0ef7..5ff50cca1 100644 +--- a/src/buildtools/gn.pro ++++ b/src/buildtools/gn.pro +@@ -20,8 +20,7 @@ build_pass|!debug_and_release { + + gn_gen_args = --no-last-commit-position --out-path $$out_path \ + --cc \"$$which($$CC_host)\" --cxx \"$$which($$CXX_host)\" \ +- --ld \"$$which($$CXX_host)\" --ar \"$$which(ar)\" \ +- --no-static-libstdc++ ++ --ld \"$$which($$CXX_host) -stdlib=libc++ -rtlib=libgcc -unwindlib=libgcc $$(GN_HOST_TOOLCHAIN_EXTRA_LDFLAGS)\" --ar \"$$which(ar)\" + + msvc:!clang_cl: gn_gen_args += --use-lto + diff --git a/recipes-qt/qt5/qtpdf_git.bb b/recipes-qt/qt5/qtpdf_git.bb new file mode 100644 index 00000000..ad17f36e --- /dev/null +++ b/recipes-qt/qt5/qtpdf_git.bb @@ -0,0 +1,221 @@ +SUMMARY = "Qt Pdf support" + +# Read http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ +LICENSE = "BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( LGPL-3.0-only | The-Qt-Company-Commercial )" +LIC_FILES_CHKSUM = " \ + file://src/3rdparty/chromium/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \ + file://LICENSE.LGPL3;md5=8211fde12cc8a4e2477602f5953f5b71 \ + file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ + file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ +" + +DEPENDS += " \ + libpng-native \ + ninja-native \ + bison-native \ + qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \ + jpeg-native \ + freetype-native \ + gperf-native \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcomposite libxcursor libxi libxrandr libxtst libxkbfile', '', d)} \ +" + +DEPENDS:append:libc-musl = " libexecinfo" + +inherit pkgconfig + +EXTRA_QMAKEVARS_CONFIGURE += "-feature-webengine-system-ninja -no-feature-webengine-system-gn" +EXTRA_QMAKEVARS_PRE += "CONFIG+=force_debug_info" + +# chromium/third_party/openh264/openh264.gyp adds +# -Wno-format to openh264_cflags_add +# similarly chromium/third_party/openh264/BUILD.gn for newer qtwebengine +# causing following error, because -Wformat-security cannot be used together with -Wno-format +# cc1plus: error: -Wformat-security ignored without -Wformat [-Werror=format-security] +# http://errors.yoctoproject.org/Errors/Details/150333/ +SECURITY_STRINGFORMAT = "" + +# To use system ffmpeg you need to enable also libwebp, opus, libvpx +# Only depenedencies available in oe-core are enabled by default +PACKAGECONFIG ??= "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" +PACKAGECONFIG[libwebp] = "-feature-webengine-system-libwebp,-no-feature-webengine-system-libwebp,libwebp" +PACKAGECONFIG[opus] = "-feature-webengine-system-opus,-no-feature-webengine-system-opus,libopus" +PACKAGECONFIG[libvpx] = "-feature-webengine-system-libvpx,-no-feature-webengine-system-libvpx,libvpx" +PACKAGECONFIG[libevent] = "-feature-webengine-system-libevent,-no-feature-webengine-system-libevent,libevent" +PACKAGECONFIG[libpng] = "-feature-webengine-system-png,-no-feature-webengine-system-png,libpng" +PACKAGECONFIG[harfbuzz] = "-feature-webengine-system-harfbuzz,-no-feature-webengine-system-harfbuzz,harfbuzz" +PACKAGECONFIG[glib] = "-feature-webengine-system-glib,-no-feature-webengine-system-glib,glib-2.0" +PACKAGECONFIG[zlib] = "-feature-webengine-system-zlib,-no-feature-webengine-system-zlib,zlib" +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}" + +COMPATIBLE_MACHINE = "(-)" +COMPATIBLE_MACHINE:x86 = "(.*)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" +COMPATIBLE_MACHINE:armv6 = "(.*)" +COMPATIBLE_MACHINE:armv7a = "(.*)" +COMPATIBLE_MACHINE:armv7ve = "(.*)" +COMPATIBLE_MACHINE:aarch64 = "(.*)" +COMPATIBLE_MACHINE:riscv64 = "(.*)" + +inherit qmake5 +inherit gettext +inherit perlnative +inherit features_check + + +# Static builds of QtWebEngine aren't supported. +CONFLICT_DISTRO_FEATURES = "qt5-static" + +# we don't want gettext.bbclass to append --enable-nls +def gettext_oeconf(d): + return "" + +require qt5.inc +require qt5-git.inc + +export GN_PKG_CONFIG_HOST = "${STAGING_BINDIR_NATIVE}/pkg-config-native" +export GN_HOST_TOOLCHAIN_EXTRA_CPPFLAGS = "-I${STAGING_DIR_NATIVE}/usr/include" +export GN_HOST_TOOLCHAIN_EXTRA_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE}" +export NINJAFLAGS="${PARALLEL_MAKE}" + +do_configure() { + + # qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as + # arguments here + ${OE_QMAKE_QMAKE} ${EXTRA_QMAKEVARS_PRE} ${S} \ + QMAKE_CXX="${OE_QMAKE_CXX}" \ + QMAKE_CC="${OE_QMAKE_CC}" \ + QMAKE_LINK="${OE_QMAKE_LINK}" \ + QMAKE_CFLAGS="${OE_QMAKE_CFLAGS}" \ + QMAKE_CXXFLAGS="${OE_QMAKE_CXXFLAGS}" \ + -after ${EXTRA_QMAKEVARS_POST} -- \ + ${EXTRA_QMAKEVARS_CONFIGURE} -verbose +} + +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 +} + +do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+" + +# for /usr/share/qt5/qtwebengine_resources.pak +FILES:${PN} += "${OE_QMAKE_PATH_QT_TRANSLATIONS} ${OE_QMAKE_PATH_QT_DATA}" + +# Chromium uses libpci to determine which optimizations/workarounds to apply +RDEPENDS:${PN}:append:x86 = " libpci" + +RDEPENDS:${PN}-examples += " \ + ${PN}-qmlplugins \ + qtquickcontrols-qmlplugins \ + qtdeclarative-qmlplugins \ +" + +QT_MODULE_BRANCH_CHROMIUM = "87-based" + +# Uses the same repository and couple patches as qtwebengine, but qtwebengine +# still depends on python2 +QT_MODULE = "qtwebengine" +FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtwebengine:" + +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15-glibc +# 5.15-glibc.meta-qt5.17 +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.meta-qt5.17 +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/87-based-glibc +# 87-based-glibc.meta-qt5.11 +SRC_URI += " \ + file://chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \ + file://chromium/0002-chromium-fix-build-with-clang.patch;patchdir=src/3rdparty \ + file://chromium/0003-chromium-Exclude-CRC32-for-32bit-arm.patch;patchdir=src/3rdparty \ + file://chromium/0004-chromium-Do-not-try-to-set-the-guessed-values-for.patch;patchdir=src/3rdparty \ + file://chromium/0005-chromium-fix-build-after-y2038-changes-in-glibc.patch;patchdir=src/3rdparty \ + file://chromium/0006-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch;patchdir=src/3rdparty \ + file://chromium/0007-chromium-Include-cstddef-for-size_t-definition.patch;patchdir=src/3rdparty \ + file://chromium/0008-chromium-Move-CharAllocator-definition-to-a-header-f.patch;patchdir=src/3rdparty \ + file://chromium/0009-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \ + file://chromium/0010-chromium-icu-use-system-library-only-targets.patch;patchdir=src/3rdparty \ + file://chromium/0011-chromium-skia-Fix-build-with-gcc-12.patch;patchdir=src/3rdparty \ + file://chromium/0012-Remove-unsetting-_FILE_OFFSET_BITS.patch;patchdir=src/3rdparty \ + file://chromium/0024-Fix-dependecy-when-compiling-content-browser.patch;patchdir=src/3rdparty \ +" + +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/87-based +# 87-based.meta-qt5.11 +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-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-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ + file://chromium/0022-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ + file://chromium/0023-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ +" + +SRCREV_qtwebengine = "17fd3176988586168bee8654008a097a5f23ec1d" +SRCREV_chromium = "fdfef5b37af3bed8402d7c7e20a5487f2602b0a6" +SRCREV = "${SRCREV_qtwebengine}" + +SRCREV_FORMAT = "qtwebengine_chromium" + +# WARNING: qtwebengine-5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0 do_package_qa: QA Issue: ELF binary '/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/packages-split/qtwebengine/usr/lib/libQt5WebEngineCore.so.5.6.0' has relocations in .text [textrel] +INSANE_SKIP:${PN} += "textrel" + +### +### This recipe's part above is mostly a copy of qtwebengine_git.bb. +### The PACKAGECONFIG flags were kept to avoid enablement of any unwished-for features +### There were only some (build) dependencies removed. +### + +# First patch skips "python2" dependency checks for the pdf module +# Second patch repairs a failing build of the `gn` buildtool due to missing (host) libstdc++ +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15-qtpdf +# 5.15-qtpdf.meta-qt5.5 +SRC_URI += " \ + file://0001-configure.json-remove-python2-dependency.patch \ + file://0002-gn.pro-do-not-try-to-statically-link-stdc.patch \ +" +SRC_URI:append:toolchain-clang:runtime-llvm = " file://0003-Fix-build-with-clang.patch" + +# These flags below go more into detail than qtwebengine's documentation +PACKAGECONFIG[no-core] = "-no-build-qtwebengine-core,," +PACKAGECONFIG[qtpdf] = "-feature-build-qtpdf,-no-feature-build-qtpdf,python3-native" +PACKAGECONFIG[webengine-pdf] = "-feature-webengine-python,-no-feature-webengine-python,python3-native" + +# The flags below enable just the PDF widget +PACKAGECONFIG = "no-core qtpdf" + +# Work around gn's dependency on python (2). +# To build qtpdf it works just as well with python3. +EXTRA_QMAKEVARS_PRE += "QMAKE_PYTHON2=python3" diff --git a/recipes-qt/qt5/qtpurchasing_git.bb b/recipes-qt/qt5/qtpurchasing_git.bb new file mode 100644 index 00000000..1d93d2a5 --- /dev/null +++ b/recipes-qt/qt5/qtpurchasing_git.bb @@ -0,0 +1,13 @@ +require qt5.inc +require qt5-lts.inc + +HOMEPAGE = "http://www.qt.io" +LICENSE = "Apache-2.0 & BSD-3-Clause & ( LGPL-3.0-only | GPL-3.0-only | The-Qt-Company-Commercial )" +LIC_FILES_CHKSUM = " \ + file://LICENSE.LGPLv3;md5=b8c75190712063cde04e1f41b6fdad98 \ + file://LICENSE.GPLv3;md5=40f9bf30e783ddc201497165dfb32afb \ +" + +DEPENDS += "qtbase qtdeclarative" + +SRCREV = "e879db20f84340a9eaef66cd34137eafa5388b00" diff --git a/recipes-qt/qt5/qtquick1/run-ptest b/recipes-qt/qt5/qtquick1/run-ptest deleted file mode 100644 index 044f834d..00000000 --- a/recipes-qt/qt5/qtquick1/run-ptest +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -for x in ` awk '{print $1}' tst_list `;do - ./${x}; -done - diff --git a/recipes-qt/qt5/qtquick1_git.bb b/recipes-qt/qt5/qtquick1_git.bb deleted file mode 100644 index a8fbb8e7..00000000 --- a/recipes-qt/qt5/qtquick1_git.bb +++ /dev/null @@ -1,28 +0,0 @@ -require qt5.inc -require qt5-git.inc -require qt5-ptest.inc - -HOMEPAGE = "http://www.qt.io" -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" -LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \ - file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ - file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ - file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ -" - -DEPENDS += "qtscript qtsvg qtxmlpatterns" -# qttools - -PACKAGECONFIG ??= "webkit" -PACKAGECONFIG[webkit] = ",,qtwebkit" - -EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'webkit', '', 'CONFIG+=noqtwebkit', d)}" - -do_configure_prepend() { - sed -i 's#^qtHaveModule(webkitwidgets):#qtHaveModule(webkitwidgets):!contains(CONFIG, noqtwebkit):#g' ${S}/src/imports/imports.pro -} - -QT_MODULE_BRANCH = "dev" -SRCREV = "fa02271a18837f20e82006de23c2af1899294aa1" diff --git a/recipes-qt/qt5/qtquick3d_git.bb b/recipes-qt/qt5/qtquick3d_git.bb new file mode 100644 index 00000000..9349e098 --- /dev/null +++ b/recipes-qt/qt5/qtquick3d_git.bb @@ -0,0 +1,27 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "(GPL-3.0-only & BSD-3-Clause) | The-Qt-Company-Commercial" +LIC_FILES_CHKSUM = " \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ +" + +DEPENDS += "qtbase qtdeclarative qtquickcontrols2" + +SRC_URI += " \ + git://code.qt.io/qt/qtquick3d-assimp.git;name=assimp;branch=qt6_assimp;protocol=https;destsuffix=git/src/3rdparty/assimp/src \ +" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[system-assimp] = "-system-quick3d-assimp,-qt-quick3d-assimp,assimp" + +EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" + +FILES:${PN}-qmlplugins += " \ + ${OE_QMAKE_PATH_QML}/QtQuick3D/Helpers/meshes/*.mesh \ +" + +SRCREV_qtquick3d = "d3272d49a0a01714bc486e0fd39ae2bbfe7a74c6" +SRCREV_assimp = "8f0c6b04b2257a520aaab38421b2e090204b69df" + +SRCREV_FORMAT = "qtquick3d_assimp" diff --git a/recipes-qt/qt5/qtquickcontrols2/0001-Revert-Get-the-scale-of-the-popup-item-when-setting-.patch b/recipes-qt/qt5/qtquickcontrols2/0001-Revert-Get-the-scale-of-the-popup-item-when-setting-.patch new file mode 100644 index 00000000..1692e2de --- /dev/null +++ b/recipes-qt/qt5/qtquickcontrols2/0001-Revert-Get-the-scale-of-the-popup-item-when-setting-.patch @@ -0,0 +1,129 @@ +From 9fada65e1dd8958cbe4b8dc12c9e4814fcff5a6c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Fri, 16 Apr 2021 21:54:16 +0200 +Subject: [PATCH] Revert "Get the scale of the popup item when setting the + parent item" + +Upgrade 5.14.2 (for us dunfell) -> 5.15.2 introduced a bug: Opening a menu +for the second+ time, menu moves right and down and parts land outside screen. +Reported but nobody cares. [1] + +[1] https://bugreports.qt.io/browse/QTBUG-86973 + +Upstream-Status: Pending + +This reverts commit 761dba8b23b7e558acc57b3e481648ce319a4397. +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/quicktemplates2/qquickpopuppositioner.cpp | 18 +++++++-------- + .../qquickpopuppositioner_p_p.h | 1 - + tests/auto/controls/data/tst_combobox.qml | 22 ------------------- + tests/auto/controls/data/tst_popup.qml | 3 --- + 4 files changed, 8 insertions(+), 36 deletions(-) + +diff --git a/src/quicktemplates2/qquickpopuppositioner.cpp b/src/quicktemplates2/qquickpopuppositioner.cpp +index 1bfaafbe6..dbe8ac1d5 100644 +--- a/src/quicktemplates2/qquickpopuppositioner.cpp ++++ b/src/quicktemplates2/qquickpopuppositioner.cpp +@@ -92,10 +92,7 @@ void QQuickPopupPositioner::setParentItem(QQuickItem *parent) + + QQuickItemPrivate::get(parent)->addItemChangeListener(this, ItemChangeTypes); + addAncestorListeners(parent->parentItem()); +- // Store the scale property so the end result of any transition that could effect the scale +- // does not influence the top left of the final popup, so it doesn't appear to flip from one +- // position to another as a result +- m_popupScale = m_popup->popupItem()->scale(); ++ + if (m_popup->popupItem()->isVisible()) + QQuickPopupPrivate::get(m_popup)->reposition(); + } +@@ -111,10 +108,11 @@ void QQuickPopupPositioner::reposition() + return; + } + +- const qreal w = popupItem->width() * m_popupScale; +- const qreal h = popupItem->height() * m_popupScale; +- const qreal iw = popupItem->implicitWidth() * m_popupScale; +- const qreal ih = popupItem->implicitHeight() * m_popupScale; ++ const qreal scale = popupItem->scale(); ++ const qreal w = popupItem->width() * scale; ++ const qreal h = popupItem->height() * scale; ++ const qreal iw = popupItem->implicitWidth() * scale; ++ const qreal ih = popupItem->implicitHeight() * scale; + + bool widthAdjusted = false; + bool heightAdjusted = false; +@@ -260,9 +258,9 @@ void QQuickPopupPositioner::reposition() + } + + if (!p->hasWidth && widthAdjusted && rect.width() > 0) +- popupItem->setWidth(rect.width() / m_popupScale); ++ popupItem->setWidth(rect.width() / scale); + if (!p->hasHeight && heightAdjusted && rect.height() > 0) +- popupItem->setHeight(rect.height() / m_popupScale); ++ popupItem->setHeight(rect.height() / scale); + m_positioning = false; + } + +diff --git a/src/quicktemplates2/qquickpopuppositioner_p_p.h b/src/quicktemplates2/qquickpopuppositioner_p_p.h +index 03a2e2fed..64f57a3fa 100644 +--- a/src/quicktemplates2/qquickpopuppositioner_p_p.h ++++ b/src/quicktemplates2/qquickpopuppositioner_p_p.h +@@ -79,7 +79,6 @@ protected: + bool m_positioning = false; + QQuickItem *m_parentItem = nullptr; + QQuickPopup *m_popup = nullptr; +- qreal m_popupScale = 1.0; + }; + + QT_END_NAMESPACE +diff --git a/tests/auto/controls/data/tst_combobox.qml b/tests/auto/controls/data/tst_combobox.qml +index 1c58372ff..e9156fee5 100644 +--- a/tests/auto/controls/data/tst_combobox.qml ++++ b/tests/auto/controls/data/tst_combobox.qml +@@ -911,28 +911,6 @@ TestCase { + compare(control.popup.visible, true) + verify(control.popup.contentItem.y < control.y) + +- +- // Account for when a transition of a scale from 0.9-1.0 that it is placed above right away and not below +- // first just because there is room at the 0.9 scale +- if (control.popup.enter !== null) { +- // hide +- mouseClick(control) +- compare(control.pressed, false) +- tryCompare(control.popup, "visible", false) +- control.y = control.Window.height - (control.popup.contentItem.height * 0.99) +- var popupYSpy = createTemporaryObject(signalSpy, testCase, {target: control.popup, signalName: "yChanged"}) +- verify(popupYSpy.valid) +- mousePress(control) +- compare(control.pressed, true) +- compare(control.popup.visible, false) +- mouseRelease(control) +- compare(control.pressed, false) +- compare(control.popup.visible, true) +- tryCompare(control.popup.enter, "running", false) +- verify(control.popup.contentItem.y < control.y) +- verify(popupYSpy.count === 1) +- } +- + // follow the control outside the horizontal window bounds + control.x = -control.width / 2 + compare(control.x, -control.width / 2) +diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml +index 57d5ccccf..71d6f2d76 100644 +--- a/tests/auto/controls/data/tst_popup.qml ++++ b/tests/auto/controls/data/tst_popup.qml +@@ -1276,9 +1276,6 @@ TestCase { + { visible: true, width: 100, height: 100 }) + verify(control) + verify(control.visible) +- // If there is a transition then make sure it is finished +- if (control.enter !== null) +- tryCompare(control.enter, "running", false) + compare(control.parent, control.Overlay.overlay) + compare(control.x, 0) + compare(control.y, 0) +-- +2.26.2 + diff --git a/recipes-qt/qt5/qtquickcontrols2_git.bb b/recipes-qt/qt5/qtquickcontrols2_git.bb index d371e21e..7ad39bef 100644 --- a/recipes-qt/qt5/qtquickcontrols2_git.bb +++ b/recipes-qt/qt5/qtquickcontrols2_git.bb @@ -1,13 +1,15 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GFDL-1.3 & BSD & LGPL-3.0 | GPL-3.0 | The-Qt-Company-Commercial" +LICENSE = "GFDL-1.3 & BSD-3-Clause & LGPL-3.0-only | GPL-3.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.LGPLv3;md5=382747d0119037529ec2b98b24038eb0 \ file://LICENSE.GPLv3;md5=dce746aa5261707df6d6999ab9958d8b \ " -DEPENDS += "qtdeclarative" +DEPENDS += "qtdeclarative qtdeclarative-native" -SRCREV = "7a1aa360fdbbc2852318967d227f1dcb009be976" +SRC_URI += "file://0001-Revert-Get-the-scale-of-the-popup-item-when-setting-.patch" + +SRCREV = "32755d45229fdcb2de7af1b21a23d9649773d6cb" diff --git a/recipes-qt/qt5/qtquickcontrols_git.bb b/recipes-qt/qt5/qtquickcontrols_git.bb index 8a6fcd9a..fcde2ea9 100644 --- a/recipes-qt/qt5/qtquickcontrols_git.bb +++ b/recipes-qt/qt5/qtquickcontrols_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -10,11 +10,11 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " -DEPENDS += "qtdeclarative" +DEPENDS += "qtdeclarative qtdeclarative-native" -FILES_${PN}-qmlplugins += " \ +FILES:${PN}-qmlplugins += " \ ${OE_QMAKE_PATH_QML}/QtQuick/Controls/Shaders \ ${OE_QMAKE_PATH_QML}/QtQuick/Dialogs/qml/icons.ttf \ " -SRCREV = "4961e95a525629fc4b92999bbf32963762fce1c6" +SRCREV = "dd98d78caa6f68c9aa6ffe61445ddfed701daf98" diff --git a/recipes-qt/qt5/qtquicktimeline_git.bb b/recipes-qt/qt5/qtquicktimeline_git.bb new file mode 100644 index 00000000..c31d119f --- /dev/null +++ b/recipes-qt/qt5/qtquicktimeline_git.bb @@ -0,0 +1,13 @@ +require qt5.inc +require qt5-lts.inc + +DESCRIPTION = "Qt Quick Timeline" +LICENSE = "GPL-2.0-or-later | The-Qt-Company-Commercial" +LIC_FILES_CHKSUM = " \ + file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ + " + +DEPENDS = "qtbase qtdeclarative" + +SRCREV = "4278a28a27317bbb30c978ccc21e2e58d83d5d1f" diff --git a/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch b/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch index 4a49b620..90588176 100644 --- a/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch +++ b/recipes-qt/qt5/qtremoteobjects/0001-Allow-a-tools-only-build.patch @@ -1,16 +1,18 @@ -From a83e4f796c44cda70ac839f5cd545e88097c8e91 Mon Sep 17 00:00:00 2001 +From 7cad6026250fc10503f4373e8d5e0228e7420446 Mon Sep 17 00:00:00 2001 From: Samuli Piippo <samuli.piippo@qt.io> Date: Wed, 7 Jun 2017 15:17:12 +0300 Subject: [PATCH] Allow a tools-only build Change-Id: I3b33fc1c8877fc82568bd386b063e7a0aa57b706 +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- mkspecs/features/repccommon.pri | 2 +- qtremoteobjects.pro | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/repccommon.pri b/mkspecs/features/repccommon.pri -index 5e88bf8..6efd19e 100644 +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 +25,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/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch new file mode 100644 index 00000000..b0bfd34e --- /dev/null +++ b/recipes-qt/qt5/qtremoteobjects/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch @@ -0,0 +1,24 @@ +From 812ed2c2f89c6df731d7698fe2bf253e3afa179a 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 + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + 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 f98c37a..0f8aee5 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/recipes-qt/qt5/qtremoteobjects_git.bb b/recipes-qt/qt5/qtremoteobjects_git.bb index 4416efc4..3dd17b2d 100644 --- a/recipes-qt/qt5/qtremoteobjects_git.bb +++ b/recipes-qt/qt5/qtremoteobjects_git.bb @@ -1,4 +1,4 @@ -LICENSE = "BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial" +LICENSE = "BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0-or-later | LGPL-3.0-only ) | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ @@ -7,23 +7,24 @@ LIC_FILES_CHKSUM = " \ " require qt5.inc -require qt5-git.inc +require qt5-lts.inc DEPENDS += "qtbase qtdeclarative qtremoteobjects-native" -# Patches from https://github.com/meta-qt5/qtremoteobjects/commits/b5.9 -# 5.9.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qtremoteobjects/commits/b5.15 +# 5.15.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 ??= "" -PACKAGECONFIG_class-native ??= "tools-only" -PACKAGECONFIG_class-nativesdk ??= "tools-only" +PACKAGECONFIG:class-native ??= "tools-only" +PACKAGECONFIG:class-nativesdk ??= "tools-only" PACKAGECONFIG[tools-only] = "CONFIG+=tools-only" EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}" -SRCREV = "a4ac5446eefaa5577115ac604b41fcfb48c9f775" +SRCREV = "e006bf7ec70e4e1617810667f992aa3f9b01cd0f" BBCLASSEXTEND += "native nativesdk" diff --git a/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch b/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch new file mode 100644 index 00000000..35af2d9f --- /dev/null +++ b/recipes-qt/qt5/qtscript/0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch @@ -0,0 +1,36 @@ +From f752f2a0a7565ff62376eb61b3a67389fe1fa2fc 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 + +sgidefs.h wrapper is glibc specific and causes build +failures on musl + +Fixes +Platform.h:380:10: fatal error: sgidefs.h: No such file or directory + #include <sgidefs.h> + ^~~~~~~~~~~ +compilation terminated. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +index a4695a2..4b7a45b 100644 +--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +@@ -377,7 +377,11 @@ + + #if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_)) + #define WTF_CPU_MIPS 1 ++#if defined(__GLIBC__) + #include <sgidefs.h> ++#else ++#include <asm/sgidefs.h> ++#endif + #if defined(__MIPSEB__) + #define WTF_CPU_BIG_ENDIAN 1 + #endif diff --git a/recipes-qt/qt5/qtscript_git.bb b/recipes-qt/qt5/qtscript_git.bb index 06bb6b7b..ded1b5a7 100644 --- a/recipes-qt/qt5/qtscript_git.bb +++ b/recipes-qt/qt5/qtscript_git.bb @@ -2,14 +2,21 @@ require qt5.inc require qt5-git.inc HOMEPAGE = "http://www.qt.io" -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504\ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " +# Patches from https://github.com/meta-qt5/qtscript/commits/b5.15 +# 5.15.meta-qt5.1 +SRC_URI += " \ + file://0001-Include-asm-sgidefs.h-on-non-glibc-systems.patch \ +" + # qemuarm build fails with: # /OE/build/oe-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/qtscript/5.4.1+gitAUTOINC+822df36f25-r0/git/src/3rdparty/javascriptcore/JavaScriptCore/assembler/AssemblerBuffer.h: In member function 'void QTJSC::AssemblerBuffer::putInt64Unchecked(int64_t)': #/OE/build/oe-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/qtscript/5.4.1+gitAUTOINC+822df36f25-r0/git/src/3rdparty/javascriptcore/JavaScriptCore/assembler/AssemblerBuffer.h:106:58: warning: cast from 'char*' to 'int64_t* {aka long long int*}' increases required alignment of target type [-Wcast-align] @@ -20,13 +27,13 @@ LIC_FILES_CHKSUM = " \ #{standard input}:23: Error: selected processor does not support Thumb mode `stmdb sp!,{r4-r8,lr}' #{standard input}:30: Error: lo register required -- `ldmia sp!,{r4-r8,lr}' #{standard input}:43: Error: lo register required -- `ldmia sp!,{r4-r8,lr}' -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" DEPENDS += "qtbase" # The same issue as in qtbase: # http://errors.yoctoproject.org/Errors/Build/44915/ -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" -SRCREV = "39fd6bb400aa0433566151358be97e738ef316b8" +SRCREV = "572daa83e990ce88cca27909470c5404657ec9de" diff --git a/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch b/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch index 36a6d031..47be0b7f 100644 --- a/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch +++ b/recipes-qt/qt5/qtscxml/0001-Use-external-host-bin-path-for-cmake-file.patch @@ -1,4 +1,4 @@ -From c9886590333dce8a1dd1e198f5449bb841033bc8 Mon Sep 17 00:00:00 2001 +From d5eb24a355d98c8961ce4b89e0622001480f7c90 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 @@ -14,7 +14,7 @@ Change-Id: Idb814be705e9cbaad7f1e68b5d7cdb79c4b65008 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scxml/Qt5ScxmlConfigExtras.cmake.in b/src/scxml/Qt5ScxmlConfigExtras.cmake.in -index edb320a..ce7f2df 100644 +index b9b589f..bb52533 100644 --- a/src/scxml/Qt5ScxmlConfigExtras.cmake.in +++ b/src/scxml/Qt5ScxmlConfigExtras.cmake.in @@ -40,7 +40,7 @@ if (NOT TARGET Qt5::qscxmlc) diff --git a/recipes-qt/qt5/qtscxml_git.bb b/recipes-qt/qt5/qtscxml_git.bb index 571d2afa..8a105e4b 100644 --- a/recipes-qt/qt5/qtscxml_git.bb +++ b/recipes-qt/qt5/qtscxml_git.bb @@ -1,4 +1,4 @@ -LICENSE = "LGPL-3.0 & BSD & GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" +LICENSE = "LGPL-3.0-only & BSD-3-Clause & GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ @@ -6,17 +6,17 @@ LIC_FILES_CHKSUM = " \ " require qt5.inc -require qt5-git.inc +require qt5-lts.inc DEPENDS += "qtbase qtdeclarative qtxmlpatterns qtscxml-native" -SRCREV = "e054306b679a56970af282df26baab7aaefcf8fa" +SRCREV = "9c12ec9ad94d84f3c2319cc461b6342bdfd3b593" -# Patches from https://github.com/meta-qt5/qtscxml/commits/b5.9 -# 5.9.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qtscxml/commits/b5.15 +# 5.15.meta-qt5.1 SRC_URI += "file://0001-Use-external-host-bin-path-for-cmake-file.patch" -do_install_append_class-nativesdk() { +do_install:append:class-nativesdk() { # qml files not needed in nativesdk rm -rf ${D}${OE_QMAKE_PATH_QML} } diff --git a/recipes-qt/qt5/qtsensors_git.bb b/recipes-qt/qt5/qtsensors_git.bb index 0df5b492..62312884 100644 --- a/recipes-qt/qt5/qtsensors_git.bb +++ b/recipes-qt/qt5/qtsensors_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \ DEPENDS += "qtbase qtdeclarative" -SRCREV = "a1e9b6acb2149f40f130b5cfface16b2cd877f79" +SRCREV = "83ee0a26e791e0a9ea01df2109e26053d3ec2ab5" diff --git a/recipes-qt/qt5/qtserialbus_git.bb b/recipes-qt/qt5/qtserialbus_git.bb index 53e4fd0e..c5e20fc9 100644 --- a/recipes-qt/qt5/qtserialbus_git.bb +++ b/recipes-qt/qt5/qtserialbus_git.bb @@ -1,14 +1,20 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GFDL-1.3 & (LGPL-3.0 | GPL-2.0+) | The-Qt-Company-Commercial" +LICENSE = "GFDL-1.3 & (LGPL-3.0-only | GPL-2.0-or-later) | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LICENSE.FDL;md5=f70ee9a6c44ae8917586fea34dff0ab5 \ + file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ " -DEPENDS += "qtbase qtserialport" +DEPENDS += "qtbase" + +PACKAGECONFIG ?= "modbus ${@bb.utils.contains('BBFILE_COLLECTIONS', 'openembedded-layer', 'socketcan', '', d)}" +PACKAGECONFIG[modbus] = "-feature-modbus-serialport,-no-feature-modbus-serialport,qtserialport" +PACKAGECONFIG[socketcan] = "-feature-socketcan,-no-feature-socketcan,,libsocketcan" + +EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" -SRCREV = "6e796645c50153de2502591132b4e8cdf4650fda" +SRCREV = "58372774dcadfbfeb1f375103d1cd58b9ef1225a" diff --git a/recipes-qt/qt5/qtserialport_git.bb b/recipes-qt/qt5/qtserialport_git.bb index 8a9da8b0..1c5bce54 100644 --- a/recipes-qt/qt5/qtserialport_git.bb +++ b/recipes-qt/qt5/qtserialport_git.bb @@ -1,18 +1,15 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -# text of LGPL_EXCEPTION.txt and LICENSE.FDL is slightly different than what -# other qt* components use :/ -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ + file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LGPL_EXCEPTION.txt;md5=bb426f3367c4805d1e12fad05bd0b750 \ - file://LICENSE.FDL;md5=3801d7932fdc07fd9efe89f9854a6caa \ - file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " DEPENDS += "qtbase" -SRCREV = "672dd108843389dee272a51baec21ef836acaca9" +SRCREV = "f4663160f1c5d0b1806f43ef2d1d25a5103995ec" diff --git a/recipes-qt/qt5/qtsvg_git.bb b/recipes-qt/qt5/qtsvg_git.bb index 9b3ecbc0..5378985f 100644 --- a/recipes-qt/qt5/qtsvg_git.bb +++ b/recipes-qt/qt5/qtsvg_git.bb @@ -1,16 +1,15 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \ file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " DEPENDS += "qtbase" -SRCREV = "e2fbd2cf279b5af8d9d224f24d4a13978de5c252" +SRCREV = "59b581701c0cb888f6ac9b6b3ef78b26b6d30d8d" diff --git a/recipes-qt/qt5/qtsystems/0001-qtsystems-install-files-only-once.patch b/recipes-qt/qt5/qtsystems/0001-qtsystems-install-files-only-once.patch new file mode 100644 index 00000000..93d34b8d --- /dev/null +++ b/recipes-qt/qt5/qtsystems/0001-qtsystems-install-files-only-once.patch @@ -0,0 +1,71 @@ +From 34071f47bb5a0b1617e8cc97d8259899f7e96f9f Mon Sep 17 00:00:00 2001 +From: ansar-rasool <ansar_rasool@mentor.com> +Date: Wed, 22 Sep 2021 10:50:42 +0500 +Subject: [PATCH] qtsystems: install files only once + +This fixes build error for qtsystems when it tries to +install files multiple times and fails with error of +"Destination file exists". + +Upstream-Status: Pending +Signed-off-by: ansar-rasool <ansar_rasool@mentor.com> +--- + examples/systeminfo/inputinfo/inputinfo.pro | 3 +-- + examples/systeminfo/qml-battery/qml-battery.pro | 3 +-- + examples/systeminfo/qml-deviceinfo/qml-deviceinfo.pro | 3 +-- + examples/systeminfo/qml-inputinfo/qml-inputinfo.pro | 3 +-- + 4 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/examples/systeminfo/inputinfo/inputinfo.pro b/examples/systeminfo/inputinfo/inputinfo.pro +index a5365fa..d0947e8 100644 +--- a/examples/systeminfo/inputinfo/inputinfo.pro ++++ b/examples/systeminfo/inputinfo/inputinfo.pro +@@ -22,5 +22,4 @@ HEADERS += \ + inputtest.h + + target.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/inputinfo +- app.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/inputinfo +- INSTALLS += target app ++INSTALLS += target +diff --git a/examples/systeminfo/qml-battery/qml-battery.pro b/examples/systeminfo/qml-battery/qml-battery.pro +index e9e3700..7c35d53 100644 +--- a/examples/systeminfo/qml-battery/qml-battery.pro ++++ b/examples/systeminfo/qml-battery/qml-battery.pro +@@ -7,8 +7,7 @@ app.files = \ + $$files(*.qml) \ + + target.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-battery +-app.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-battery +-INSTALLS += target app ++INSTALLS += target + + RESOURCES += \ + qml-battery.qrc +diff --git a/examples/systeminfo/qml-deviceinfo/qml-deviceinfo.pro b/examples/systeminfo/qml-deviceinfo/qml-deviceinfo.pro +index 4a39200..a942272 100644 +--- a/examples/systeminfo/qml-deviceinfo/qml-deviceinfo.pro ++++ b/examples/systeminfo/qml-deviceinfo/qml-deviceinfo.pro +@@ -7,8 +7,7 @@ app.files = \ + $$files(*.qml) + + target.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-deviceinfo +-app.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-deviceinfo +-INSTALLS += target app ++INSTALLS += target + + RESOURCES += \ + qml-deviceinfo.qrc +diff --git a/examples/systeminfo/qml-inputinfo/qml-inputinfo.pro b/examples/systeminfo/qml-inputinfo/qml-inputinfo.pro +index 4b49738..0a389e3 100644 +--- a/examples/systeminfo/qml-inputinfo/qml-inputinfo.pro ++++ b/examples/systeminfo/qml-inputinfo/qml-inputinfo.pro +@@ -7,8 +7,7 @@ app.files = \ + $$files(*.qml) \ + + target.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-inputinfo +-app.path = $$[QT_INSTALL_EXAMPLES]/systeminfo/qml-inputinfo +-INSTALLS += target app ++INSTALLS += target + + RESOURCES += \ + qml-inputinfo.qrc diff --git a/recipes-qt/qt5/qtsystems_git.bb b/recipes-qt/qt5/qtsystems_git.bb index d459f591..4c7956aa 100644 --- a/recipes-qt/qt5/qtsystems_git.bb +++ b/recipes-qt/qt5/qtsystems_git.bb @@ -1,34 +1,36 @@ 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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ + file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " DEPENDS += "qtbase qtdeclarative udev gconf" -inherit bluetooth - PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" -PACKAGECONFIG[bluez] = "CONFIG+=OE_BLUEZ_ENABLED,,${BLUEZ}" +PACKAGECONFIG[bluez] = "CONFIG+=OE_BLUEZ_ENABLED,,bluez5" EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}" -do_configure_prepend() { +do_configure:prepend() { # disable bluez test if it isn't enabled by PACKAGECONFIG sed -i 's/^ qtCompileTest(bluez)/ OE_BLUEZ_ENABLED:qtCompileTest(bluez)/g' ${S}/qtsystems.pro } -do_install_append() { +do_install:append() { # Remove example.pro file as it is useless rm -f ${D}${OE_QMAKE_PATH_EXAMPLES}/examples.pro } QT_MODULE_BRANCH = "dev" -SRCREV = "66e45676f5f5c6251ccab36906c6324fd0065e08" +SRCREV = "e3332ee38d27a134cef6621fdaf36687af1b6f4a" + +SRC_URI += " \ + file://0001-qtsystems-install-files-only-once.patch \ +" diff --git a/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch b/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch index f7ada984..4389d992 100644 --- a/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch +++ b/recipes-qt/qt5/qttools/0001-add-noqtwebkit-configuration.patch @@ -1,4 +1,4 @@ -From fcbe797b61e624e5859dabfbe932ace2e8022649 Mon Sep 17 00:00:00 2001 +From dfd1f8f5d4ac5ae62597aad0d6ec9b680f1a6545 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 @@ -6,7 +6,7 @@ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Upstream-Status: Inappropiate [configuration] +Upstream-Status: Inappropriate [configuration] Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> @@ -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 82f5509..ef07ee0 100644 +index 5da0b007..9571697f 100644 --- a/src/assistant/assistant/assistant.pro +++ b/src/assistant/assistant/assistant.pro @@ -1,4 +1,4 @@ @@ -25,7 +25,7 @@ index 82f5509..ef07ee0 100644 BROWSER = qtwebkit } else { BROWSER = qtextbrowser -@@ -75,7 +75,7 @@ SOURCES += aboutdialog.cpp \ +@@ -77,7 +77,7 @@ SOURCES += aboutdialog.cpp \ openpagesmanager.cpp \ openpagesswitcher.cpp @@ -35,7 +35,7 @@ index 82f5509..ef07ee0 100644 QT += webkitwidgets SOURCES += helpviewer_qwv.cpp diff --git a/src/designer/src/plugins/plugins.pro b/src/designer/src/plugins/plugins.pro -index 500a153..b60fa2d 100644 +index 500a1534..b60fa2d9 100644 --- a/src/designer/src/plugins/plugins.pro +++ b/src/designer/src/plugins/plugins.pro @@ -1,6 +1,6 @@ diff --git a/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch b/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch index 7abc9ea8..1cdfc433 100644 --- a/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch +++ b/recipes-qt/qt5/qttools/0002-linguist-tools-cmake-allow-overriding-the-location-f.patch @@ -1,60 +1,43 @@ -From f7102d4e5c5c1d9e285b6821e18fff7c2dcea9c0 Mon Sep 17 00:00:00 2001 -From: Cody P Schafer <dev@codyps.com> -Date: Thu, 9 Jul 2015 11:28:19 -0400 +From c4d1caad764372d2a852fb837e7c37e168c65f0c 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 +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- - 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 4318b16..2e3b70f 100644 +index 2e99bc76..e6f4f7ed 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/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch b/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch new file mode 100644 index 00000000..32de7de1 --- /dev/null +++ b/recipes-qt/qt5/qttools/0003-src.pro-Add-option-noqdoc-to-disable-qdoc-builds.patch @@ -0,0 +1,26 @@ +From ff55599d0d9a5b2e31b18c415f835567f301acf2 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 + +Upstream-Status: Pending +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/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..bc833e0b --- /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 + +Upstream-Status: 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/run-ptest b/recipes-qt/qt5/qttools/run-ptest deleted file mode 100644 index 5cd5e27e..00000000 --- a/recipes-qt/qt5/qttools/run-ptest +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -./tst_qtdiag -./tst_qtattributionsscanner diff --git a/recipes-qt/qt5/qttools_git.bb b/recipes-qt/qt5/qttools_git.bb index f20eefe0..83434189 100644 --- a/recipes-qt/qt5/qttools_git.bb +++ b/recipes-qt/qt5/qttools_git.bb @@ -1,8 +1,8 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -11,40 +11,39 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " -inherit ptest - DEPENDS += "qtbase qtdeclarative qtxmlpatterns" - -# Patches from https://github.com/meta-qt5/qttools/commits/b5.9 -# 5.9.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qttools/commits/b5.15 +# 5.15.meta-qt5.1 SRC_URI += " \ - file://run-ptest \ 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 \ " +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" -FILES_${PN}-tools += "${datadir}${QT_DIR_NAME}/phrasebooks" -FILES_${PN}-examples = "${datadir}${QT_DIR_NAME}/examples" +# Without "opengl" in DISTRO_FEATURES, the libQt5UiTools.a library isn't generated, but qttools-staticdev +# is required by packagegroup-qt5-toolchain-target. +ALLOW_EMPTY:${PN}-staticdev = "1" PACKAGECONFIG ??= "" +PACKAGECONFIG:append:toolchain-clang = " clang" + PACKAGECONFIG[qtwebkit] = ",,qtwebkit" +PACKAGECONFIG[clang] = ",,clang" + +COMPATIBLE_HOST:toolchain-clang:riscv32 = "null" +COMPATIBLE_HOST:toolchain-clang:riscv64 = "null" -EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtwebkit', '', 'CONFIG+=noqtwebkit', d)}" +export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_BINDIR}/llvm-config" -SRCREV = "e610562828677f1e4eb8c7967ed6715e20099035" +EXTRA_QMAKEVARS_PRE += " \ + ${@bb.utils.contains('PACKAGECONFIG', 'qtwebkit', '', 'CONFIG+=noqtwebkit', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'clang', 'CONFIG+=disable_external_rpath CONFIG+=assistant', 'CONFIG+=noqdoc', d)} \ +" +SRCREV = "bc3cbd02fe57d01c6d8378c82cd60974ec0886c7" BBCLASSEXTEND = "native nativesdk" -do_compile_ptest() { - export PATH=${STAGING_DIR_NATIVE}/usr/include/qt5:$PATH - cd ${S}/tests - qmake -o Makefile tests.pro - oe_runmake -} - -do_install_ptest() { - mkdir -p ${D}${PTEST_PATH} - t=${D}${PTEST_PATH} - cp ${S}/tests/auto/qtdiag/tst_tdiag $t - cp ${S}/tests/auto/qtattributionsscanner/tst_qtattributionsscanner $t -} diff --git a/recipes-qt/qt5/qttranslations_git.bb b/recipes-qt/qt5/qttranslations_git.bb index 6d52e6f7..0a103c14 100644 --- a/recipes-qt/qt5/qttranslations_git.bb +++ b/recipes-qt/qt5/qttranslations_git.bb @@ -1,18 +1,24 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" +LICENSE = "GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ " DEPENDS += "qtbase qttools-native" +do_install:append() { + # remove qtquick1 translations - qtquick1 is gone + for transfile in `find ${D}/${OE_QMAKE_PATH_TRANSLATIONS} -name qt_*.qm ! -name qt_help_*.qm`; do + rm $transfile + done +} + PACKAGES =. " \ ${PN}-assistant \ ${PN}-designer \ ${PN}-linguist \ - ${PN}-qmlviewer \ ${PN}-qtconnectivity \ ${PN}-qtmultimedia \ ${PN}-qtlocation \ @@ -22,88 +28,74 @@ PACKAGES =. " \ ${PN}-qtwebsockets \ ${PN}-qtwebengine \ ${PN}-qtxmlpatterns \ - ${PN}-qtquick1 \ ${PN}-qtscript \ ${PN}-qtserialport \ ${PN}-qtbase \ ${PN}-qthelp \ - ${PN}-qt \ " -FILES_${PN}-assistant = " \ +FILES:${PN}-assistant = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/assistant_*.qm \ " -FILES_${PN}-designer = " \ +FILES:${PN}-designer = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/designer_*.qm \ " -FILES_${PN}-linguist = " \ +FILES:${PN}-linguist = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/linguist_*.qm \ " -FILES_${PN}-qmlviewer = " \ - ${OE_QMAKE_PATH_TRANSLATIONS}/qmlviewer_*.qm \ -" - -FILES_${PN}-qtconnectivity = " \ +FILES:${PN}-qtconnectivity = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtconnectivity_*.qm \ " -FILES_${PN}-qtmultimedia = " \ +FILES:${PN}-qtmultimedia = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtmultimedia_*.qm \ " -FILES_${PN}-qtlocation = " \ +FILES:${PN}-qtlocation = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtlocation_*.qm \ " -FILES_${PN}-qtdeclarative = " \ +FILES:${PN}-qtdeclarative = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtdeclarative_*.qm \ " -FILES_${PN}-qtquickcontrols = " \ +FILES:${PN}-qtquickcontrols = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtquickcontrols_*.qm \ " -FILES_${PN}-qtquickcontrols2 = " \ +FILES:${PN}-qtquickcontrols2 = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtquickcontrols2_*.qm \ " -FILES_${PN}-qtwebsockets = " \ +FILES:${PN}-qtwebsockets = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtwebsockets_*.qm \ " -FILES_${PN}-qtwebengine = " \ +FILES:${PN}-qtwebengine = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtwebengine_*.qm \ " -FILES_${PN}-qtxmlpatterns = " \ +FILES:${PN}-qtxmlpatterns = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtxmlpatterns_*.qm \ " -FILES_${PN}-qtquick1 = " \ - ${OE_QMAKE_PATH_TRANSLATIONS}/qtquick1_*.qm \ -" - -FILES_${PN}-qtscript = " \ +FILES:${PN}-qtscript = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtscript_*.qm \ " -FILES_${PN}-qtserialport = " \ +FILES:${PN}-qtserialport = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtserialport_*.qm \ " -FILES_${PN}-qtbase = " \ +FILES:${PN}-qtbase = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qtbase_*.qm \ " -FILES_${PN}-qthelp = " \ +FILES:${PN}-qthelp = " \ ${OE_QMAKE_PATH_TRANSLATIONS}/qt_help_*.qm \ " -FILES_${PN}-qt = " \ - ${OE_QMAKE_PATH_TRANSLATIONS}/qt_*.qm \ -" - -SRCREV = "f9d3094f8921dbc64a90e416484aa34129bec187" +SRCREV = "8a0280788ec15f496c78a3c06e641e4fae087409" diff --git a/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch b/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch deleted file mode 100644 index 185bf506..00000000 --- a/recipes-qt/qt5/qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c41773c12767dc6735cda8f8ad3d09454366283b Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 12 Jul 2017 23:59:52 -0700 -Subject: [PATCH] include sys/time.h for timeval - -Musl exposes this issue since its not indirectly -including sys/time.h like glibc - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/virtualkeyboard/3rdparty/pinyin/include/userdict.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h -index 1b9673f..924be7b 100644 ---- a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h -+++ b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h -@@ -24,6 +24,7 @@ - // Debug performance for operations - // #define ___DEBUG_PERF___ - -+#include <sys/time.h> - #ifdef _WIN32 - #include <winsock.h> // timeval - #else diff --git a/recipes-qt/qt5/qtvirtualkeyboard/0001-replace-deprecated-std-auto_ptr-with-std-unique_ptr.patch b/recipes-qt/qt5/qtvirtualkeyboard/0001-replace-deprecated-std-auto_ptr-with-std-unique_ptr.patch new file mode 100644 index 00000000..874c079c --- /dev/null +++ b/recipes-qt/qt5/qtvirtualkeyboard/0001-replace-deprecated-std-auto_ptr-with-std-unique_ptr.patch @@ -0,0 +1,66 @@ +From fe4546abf79cf2e93e151fe8cd771901f9b768d3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 7 Feb 2023 23:11:18 -0800 +Subject: [PATCH] replace deprecated std::auto_ptr with std::unique_ptr + +auto_ptr is gone with c++17 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp +index 1971a69d..894028e4 100644 +--- a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp ++++ b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/util/lib/LTKLoggerUtil.cpp +@@ -96,7 +96,7 @@ LTKLoggerUtil::LTKLoggerUtil(){} + int LTKLoggerUtil::createLogger(const string& lipiLibPath) + { + void* functionHandle = NULL; +- auto_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); ++ unique_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); + + int iErrorCode = a_ptrOSUtil->loadSharedLib(lipiLibPath, + LOGGER_MODULE_STR, +@@ -159,7 +159,7 @@ int LTKLoggerUtil::createLogger(const string& lipiLibPath) + *****************************************************************************/ + int LTKLoggerUtil::destroyLogger() + { +- auto_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); ++ unique_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); + + if (module_destroyLogger != NULL ) + { +@@ -196,7 +196,7 @@ int LTKLoggerUtil::configureLogger(const string& logFile, LTKLogger::EDebugLevel + LTKReturnError(ELOGGER_LIBRARY_NOT_LOADED); + } + +- auto_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); ++ unique_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); + + if ( logFile.length() != 0 ) + { +@@ -257,7 +257,7 @@ int LTKLoggerUtil::getAddressLoggerFunctions() + void* functionHandle = NULL; + int returnVal = SUCCESS; + +- auto_ptr<LTKOSUtil> a_ptrOSUtil; ++ unique_ptr<LTKOSUtil> a_ptrOSUtil; + + //start log + +@@ -323,7 +323,7 @@ ostream& LTKLoggerUtil::logMessage(LTKLogger::EDebugLevel logLevel, string inStr + { + if (m_libHandleLogger == NULL) + { +- auto_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); ++ unique_ptr<LTKOSUtil> a_ptrOSUtil(LTKOSUtilFactory::getInstance()); + m_libHandleLogger = a_ptrOSUtil->getLibraryHandle(LOGGER_MODULE_STR); + + if (m_libHandleLogger == NULL) +-- +2.39.1 + diff --git a/recipes-qt/qt5/qtvirtualkeyboard_git.bb b/recipes-qt/qt5/qtvirtualkeyboard_git.bb index c8ab7c3e..32cb27fd 100644 --- a/recipes-qt/qt5/qtvirtualkeyboard_git.bb +++ b/recipes-qt/qt5/qtvirtualkeyboard_git.bb @@ -1,14 +1,12 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GPL-3.0 | The-Qt-Company-Commercial" +LICENSE = "GPL-3.0-only | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ " -# Patches from https://github.com/meta-qt5/qtvirtualkeyboard/commits/b5.9 -# 5.9.meta-qt5.5 -SRC_URI += "file://0001-include-sys-time.h-for-timeval.patch" +SRC_URI += "file://0001-replace-deprecated-std-auto_ptr-with-std-unique_ptr.patch" # To enabled Nuance T9 Write support, you need to provide the licensed components # and enable "t9write" in PACKAGECONFIG. This can be done in a separate .bbappend file. @@ -17,29 +15,51 @@ SRC_URI += "file://0001-include-sys-time.h-for-timeval.patch" #SRC_URI += "file://${T9WRITEPACKAGE};subdir=git/src/virtualkeyboard/3rdparty/t9write" #PACKAGECONFIG = "t9write lang-all" -PACKAGECONFIG ?= "lang-all lipi-toolkit" +PACKAGECONFIG ?= "lang-all lipi-toolkit qtquickcompiler" PACKAGECONFIG[hunspell] = ",CONFIG+=disable-hunspell,hunspell" PACKAGECONFIG[t9write] = "CONFIG+=t9write" PACKAGECONFIG[lipi-toolkit] = "CONFIG+=lipi-toolkit" PACKAGECONFIG[lang-all] = "CONFIG+=lang-all" PACKAGECONFIG[lang-ar_AR] = "CONFIG+=lang-ar_AR" +PACKAGECONFIG[lang-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" @@ -47,10 +67,10 @@ EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}" EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'CONFIG+=disable-desktop', d)}" PACKAGES += "${PN}-dictionaries" -RRECOMMENDS_${PN} += "${PN}-dictionaries" -FILES_${PN}-dictionaries = "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/*/*.dat" -FILES_${PN} += "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/lipi_toolkit" +RRECOMMENDS:${PN} += "${PN}-dictionaries" +FILES:${PN}-dictionaries = "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/*/*.dat" +FILES:${PN} += "${OE_QMAKE_PATH_DATA}/qtvirtualkeyboard/lipi_toolkit" -DEPENDS += "qtbase qtdeclarative qtmultimedia qtquickcontrols qtsvg qtxmlpatterns" +DEPENDS += "qtbase qtdeclarative qtmultimedia qtquickcontrols qtsvg qtxmlpatterns qtdeclarative-native" -SRCREV = "1cd903f20c09002937527aaaa310b7dc40d266f2" +SRCREV = "b613d3c2ae8301028bbdc8dafbf6bf288d746886" diff --git a/recipes-qt/qt5/qtwayland/0001-Fix-vulkan-buffer-formats-for-GLES2.patch b/recipes-qt/qt5/qtwayland/0001-Fix-vulkan-buffer-formats-for-GLES2.patch new file mode 100644 index 00000000..ecaf5d60 --- /dev/null +++ b/recipes-qt/qt5/qtwayland/0001-Fix-vulkan-buffer-formats-for-GLES2.patch @@ -0,0 +1,63 @@ +From 2e1bbb5e28ccf7da4d2aba2e725baedbf511856a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 29 Nov 2021 17:24:50 -0800 +Subject: [PATCH] Fix vulkan buffer formats for GLES2 + +Fixes +vulkanserverbufferintegration.cpp:163:77: error: use of undeclared identifier 'GL_RGBA8' + if (extraDebug) qDebug() << "format" << Qt::hex << m_internalFormat << GL_RGBA8; + ^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../client/vulkan-server/vulkanserverbufferintegration.cpp | 2 +- + .../vulkan-server/vulkanserverbufferintegration.cpp | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp b/src/hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp +index b4403855..3f4520e4 100644 +--- a/src/hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp ++++ b/src/hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp +@@ -160,7 +160,7 @@ void VulkanServerBuffer::import() + if (extraDebug) qDebug() << "bound texture" << Qt::hex << glGetError(); + funcs->glTexStorageMem2DEXT(GL_TEXTURE_2D, 1, m_internalFormat, m_size.width(), m_size.height(), m_memoryObject, 0 ); + if (extraDebug) qDebug() << "glTexStorageMem2DEXT" << Qt::hex << glGetError(); +- if (extraDebug) qDebug() << "format" << Qt::hex << m_internalFormat << GL_RGBA8; ++ if (extraDebug) qDebug() << "format" << Qt::hex << m_internalFormat << GL_RGBA; + } + + QOpenGLTexture *VulkanServerBuffer::toOpenGlTexture() +diff --git a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp +index 69af5f9f..558a4d62 100644 +--- a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp ++++ b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp +@@ -141,14 +141,14 @@ VulkanServerBuffer::VulkanServerBuffer(VulkanServerBufferIntegration *integratio + m_format = format; + switch (m_format) { + case RGBA32: +- m_glInternalFormat = GL_RGBA8; ++ m_glInternalFormat = GL_RGBA; + break; + // case A8: + // m_glInternalFormat = GL_R8; + // break; + default: + qWarning("VulkanServerBuffer: unsupported format"); +- m_glInternalFormat = GL_RGBA8; ++ m_glInternalFormat = GL_RGBA; + break; + } + +@@ -229,7 +229,7 @@ QOpenGLTexture *VulkanServerBuffer::toOpenGlTexture() + if (extraDebug) qDebug() << "bound texture" << texId << Qt::hex << glGetError(); + funcs->glTexStorageMem2DEXT(GL_TEXTURE_2D, 1, m_glInternalFormat, m_size.width(), m_size.height(), m_memoryObject, 0 ); + if (extraDebug) qDebug() << "glTexStorageMem2DEXT" << Qt::hex << glGetError(); +- if (extraDebug) qDebug() << "format" << Qt::hex << m_glInternalFormat << GL_RGBA8; ++ if (extraDebug) qDebug() << "format" << Qt::hex << m_glInternalFormat << GL_RGBA; + + + return m_texture; +-- +2.34.1 + diff --git a/recipes-qt/qt5/qtwayland/0001-linux-dmabuf-unstable-v1-Include-missing-array-heade.patch b/recipes-qt/qt5/qtwayland/0001-linux-dmabuf-unstable-v1-Include-missing-array-heade.patch new file mode 100644 index 00000000..9a6c606c --- /dev/null +++ b/recipes-qt/qt5/qtwayland/0001-linux-dmabuf-unstable-v1-Include-missing-array-heade.patch @@ -0,0 +1,30 @@ +From c010cfedd13ffc57e0e6374f5662e9cdb56dd3ca Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 4 Sep 2021 12:03:32 -0700 +Subject: [PATCH] linux-dmabuf-unstable-v1: Include missing <array> header + +Fixes issue found with clang/libc++ +src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h:145:40: error: implicit instantiation of undefined template 'std::array<Plane, 4>' + std::array<Plane, MaxDmabufPlanes> m_planes; + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h +index 56a710c3..1beb5f76 100644 +--- a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h ++++ b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h +@@ -44,6 +44,7 @@ + #include <EGL/egl.h> + #include <EGL/eglext.h> + ++#include <array> + // compatibility with libdrm <= 2.4.74 + #ifndef DRM_FORMAT_RESERVED + #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1) +-- +2.33.0 + diff --git a/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch b/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch new file mode 100644 index 00000000..854ca45c --- /dev/null +++ b/recipes-qt/qt5/qtwayland/0001-tst_seatv4-Include-array.patch @@ -0,0 +1,28 @@ +From 2f3274c8dac49eeefa1f32b73328fabd037082c6 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>' + +Upstream-Status: Pending +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/recipes-qt/qt5/qtwayland_git.bb b/recipes-qt/qt5/qtwayland_git.bb index c69baeef..828822f6 100644 --- a/recipes-qt/qt5/qtwayland_git.bb +++ b/recipes-qt/qt5/qtwayland_git.bb @@ -1,10 +1,12 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc + +inherit pkgconfig DEPENDS += "qtbase qtdeclarative wayland wayland-native qtwayland-native" -DEPENDS_append_class-target = " libxkbcommon" +DEPENDS:append:class-target = " libxkbcommon" -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -13,18 +15,26 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " +# Patches from https://github.com/meta-qt5/qtwayland/commits/b5.15 +# 5.15.meta-qt5.1 +SRC_URI += "file://0001-tst_seatv4-Include-array.patch \ + file://0001-linux-dmabuf-unstable-v1-Include-missing-array-heade.patch \ + file://0001-Fix-vulkan-buffer-formats-for-GLES2.patch \ + " + PACKAGECONFIG ?= " \ wayland-client \ wayland-server \ - wayland-egl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland-egl', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcomposite-egl xcomposite-glx', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'wayland-vulkan-server-buffer', '', d)} \ " -PACKAGECONFIG_class-native ?= "" -PACKAGECONFIG_class-nativesdk ?= "" -QMAKE_PROFILES_class-native = "${S}/src/qtwaylandscanner" -QMAKE_PROFILES_class-nativesdk = "${S}/src/qtwaylandscanner" -B_class-native = "${SEPB}/src/qtwaylandscanner" -B_class-nativesdk = "${SEPB}/src/qtwaylandscanner" +PACKAGECONFIG:class-native ?= "" +PACKAGECONFIG:class-nativesdk ?= "" +QMAKE_PROFILES:class-native = "${S}/src/qtwaylandscanner" +QMAKE_PROFILES:class-nativesdk = "${S}/src/qtwaylandscanner" +B:class-native = "${SEPB}/src/qtwaylandscanner" +B:class-nativesdk = "${SEPB}/src/qtwaylandscanner" PACKAGECONFIG[wayland-client] = "-feature-wayland-client,-no-feature-wayland-client" PACKAGECONFIG[wayland-server] = "-feature-wayland-server,-no-feature-wayland-server" @@ -32,15 +42,16 @@ 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" +PACKAGECONFIG[wayland-vulkan-server-buffer] = "-feature-wayland-vulkan-server-buffer,-no-feature-wayland-vulkan-server-buffer,vulkan-headers" EXTRA_QMAKEVARS_CONFIGURE += "${PACKAGECONFIG_CONFARGS}" -SRCREV = "042dff4b3520cf530face999cfe32978ab492a5c" +SRCREV = "4f363a988155c86757ecd36c81393a7ba9fc8c95" 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)}" +LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" diff --git a/recipes-qt/qt5/qtwebchannel_git.bb b/recipes-qt/qt5/qtwebchannel_git.bb index ea0081cf..486a7bd9 100644 --- a/recipes-qt/qt5/qtwebchannel_git.bb +++ b/recipes-qt/qt5/qtwebchannel_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -12,4 +12,4 @@ LIC_FILES_CHKSUM = " \ DEPENDS += "qtdeclarative qtwebsockets" -SRCREV = "b4682cf4197cf312dcfc88dcc5653370afa1bc64" +SRCREV = "f887498f50123b96411070e7b1d5c9ff89b07732" diff --git a/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch new file mode 100644 index 00000000..7daa801a --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch @@ -0,0 +1,100 @@ +From ecde45984c610529c25257324252fb2ba01fe4ca Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Wed, 15 Mar 2017 13:53:28 +0200 +Subject: [PATCH] Force host toolchain configuration + +Force gcc/g++ to be used for parts using host toolchain, since +the option(host_build) does not work in yocto builds. + +Don't use QT_ARCH for the host architecture, since that's always +the target architecture in bitbake builds, instead ask specifically +for the qmakes's host architecture. + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> +--- + src/buildtools/config/linux.pri | 2 +- + src/buildtools/configure_host.pro | 16 +++++++++------- + src/buildtools/gn.pro | 5 ++--- + 3 files changed, 12 insertions(+), 11 deletions(-) + +diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri +index 7507d51ef..1e078cbfe 100644 +--- a/src/buildtools/config/linux.pri ++++ b/src/buildtools/config/linux.pri +@@ -118,7 +118,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 dd0d3e327..3d39198f3 100644 +--- a/src/buildtools/configure_host.pro ++++ b/src/buildtools/configure_host.pro +@@ -4,7 +4,7 @@ TEMPLATE = aux + # Pick up the host toolchain + option(host_build) + +-GN_HOST_CPU = $$gnArch($$QT_ARCH) ++GN_HOST_CPU = $$gnArch($$QMAKE_HOST.arch) + !isEmpty(QT_TARGET_ARCH): GN_TARGET_CPU = $$gnArch($$QT_TARGET_ARCH) + else: GN_TARGET_CPU = $$GN_HOST_CPU + GN_OS = $$gnOS() +@@ -24,6 +24,7 @@ contains(GN_TARGET_CPU, "arm")|contains(GN_TARGET_CPU, "mipsel")|contains(GN_TAR + } + + GN_HOST_EXTRA_CPPFLAGS = $$(GN_HOST_TOOLCHAIN_EXTRA_CPPFLAGS) ++GN_HOST_EXTRA_LDFLAGS = $$(GN_HOST_TOOLCHAIN_EXTRA_LDFLAGS) + + # We always use the gcc_toolchain, because clang_toolchain is just + # a broken wrapper around it for Google's custom clang binaries. +@@ -31,12 +32,13 @@ GN_CONTENTS = \ + "import(\"//build/config/sysroot.gni\")" \ + "import(\"//build/toolchain/gcc_toolchain.gni\")" \ + "gcc_toolchain(\"host\") {" \ +-" cc = \"$$which($$QMAKE_CC)\" " \ +-" cxx = \"$$which($$QMAKE_CXX)\" " \ +-" ld = \"$$which($$QMAKE_LINK)\" " \ ++" cc = \"$$which($$CC_host)\" " \ ++" cxx = \"$$which($$CXX_host)\" " \ ++" ld = \"$$which($$CXX_host)\" " \ + " ar = \"$$which(ar)\" " \ + " nm = \"$$which(nm)\" " \ + " extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \ ++" extra_ldflags = \"$$GN_HOST_EXTRA_LDFLAGS\" " \ + " toolchain_args = { " \ + " current_os = \"$$GN_OS\" " \ + " current_cpu = \"$$GN_HOST_CPU\" " \ +@@ -45,9 +47,9 @@ GN_CONTENTS = \ + " } " \ + "}" \ + "gcc_toolchain(\"v8_snapshot\") {" \ +-" 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)\" " \ + " nm = \"$$which(nm)\" " \ + " toolchain_args = { " \ +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro +index f94694da0..a8ca6567b 100644 +--- a/src/buildtools/gn.pro ++++ b/src/buildtools/gn.pro +@@ -19,9 +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)\" +- !isEmpty(QMAKE_AR): gn_gen_args += --ar \"$$which($$first(QMAKE_AR))\" ++ --cc \"$$which($$CC_host)\" --cxx \"$$which($$CXX_host)\" \ ++ --ld \"$$which($$CXX_host)\" --ar \"$$which(ar)\" + + msvc:!clang_cl: gn_gen_args += --use-lto + diff --git a/recipes-qt/qt5/qtwebengine/0001-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch b/recipes-qt/qt5/qtwebengine/0001-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch deleted file mode 100644 index 90a557fc..00000000 --- a/recipes-qt/qt5/qtwebengine/0001-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 78a0bfb1026cd1a66e25663266896db6920636b9 Mon Sep 17 00:00:00 2001 -From: Cleiton Bueno <cleitonrbueno@gmail.com> -Date: Thu, 24 Dec 2015 12:46:58 -0200 -Subject: [PATCH] chromium: Change false to FALSE and 1 to TRUE, FIX - qtwebengine compile - -Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - chromium/ui/gfx/codec/jpeg_codec.cc | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/chromium/ui/gfx/codec/jpeg_codec.cc b/chromium/ui/gfx/codec/jpeg_codec.cc -index 6d92637..738d3fd 100644 ---- a/chromium/ui/gfx/codec/jpeg_codec.cc -+++ b/chromium/ui/gfx/codec/jpeg_codec.cc -@@ -121,7 +121,7 @@ boolean EmptyOutputBuffer(jpeg_compress_struct* cinfo) { - // tell libjpeg where to write the next data - cinfo->dest->next_output_byte = &(*state->out)[state->image_buffer_used]; - cinfo->dest->free_in_buffer = state->out->size() - state->image_buffer_used; -- return 1; -+ return TRUE; - } - - // Cleans up the JpegEncoderState to prepare for returning in the final form. -@@ -262,7 +262,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, - cinfo.data_precision = 8; - - jpeg_set_defaults(&cinfo); -- jpeg_set_quality(&cinfo, quality, 1); // quality here is 0-100 -+ jpeg_set_quality(&cinfo, quality, TRUE); // quality here is 0-100 - - // set up the destination manager - jpeg_destination_mgr destmgr; -@@ -274,7 +274,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, - JpegEncoderState state(output); - cinfo.client_data = &state; - -- jpeg_start_compress(&cinfo, 1); -+ jpeg_start_compress(&cinfo, TRUE); - - // feed it the rows, doing necessary conversions for the color format - #ifdef JCS_EXTENSIONS -@@ -360,7 +360,7 @@ void InitSource(j_decompress_ptr cinfo) { - // set to a positive value if TRUE is returned. A FALSE return should only - // be used when I/O suspension is desired." - boolean FillInputBuffer(j_decompress_ptr cinfo) { -- return false; -+ return FALSE; - } - - // Skip data in the buffer. Since we have all the data at once, this operation -@@ -488,8 +488,8 @@ bool JPEGCodec::Decode(const unsigned char* input, size_t input_size, - cinfo.client_data = &state; - - // fill the file metadata into our buffer -- if (jpeg_read_header(&cinfo, true) != JPEG_HEADER_OK) -- return false; -+ if (jpeg_read_header(&cinfo, TRUE) != JPEG_HEADER_OK) -+ return FALSE; - - // we want to always get RGB data out - switch (cinfo.jpeg_color_space) { diff --git a/recipes-qt/qt5/qtwebengine/0001-functions.prf-allow-build-for-linux-oe-g-platform.patch b/recipes-qt/qt5/qtwebengine/0001-functions.prf-allow-build-for-linux-oe-g-platform.patch deleted file mode 100644 index aa223e1b..00000000 --- a/recipes-qt/qt5/qtwebengine/0001-functions.prf-allow-build-for-linux-oe-g-platform.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7efbed6af08caf6ce2bedbb8fb653b60c3aaa920 Mon Sep 17 00:00:00 2001 -From: Frieder Schrempf <frieder.schrempf@online.de> -Date: Mon, 1 Dec 2014 14:34:40 +0000 -Subject: [PATCH] functions.prf: allow build for linux-oe-g++ platform - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Frieder Schrempf <frieder.schrempf@online.de> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - mkspecs/features/functions.prf | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf -index b78d2a1..14dd07e 100644 ---- a/mkspecs/features/functions.prf -+++ b/mkspecs/features/functions.prf -@@ -21,6 +21,12 @@ defineTest(isPlatformSupported) { - return(false) - } - gcc:!clang:!isGCCVersionSupported(): return(false) -+ } else:linux-oe-g++* { -+ !gcc:!clang { -+ skipBuild("Qt WebEngine on Linux requires clang or GCC.") -+ return(false) -+ } -+ gcc:!clang:!isGCCVersionSupported(): return(false) - } else:win32 { - winrt { - skipBuild("WinRT is not supported.") diff --git a/recipes-qt/qt5/qtwebengine/0002-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch b/recipes-qt/qt5/qtwebengine/0002-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch deleted file mode 100644 index 94fa5a6f..00000000 --- a/recipes-qt/qt5/qtwebengine/0002-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch +++ /dev/null @@ -1,23 +0,0 @@ -From fe4d996a8a6fe8e0c6b720ff30fa7bff95df2acb Mon Sep 17 00:00:00 2001 -From: Cleiton Bueno <cleitonrbueno@gmail.com> -Date: Fri, 25 Dec 2015 18:16:05 -0200 -Subject: [PATCH] WebEngine qquickwebengineview_p_p.h add include QColor - -Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com> ---- - src/webengine/api/qquickwebengineview_p_p.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h -index 19ecf5e..f6f638e 100644 ---- a/src/webengine/api/qquickwebengineview_p_p.h -+++ b/src/webengine/api/qquickwebengineview_p_p.h -@@ -59,6 +59,8 @@ - #include <QString> - #include <QtCore/qcompilerdetection.h> - #include <QtGui/qaccessibleobject.h> -+#include <QColor> -+ - - namespace QtWebEngineCore { - class WebContentsAdapter; diff --git a/recipes-qt/qt5/qtwebengine/0002-chromium-Force-host-toolchain-configuration.patch b/recipes-qt/qt5/qtwebengine/0002-chromium-Force-host-toolchain-configuration.patch deleted file mode 100644 index a2eeee1f..00000000 --- a/recipes-qt/qt5/qtwebengine/0002-chromium-Force-host-toolchain-configuration.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7233c121fedcf73d10499afedd19c5e45ae0e4ec 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 | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/chromium/tools/gn/bootstrap/bootstrap.py b/chromium/tools/gn/bootstrap/bootstrap.py -index 43d252b..e583478 100755 ---- a/chromium/tools/gn/bootstrap/bootstrap.py -+++ b/chromium/tools/gn/bootstrap/bootstrap.py -@@ -298,14 +298,14 @@ def write_gn_ninja(path, root_gen_dir, options): - ld = os.environ.get('LD', 'link.exe') - ar = os.environ.get('AR', 'lib.exe') - 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') - -- cflags = os.environ.get('CFLAGS', '').split() -- cflags_cc = os.environ.get('CXXFLAGS', '').split() -- ldflags = os.environ.get('LDFLAGS', '').split() -+ cflags = os.environ.get('CFLAGS_host', '').split() -+ cflags_cc = os.environ.get('CXXFLAGS_host', '').split() -+ ldflags = os.environ.get('LDFLAGS_host', '').split() - include_dirs = [root_gen_dir, SRC_ROOT] - libs = [] - diff --git a/recipes-qt/qt5/qtwebengine/0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch b/recipes-qt/qt5/qtwebengine/0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch new file mode 100644 index 00000000..d8044c9f --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch @@ -0,0 +1,38 @@ +From a6c1cdbb588359676888b7961c063d1d13d05a2a Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Tue, 12 Dec 2017 16:06:14 +0200 +Subject: [PATCH] musl: don't use pvalloc as it's not available on musl + +Change-Id: I7145463ac7b9560e7459d3384a3db108bd727403 +Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> +Upstream-Status: Pending +--- + src/core/api/qtbug-61521.cpp | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/src/core/api/qtbug-61521.cpp b/src/core/api/qtbug-61521.cpp +index 002a1af22..8fd2da36b 100644 +--- a/src/core/api/qtbug-61521.cpp ++++ b/src/core/api/qtbug-61521.cpp +@@ -74,10 +74,6 @@ SHIM_SYMBOL_VERSION(valloc); + void* __valloc(size_t size) + SHIM_ALIAS_SYMBOL(ShimValloc); + +-SHIM_SYMBOL_VERSION(pvalloc); +-void* __pvalloc(size_t size) +- SHIM_ALIAS_SYMBOL(ShimPvalloc); +- + SHIM_SYMBOL_VERSION(posix_memalign); + int __posix_memalign(void** r, size_t a, size_t s) + SHIM_ALIAS_SYMBOL(ShimPosixMemalign); +@@ -110,10 +106,6 @@ SHIM_HIDDEN void* ShimValloc(size_t size) { + return valloc(size); + } + +-SHIM_HIDDEN void* ShimPvalloc(size_t size) { +- return pvalloc(size); +-} +- + SHIM_HIDDEN int ShimPosixMemalign(void** r, size_t a, size_t s) { + return posix_memalign(r,a,s); + } diff --git a/recipes-qt/qt5/qtwebengine/0003-Include-dependency-to-QCoreApplication-translate.patch b/recipes-qt/qt5/qtwebengine/0003-Include-dependency-to-QCoreApplication-translate.patch deleted file mode 100644 index a61161de..00000000 --- a/recipes-qt/qt5/qtwebengine/0003-Include-dependency-to-QCoreApplication-translate.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 4e95d44468ed954d68402c585c6df3c6cd6c5638 Mon Sep 17 00:00:00 2001 -From: Cleiton Bueno <cleitonrbueno@gmail.com> -Date: Thu, 24 Dec 2015 15:59:51 -0200 -Subject: [PATCH] Include dependency to QCoreApplication::translate() - -Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com> ---- - src/core/media_capture_devices_dispatcher.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/core/media_capture_devices_dispatcher.h b/src/core/media_capture_devices_dispatcher.h -index c378c32..1d33d95 100644 ---- a/src/core/media_capture_devices_dispatcher.h -+++ b/src/core/media_capture_devices_dispatcher.h -@@ -45,6 +45,8 @@ - #include <list> - #include <map> - -+#include <QCoreApplication> -+ - #include "web_contents_adapter_client.h" - - #include "base/callback.h" diff --git a/recipes-qt/qt5/qtwebengine/0003-musl-link-against-libexecinfo.patch b/recipes-qt/qt5/qtwebengine/0003-musl-link-against-libexecinfo.patch new file mode 100644 index 00000000..f8f4229d --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0003-musl-link-against-libexecinfo.patch @@ -0,0 +1,25 @@ +From 84938d171df35970e3444b8f7b0abc9c2b275f9f Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Thu, 14 Dec 2017 11:28:10 +0200 +Subject: [PATCH] musl: link against libexecinfo + +Change-Id: Ifada60f9c72691973612850121f6fb152d70839a +Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> +Upstream-Status: Pending +--- + src/core/core_module.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/core_module.pro b/src/core/core_module.pro +index 9e087c815..7f518e020 100644 +--- a/src/core/core_module.pro ++++ b/src/core/core_module.pro +@@ -9,7 +9,7 @@ isUniversal() { + + api_library_name = qtwebenginecoreapi$$qtPlatformTargetSuffix() + api_library_path = $$OUT_PWD/api/$$getConfigDir() +-LIBS_PRIVATE += -L$$api_library_path ++LIBS_PRIVATE += -L$$api_library_path -lexecinfo + CONFIG *= no_smart_library_merge + osx { + LIBS_PRIVATE += -Wl,-force_load,$${api_library_path}$${QMAKE_DIR_SEP}lib$${api_library_name}.a diff --git a/recipes-qt/qt5/qtwebengine/0004-Force-host-toolchain-configuration.patch b/recipes-qt/qt5/qtwebengine/0004-Force-host-toolchain-configuration.patch deleted file mode 100644 index d85f46f6..00000000 --- a/recipes-qt/qt5/qtwebengine/0004-Force-host-toolchain-configuration.patch +++ /dev/null @@ -1,71 +0,0 @@ -From dbcfd868d551beb55a9411c26912050ea278ec48 Mon Sep 17 00:00:00 2001 -From: Samuli Piippo <samuli.piippo@qt.io> -Date: Wed, 15 Mar 2017 13:53:28 +0200 -Subject: [PATCH] Force host toolchain configuration - -Force gcc/g++ to be used for parts using host toolchain, since -the option(host_build) does not work in yocto builds. - -Don't use QT_ARCH for the host architecture, since that's always -the target architecture in bitbake builds, instead ask specifically -for the qmakes's host architecture. - -Upstream-Status: Inappropriate [OE specific] -Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> ---- - src/buildtools/configure_host.pro | 14 +++++++------- - src/core/config/linux.pri | 2 +- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro -index f1b3d47..1212372 100644 ---- a/src/buildtools/configure_host.pro -+++ b/src/buildtools/configure_host.pro -@@ -4,7 +4,7 @@ TEMPLATE = aux - # Pick up the host toolchain - option(host_build) - --GN_HOST_CPU = $$gnArch($$QT_ARCH) -+GN_HOST_CPU = $$gnArch($$QMAKE_HOST.arch) - !isEmpty(QT_TARGET_ARCH): GN_TARGET_CPU = $$gnArch($$QT_TARGET_ARCH) - else: GN_TARGET_CPU = $$GN_HOST_CPU - GN_OS = $$gnOS() -@@ -29,9 +29,9 @@ GN_CONTENTS = \ - "import(\"//build/config/sysroot.gni\")" \ - "import(\"//build/toolchain/gcc_toolchain.gni\")" \ - "gcc_toolchain(\"host\") {" \ --" cc = \"$$which($$QMAKE_CC)\" " \ --" cxx = \"$$which($$QMAKE_CXX)\" " \ --" ld = \"$$which($$QMAKE_LINK)\" " \ -+" cc = \"$$which(gcc)\" " \ -+" cxx = \"$$which(g++)\" " \ -+" ld = \"$$which(g++)\" " \ - " ar = \"$$which(ar)\" " \ - " nm = \"$$which(nm)\" " \ - " toolchain_args = { " \ -@@ -42,9 +42,9 @@ GN_CONTENTS = \ - " } " \ - "}" \ - "gcc_toolchain(\"v8_snapshot\") {" \ --" cc = \"$$which($$QMAKE_CC)\" " \ --" cxx = \"$$which($$QMAKE_CXX)\" " \ --" ld = \"$$which($$QMAKE_LINK)\" " \ -+" cc = \"$$which(gcc)\" " \ -+" cxx = \"$$which(g++)\" " \ -+" ld = \"$$which(g++)\" " \ - " ar = \"$$which(ar)\" " \ - " nm = \"$$which(nm)\" " \ - " toolchain_args = { " \ -diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri -index 831e195..8a28de5 100644 ---- a/src/core/config/linux.pri -+++ b/src/core/config/linux.pri -@@ -98,7 +98,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/recipes-qt/qt5/qtwebengine/0004-mkspecs-Allow-builds-with-libc-glibc.patch b/recipes-qt/qt5/qtwebengine/0004-mkspecs-Allow-builds-with-libc-glibc.patch new file mode 100644 index 00000000..da4cea8d --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0004-mkspecs-Allow-builds-with-libc-glibc.patch @@ -0,0 +1,49 @@ +From d30d88b852e3b46086ce92f4dfaedfe21ee926a8 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 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/buildtools/config/support.pri | 4 ---- + src/buildtools/configure.json | 4 +--- + 2 files changed, 1 insertion(+), 7 deletions(-) + +diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri +index e7f869a15..f9c9c24bf 100644 +--- a/src/buildtools/config/support.pri ++++ b/src/buildtools/config/support.pri +@@ -191,10 +191,6 @@ defineTest(qtwebengine_checkForHostPkgCfg) { + + defineTest(qtwebengine_checkForGlibc) { + module = $$1 +- !qtConfig(webengine-system-glibc) { +- qtwebengine_skipBuild("A suitable version >= 2.27 of libc required to build $${module} could not be found.") +- return(false) +- } + return(true) + } + +diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json +index 88d1790c1..9eb5e8e33 100644 +--- a/src/buildtools/configure.json ++++ b/src/buildtools/configure.json +@@ -379,7 +379,6 @@ + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) + && (!config.linux || features.webengine-host-pkg-config) +- && (!config.linux || features.webengine-system-glibc) + && (!config.linux || features.webengine-system-khr) + && (!config.linux || features.webengine-system-nss) + && (!config.linux || features.webengine-system-dbus) +@@ -782,8 +781,7 @@ + "webengine-system-fontconfig", + "webengine-system-dbus", + "webengine-system-nss", +- "webengine-system-khr", +- "webengine-system-glibc" ++ "webengine-system-khr" + ] + }, + { diff --git a/recipes-qt/qt5/qtwebengine/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/recipes-qt/qt5/qtwebengine/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch deleted file mode 100644 index f1e633c9..00000000 --- a/recipes-qt/qt5/qtwebengine/0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5e4ef7189876b1e2578f12824ad7b0405768f517 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Jul 2017 14:09:06 -0700 -Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on non-glibc/linux - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/base/trace_event/malloc_dump_provider.cc | 3 ++- - chromium/content/child/content_child_helpers.cc | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc -index 7d0cb57..10be59e 100644 ---- a/chromium/base/trace_event/malloc_dump_provider.cc -+++ b/chromium/base/trace_event/malloc_dump_provider.cc -@@ -210,6 +210,7 @@ MallocDumpProvider::~MallocDumpProvider() {} - // the current process. - bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, - ProcessMemoryDump* pmd) { -+#if defined(__GLIBC__) - size_t total_virtual_size = 0; - size_t resident_size = 0; - size_t allocated_objects_size = 0; -@@ -321,7 +322,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, - pmd->DumpHeapUsage(metrics_by_context, overhead, "malloc"); - } - tid_dumping_heap_ = kInvalidThreadId; -- -+#endif // __GLIBC__ - return true; - } - -diff --git a/chromium/content/child/content_child_helpers.cc b/chromium/content/child/content_child_helpers.cc -index 7ddeb4d..b8c73b0 100644 ---- a/chromium/content/child/content_child_helpers.cc -+++ b/chromium/content/child/content_child_helpers.cc -@@ -25,7 +25,7 @@ namespace content { - // though, this provides only a partial and misleading value. - // Unfortunately some telemetry benchmark rely on it and these need to - // be refactored before getting rid of this. See crbug.com/581365 . --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(__GLIBC__) || defined(OS_ANDROID) - size_t GetMemoryUsageKB() { - struct mallinfo minfo = mallinfo(); - uint64_t mem_usage = diff --git a/recipes-qt/qt5/qtwebengine/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/recipes-qt/qt5/qtwebengine/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch deleted file mode 100644 index 498b04d4..00000000 --- a/recipes-qt/qt5/qtwebengine/0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 51c5ff669beda6efec97f28bf6c94329e193eafd Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Jul 2017 15:09:02 -0700 -Subject: [PATCH] chromium: musl: allocator: Do not include glibc_weak_symbols - for musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/base/allocator/allocator_shim.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/base/allocator/allocator_shim.cc b/chromium/base/allocator/allocator_shim.cc -index 95480ea..1de3d1a 100644 ---- a/chromium/base/allocator/allocator_shim.cc -+++ b/chromium/base/allocator/allocator_shim.cc -@@ -266,7 +266,7 @@ void ShimFree(void* address) { - // In the case of tcmalloc we also want to plumb into the glibc hooks - // to avoid that allocations made in glibc itself (e.g., strdup()) get - // accidentally performed on the glibc heap instead of the tcmalloc one. --#if defined(USE_TCMALLOC) -+#if defined(USE_TCMALLOC) && defined(__GLIBC__) - #include "base/allocator/allocator_shim_override_glibc_weak_symbols.h" - #endif - diff --git a/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch b/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch deleted file mode 100644 index 37da85ee..00000000 --- a/recipes-qt/qt5/qtwebengine/0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 79ba4e54de16b6ef69ed4561edc694c0f4b77e5c Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Jul 2017 15:12:39 -0700 -Subject: [PATCH] chromium: musl: Use correct member name __si_fields from - LinuxSigInfo - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/sandbox/linux/seccomp-bpf/trap.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/sandbox/linux/seccomp-bpf/trap.cc b/chromium/sandbox/linux/seccomp-bpf/trap.cc -index 003708d..0fef314 100644 ---- a/chromium/sandbox/linux/seccomp-bpf/trap.cc -+++ b/chromium/sandbox/linux/seccomp-bpf/trap.cc -@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) { - // most versions of glibc don't include this information in siginfo_t. So, - // we need to explicitly copy it into a arch_sigsys structure. - struct arch_sigsys sigsys; -- memcpy(&sigsys, &info->_sifields, sizeof(sigsys)); -+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys)); - - #if defined(__mips__) - // When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the diff --git a/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Match-syscalls-to-match-musl.patch b/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Match-syscalls-to-match-musl.patch deleted file mode 100644 index d713d3ad..00000000 --- a/recipes-qt/qt5/qtwebengine/0011-chromium-musl-Match-syscalls-to-match-musl.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a8af55b0070d9cd9e80ccc8535437435d7f3960c Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Jul 2017 15:24:49 -0700 -Subject: [PATCH] chromium: musl: Match syscalls to match musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/third_party/lss/linux_syscall_support.h | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h -index 9dbd239..a715de1 100644 ---- a/chromium/third_party/lss/linux_syscall_support.h -+++ b/chromium/third_party/lss/linux_syscall_support.h -@@ -793,6 +793,14 @@ struct kernel_statfs { - #endif - - -+#undef stat64 -+#undef fstat64 -+ -+#ifndef __NR_fstatat -+#define __NR_fstatat __NR_fstatat64 -+#endif -+ -+ - #if defined(__x86_64__) - #ifndef ARCH_SET_GS - #define ARCH_SET_GS 0x1001 -@@ -1210,6 +1218,14 @@ struct kernel_statfs { - #ifndef __NR_fallocate - #define __NR_fallocate 285 - #endif -+ -+#ifndef __NR_pread -+#define __NR_pread __NR_pread64 -+#endif -+#ifndef __NR_pwrite -+#define __NR_pwrite __NR_pwrite64 -+#endif -+ - /* End of x86-64 definitions */ - #elif defined(__mips__) - #if _MIPS_SIM == _MIPS_SIM_ABI32 diff --git a/recipes-qt/qt5/qtwebengine/0014-chromium-musl-Adjust-default-pthread-stack-size.patch b/recipes-qt/qt5/qtwebengine/0014-chromium-musl-Adjust-default-pthread-stack-size.patch deleted file mode 100644 index bec98b0d..00000000 --- a/recipes-qt/qt5/qtwebengine/0014-chromium-musl-Adjust-default-pthread-stack-size.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5a83638e13e6d5b1d8aa401af12dbe29bcea8cda Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Jul 2017 16:41:23 -0700 -Subject: [PATCH] chromium: musl: Adjust default pthread stack size - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/base/threading/platform_thread_linux.cc | 3 ++- - chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp | 4 ++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/chromium/base/threading/platform_thread_linux.cc b/chromium/base/threading/platform_thread_linux.cc -index 92fbda5..c41579d 100644 ---- a/chromium/base/threading/platform_thread_linux.cc -+++ b/chromium/base/threading/platform_thread_linux.cc -@@ -175,7 +175,8 @@ void TerminateOnThread() {} - - size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { - #if !defined(THREAD_SANITIZER) -- return 0; -+ // use 8mb like glibc to avoid running out of space -+ return (1 << 23); - #else - // ThreadSanitizer bloats the stack heavily. Evidence has been that the - // default stack size isn't enough for some browser tests. -diff --git a/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp b/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp -index 1d164f5..3358deb 100644 ---- a/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp -+++ b/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp -@@ -68,7 +68,7 @@ size_t StackFrameDepth::getUnderestimatedStackSize() { - // FIXME: On Mac OSX and Linux, this method cannot estimate stack size - // correctly for the main thread. - --#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD) -+#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD) - // pthread_getattr_np() can fail if the thread is not invoked by - // pthread_create() (e.g., the main thread of webkit_unit_tests). - // If so, a conservative size estimate is returned. -@@ -135,7 +135,7 @@ size_t StackFrameDepth::getUnderestimatedStackSize() { - } - - void* StackFrameDepth::getStackStart() { --#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD) -+#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD) - pthread_attr_t attr; - int error; - #if OS(FREEBSD) diff --git a/recipes-qt/qt5/qtwebengine/0015-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch b/recipes-qt/qt5/qtwebengine/0015-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch deleted file mode 100644 index 13ecb95a..00000000 --- a/recipes-qt/qt5/qtwebengine/0015-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 4394020a7bfbac6fb78cf498f7bdaa9adf153707 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 a2ca2e2..e139cdf 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/recipes-qt/qt5/qtwebengine/0016-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch b/recipes-qt/qt5/qtwebengine/0016-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch deleted file mode 100644 index d4bdc8b4..00000000 --- a/recipes-qt/qt5/qtwebengine/0016-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 5e2fae4322189dc359c469fed55c7fadbf46418e Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 8 Jul 2017 09:08:23 -0700 -Subject: [PATCH] chromium: musl: tcmalloc: Use off64_t insread of __off64_t - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -index 91f77dd..bb84a0b 100644 ---- a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -+++ b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -@@ -1929,7 +1929,7 @@ typedef unsigned long int ulong; - #if defined(__x86_64__) - /* Need to make sure __off64_t isn't truncated to 32-bits under x32. */ - LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d, -- __off64_t o) { -+ off64_t o) { - LSS_BODY(6, void*, mmap, LSS_SYSCALL_ARG(s), LSS_SYSCALL_ARG(l), - LSS_SYSCALL_ARG(p), LSS_SYSCALL_ARG(f), - LSS_SYSCALL_ARG(d), (uint64_t)(o)); diff --git a/recipes-qt/qt5/qtwebengine/0003-chromium-workaround-for-too-long-.rps-file-name.patch b/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch index 5d444899..6712cef6 100644 --- a/recipes-qt/qt5/qtwebengine/0003-chromium-workaround-for-too-long-.rps-file-name.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch @@ -1,4 +1,4 @@ -From b220fb26cdcc7b3b9d2762c46b8e7604f3120cc3 Mon Sep 17 00:00:00 2001 +From ba309beb6cdd4a0cd343cc8043464714cd5e8c3e 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 @@ -13,15 +13,17 @@ le.rsp): Unable to create file. File name too long Task-number: QTBUG-59769 Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- - 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 a5bc6cd..5cefbfe 100644 ---- a/chromium/tools/gn/ninja_action_target_writer.cc -+++ b/chromium/tools/gn/ninja_action_target_writer.cc -@@ -115,9 +115,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 5f4fbaad882..1c074a2193b 100644 +--- a/gn/tools/gn/ninja_action_target_writer.cc ++++ b/gn/tools/gn/ninja_action_target_writer.cc +@@ -119,9 +119,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 +32,7 @@ index a5bc6cd..5cefbfe 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/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-fix-build-with-clang.patch b/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-fix-build-with-clang.patch new file mode 100644 index 00000000..a7d8a1c5 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0002-chromium-fix-build-with-clang.patch @@ -0,0 +1,91 @@ +From a67f504fcc2c96ea7e7a57e44dc9c6d559f19838 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 b511a58c5a8..b628042bc21 100644 +--- a/chromium/build/config/compiler/BUILD.gn ++++ b/chromium/build/config/compiler/BUILD.gn +@@ -783,8 +783,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 += [ +@@ -797,8 +795,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" ] +@@ -807,9 +803,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" ] +@@ -888,10 +881,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" ] + } +@@ -938,9 +928,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 += [ +@@ -997,10 +984,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", +@@ -1167,13 +1151,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 && !(use_qt && use_libcxx)) { +- cflags += [ "-no-canonical-prefixes" ] +- } + } + + config("clang_revision") { diff --git a/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Exclude-CRC32-for-32bit-arm.patch b/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Exclude-CRC32-for-32bit-arm.patch new file mode 100644 index 00000000..3dfcb1af --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0003-chromium-Exclude-CRC32-for-32bit-arm.patch @@ -0,0 +1,33 @@ +From cf19db916e8566a8c19e9a5aeeb6a9e6a7f08111 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 | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/chromium/third_party/zlib/BUILD.gn b/chromium/third_party/zlib/BUILD.gn +index 44b827155b2..16892b8d284 100644 +--- a/chromium/third_party/zlib/BUILD.gn ++++ b/chromium/third_party/zlib/BUILD.gn +@@ -129,8 +129,12 @@ 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 && !use_qt) { + 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/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Do-not-try-to-set-the-guessed-values-for.patch b/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Do-not-try-to-set-the-guessed-values-for.patch new file mode 100644 index 00000000..4a82d69d --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0004-chromium-Do-not-try-to-set-the-guessed-values-for.patch @@ -0,0 +1,41 @@ +From 1dd881dafa5d61f9a260dd54092689868869f066 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> + +%% original patch: 0005-chromium-Do-not-try-to-set-the-guessed-values-for-ma.patch +--- + 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 b628042bc21..0b9476b33af 100644 +--- a/chromium/build/config/compiler/BUILD.gn ++++ b/chromium/build/config/compiler/BUILD.gn +@@ -784,15 +784,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/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-fix-build-after-y2038-changes-in-glibc.patch b/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-fix-build-after-y2038-changes-in-glibc.patch new file mode 100644 index 00000000..8ce307c9 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0005-chromium-fix-build-after-y2038-changes-in-glibc.patch @@ -0,0 +1,28 @@ +From 73c864315f3d14ba232657232d145795adf25d89 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 cf6e7927951..e5df6f9d92c 100644 +--- a/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc ++++ b/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc +@@ -70,6 +70,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/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..b05d9163 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,48 @@ +From c9c77a6fdd6679815f8c68f1e519a317472e7bc5 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 + +Upstream-Status: Pending +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.h | 5 +++++ + chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc | 3 +-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/chromium/ui/events/ozone/evdev/event_converter_evdev.h b/chromium/ui/events/ozone/evdev/event_converter_evdev.h +index 2d184811a00..fb2ba0069f1 100644 +--- a/chromium/ui/events/ozone/evdev/event_converter_evdev.h ++++ b/chromium/ui/events/ozone/evdev/event_converter_evdev.h +@@ -20,6 +20,11 @@ + #include "ui/events/ozone/evdev/event_dispatch_callback.h" + #include "ui/gfx/geometry/size.h" + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + struct input_event; + + namespace ui { +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 b8d089f7381..5d2d08b1ec6 100644 +--- a/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc ++++ b/chromium/ui/events/ozone/evdev/touch_evdev_debug_buffer.cc +@@ -62,8 +62,7 @@ void TouchEventLogEvdev::DumpLog(const char* filename) { + continue; + std::string event_string = base::StringPrintf( + "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); ++ 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/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-Include-cstddef-for-size_t-definition.patch b/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-Include-cstddef-for-size_t-definition.patch new file mode 100644 index 00000000..87893de6 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0007-chromium-Include-cstddef-for-size_t-definition.patch @@ -0,0 +1,35 @@ +From 851073e7af2c21567e1d8c1a15639fcc6e01be40 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> +--- + .../third_party/webrtc/modules/video_coding/decoding_state.h | 1 + + 1 file changed, 1 insertion(+) + +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 ec972949d89..2a76775cfb6 100644 +--- a/chromium/third_party/webrtc/modules/video_coding/decoding_state.h ++++ b/chromium/third_party/webrtc/modules/video_coding/decoding_state.h +@@ -15,6 +15,7 @@ + #include <map> + #include <set> + #include <vector> ++#include <cstdint> + + namespace webrtc { + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Move-CharAllocator-definition-to-a-header-f.patch b/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Move-CharAllocator-definition-to-a-header-f.patch new file mode 100644 index 00000000..603173d1 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0008-chromium-Move-CharAllocator-definition-to-a-header-f.patch @@ -0,0 +1,556 @@ +From 50f862c3bed6f13932d43da5c992d3dacfdfe00e 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' + +Upstream-Status: Pending +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 7b594b4a458..9dae1c360c4 100644 +--- a/chromium/cc/base/list_container_helper.cc ++++ b/chromium/cc/base/list_container_helper.cc +@@ -13,259 +13,8 @@ + #include "base/check_op.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/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Link-v8-with-libatomic-on-x86.patch b/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Link-v8-with-libatomic-on-x86.patch new file mode 100644 index 00000000..f1385890 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0009-chromium-Link-v8-with-libatomic-on-x86.patch @@ -0,0 +1,29 @@ +From df7f7525ece62cde56de905098bd6000483f10d2 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 ba99c75140b..33cf943bcba 100644 +--- a/chromium/v8/BUILD.gn ++++ b/chromium/v8/BUILD.gn +@@ -3862,7 +3862,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" ] + } + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-icu-use-system-library-only-targets.patch new file mode 100644 index 00000000..7b648671 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0010-chromium-icu-use-system-library-only-targets.patch @@ -0,0 +1,89 @@ +From 7cc4c3490f01cec09f9ca63e36cf34c9977243f0 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. + +Upstream-Status: Pending +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 2430d3e48e5..5d00226667d 100644 +--- a/chromium/third_party/icu/BUILD.gn ++++ b/chromium/third_party/icu/BUILD.gn +@@ -8,9 +8,13 @@ import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + import("//third_party/icu/config.gni") + import("//third_party/icu/sources.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) { +@@ -24,6 +28,12 @@ if (is_mac && !icu_is_in_fuchsia) { + 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") { +@@ -413,7 +423,7 @@ config("system_icu_config") { + } + } + +-if (use_system_icu) { ++if (use_system_icu_target_only) { + pkg_config("system_icui18n") { + packages = [ "icu-i18n" ] + } +@@ -626,7 +636,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"] +@@ -634,7 +644,7 @@ config("icu_config") { + } + + group("icuuc") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icuuc_shim" ] + public_configs = [ + ":system_icu_config", +@@ -646,7 +656,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/0011-chromium-Add-missing-include-for-C-strncpy.patch b/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Add-missing-include-for-C-strncpy.patch new file mode 100644 index 00000000..81159aa9 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-Add-missing-include-for-C-strncpy.patch @@ -0,0 +1,22 @@ +From 339af001155fd49f4f967dcf08664e247d258877 Mon Sep 17 00:00:00 2001 +From: Jani Suonpera <jani.suonpera@qt.io> +Date: Thu, 4 Feb 2021 14:30:44 +0200 +Subject: [PATCH] chromium: Add missing include for C strncpy + +Task-number:QTBUG-90623 +--- + .../mojo/public/cpp/platform/named_platform_channel_posix.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc b/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc +index 9082ac4da59..24b21771d89 100644 +--- a/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc ++++ b/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc +@@ -8,6 +8,7 @@ + #include <sys/socket.h> + #include <sys/un.h> + #include <unistd.h> ++#include <cstring> // strncpy + + #include "base/files/file_util.h" + #include "base/files/scoped_file.h" diff --git a/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-skia-Fix-build-with-gcc-12.patch b/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-skia-Fix-build-with-gcc-12.patch new file mode 100644 index 00000000..0cd9a85f --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0011-chromium-skia-Fix-build-with-gcc-12.patch @@ -0,0 +1,63 @@ +From ce0d0a3961dafb0e682a47b3cc3963a23bdcea37 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Mon, 16 May 2022 20:01:49 +0000 +Subject: [PATCH] chromium: skia: Fix build with gcc-12 + +* fixes: +/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 --sysroot=/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot -MMD -MF obj/skia/skia/SkParseColor.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -DCR_SYSROOT_HASH=5f64b417e1018dcf8fcc81dc2714e0f264b9b911 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_USE_LIBGIFCODEC -DSK_VULKAN_HEADER=\"../../skia/config/SkVulkanConfig.h\" -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSKIA_IMPLEMENTATION=1 -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_DEFAULT_FONT_CACHE_LIMIT=20971520 -DWEBP_EXTERN=extern -DUSE_SYSTEM_LIBJPEG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -Igen -I../../../../git/src/3rdparty/chromium -I../../../../git/src/3rdparty/chromium/third_party/skia -I../../../../git/src/3rdparty/chromium/third_party/libgifcodec -I../../../../git/src/3rdparty/chromium/third_party/vulkan/include -I../../../../git/src/3rdparty/chromium/third_party/vulkan_headers/include -I../../../../git/src/3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen -Igen -I../../../../git/src/3rdparty/chromium/third_party/libwebp/src -Igen -I../../../../git/src/3rdparty/chromium/third_party/abseil-cpp -I../../../../git/src/3rdparty/chromium/third_party/boringssl/src/include -I../../../../git/src/3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -I../../../../git/src/3rdparty/chromium/third_party/icu/source/common -I../../../../git/src/3rdparty/chromium/third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -m64 -fno-omit-frame-pointer -g1 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-packed-not-aligned -Wno-dangling-else -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/libpng16 -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/freetype2 -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/libpng16 -std=gnu++14 -fno-exceptions -fno-rtti --sysroot=../../../../recipe-sysroot -fvisibility-inlines-hidden -std=c++17 -Wno-narrowing -Wno-class-memaccess -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -Wno-invalid-offsetof -Wno-return-type -Wno-deprecated-copy -c ../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp -o obj/skia/skia/SkParseColor.o +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp: In static member function 'static const char* SkParse::FindNamedColor(const char*, size_t, SkColor*)': +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:300:49: error: no matching function for call to 'begin(const char* const [140])' + 300 | const auto rec = std::lower_bound(std::begin(gColorNames), + | ~~~~~~~~~~^~~~~~~~~~~~~ +In file included from ../../../../recipe-sysroot/usr/include/c++/12.1.0/utility:73, + from ../../../../git/src/3rdparty/chromium/third_party/skia/include/core/SkImageInfo.h:11, + from ../../../../git/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h:11, + from ../../../../git/src/3rdparty/chromium/third_party/skia/include/utils/SkParse.h:13, + from ../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:9: +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:90:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(initializer_list<_Tp>)' + 90 | begin(initializer_list<_Tp> __ils) noexcept + | ^~~~~ +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:90:5: note: template argument deduction/substitution failed: +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:300:49: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*' + 300 | const auto rec = std::lower_bound(std::begin(gColorNames), + | ~~~~~~~~~~^~~~~~~~~~~~~ +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:301:49: error: no matching function for call to 'end(const char* const [140])' + 301 | std::end (gColorNames), + | ~~~~~~~~~~^~~~~~~~~~~~~ +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)' + 101 | end(initializer_list<_Tp> __ils) noexcept + | ^~~ +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: template argument deduction/substitution failed: +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:301:49: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*' + 301 | std::end (gColorNames), + | ~~~~~~~~~~^~~~~~~~~~~~~ +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:307:24: error: no matching function for call to 'end(const char* const [140])' + 307 | if (rec == std::end(gColorNames) || 0 != strcmp(name, *rec)) { + | ~~~~~~~~^~~~~~~~~~~~~ +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)' + 101 | end(initializer_list<_Tp> __ils) noexcept + | ^~~ +../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: template argument deduction/substitution failed: +../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:307:24: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*' + 307 | if (rec == std::end(gColorNames) || 0 != strcmp(name, *rec)) { + | ~~~~~~~~^~~~~~~~~~~~~ +[67/9144] CXX obj/skia/skia/GrClipStack.o + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + chromium/third_party/skia/src/utils/SkParseColor.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chromium/third_party/skia/src/utils/SkParseColor.cpp b/chromium/third_party/skia/src/utils/SkParseColor.cpp +index 0dc3497062f..f63f1800501 100644 +--- a/chromium/third_party/skia/src/utils/SkParseColor.cpp ++++ b/chromium/third_party/skia/src/utils/SkParseColor.cpp +@@ -7,6 +7,7 @@ + + + #include "include/utils/SkParse.h" ++#include <vector> + + #include <algorithm> // std::lower_bound + #include <iterator> diff --git a/recipes-qt/qt5/qtwebengine/chromium/0012-Remove-unsetting-_FILE_OFFSET_BITS.patch b/recipes-qt/qt5/qtwebengine/chromium/0012-Remove-unsetting-_FILE_OFFSET_BITS.patch new file mode 100644 index 00000000..64a3d06b --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0012-Remove-unsetting-_FILE_OFFSET_BITS.patch @@ -0,0 +1,34 @@ +From 3332ea15dfd4024eb7b95ebd1b26bf76f592b23f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 3 Jan 2023 14:10:23 -0800 +Subject: [PATCH] Remove unsetting _FILE_OFFSET_BITS + +This does not work when enabling 64bit time_t with glibc which is enabled with -D_TIME_BITS=64, since it also needs +_FILE_OFFSET_BITS=64 and this does not work when its undefined explicitly + +Upstream-Status: Submitted [https://github.com/madler/zlib/pull/764] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + chromium/third_party/zlib/gzguts.h | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/chromium/third_party/zlib/gzguts.h b/chromium/third_party/zlib/gzguts.h +index 57faf37165a..3747f3c449d 100644 +--- a/chromium/third_party/zlib/gzguts.h ++++ b/chromium/third_party/zlib/gzguts.h +@@ -3,15 +3,6 @@ + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +-#ifdef _LARGEFILE64_SOURCE +-# ifndef _LARGEFILE_SOURCE +-# define _LARGEFILE_SOURCE 1 +-# endif +-# ifdef _FILE_OFFSET_BITS +-# undef _FILE_OFFSET_BITS +-# endif +-#endif +- + #ifdef HAVE_HIDDEN + # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) + #else diff --git a/recipes-qt/qt5/qtwebengine/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch index 52d5143e..ef788ff2 100644 --- a/recipes-qt/qt5/qtwebengine/0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch @@ -1,21 +1,22 @@ -From 6d7823f7bd60aa63aa11b4c6ac9d8814122e8396 Mon Sep 17 00:00:00 2001 +From 4951642cc3b22379211c492759849c79a59938f5 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 7 Jul 2017 14:01:12 -0700 -Subject: [PATCH] chromium: musl: sandbox: Define TEMP_FAILURE_RETRY if not - defined +Subject: [PATCH] chromium: musl: sandbox: Define TEMP_FAILURE_RETRY if + not defined Musl does not define this Macro Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- chromium/sandbox/linux/suid/sandbox.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/chromium/sandbox/linux/suid/sandbox.c b/chromium/sandbox/linux/suid/sandbox.c -index b655d1c..3de34e3 100644 +index 5fdb4817af8..e5b9431daa0 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/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch new file mode 100644 index 00000000..0b14f09d --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch @@ -0,0 +1,54 @@ +From 49c7efab2123eff453df1bd0bdbdc718a8292c58 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 7 Jul 2017 14:09:06 -0700 +Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on + non-glibc/linux + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + chromium/base/process/process_metrics_posix.cc | 4 ++-- + 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 9d12c427bb3..900ab13519f 100644 +--- a/chromium/base/process/process_metrics_posix.cc ++++ b/chromium/base/process/process_metrics_posix.cc +@@ -119,14 +119,14 @@ size_t ProcessMetrics::GetMallocUsage() { + malloc_statistics_t stats = {0}; + malloc_zone_statistics(nullptr, &stats); + return stats.size_in_use; +-#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) ++#elif defined(__GLIBC__) || defined(OS_CHROMEOS) || defined(OS_ANDROID) + struct mallinfo minfo = mallinfo(); + #if BUILDFLAG(USE_TCMALLOC) + return minfo.uordblks; + #else + return minfo.hblkhd + minfo.arena; + #endif +-#elif defined(OS_FUCHSIA) ++#else + // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. + return 0; + #endif +diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc +index c327f486596..90129e851e8 100644 +--- a/chromium/base/trace_event/malloc_dump_provider.cc ++++ b/chromium/base/trace_event/malloc_dump_provider.cc +@@ -77,6 +77,7 @@ MallocDumpProvider::~MallocDumpProvider() = default; + // the current process. + bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, + ProcessMemoryDump* pmd) { ++#if defined(__GLIBC__) + { + base::AutoLock auto_lock(emit_metrics_on_memory_dump_lock_); + if (!emit_metrics_on_memory_dump_) +@@ -170,6 +171,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, + MemoryAllocatorDump::kUnitsBytes, + resident_size - allocated_objects_size); + } ++#endif // __GLIBC__ + return true; + } + diff --git a/recipes-qt/qt5/qtwebengine/0006-chromium-musl-include-fcntl.h-for-loff_t.patch b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch index 6f582993..72cf812a 100644 --- a/recipes-qt/qt5/qtwebengine/0006-chromium-musl-include-fcntl.h-for-loff_t.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch @@ -1,18 +1,19 @@ -From d36b3a2fdc5aa94b4dd03bcb509f64e8722fae9d Mon Sep 17 00:00:00 2001 +From 1150bddce8d8cb4a691b3197569d304434fa6219 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 7 Jul 2017 14:37:49 -0700 Subject: [PATCH] chromium: musl: include fcntl.h for loff_t Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- - chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h | 1 + + .../tcmalloc/chromium/src/base/linux_syscall_support.h | 1 + 1 file changed, 1 insertion(+) diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -index b29ec2d..91f77dd 100644 +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/recipes-qt/qt5/qtwebengine/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch index 3b96e066..45907779 100644 --- a/recipes-qt/qt5/qtwebengine/0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch @@ -1,21 +1,23 @@ -From 536f4a41ea30faabac84ff5bd62b51238ba1cdc7 Mon Sep 17 00:00:00 2001 +From ceb6a8ca7548ef255150e1b8d1e65b40c4949dee 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 +Subject: [PATCH] chromium: musl: use off64_t instead of the internal + __off64_t - only do the glibc 32-bit ABI check for mmap/mmap64 on gnu libc. musl does not support the 32-bit ABI. Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- - .../third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 10 +++++----- + .../tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -index 715c045..edc8cf2 100644 +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 +25,8 @@ index 715c045..edc8cf2 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 +35,7 @@ index 715c045..edc8cf2 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 +44,7 @@ index 715c045..edc8cf2 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 +53,7 @@ index 715c045..edc8cf2 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/recipes-qt/qt5/qtwebengine/0008-chromium-musl-linux-glibc-make-the-distinction.patch b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch index 77e896d5..2bba01b4 100644 --- a/recipes-qt/qt5/qtwebengine/0008-chromium-musl-linux-glibc-make-the-distinction.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch @@ -1,23 +1,24 @@ -From 7336279ff0cca9216a095dcabf8872418372ee42 Mon Sep 17 00:00:00 2001 +From b59ba5a52e29867f9ebbc4423514d50f4b36b0ae Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 7 Jul 2017 14:54:38 -0700 Subject: [PATCH] chromium: musl: linux != glibc, make the distinction Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- chromium/base/allocator/allocator_check.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chromium/base/allocator/allocator_check.cc b/chromium/base/allocator/allocator_check.cc -index 5a0564d..8c2dc64 100644 +index a5ca0b7191e..7017d48b5a0 100644 --- a/chromium/base/allocator/allocator_check.cc +++ b/chromium/base/allocator/allocator_check.cc -@@ -21,7 +21,7 @@ bool IsAllocatorInitialized() { - #if defined(OS_WIN) && defined(ALLOCATOR_SHIM) - // Set by allocator_shim_win.cc when the shimmed _set_new_mode() is called. +@@ -27,7 +27,7 @@ bool IsAllocatorInitialized() { + // Set by allocator_shim_override_ucrt_symbols_win.h when the + // shimmed _set_new_mode() is called. return g_is_win_shim_layer_initialized; --#elif defined(OS_LINUX) && defined(USE_TCMALLOC) && \ -+#elif defined(__GLIBC__) && defined(USE_TCMALLOC) && \ - !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) +-#elif (defined(OS_LINUX) || defined(OS_CHROMEOS)) && \ ++#elif (defined(__GLIBC__) || defined(OS_CHROMEOS)) && \ + BUILDFLAG(USE_TCMALLOC) && !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) // From third_party/tcmalloc/chromium/src/gperftools/tcmalloc.h. // TODO(primiano): replace with an include once base can depend on allocator. diff --git a/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch index 2258a505..fd62102a 100644 --- a/recipes-qt/qt5/qtwebengine/0012-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch @@ -1,34 +1,35 @@ -From 2268eab4b28c1817a2ecd69c27730f9a46807e93 Mon Sep 17 00:00:00 2001 +From f82c828b2c8ffd7c5f0e884132e0f1d721295c36 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 7 Jul 2017 15:27:50 -0700 -Subject: [PATCH] chromium: musl: Define res_ninit and res_nclose for non-glibc - platforms +Subject: [PATCH] chromium: musl: Define res_ninit and res_nclose for + non-glibc platforms Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- - chromium/net/dns/dns_config_service_posix.cc | 4 ++++ - chromium/net/dns/dns_reloader.cc | 4 ++++ - chromium/net/dns/resolv_compat.h | 29 ++++++++++++++++++++++++++++ + chromium/net/dns/dns_config_service_posix.cc | 4 +++ + chromium/net/dns/dns_reloader.cc | 4 +++ + chromium/net/dns/resolv_compat.h | 29 ++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 chromium/net/dns/resolv_compat.h diff --git a/chromium/net/dns/dns_config_service_posix.cc b/chromium/net/dns/dns_config_service_posix.cc -index ba8a369..e9b40d0 100644 +index 5a4aead0acf..3427923836b 100644 --- a/chromium/net/dns/dns_config_service_posix.cc +++ b/chromium/net/dns/dns_config_service_posix.cc -@@ -25,6 +25,10 @@ - #include "net/dns/notify_watcher_mac.h" +@@ -30,6 +30,10 @@ + #include "net/dns/public/dns_protocol.h" #include "net/dns/serial_worker.h" +#if defined(OS_LINUX) && !defined(__GLIBC__) +#include "net/dns/resolv_compat.h" +#endif + - #if defined(OS_MACOSX) && !defined(OS_IOS) + #if defined(OS_MAC) #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 74534e6..2780a77 100644 +index 0672e711afb..300f77e3b38 100644 --- a/chromium/net/dns/dns_reloader.cc +++ b/chromium/net/dns/dns_reloader.cc @@ -9,6 +9,10 @@ @@ -40,11 +41,11 @@ index 74534e6..2780a77 100644 +#endif + #include "base/lazy_instance.h" - #include "base/logging.h" #include "base/macros.h" + #include "base/notreached.h" diff --git a/chromium/net/dns/resolv_compat.h b/chromium/net/dns/resolv_compat.h new file mode 100644 -index 0000000..4f0e852 +index 00000000000..4f0e852a19d --- /dev/null +++ b/chromium/net/dns/resolv_compat.h @@ -0,0 +1,29 @@ diff --git a/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch index e4df9f67..ef05aa23 100644 --- a/recipes-qt/qt5/qtwebengine/0013-chromium-musl-Do-not-define-__sbrk-on-musl.patch +++ b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Do-not-define-__sbrk-on-musl.patch @@ -1,4 +1,4 @@ -From 8d4ab971e015059b3509dff4e7b7ff0382c2c6fa Mon Sep 17 00:00:00 2001 +From f4b417ae2878f5ebf8d5a171669f516e1c6d4d9c 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 @@ -7,20 +7,21 @@ musl libc does not have sbrk. on musl libc will only work when called with 0 as argument, so we just let it out for now Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending --- - chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 2 +- + .../third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -index edc8cf2..a868b50 100644 +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/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch new file mode 100644 index 00000000..86757bbd --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Adjust-default-pthread-stack-size.patch @@ -0,0 +1,48 @@ +From d41fdb34286e134d4ff871943ea54b03b2ab02d6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 7 Jul 2017 16:41:23 -0700 +Subject: [PATCH] chromium: musl: Adjust default pthread stack size + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + chromium/base/threading/platform_thread_linux.cc | 3 ++- + .../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 c1a705e2b89..f322fdb8352 100644 +--- a/chromium/base/threading/platform_thread_linux.cc ++++ b/chromium/base/threading/platform_thread_linux.cc +@@ -377,7 +377,8 @@ void TerminateOnThread() {} + + size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { + #if !defined(THREAD_SANITIZER) +- return 0; ++ // use 8mb like glibc to avoid running out of space ++ return (1 << 23); + #else + // ThreadSanitizer bloats the stack heavily. Evidence has been that the + // default stack size isn't enough for some browser tests. +diff --git a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc +index 71b901f4044..f33aba04bc3 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. + +-#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ ++#elif 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 blink_unittests). +@@ -97,7 +97,7 @@ return Threading::ThreadStackSize(); + } + + void* GetStackStart() { +-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ + defined(OS_FUCHSIA) + pthread_attr_t attr; + int error; diff --git a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch new file mode 100644 index 00000000..59a5e66f --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch @@ -0,0 +1,62 @@ +From 9808a4034b0a6354ecbc2081a2b022614acb392f 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 __WORDSIZE on musl libc + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Upstream-Status: Pending +--- + chromium/third_party/breakpad/breakpad/configure.ac | 2 +- + .../breakpad/breakpad/src/common/dwarf/elf_reader.cc | 4 ++++ + .../breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 + + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/chromium/third_party/breakpad/breakpad/configure.ac b/chromium/third_party/breakpad/breakpad/configure.ac +index 08513687f34..13745540a5e 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, + AC_HEADER_STDC + AC_SYS_LARGEFILE + AX_PTHREAD +-AC_CHECK_HEADERS([a.out.h sys/random.h]) ++AC_CHECK_HEADERS([a.out.h sys/random.h sys/reg.h]) + AC_CHECK_FUNCS([arc4random getcontext getrandom]) + AM_CONDITIONAL([HAVE_GETCONTEXT], [test "x$ac_cv_func_getcontext" = xyes]) + +diff --git a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +index bbfdba68093..a98bb7e6fd7 100644 +--- a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc ++++ b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +@@ -30,13 +30,17 @@ + #define _GNU_SOURCE // needed for pread() + #endif + ++#include <config.h> ++#include <sys/reg.h> + #include <fcntl.h> + #include <limits.h> + #include <string.h> + #include <sys/mman.h> + #include <sys/stat.h> + #include <sys/types.h> ++#include <config.h> + #include <unistd.h> ++#include <sys/reg.h> + + #include <algorithm> + #include <map> +diff --git a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +index 6e153745dba..5cd2c6fcb23 100644 +--- a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h ++++ b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +@@ -33,6 +33,7 @@ + #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_ + #define COMMON_LINUX_ELF_CORE_DUMP_H_ + ++#include <sys/reg.h> + #include <elf.h> + #include <limits.h> + #include <link.h> diff --git a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-pread-pwrite.patch b/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-pread-pwrite.patch new file mode 100644 index 00000000..a925c0d6 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-pread-pwrite.patch @@ -0,0 +1,32 @@ +From e0413ce85e22a1a0a83015f22cd850add6250c9c 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 | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h +index e4ac22644c0..f56203ccce4 100644 +--- a/chromium/third_party/lss/linux_syscall_support.h ++++ b/chromium/third_party/lss/linux_syscall_support.h +@@ -1258,6 +1258,12 @@ struct kernel_statfs { + #ifndef __NR_getrandom + #define __NR_getrandom 318 + #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/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch new file mode 100644 index 00000000..eb157045 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch @@ -0,0 +1,46 @@ +From 78eae00a5c53cd44a4b73e6ba357088a82dd4b84 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 + +initialize msghdr in a compatible manner + +msghdr stuct from socket.h is not same between musl and glibc +where musl claims to be more posix compliant where as glibc seems +to fill whats needed for linux sizewise and chooses long enough types +which maybe questionable, therefore constructing a structure with explicit +constructor is not going to work correctly for musl and glibc at same time + +see +https://git.musl-libc.org/cgit/musl/commit/arch/x86_64/bits/socket.h?id=7168790763cdeb794df52be6e3b39fbb021c5a64 + +This fix initialized the struct to 0 first and then sets the struct elements +by name, so we dont have to hard code the positions of elements when initializing +structure + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + chromium/net/socket/udp_socket_posix.cc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/chromium/net/socket/udp_socket_posix.cc b/chromium/net/socket/udp_socket_posix.cc +index 71265568be5..42e0d298045 100644 +--- a/chromium/net/socket/udp_socket_posix.cc ++++ b/chromium/net/socket/udp_socket_posix.cc +@@ -1151,8 +1151,12 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers( + for (auto& buffer : buffers) + msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()}); + msgvec->reserve(buffers.size()); +- for (size_t j = 0; j < buffers.size(); j++) +- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0}); ++ for (size_t j = 0; j < buffers.size(); j++) { ++ struct msghdr m = {0}; ++ m.msg_iov = &msg_iov[j]; ++ m.msg_iovlen = 1; ++ msgvec->push_back({m, 0}); ++ } + int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0)); + SendResult send_result(0, 0, std::move(buffers)); + if (result < 0) { diff --git a/recipes-qt/qt5/qtwebengine/chromium/0024-Fix-dependecy-when-compiling-content-browser.patch b/recipes-qt/qt5/qtwebengine/chromium/0024-Fix-dependecy-when-compiling-content-browser.patch new file mode 100644 index 00000000..2ca2e313 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0024-Fix-dependecy-when-compiling-content-browser.patch @@ -0,0 +1,28 @@ +From a4783ee130e638f51438340b9f8f4de415f9ad76 Mon Sep 17 00:00:00 2001 +From: Michal Klocek <michal.klocek@qt.io> +Date: Wed, 8 May 2024 09:07:49 +0200 +Subject: [PATCH] Fix dependecy when compiling content/browser + +Deals with: + +"fatal error: components/spellcheck/spellcheck_buildflags.h: +No such file or directory" + +Change-Id: If633fdf9d3d793158ab0dd994c011c17e66c13b5 +Upstream-Status: Pending +--- + chromium/content/browser/BUILD.gn | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chromium/content/browser/BUILD.gn b/chromium/content/browser/BUILD.gn +index 1466f33d462..ae459c24d4f 100644 +--- a/chromium/content/browser/BUILD.gn ++++ b/chromium/content/browser/BUILD.gn +@@ -334,6 +334,7 @@ jumbo_static_library("browser") { + + public_deps = [ + ":accessibility_buildflags", ++ "//components/spellcheck:buildflags", + "//base/util/memory_pressure", + "//base/util/type_safety", + "//ipc", diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index d2686726..efdd57b9 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -1,9 +1,8 @@ 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 )" +LICENSE = "BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( LGPL-3.0-only | 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 \ @@ -13,26 +12,33 @@ LIC_FILES_CHKSUM = " \ " DEPENDS += " \ + dbus \ + libpng-native \ + nss-native \ + nspr-native \ ninja-native \ - yasm-native \ + nasm-native \ + nodejs-native \ bison-native \ qtwebchannel \ qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtquickcontrols2 \ qtlocation \ - libdrm fontconfig pixman openssl pango cairo icu pciutils \ + libdrm libxkbcommon fontconfig pixman openssl pango cairo pciutils nss \ libcap \ + jpeg-native \ + freetype-native \ gperf-native \ + nodejs-native \ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxkbfile libxcomposite libxcursor libxi libxrandr libxtst', '', d)} \ " -DEPENDS_append_libc-musl = " libexecinfo" +DEPENDS:append:libc-musl = " libexecinfo" -EXTRA_QMAKEVARS_PRE += "GYP_CONFIG+=use_system_yasm \ - GYP_CONFIG+=generate_character_data=0 \ - GYP_CONFIG+=use_allocator=none \ - GYP_CONFIG+=use_experimental_allocator_shim=false \ -" -EXTRA_QMAKEVARS_CONFIGURE += "-feature-system-ninja -no-feature-system-gn" +inherit pkgconfig + +EXTRA_QMAKEVARS_CONFIGURE += "-feature-webengine-system-ninja -no-feature-webengine-system-gn" +EXTRA_QMAKEVARS_PRE += "CONFIG+=force_debug_info" # chromium/third_party/openh264/openh264.gyp adds # -Wno-format to openh264_cflags_add @@ -42,35 +48,55 @@ EXTRA_QMAKEVARS_CONFIGURE += "-feature-system-ninja -no-feature-system-gn" # http://errors.yoctoproject.org/Errors/Details/150333/ SECURITY_STRINGFORMAT = "" -# To use system ffmpeg you need to enable also libwebp, opus, vpx +# To use system ffmpeg you need to enable also libwebp, opus, libvpx # Only depenedencies available in oe-core are enabled by default -PACKAGECONFIG ??= "libwebp flac libevent libxslt speex nss" -PACKAGECONFIG[opus] = "WEBENGINE_CONFIG+=use_system_opus,,libopus" -PACKAGECONFIG[icu] = "WEBENGINE_CONFIG+=use_system_icu,,icu" -PACKAGECONFIG[ffmpeg] = "WEBENGINE_CONFIG+=use_system_ffmpeg,,libav" -PACKAGECONFIG[libwebp] = "WEBENGINE_CONFIG+=use_system_libwebp,,libwebp" -PACKAGECONFIG[flac] = "WEBENGINE_CONFIG+=use_system_flac,,flac" -PACKAGECONFIG[libevent] = "WEBENGINE_CONFIG+=use_system_libevent,,libevent" -PACKAGECONFIG[libxslt] = "WEBENGINE_CONFIG+=use_system_libxslt,,libxslt" -PACKAGECONFIG[speex] = "WEBENGINE_CONFIG+=use_system_speex,,speex" -PACKAGECONFIG[vpx] = "WEBENGINE_CONFIG+=use_system_vpx,,libvpx" -PACKAGECONFIG[webrtc] = "WEBENGINE_CONFIG+=use_webrtc,,libvpx" -PACKAGECONFIG[nss] = "WEBENGINE_CONFIG+=use_nss,,nss" - -EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}" +PACKAGECONFIG ??= "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" +PACKAGECONFIG[libwebp] = "-feature-webengine-system-libwebp,-no-feature-webengine-system-libwebp,libwebp" +PACKAGECONFIG[opus] = "-feature-webengine-system-opus,-no-feature-webengine-system-opus,libopus" +PACKAGECONFIG[libvpx] = "-feature-webengine-system-libvpx,-no-feature-webengine-system-libvpx,libvpx" +PACKAGECONFIG[libevent] = "-feature-webengine-system-libevent,-no-feature-webengine-system-libevent,libevent" +PACKAGECONFIG[libpng] = "-feature-webengine-system-png,-no-feature-webengine-system-png,libpng" +PACKAGECONFIG[harfbuzz] = "-feature-webengine-system-harfbuzz,-no-feature-webengine-system-harfbuzz,harfbuzz" +PACKAGECONFIG[glib] = "-feature-webengine-system-glib,-no-feature-webengine-system-glib,glib-2.0" +PACKAGECONFIG[zlib] = "-feature-webengine-system-zlib,-no-feature-webengine-system-zlib,zlib" +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}" COMPATIBLE_MACHINE = "(-)" -COMPATIBLE_MACHINE_x86 = "(.*)" -COMPATIBLE_MACHINE_x86-64 = "(.*)" -COMPATIBLE_MACHINE_armv6 = "(.*)" -COMPATIBLE_MACHINE_armv7a = "(.*)" -COMPATIBLE_MACHINE_armv7ve = "(.*)" -COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE:x86 = "(.*)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" +COMPATIBLE_MACHINE:armv6 = "(.*)" +COMPATIBLE_MACHINE:armv7a = "(.*)" +COMPATIBLE_MACHINE:armv7ve = "(.*)" +COMPATIBLE_MACHINE:aarch64 = "(.*)" inherit qmake5 inherit gettext -inherit pythonnative inherit perlnative +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" # we don't want gettext.bbclass to append --enable-nls def gettext_oeconf(d): @@ -79,18 +105,11 @@ def gettext_oeconf(d): require qt5.inc require qt5-git.inc +export GN_PKG_CONFIG_HOST = "${STAGING_BINDIR_NATIVE}/pkg-config-native" +export GN_HOST_TOOLCHAIN_EXTRA_CPPFLAGS = "-I${STAGING_DIR_NATIVE}/usr/include" +export NINJAFLAGS="${PARALLEL_MAKE}" + do_configure() { - # Disable autodetection from sysroot: - sed -e 's/packagesExist([^)]*vpx[^)]*):/false:/g'\ - -e 's/config_libvpx:/false:/g' \ - -e 's/config_srtp:/false:/g' \ - -e 's/config_snappy:/false:/g' \ - -e 's/packagesExist(nss):/false:/g' \ - -e 's/packagesExist(minizip, zlib):/false:/g' \ - -e 's/packagesExist(libwebp,libwebpdemux):/false:/g' \ - -e 's/packagesExist(libxml-2.0,libxslt):/false:/g'\ - -e 's/^ *packagesExist($$package):/false:/g' \ - -i ${S}/mkspecs/features/configure.prf # qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as # arguments here @@ -104,70 +123,87 @@ do_configure() { ${EXTRA_QMAKEVARS_CONFIGURE} } -do_configure_prepend_libc-musl() { +do_configure:prepend:libc-musl() { for f in `find ${S}/src/3rdparty/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/ -name config.h -o -name config.asm`; do sed -i -e "s:define HAVE_SYSCTL 1:define HAVE_SYSCTL 0:g" $f done - sed -i -e "s:define HAVE_STRUCT_MALLINFO 1:/*undef HAVE_STRUCT_MALLINFO */:g" ${S}/src/3rdparty/chromium/third_party/tcmalloc/chromium/src/config_linux.h } do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+" -do_install_append() { +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}" +FILES:${PN} += "${OE_QMAKE_PATH_QT_TRANSLATIONS} ${OE_QMAKE_PATH_QT_DATA}" + +# Chromium uses libpci to determine which optimizations/workarounds to apply +RDEPENDS:${PN}:append:x86 = " libpci" -RDEPENDS_${PN}-examples += " \ +RDEPENDS:${PN}-examples += " \ ${PN}-qmlplugins \ qtquickcontrols-qmlplugins \ qtdeclarative-qmlplugins \ " -QT_MODULE_BRANCH_CHROMIUM = "56-based" +QT_MODULE_BRANCH_CHROMIUM = "87-based" -# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.9 -# 5.9.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15-glibc +# 5.15-glibc.meta-qt5.17 SRC_URI += " \ ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \ - file://0001-functions.prf-allow-build-for-linux-oe-g-platform.patch \ - file://0002-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch \ - file://0003-Include-dependency-to-QCoreApplication-translate.patch \ - file://0004-Force-host-toolchain-configuration.patch \ + file://0001-Force-host-toolchain-configuration.patch \ +" + +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15 +# 5.15.meta-qt5.17 +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/56-based -# 56-based.meta-qt5.5 +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/87-based-glibc +# 87-based-glibc.meta-qt5.11 SRC_URI += " \ - file://0001-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch;patchdir=src/3rdparty \ - file://0002-chromium-Force-host-toolchain-configuration.patch;patchdir=src/3rdparty \ - file://0003-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \ + file://chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \ + file://chromium/0002-chromium-fix-build-with-clang.patch;patchdir=src/3rdparty \ + file://chromium/0003-chromium-Exclude-CRC32-for-32bit-arm.patch;patchdir=src/3rdparty \ + file://chromium/0004-chromium-Do-not-try-to-set-the-guessed-values-for.patch;patchdir=src/3rdparty \ + file://chromium/0005-chromium-fix-build-after-y2038-changes-in-glibc.patch;patchdir=src/3rdparty \ + file://chromium/0006-chromium-Fix-build-on-32bit-arches-with-64bit-time_t.patch;patchdir=src/3rdparty \ + file://chromium/0007-chromium-Include-cstddef-for-size_t-definition.patch;patchdir=src/3rdparty \ + file://chromium/0008-chromium-Move-CharAllocator-definition-to-a-header-f.patch;patchdir=src/3rdparty \ + file://chromium/0009-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \ + file://chromium/0010-chromium-icu-use-system-library-only-targets.patch;patchdir=src/3rdparty \ + file://chromium/0011-chromium-Add-missing-include-for-C-strncpy.patch;patchdir=src/3rdparty \ + file://chromium/0011-chromium-skia-Fix-build-with-gcc-12.patch;patchdir=src/3rdparty \ + file://chromium/0012-Remove-unsetting-_FILE_OFFSET_BITS.patch;patchdir=src/3rdparty \ + file://chromium/0024-Fix-dependecy-when-compiling-content-browser.patch;patchdir=src/3rdparty \ " -SRC_URI_append_libc-musl = "\ - file://0004-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \ - file://0005-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \ - file://0006-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \ - file://0007-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \ - file://0008-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \ - file://0009-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \ - file://0010-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \ - file://0011-chromium-musl-Match-syscalls-to-match-musl.patch;patchdir=src/3rdparty \ - file://0012-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \ - file://0013-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \ - file://0014-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \ - file://0015-chromium-musl-include-asm-generic-ioctl.h-for-TCGETS.patch;patchdir=src/3rdparty \ - file://0016-chromium-musl-tcmalloc-Use-off64_t-insread-of-__off6.patch;patchdir=src/3rdparty \ +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/87-based +# 87-based.meta-qt5.11 +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-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-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ + file://chromium/0022-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ + file://chromium/0023-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ " -SRCREV_qtwebengine = "ec04f1b1fff16d744a680b641b94c9e990db2090" -SRCREV_chromium = "45ed09101724148401a193e20e3545c8f3de4df2" +SRCREV_qtwebengine = "17fd3176988586168bee8654008a097a5f23ec1d" +SRCREV_chromium = "fdfef5b37af3bed8402d7c7e20a5487f2602b0a6" SRCREV = "${SRCREV_qtwebengine}" SRCREV_FORMAT = "qtwebengine_chromium" # WARNING: qtwebengine-5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0 do_package_qa: QA Issue: ELF binary '/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/packages-split/qtwebengine/usr/lib/libQt5WebEngineCore.so.5.6.0' has relocations in .text [textrel] -INSANE_SKIP_${PN} += "textrel" +INSANE_SKIP:${PN} += "textrel" diff --git a/recipes-qt/qt5/qtwebglplugin_git.bb b/recipes-qt/qt5/qtwebglplugin_git.bb new file mode 100644 index 00000000..64dc464f --- /dev/null +++ b/recipes-qt/qt5/qtwebglplugin_git.bb @@ -0,0 +1,21 @@ +require qt5.inc +require qt5-lts.inc + +LICENSE = "GPL-3.0-only | The-Qt-Company-Commercial" +LIC_FILES_CHKSUM = " \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ +" + +DEPENDS += "qtbase qtwebsockets" + +PACKAGECONFIG ?= "qtdeclarative" +PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative" + +do_configure:prepend() { + # disable qtdeclarative test if it isn't enabled by PACKAGECONFIG + sed -e 's/^\(qtHaveModule(quick)\)/OE_QTDECLARATIVE_ENABLED:\1/' -i ${S}/src/plugins/platforms/webgl/webgl.pro +} + +EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'qtdeclarative', 'CONFIG+=OE_QTDECLARATIVE_ENABLED', '', d)}" + +SRCREV = "4f75644c2b9517b7d2621df1309d499956ea5e86" diff --git a/recipes-qt/qt5/qtwebkit-examples_git.bb b/recipes-qt/qt5/qtwebkit-examples_git.bb deleted file mode 100644 index 3e3e4a0b..00000000 --- a/recipes-qt/qt5/qtwebkit-examples_git.bb +++ /dev/null @@ -1,20 +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 \ -" - -PACKAGECONFIG ?= "examples" - -DEPENDS += "qtwebkit qtxmlpatterns" -RDEPENDS_${PN}-examples += "qtwebkit-qmlplugins" -RDEPENDS_${PN}-examples += "${@bb.utils.contains('PACKAGECONFIG_OPENSSL', 'openssl', 'ca-certificates', '', d)}" - -SRCREV = "a24c780b60d7d8bc00c4a48042cf7f32db777d55" diff --git a/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch b/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch new file mode 100644 index 00000000..91bf19de --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0001-Do-not-skip-build-for-cross-compile.patch @@ -0,0 +1,28 @@ +From 34100abf0a24b3d2dadebe90926eea98d50a43b8 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 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + Tools/qmake/mkspecs/features/functions.prf | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Tools/qmake/mkspecs/features/functions.prf b/Tools/qmake/mkspecs/features/functions.prf +index e3f42cec4..797b7085f 100644 +--- a/Tools/qmake/mkspecs/features/functions.prf ++++ b/Tools/qmake/mkspecs/features/functions.prf +@@ -53,8 +53,6 @@ defineReplace(appleSdkVersion) { + defineTest(isPlatformSupported) { + !qtHaveModule(widgets): skipBuild("QtWidgets module is required to build QtWebKit.") + +- cross_compile: skipBuild("cross-compilation of QtWebKit with qmake is not supported yet") +- + requiredPrograms = cmake gperf python perl bison ruby flex + for(program, requiredPrograms): \ + !programExistsInPath($$program): \ diff --git a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch deleted file mode 100644 index b26c891a..00000000 --- a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4de28e3b349dd5d5fbecea7ee9b7af46aac60d76 Mon Sep 17 00:00:00 2001 -From: Trevor Woerner <trevor.woerner@linaro.org> -Date: Fri, 7 Feb 2014 04:07:17 +0100 -Subject: [PATCH] qtwebkit: fix QA issue (bad RPATH) - -Building qtwebkit causes a QA issue such that QtWebPluginProcess and -QtWebProcess contain bad RPATHs which point into the build location. This fix -adds a patch to not include the rpath.prf which causes this problem. - -Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - Tools/qmake/mkspecs/features/unix/default_post.prf | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf -index fd66af6..ef754c3 100644 ---- a/Tools/qmake/mkspecs/features/unix/default_post.prf -+++ b/Tools/qmake/mkspecs/features/unix/default_post.prf -@@ -61,7 +61,6 @@ linux-*g++* { - } - } - --contains(TEMPLATE, app): CONFIG += rpath - - CONFIG(debug, debug|release)|force_debug_info { - # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase. diff --git a/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch b/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch deleted file mode 100644 index dabfbb55..00000000 --- a/recipes-qt/qt5/qtwebkit/0002-Exclude-backtrace-API-for-non-glibc-libraries.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0c2be869a8fde2a0d2e8cbe9bf093077166f0942 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 5 Jun 2015 19:55:05 -0700 -Subject: [PATCH] Exclude backtrace() API for non-glibc libraries - -It was excluding musl with current checks, so lets make it such that it -considers only glibc when using backtrace API - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - Source/WTF/wtf/Assertions.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp -index 1b2091f..ba03a28 100644 ---- a/Source/WTF/wtf/Assertions.cpp -+++ b/Source/WTF/wtf/Assertions.cpp -@@ -61,7 +61,7 @@ - #include <windows.h> - #endif - --#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) -+#if (OS(DARWIN) || (OS(LINUX) && defined (__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID) - #include <cxxabi.h> - #include <dlfcn.h> - #include <execinfo.h> -@@ -245,7 +245,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f - - void WTFGetBacktrace(void** stack, int* size) - { --#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) -+#if (OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID) - *size = backtrace(stack, *size); - #elif OS(WINDOWS) && !OS(WINCE) - // The CaptureStackBackTrace function is available in XP, but it is not defined diff --git a/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch b/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch new file mode 100644 index 00000000..8486a84d --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0002-Fix-build-with-non-glibc-libc-on-musl.patch @@ -0,0 +1,69 @@ +From a454e27d7993de8a3aa7e5cc37d7e16803da4271 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 + +Need to ensure glibc features are not assumed to be linux-wide + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Source/JavaScriptCore/heap/MachineStackMarker.cpp | 8 ++++---- + .../inspector/JSGlobalObjectInspectorController.cpp | 2 ++ + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +index 883914fd3..ce4e8d331 100644 +--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +@@ -566,7 +566,7 @@ void* MachineThreads::Thread::Registers::stackPointer() const + #error Unknown Architecture + #endif + +-#elif defined(__GLIBC__) && ENABLE(JIT) ++#elif defined(__linux__) && ENABLE(JIT) + + #if CPU(X86) + return reinterpret_cast<void*>((uintptr_t) regs.machineContext.gregs[REG_ESP]); +@@ -665,7 +665,7 @@ void* MachineThreads::Thread::Registers::framePointer() const + #error Unknown Architecture + #endif + +-#elif defined(__GLIBC__) ++#elif defined(__linux__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86) +@@ -747,7 +747,7 @@ void* MachineThreads::Thread::Registers::instructionPointer() const + #error Unknown Architecture + #endif + +-#elif defined(__GLIBC__) ++#elif defined(__linux__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86) +@@ -838,7 +838,7 @@ void* MachineThreads::Thread::Registers::llintPC() const + #error Unknown Architecture + #endif + +-#elif defined(__GLIBC__) ++#elif defined(__linux__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86) +diff --git a/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp b/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp +index fd7f869d4..e95391b32 100644 +--- a/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp ++++ b/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp +@@ -51,8 +51,10 @@ + #include <cxxabi.h> + #if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK)) + #include <dlfcn.h> ++#if defined(__GLIBC__) + #include <execinfo.h> + #endif ++#endif + + #if ENABLE(REMOTE_INSPECTOR) + #include "JSGlobalObjectDebuggable.h" diff --git a/recipes-qt/qt5/qtwebkit/0003-Fix-build-bug-for-armv32-BE.patch b/recipes-qt/qt5/qtwebkit/0003-Fix-build-bug-for-armv32-BE.patch new file mode 100644 index 00000000..8ebb5894 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0003-Fix-build-bug-for-armv32-BE.patch @@ -0,0 +1,25 @@ +From fb5f7d19a390c399c35f9fbaa1185e309394666d 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. + +Upstream-Status: Pending + +Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> +--- + Source/WTF/wtf/dtoa/utils.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h +index 889642cee..05302e6e6 100644 +--- a/Source/WTF/wtf/dtoa/utils.h ++++ b/Source/WTF/wtf/dtoa/utils.h +@@ -49,7 +49,7 @@ + defined(__ARMEL__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 +-#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) ++#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) + #if defined(_WIN32) diff --git a/recipes-qt/qt5/qtwebkit/0004-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch b/recipes-qt/qt5/qtwebkit/0004-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch new file mode 100644 index 00000000..bde4300b --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0004-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch @@ -0,0 +1,38 @@ +From 597d54c6553cd9ffbf08e40a7a706096b8990399 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 + +If we do not use this define,then it falls into else case which +generated .pri files with /usr/include and so on for includes and +compiler does not like specifying absolute include paths pointing to +build host includes + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + Source/WebKit/PlatformQt.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake +index 65c1ff1c1..b7ef82f4e 100644 +--- a/Source/WebKit/PlatformQt.cmake ++++ b/Source/WebKit/PlatformQt.cmake +@@ -511,7 +511,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS) + install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) + endif () + +-if (KDE_INSTALL_USE_QT_SYS_PATHS) ++if (KDE_INSTALL_USE_QT_SYS_PATHS OR CROSS_COMPILE) + set(WebKit_PRI_ARGUMENTS + BIN_INSTALL_DIR "$$QT_MODULE_BIN_BASE" + LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE" +@@ -741,7 +741,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS) + install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) + endif () + +-if (KDE_INSTALL_USE_QT_SYS_PATHS) ++if (KDE_INSTALL_USE_QT_SYS_PATHS OR CROSS_COMPILE) + set(WebKitWidgets_PRI_ARGUMENTS + BIN_INSTALL_DIR "$$QT_MODULE_BIN_BASE" + LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE" diff --git a/recipes-qt/qt5/qtwebkit/0005-Let-Bison-generate-the-header-directly-to-fix-build-.patch b/recipes-qt/qt5/qtwebkit/0005-Let-Bison-generate-the-header-directly-to-fix-build-.patch new file mode 100644 index 00000000..b3671a2b --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0005-Let-Bison-generate-the-header-directly-to-fix-build-.patch @@ -0,0 +1,53 @@ +From b579ee43a3f832e9b3785ed4cb03284cbc142ef1 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 +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + 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 5d63b0810..9435701c7 100644 +--- a/Source/WebCore/css/makegrammar.pl ++++ b/Source/WebCore/css/makegrammar.pl +@@ -73,25 +73,6 @@ if ($suffix eq ".y.in") { + } + + 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/0005-Riscv-Add-support-for-riscv.patch b/recipes-qt/qt5/qtwebkit/0005-Riscv-Add-support-for-riscv.patch new file mode 100644 index 00000000..2bfb72fe --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0005-Riscv-Add-support-for-riscv.patch @@ -0,0 +1,83 @@ +From b5a58d2c001689b07591fdce8820773d57a74002 Mon Sep 17 00:00:00 2001 +From: Chenxi Mao <chenxi.mao2013@gmail.com> +Date: Fri, 3 Apr 2020 08:33:10 +0800 +Subject: [PATCH 1/1] Riscv: Add support for riscv + +--- + CMakeLists.txt | 2 ++ + Source/JavaScriptCore/CMakeLists.txt | 1 + + Source/WTF/wtf/Platform.h | 12 ++++++++++-- + Source/WTF/wtf/dtoa/utils.h | 2 +- + 4 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 31a2ea1fd..516476729 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -83,6 +83,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390") + set(WTF_CPU_S390 1) + elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") + set(WTF_CPU_S390X 1) ++elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64") ++ set(WTF_CPU_RISCV64 1) + else () + message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'") + endif () +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index 937b3ed00..2fff29f9d 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -1286,6 +1286,7 @@ elseif (WTF_CPU_S390) + elseif (WTF_CPU_S390X) + elseif (WTF_CPU_MIPS) + elseif (WTF_CPU_SH4) ++elseif (WTF_CPU_RISCV64) + elseif (WTF_CPU_X86) + elseif (WTF_CPU_X86_64) + if (MSVC AND ENABLE_JIT) +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index 5717f3ea1..8fac85f72 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -349,7 +349,14 @@ + + #endif /* ARM */ + +-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) ++#if defined(__riscv) ++#define WTF_CPU_RISCV 1 ++#if __riscv_xlen == 64 ++#define WTF_CPU_RISCV64 1 ++#endif ++#endif ++ ++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) || CPU(RISCV) + #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 + #endif + +@@ -707,7 +714,8 @@ + || CPU(S390X) \ + || CPU(MIPS64) \ + || CPU(PPC64) \ +- || CPU(PPC64LE) ++ || CPU(PPC64LE) \ ++ || CPU(RISCV64) + #define USE_JSVALUE64 1 + #else + #define USE_JSVALUE32_64 1 +diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h +index 05302e6e6..25dd352ee 100644 +--- a/Source/WTF/wtf/dtoa/utils.h ++++ b/Source/WTF/wtf/dtoa/utils.h +@@ -49,7 +49,7 @@ + defined(__ARMEL__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 +-#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) ++#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) || CPU(RISCV) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) + #if defined(_WIN32) +-- +2.17.1 + diff --git a/recipes-qt/qt5/qtwebkit/0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch b/recipes-qt/qt5/qtwebkit/0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch new file mode 100644 index 00000000..d5ddfeb7 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch @@ -0,0 +1,32 @@ +From d012406bcde49de9cba89f42a79ecba40b70a0ff 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 + diff --git a/recipes-qt/qt5/qtwebkit/0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch b/recipes-qt/qt5/qtwebkit/0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch new file mode 100644 index 00000000..676ea85c --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch @@ -0,0 +1,29 @@ +From d478fb2ffb158e84e8705fdff3b7b2994a5d46c7 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())) + diff --git a/recipes-qt/qt5/qtwebkit/0008-Fix-build-with-icu-68.patch b/recipes-qt/qt5/qtwebkit/0008-Fix-build-with-icu-68.patch new file mode 100644 index 00000000..18ae4aac --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0008-Fix-build-with-icu-68.patch @@ -0,0 +1,122 @@ +From 934ff3e2768a4ef2f1b21ee883acb56cb8ae898b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Wed, 2 Dec 2020 22:34:54 +0100 +Subject: [PATCH] Fix build with icu >= 68 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + Source/WebCore/platform/text/TextCodecICU.cpp | 15 +++++++++++++++ + Source/WebCore/platform/text/icu/UTextProvider.h | 15 +++++++++++++++ + .../platform/text/icu/UTextProviderLatin1.cpp | 15 +++++++++++++++ + .../platform/text/icu/UTextProviderUTF16.cpp | 15 +++++++++++++++ + 4 files changed, 60 insertions(+) + +diff --git a/Source/WebCore/platform/text/TextCodecICU.cpp b/Source/WebCore/platform/text/TextCodecICU.cpp +index dd6ff0675..7ce8a70ef 100644 +--- a/Source/WebCore/platform/text/TextCodecICU.cpp ++++ b/Source/WebCore/platform/text/TextCodecICU.cpp +@@ -39,6 +39,21 @@ + #include <wtf/text/StringBuilder.h> + #include <wtf/unicode/CharacterNames.h> + ++// Since icu 68.1 icu we have to: ++#ifndef TRUE ++// Taken from umachibe.h: ++/** ++ * The TRUE value of a UBool. ++ * ++ * @deprecated ICU 68 Use standard "true" instead. ++ */ ++# define TRUE true ++#endif ++ ++#ifndef FALSE ++# define FALSE false ++#endif ++ + namespace WebCore { + + const size_t ConversionBufferSize = 16384; +diff --git a/Source/WebCore/platform/text/icu/UTextProvider.h b/Source/WebCore/platform/text/icu/UTextProvider.h +index c254fc4c7..9d2ad8b8c 100644 +--- a/Source/WebCore/platform/text/icu/UTextProvider.h ++++ b/Source/WebCore/platform/text/icu/UTextProvider.h +@@ -28,6 +28,21 @@ + + #include <unicode/utext.h> + ++// Since icu 68.1 icu we have to: ++#ifndef TRUE ++// Taken from umachibe.h: ++/** ++ * The TRUE value of a UBool. ++ * ++ * @deprecated ICU 68 Use standard "true" instead. ++ */ ++# define TRUE true ++#endif ++ ++#ifndef FALSE ++# define FALSE false ++#endif ++ + namespace WebCore { + + enum class UTextProviderContext { +diff --git a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp +index cd6852c71..0c95ea529 100644 +--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp ++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp +@@ -29,6 +29,21 @@ + #include "UTextProvider.h" + #include <wtf/text/StringImpl.h> + ++// Since icu 68.1 icu we have to: ++#ifndef TRUE ++// Taken from umachibe.h: ++/** ++ * The TRUE value of a UBool. ++ * ++ * @deprecated ICU 68 Use standard "true" instead. ++ */ ++# define TRUE true ++#endif ++ ++#ifndef FALSE ++# define FALSE false ++#endif ++ + namespace WebCore { + + // Latin1 provider +diff --git a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp +index 7aaac48c8..6ac693602 100644 +--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp ++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp +@@ -28,6 +28,21 @@ + + #include "UTextProvider.h" + ++// Since icu 68.1 icu we have to: ++#ifndef TRUE ++// Taken from umachibe.h: ++/** ++ * The TRUE value of a UBool. ++ * ++ * @deprecated ICU 68 Use standard "true" instead. ++ */ ++# define TRUE true ++#endif ++ ++#ifndef FALSE ++# define FALSE false ++#endif ++ + namespace WebCore { + + // UTF16ContextAware provider diff --git a/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch b/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch new file mode 100644 index 00000000..2e667a78 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch @@ -0,0 +1,82 @@ +From 2d43706b5b607ba2fdc777ef69532a75447cccd8 Mon Sep 17 00:00:00 2001 +From: Chenxi Mao <chenxi.mao2013@gmail.com> +Date: Fri, 3 Apr 2020 08:33:10 +0800 +Subject: [PATCH] Riscv: Add support for riscv + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + CMakeLists.txt | 2 ++ + Source/JavaScriptCore/CMakeLists.txt | 1 + + Source/WTF/wtf/Platform.h | 12 ++++++++++-- + Source/WTF/wtf/dtoa/utils.h | 2 +- + 4 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 432ae6fce..eaf3a35df 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -83,6 +83,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390") + set(WTF_CPU_S390 1) + elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") + set(WTF_CPU_S390X 1) ++elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64") ++ set(WTF_CPU_RISCV64 1) + else () + message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'") + endif () +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index afd76ca1a..3d184090d 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -1287,6 +1287,7 @@ elseif (WTF_CPU_S390) + elseif (WTF_CPU_S390X) + elseif (WTF_CPU_MIPS) + elseif (WTF_CPU_SH4) ++elseif (WTF_CPU_RISCV64) + elseif (WTF_CPU_X86) + elseif (WTF_CPU_X86_64) + if (MSVC AND ENABLE_JIT) +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index 5717f3ea1..8fac85f72 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -349,7 +349,14 @@ + + #endif /* ARM */ + +-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) ++#if defined(__riscv) ++#define WTF_CPU_RISCV 1 ++#if __riscv_xlen == 64 ++#define WTF_CPU_RISCV64 1 ++#endif ++#endif ++ ++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) || CPU(RISCV) + #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 + #endif + +@@ -707,7 +714,8 @@ + || CPU(S390X) \ + || CPU(MIPS64) \ + || CPU(PPC64) \ +- || CPU(PPC64LE) ++ || CPU(PPC64LE) \ ++ || CPU(RISCV64) + #define USE_JSVALUE64 1 + #else + #define USE_JSVALUE32_64 1 +diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h +index 05302e6e6..25dd352ee 100644 +--- a/Source/WTF/wtf/dtoa/utils.h ++++ b/Source/WTF/wtf/dtoa/utils.h +@@ -49,7 +49,7 @@ + defined(__ARMEL__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 +-#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) ++#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) || CPU(RISCV) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) + #if defined(_WIN32) diff --git a/recipes-qt/qt5/qtwebkit/0010-Fix-build-on-mips.patch b/recipes-qt/qt5/qtwebkit/0010-Fix-build-on-mips.patch new file mode 100644 index 00000000..fe09dded --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0010-Fix-build-on-mips.patch @@ -0,0 +1,31 @@ +From 7e3e0ca548cc9c92705308dd2e0f88ada544e794 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 26 Oct 2021 11:03:25 -0700 +Subject: [PATCH] Fix build on mips + +Fixes +Source/WTF/wtf/Atomics.cpp:63:9: error: definition of builtin function '__sync_add_and_fetch_8' +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value) +Source/WTF/wtf/Atomics.cpp:68:9: error: definition of builtin function '__sync_sub_and_fetch_8' +int64_t __sync_sub_and_fetch_8(int64_t volatile* addend, int64_t value) + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + Source/WTF/wtf/Platform.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index 8fac85f72..5b8bbcb18 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -88,6 +88,7 @@ + #else + #define WTF_CPU_MIPS 1 + #define WTF_MIPS_ARCH __mips ++#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 + #endif + #if defined(__MIPSEB__) + #define WTF_CPU_BIG_ENDIAN 1 diff --git a/recipes-qt/qt5/qtwebkit/0011-Offlineasm-warnings-with-newer-Ruby-versions.patch b/recipes-qt/qt5/qtwebkit/0011-Offlineasm-warnings-with-newer-Ruby-versions.patch new file mode 100644 index 00000000..1c810be5 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0011-Offlineasm-warnings-with-newer-Ruby-versions.patch @@ -0,0 +1,47 @@ +From 3d3a5974ff31e55651bb0c47278bd15734d60be4 Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro <aperez@igalia.com> +Date: Wed, 15 Jan 2020 22:15:38 +0000 +Subject: [PATCH] Offlineasm warnings with newer Ruby versions + +https://bugs.webkit.org/show_bug.cgi?id=206233 + +Reviewed by Yusuke Suzuki. + +Avoid a warning about using Object#=~ on Annotation instances, which +has been deprecated in Ruby 2.7. + +* offlineasm/parser.rb: Swap checks to prevent applying the =~ operator +to Annotation instances, which do not define it. + +Canonical link: https://commits.webkit.org/219400@main +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254637 268f45cc-cd09-0410-ab3c-d52691b4dbfc +Upstream-Status: Backport +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + Source/JavaScriptCore/offlineasm/parser.rb | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Source/JavaScriptCore/offlineasm/parser.rb b/Source/JavaScriptCore/offlineasm/parser.rb +index b44511245..cd1cffaec 100644 +--- a/Source/JavaScriptCore/offlineasm/parser.rb ++++ b/Source/JavaScriptCore/offlineasm/parser.rb +@@ -584,9 +584,7 @@ class Parser + firstCodeOrigin = @tokens[@idx].codeOrigin + list = [] + loop { +- if (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) +- break +- elsif @tokens[@idx].is_a? Annotation ++ if @tokens[@idx].is_a? Annotation + # This is the only place where we can encounter a global + # annotation, and hence need to be able to distinguish between + # them. +@@ -600,6 +598,8 @@ class Parser + list << Instruction.new(codeOrigin, annotationOpcode, [], @tokens[@idx].string) + @annotation = nil + @idx += 2 # Consume the newline as well. ++ elsif (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final) ++ break + elsif @tokens[@idx] == "\n" + # ignore + @idx += 1 diff --git a/recipes-qt/qt5/qtwebkit/0012-Fix-build-with-gcc-13.patch b/recipes-qt/qt5/qtwebkit/0012-Fix-build-with-gcc-13.patch new file mode 100644 index 00000000..bc489250 --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0012-Fix-build-with-gcc-13.patch @@ -0,0 +1,34 @@ +From 8a82826054f55d17d9b765bc383418b750ed836b Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Wed, 12 Apr 2023 16:07:40 +0200 +Subject: [PATCH] Fix build with gcc-13 + +* fixes: + http://errors.yoctoproject.org/Errors/Details/699653/ + + TOPDIR/tmp-glibc/work/core2-64-oe-linux/qtwebkit/5.15.9+gitAUTOINC+10cd6a106e-r0/git/Source/ThirdParty/ANGLE/src/common/mathutil.h:575:8: error: 'uint32_t' does not name a type + 575 | inline uint32_t RotL(uint32_t x, int8_t r) + | ^~~~~~~~ + TOPDIR/tmp-glibc/work/core2-64-oe-linux/qtwebkit/5.15.9+gitAUTOINC+10cd6a106e-r0/git/Source/ThirdParty/ANGLE/src/common/mathutil.h:19:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'? + 18 | #include <stdlib.h> + +++ |+#include <cstdint> + 19 | + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Upstream-Status: Pending +--- + Source/ThirdParty/ANGLE/src/common/mathutil.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/ThirdParty/ANGLE/src/common/mathutil.h b/Source/ThirdParty/ANGLE/src/common/mathutil.h +index 7959da8bd..6a8e77b4d 100644 +--- a/Source/ThirdParty/ANGLE/src/common/mathutil.h ++++ b/Source/ThirdParty/ANGLE/src/common/mathutil.h +@@ -12,6 +12,7 @@ + #include "common/debug.h" + #include "common/platform.h" + ++#include <cstdint> + #include <limits> + #include <algorithm> + #include <string.h> diff --git a/recipes-qt/qt5/qtwebkit/0013-link-with-libatomic.patch b/recipes-qt/qt5/qtwebkit/0013-link-with-libatomic.patch new file mode 100644 index 00000000..42ce33dc --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0013-link-with-libatomic.patch @@ -0,0 +1,33 @@ +From 999affc771f761894b6fd6e491c6adac7861fcf2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 8 Mar 2021 18:15:47 -0800 +Subject: [PATCH] link with libatomic + +This fixes build with C11 + +lib/../Source/WTF/wtf/CMakeFiles/WTF.dir/Assertions.cpp.o:/usr/include/c++/11.0.1/bits/atomic_base.h:520: more undefined references to `__atomic_compare_exchange_1' follow +| collect2: error: ld returned 1 exit status + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + Source/WTF/wtf/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Source/WTF/wtf/CMakeLists.txt b/Source/WTF/wtf/CMakeLists.txt +index 297589b90..5b8d8c71b 100644 +--- a/Source/WTF/wtf/CMakeLists.txt ++++ b/Source/WTF/wtf/CMakeLists.txt +@@ -245,6 +245,10 @@ if (NOT USE_SYSTEM_MALLOC) + list(APPEND WTF_LIBRARIES bmalloc) + endif () + ++list(APPEND WTF_LIBRARIES ++ -Wl,--as-needed -Wl,-latomic -Wl,--no-as-needed ++) ++ + list(APPEND WTF_SOURCES + unicode/icu/CollatorICU.cpp + ) diff --git a/recipes-qt/qt5/qtwebkit_git.bb b/recipes-qt/qt5/qtwebkit_git.bb index 3cce5674..ffa349d5 100644 --- a/recipes-qt/qt5/qtwebkit_git.bb +++ b/recipes-qt/qt5/qtwebkit_git.bb @@ -1,90 +1,106 @@ require qt5.inc require qt5-git.inc -LICENSE = "BSD & LGPLv2+ | GPL-2.0" +inherit pkgconfig + +LICENSE = "BSD-3-Clause & LGPL-2.0-or-later | GPL-2.0-only" LIC_FILES_CHKSUM = " \ - file://LICENSE.GPLv2;md5=05832301944453ec79e40ba3c3cfceec \ - file://Source/WebCore/rendering/RenderApplet.h;endline=22;md5=fb9694013ad71b78f8913af7a5959680 \ - file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \ + file://LICENSE.LGPLv21;md5=58a180e1cf84c756c29f782b3a485c29 \ file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee \ " -DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt gperf-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.212 +# 5.212.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://0003-Fix-build-bug-for-armv32-BE.patch \ + file://0004-PlatformQt.cmake-Do-not-generate-hardcoded-include-p.patch \ + file://0005-Let-Bison-generate-the-header-directly-to-fix-build-.patch \ + file://0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch \ + file://0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch \ + file://0008-Fix-build-with-icu-68.patch \ + file://0009-Riscv-Add-support-for-riscv.patch \ + file://0010-Fix-build-on-mips.patch \ + file://0011-Offlineasm-warnings-with-newer-Ruby-versions.patch \ + file://0012-Fix-build-with-gcc-13.patch \ +" + +SRC_URI:append:riscv32 = " file://0013-link-with-libatomic.patch" +SRC_URI:append:riscv64 = " file://0013-link-with-libatomic.patch" + +inherit cmake_qt5 perlnative + +inherit python3native # qemuarm build fails with: # | {standard input}: Assembler messages: # | {standard input}:106: Error: invalid immediate: 983040 is out of range # | {standard input}:106: Error: value of 983040 too large for field of 2 bytes at 146 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" -# Patches from https://github.com/meta-qt5/qtwebkit/commits/b5.9 -# 5.9.meta-qt5.5 -SRC_URI += "\ - file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch \ - file://0002-Exclude-backtrace-API-for-non-glibc-libraries.patch \ +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 +# https://bugs.webkit.org/show_bug.cgi?id=159880 +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). +ARM_INSTRUCTION_SET:armv7a = "thumb" +ARM_INSTRUCTION_SET:armv7r = "thumb" +ARM_INSTRUCTION_SET:armv7ve = "thumb" + +# http://errors.yoctoproject.org/Errors/Details/179245/ +# just use -fpermissive in this case like fedora did: +# https://bugzilla.redhat.com/show_bug.cgi?id=1582954 +CXXFLAGS += "-fpermissive" +CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + +EXTRA_OECMAKE += " \ + -DPORT=Qt \ + -DCROSS_COMPILE=ON \ + -DCMAKE_BUILD_TYPE=release \ + -DECM_MKSPECS_INSTALL_DIR=${libdir}${QT_DIR_NAME}/mkspecs/modules \ + -DQML_INSTALL_DIR=${OE_QMAKE_PATH_QML} \ + -DPYTHON_EXECUTABLE=`which python3` \ " -PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors qtwebchannel \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcomposite libxrender', '', d)} \ +EXTRA_OECMAKE:append:toolchain-clang = " -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}'" + +# JIT not supported on MIPS/PPC/RISCV +EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON -DENABLE_C_LOOP=ON " +EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON -DENABLE_C_LOOP=ON " +EXTRA_OECMAKE:append:powerpc64le = " -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON -DENABLE_C_LOOP=ON " +EXTRA_OECMAKE:append:riscv64 = " -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON -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:mipsarch = " -DUSE_LD_GOLD=OFF " +EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF " +EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF " + +PACKAGECONFIG ??= "qtlocation qtmultimedia qtsensors qtwebchannel \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ fontconfig \ " -PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base" -PACKAGECONFIG[qtlocation] = "OE_QTLOCATION_ENABLED,,qtlocation" -PACKAGECONFIG[qtmultimedia] = "OE_QTMULTIMEDIA_ENABLED,,qtmultimedia" -PACKAGECONFIG[qtsensors] = "OE_QTSENSORS_ENABLED,,qtsensors" -PACKAGECONFIG[qtwebchannel] = "OE_QTWEBCHANNEL_ENABLED,,qtwebchannel" -PACKAGECONFIG[libwebp] = "OE_LIBWEBP_ENABLED,,libwebp" -PACKAGECONFIG[libxcomposite] = "OE_LIBXCOMPOSITE_ENABLED,,libxcomposite" -PACKAGECONFIG[libxrender] = "OE_LIBXRENDER_ENABLED,,libxrender" -PACKAGECONFIG[fontconfig] = "OE_FONTCONFIG_ENABLED,,fontconfig" - -do_configure_prepend() { - export QMAKE_CACHE_EVAL="CONFIG+=${PACKAGECONFIG_CONFARGS}" - # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable qtlocation test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable qtmultimedia test if it isn't enabled by PACKAGECONFIG - sed -e 's/(video):\(qtHaveModule(multimediawidgets)\)/(video):OE_QTMULTIMEDIA_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable qtsensors test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable qtwebchannel test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/Target.pri - sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/WebKit2.pri - # disable libwebp test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(config_libwebp: \)/ OE_LIBWEBP_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable libxcomposite test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(config_libXcomposite: \)/ OE_LIBXCOMPOSITE_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable libxrender test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(config_libXrender: \)/ OE_LIBXRENDER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf - # disable fontconfig test if it isn't enabled by PACKAGECONFIG - sed -e 's/\s\(config_fontconfig: \)/ OE_FONTCONFIG_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf -} - -# Forcibly enable ICU, so qtbase doesn't need it. -EXTRA_QMAKEVARS_PRE += "QT_CONFIG+=icu" - -# qtwebkit gets terribly big when linking with all debug info, disable by default -QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0" -EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}" - -do_install_append() { - # Remove paths to workdir, qtwebkit is dead now, so I won't spend extra time trying to prevent this - # from some .prl or .prf file like for other modules - sed -i 's@-Wl,-no-whole-archive -L${B}[^ ]* @ @g' ${D}${libdir}/pkgconfig/Qt5WebKit.pc -} + +# gstreamer conflicts with qtmultimedia! +PACKAGECONFIG[gstreamer] = "-DUSE_GSTREAMER=ON,-DUSE_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[qtlocation] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,qtlocation" +PACKAGECONFIG[qtmultimedia] = "-DUSE_QT_MULTIMEDIA=ON,-DUSE_QT_MULTIMEDIA=OFF,qtmultimedia" +PACKAGECONFIG[qtsensors] = "-DENABLE_DEVICE_ORIENTATION=ON,-DENABLE_DEVICE_ORIENTATION=OFF,qtsensors" +PACKAGECONFIG[qtwebchannel] = "-DENABLE_QT_WEBCHANNEL=ON,-DENABLE_QT_WEBCHANNEL=OFF,qtwebchannel" +PACKAGECONFIG[libwebp] = ",,libwebp" +PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,libxcomposite libxrender" +PACKAGECONFIG[fontconfig] = "-DENABLE_TEST_SUPPORT=ON,-DENABLE_TEST_SUPPORT=OFF,fontconfig" +# hyphen is only in meta-office currently! +PACKAGECONFIG[hyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,hyphen" +PACKAGECONFIG[tools] = "-DENABLE_TOOLS=ON,-DENABLE_TOOLS=OFF," # remove default ${PN}-examples* set in qt5.inc, because they conflicts with ${PN} from separate webkit-examples recipe -PACKAGES_remove = "${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples" +PACKAGES:remove = "${PN}-examples" -# make sure rb files are used from sysroot, not from host -# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` -# we need to replace it too (a bit longer version without importing re) -RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }" -export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}" +QT_MODULE_BRANCH = "5.212" -SRCREV = "bd0657f98aff85b9f06d85a8cf4da6a27f61a56e" +SRCREV = "10cd6a106e1c461c774ca166a67b8c835c755ef7" diff --git a/recipes-qt/qt5/qtwebsockets_git.bb b/recipes-qt/qt5/qtwebsockets_git.bb index 9faea9c6..e7d3a6bd 100644 --- a/recipes-qt/qt5/qtwebsockets_git.bb +++ b/recipes-qt/qt5/qtwebsockets_git.bb @@ -1,7 +1,7 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GFDL-1.3 & (GPL-3 | LGPL-3.0) | The-Qt-Company-Commercial" +LICENSE = "GFDL-1.3 & (GPL-3.0-only | LGPL-3.0-only) | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ @@ -11,4 +11,4 @@ LIC_FILES_CHKSUM = " \ DEPENDS += "qtbase qtdeclarative" -SRCREV = "2a7b08576a97d580b3dd034f710e062220eb0792" +SRCREV = "7e0979bd69493914dc63897a8e61f48bf55d71cc" diff --git a/recipes-qt/qt5/qtwebview_git.bb b/recipes-qt/qt5/qtwebview_git.bb index 2053fbf9..bac1b565 100644 --- a/recipes-qt/qt5/qtwebview_git.bb +++ b/recipes-qt/qt5/qtwebview_git.bb @@ -1,4 +1,4 @@ -LICENSE = "GFDL-1.3 & BSD & ( GPL-2.0+ | LGPL-3.0 ) | The-Qt-Company-Commercial" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-2.0-or-later | LGPL-3.0-only ) | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ @@ -7,16 +7,20 @@ LIC_FILES_CHKSUM = " \ " require qt5.inc -require qt5-git.inc +require qt5-lts.inc DEPENDS += "qtbase qtwebengine" COMPATIBLE_MACHINE = "(-)" -COMPATIBLE_MACHINE_x86 = "(.*)" -COMPATIBLE_MACHINE_x86-64 = "(.*)" -COMPATIBLE_MACHINE_armv6 = "(.*)" -COMPATIBLE_MACHINE_armv7a = "(.*)" -COMPATIBLE_MACHINE_armv7ve = "(.*)" -COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE:x86 = "(.*)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" +COMPATIBLE_MACHINE:armv6 = "(.*)" +COMPATIBLE_MACHINE:armv7a = "(.*)" +COMPATIBLE_MACHINE:armv7ve = "(.*)" +COMPATIBLE_MACHINE:aarch64 = "(.*)" -SRCREV = "331af33f243c5192ee1af2f9dfc0d692f418e65d" +python() { + if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-python2 to be present.') +} +SRCREV = "b4713043a1cc9378226fc32002141cbd748cb9a4" diff --git a/recipes-qt/qt5/qtx11extras_git.bb b/recipes-qt/qt5/qtx11extras_git.bb index aea7ddd5..bb8e5927 100644 --- a/recipes-qt/qt5/qtx11extras_git.bb +++ b/recipes-qt/qt5/qtx11extras_git.bb @@ -1,16 +1,15 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc -LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & The-Qt-Company-Qt-LGPL-Exception-1.1 | LGPL-3.0) | GPL-2.0" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 ) & ( GPL-2.0-or-later | LGPL-3.0-only ) | The-Qt-Company-Commercial" LIC_FILES_CHKSUM = " \ - file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \ - file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ - file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ - file://LICENSE.GPLv2;md5=c96076271561b0e3785dad260634eaa8 \ + file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ + file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " DEPENDS += "qtbase" -SRCREV = "8b98f968cd05837ce5594e4beb4cc408e966e459" +SRCREV = "ce7b2fd52df5b474dfea2bd7dd4e7956b10bf7ba" diff --git a/recipes-qt/qt5/qtxmlpatterns/run-ptest b/recipes-qt/qt5/qtxmlpatterns/run-ptest deleted file mode 100644 index 044f834d..00000000 --- a/recipes-qt/qt5/qtxmlpatterns/run-ptest +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -for x in ` awk '{print $1}' tst_list `;do - ./${x}; -done - diff --git a/recipes-qt/qt5/qtxmlpatterns_git.bb b/recipes-qt/qt5/qtxmlpatterns_git.bb index f5fc79bf..5867704a 100644 --- a/recipes-qt/qt5/qtxmlpatterns_git.bb +++ b/recipes-qt/qt5/qtxmlpatterns_git.bb @@ -1,20 +1,30 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.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 )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ - file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " DEPENDS += "qtbase" -SRCREV = "c9396275ea420562582db8f2e9c72d82055407d5" +PACKAGECONFIG ?= "" +PACKAGECONFIG:class-target ?= "qtdeclarative" +PACKAGECONFIG[qtdeclarative] = ",,qtdeclarative" + +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 = "cfc30b0df5e6d0c4d08b1ccc9c97a7ffa4ad0911" BBCLASSEXTEND =+ "native nativesdk" diff --git a/recipes-qt/qtchooser/qtchooser/0001-Makefile-install-the-man-dir.patch b/recipes-qt/qtchooser/qtchooser/0001-Makefile-install-the-man-dir.patch deleted file mode 100644 index 8e8e1c69..00000000 --- a/recipes-qt/qtchooser/qtchooser/0001-Makefile-install-the-man-dir.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3f142e100cc3dd69b816ce79152760c823cb86e9 Mon Sep 17 00:00:00 2001 -From: Li Xin <lixin.fnst@cn.fujitsu.com> -Date: Fri, 29 Apr 2016 12:41:34 +0900 -Subject: [PATCH] Makefile: install the man dir - -upstream-status: backported - -Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> ---- - Makefile | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/Makefile b/Makefile -index 20b9100..1fd8cd3 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,5 +1,6 @@ - prefix = /usr - bindir = $(prefix)/bin -+MKDIR = mkdir -p - TOOLS = assistant \ - designer \ - lconvert \ -@@ -56,6 +57,8 @@ install: - case `uname -s` in Darwin) \ - for tool in $(MACTOOLS); do ln -sf qtchooser "$(INSTALL_ROOT)$(bindir)/$$tool"; done \ - ;; esac -+ $(MKDIR) $(INSTALL_ROOT)$(prefix)/share/man/man1 -+ install -m 644 -p doc/qtchooser.1 $(INSTALL_ROOT)$(prefix)/share/man/man1 - - uninstall: - cd src/qtchooser && $(MAKE) uninstall --- -1.8.4.2 - diff --git a/recipes-qt/qtchooser/qtchooser_git.bb b/recipes-qt/qtchooser/qtchooser_git.bb index e745e8ad..5bafe96d 100644 --- a/recipes-qt/qtchooser/qtchooser_git.bb +++ b/recipes-qt/qtchooser/qtchooser_git.bb @@ -1,8 +1,7 @@ DESCRIPTION = "Wrapper to select between Qt development binary versions" HOMEPAGE = "http://macieira.org/qtchooser" -LICENSE = "LGPL-2.1 & Digia-Qt-LGPL-Exception-1.1 | GPL-3.0" -SRC_URI = "git://code.qt.io/cgit/qtsdk/qtchooser.git;branch=master \ - file://0001-Makefile-install-the-man-dir.patch" +LICENSE = "LGPL-2.1-only & Digia-Qt-LGPL-Exception-1.1 | GPL-3.0-only" +SRC_URI = "git://code.qt.io/qtsdk/qtchooser.git;branch=master" LIC_FILES_CHKSUM = " \ file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \ @@ -10,8 +9,8 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL;md5=4193e7f1d47a858f6b7c0f1ee66161de \ " S = "${WORKDIR}/git" -SRCREV = "a1b6736e4f2daf86cd1626004d40ef57db85fbb5" -#PV = "39+git${SRCREV}" +SRCREV = "71750df4f0c6bbadcd422cdf7fe360ad033bbd14" +PV = "39+git${SRCPV}" inherit pkgconfig diff --git a/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch b/recipes-qt/quazip/quazip/0001-Append-LIB_ARCH-to-lib.patch new file mode 100644 index 00000000..ca281b75 --- /dev/null +++ b/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/recipes-qt/quazip/quazip_0.7.3.bb b/recipes-qt/quazip/quazip_0.7.3.bb index 970204e5..850cf1ce 100644 --- a/recipes-qt/quazip/quazip_0.7.3.bb +++ b/recipes-qt/quazip/quazip_0.7.3.bb @@ -1,15 +1,17 @@ SUMMARY = "Qt/C++ wrapper for ZIP/UNZIP package" HOMEPAGE = "http://quazip.sourceforge.net/" BUGTRACKER = "https://sourceforge.net/p/quazip/bugs/" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" 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/recipes-qt/qwt/qwt-qt5_6.1.3.bb b/recipes-qt/qwt/qwt-qt5_6.1.3.bb deleted file mode 100644 index 1c6e10b7..00000000 --- a/recipes-qt/qwt/qwt-qt5_6.1.3.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Qt Widget Extension for Technical Applications" -SECTION = "libs" -HOMEPAGE = "http://qwt.sourceforge.net/index.html" - -# LGPLv2.1 + some exceptions -LICENSE = "QWTv1.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=dac2743472b0462ff3cfb4af42051c88" - -DEPENDS = "qtbase qtsvg qttools" - -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" - -S = "${WORKDIR}/qwt-${PV}" - -EXTRA_QMAKEVARS_PRE += " \ - QWT_CONFIG+=QwtPkgConfig \ - QWT_CONFIG+=QwtExamples \ -" - -do_configure_prepend() { - sed -i 's:/usr/local/qwt-$$QWT_VERSION:${prefix}:' ${S}/*.pri -} - -do_install_append() { - # seems out of tree build confuses installation of examples - # so install them manually - install -d ${D}${bindir}/ - cp ${B}/examples/bin/* ${D}${bindir}/ -} - - -PACKAGES_prepend = "${PN}-examples ${PN}-features ${PN}-plugins " -FILES_${PN}-examples = "${bindir}/*" -FILES_${PN}-features = "${prefix}/features" -FILES_${PN}-plugins = "${prefix}/plugins/designer/*.so" -FILES_${PN}-dbg += "${prefix}/plugins/designer/.debug" -FILES_${PN}-doc += "${prefix}/doc" - -INSANE_SKIP_${PN}-plugins += "libdir" -INSANE_SKIP_${PN}-dbg += "libdir" - -RPROVIDES_${PN}-dev = "libqwt-qt5-dev" diff --git a/recipes-qt/qwt/qwt-qt5_6.1.5.bb b/recipes-qt/qwt/qwt-qt5_6.1.5.bb new file mode 100644 index 00000000..31663d1b --- /dev/null +++ b/recipes-qt/qwt/qwt-qt5_6.1.5.bb @@ -0,0 +1,54 @@ +SUMMARY = "Qt Widget Extension for Technical Applications" +SECTION = "libs" +HOMEPAGE = "http://qwt.sourceforge.net/index.html" + +# LGPLv2.1 + some exceptions +LICENSE = "QWTv1.0" +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.sha256sum] = "4076de63ec2b5e84379ddfebf27c7b29b8dc9074f3db7e2ca61d11a1d8adc041" + +S = "${WORKDIR}/qwt-${PV}" + +EXTRA_QMAKEVARS_PRE += " \ + QWT_CONFIG+=QwtPkgConfig \ + QWT_CONFIG+=QwtExamples \ +" + +do_configure:prepend() { + 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() { + # seems out of tree build confuses installation of examples + # so install them manually + install -d ${D}${bindir}/ + cp ${B}/examples/bin/* ${D}${bindir}/ +} + + +PACKAGES:prepend = "${PN}-examples ${PN}-features ${PN}-plugins " +FILES:${PN}-examples = "${bindir}/*" +FILES:${PN}-features = "${prefix}/features" +FILES:${PN}-plugins = "${prefix}/plugins/designer/*.so" +FILES:${PN}-doc += "${prefix}/doc" + +INSANE_SKIP:${PN}-plugins += "libdir" +INSANE_SKIP:${PN}-dbg += "libdir" + +RPROVIDES:${PN}-dev = "libqwt-qt5-dev" diff --git a/recipes-qt/tufao/tufao/0001-CMakeLists.txt-fix-build-with-Qt-5.11-don-t-use-qt5_.patch b/recipes-qt/tufao/tufao/0001-CMakeLists.txt-fix-build-with-Qt-5.11-don-t-use-qt5_.patch new file mode 100644 index 00000000..50dd7844 --- /dev/null +++ b/recipes-qt/tufao/tufao/0001-CMakeLists.txt-fix-build-with-Qt-5.11-don-t-use-qt5_.patch @@ -0,0 +1,91 @@ +From 85a4a1fcba0d81fbd8c4af3421114360f32c384e Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Thu, 19 Apr 2018 06:31:09 +0000 +Subject: [PATCH] CMakeLists.txt: fix build with Qt 5.11, don't use + qt5_use_modules + +* replace deprecated (and in 5.11 removed) qt5_use_modules macro usage with + the list of libraries in target_link_libraries as suggested in: + https://stackoverflow.com/questions/31172156/what-to-use-instead-of-qt5-use-modules + +Upstream-Status: Submitted https://github.com/vinipsmaker/tufao/pull/91 + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + examples/cmake/hello-cmake/CMakeLists.txt | 3 +-- + examples/cmake/sample_plugin/plugins/CMakeLists.txt | 3 +-- + examples/cmake/sample_plugin/src/CMakeLists.txt | 3 +-- + src/CMakeLists.txt | 2 +- + src/tests/CMakeLists.txt | 3 +-- + 5 files changed, 5 insertions(+), 9 deletions(-) + +diff --git a/examples/cmake/hello-cmake/CMakeLists.txt b/examples/cmake/hello-cmake/CMakeLists.txt +index 1995220..e93c83c 100644 +--- a/examples/cmake/hello-cmake/CMakeLists.txt ++++ b/examples/cmake/hello-cmake/CMakeLists.txt +@@ -13,5 +13,4 @@ find_package(CXX11 REQUIRED) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}") + + add_executable(${PROJECT_NAME} main.cpp) +-qt5_use_modules(${PROJECT_NAME} Core Network) +-target_link_libraries(${PROJECT_NAME} ${TUFAO_LIBRARIES}) ++target_link_libraries(${PROJECT_NAME} ${TUFAO_LIBRARIES} Qt5::Core Qt5::Network) +diff --git a/examples/cmake/sample_plugin/plugins/CMakeLists.txt b/examples/cmake/sample_plugin/plugins/CMakeLists.txt +index 3099dfb..b0ded18 100644 +--- a/examples/cmake/sample_plugin/plugins/CMakeLists.txt ++++ b/examples/cmake/sample_plugin/plugins/CMakeLists.txt +@@ -9,5 +9,4 @@ set(PLUGIN_HEADERS + ) + + add_library(Test SHARED ${PLUGIN_HEADERS} ${PLUGIN_SOURCE}) +-qt5_use_modules(Test Core Network) +-target_link_libraries(Test ${TUFAO_LIBRARIES}) ++target_link_libraries(Test ${TUFAO_LIBRARIES} Qt5::Test Qt5::Core Qt5::Network) +diff --git a/examples/cmake/sample_plugin/src/CMakeLists.txt b/examples/cmake/sample_plugin/src/CMakeLists.txt +index 379440f..fe97a0f 100644 +--- a/examples/cmake/sample_plugin/src/CMakeLists.txt ++++ b/examples/cmake/sample_plugin/src/CMakeLists.txt +@@ -9,5 +9,4 @@ set(${PROJECT_NAME}_HEADERS + ) + + add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_HEADERS} ${${PROJECT_NAME}_SOURCE}) +-qt5_use_modules(${PROJECT_NAME} Core Network) +-target_link_libraries(${PROJECT_NAME} ${TUFAO_LIBRARIES} ${Test}) ++target_link_libraries(${PROJECT_NAME} ${TUFAO_LIBRARIES} ${Test} Qt5::Core Qt5::Network) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3b10a35..91e619e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -36,7 +36,7 @@ endif() + + add_library("${TUFAO_LIBRARY}" SHARED ${tufao_SRC}) + +-qt5_use_modules("${TUFAO_LIBRARY}" Core Network) ++target_link_libraries("${TUFAO_LIBRARY}" Qt5::Core Qt5::Network) + + set_target_properties( + "${TUFAO_LIBRARY}" +diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt +index cc2fef7..2ec9fa9 100644 +--- a/src/tests/CMakeLists.txt ++++ b/src/tests/CMakeLists.txt +@@ -20,7 +20,6 @@ set(tests + ) + + macro(setup_test_target target) +- qt5_use_modules("${target}" Core Network Test) + set_target_properties( + "${target}" + PROPERTIES +@@ -43,7 +42,7 @@ macro(setup_test_target target) + endif() + + +- target_link_libraries("${target}" "${TUFAO_LIBRARY}") ++target_link_libraries("${target}" "${TUFAO_LIBRARY}" Qt5::Core Qt5::Network Qt5::Test) + + add_test(NAME "${target}" + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src" +-- +2.17.0 + diff --git a/recipes-qt/tufao/tufao/build-Fix-mkspecs-and-CMake-module-install-directori.patch b/recipes-qt/tufao/tufao/build-Fix-mkspecs-and-CMake-module-install-directori.patch index d405c168..57bc1b7e 100644 --- a/recipes-qt/tufao/tufao/build-Fix-mkspecs-and-CMake-module-install-directori.patch +++ b/recipes-qt/tufao/tufao/build-Fix-mkspecs-and-CMake-module-install-directori.patch @@ -5,7 +5,7 @@ Subject: [PATCH] build: Fix mkspecs and CMake module install directories Organization: O.S. Systems Software LTDA. -Upstream-Status: Inapropriate [configuration] +Upstream-Status: Inappropriate [configuration] Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Herman van Hazendonk <github.com@herrie.org> diff --git a/recipes-qt/tufao/tufao_1.3.10.bb b/recipes-qt/tufao/tufao_1.3.10.bb index d4b62e2b..e534a688 100644 --- a/recipes-qt/tufao/tufao_1.3.10.bb +++ b/recipes-qt/tufao/tufao_1.3.10.bb @@ -1,14 +1,16 @@ SUMMARY = "An asynchronous web framework for C++ built on top of Qt" -LICENSE = "LGPL-2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" DEPENDS = "qtbase" SRCREV = "ad505c32d0ba14c3c616de8ba4c7eb79396c20a6" -SRC_URI = "git://github.com/vinipsmaker/tufao.git;protocol=http;branch=1.x \ - file://build-Fix-mkspecs-and-CMake-module-install-directori.patch" +SRC_URI = "git://github.com/vinipsmaker/tufao.git;protocol=http;branch=1.x;protocol=https \ + file://build-Fix-mkspecs-and-CMake-module-install-directori.patch \ + file://0001-CMakeLists.txt-fix-build-with-Qt-5.11-don-t-use-qt5_.patch \ +" # This includes bugfixes from 1.x branch -PV_append = "+${SRCPV}" +PV:append = "+${SRCPV}" S = "${WORKDIR}/git" @@ -16,11 +18,11 @@ inherit cmake_qt5 PACKAGES += "${PN}-mkspecs" -FILES_${PN}-mkspecs = "\ +FILES:${PN}-mkspecs = "\ ${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs \ " -FILES_${PN}-dev += " \ +FILES:${PN}-dev += " \ ${OE_QMAKE_PATH_LIBS}/lib*${SOLIBSDEV} \ ${OE_QMAKE_PATH_LIBS}/pkgconfig \ ${OE_QMAKE_PATH_LIBS}/cmake/* \ |