aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikko Gronoff <mikko.gronoff@qt.io>2023-08-21 12:28:49 +0300
committerMikko Gronoff <mikko.gronoff@qt.io>2023-08-22 15:54:48 +0300
commitdfb41373466e58b9927913d2c2f3a0b9d715b292 (patch)
tree858dcbaae2fd24767024f8b55fa4f632c21a8243
parent2cd04ea4a07a5266cde6f825dc9c97534d8d0cab (diff)
parent4c389047afdd368d44acc646ee3f22d93941466b (diff)
Merge remote-tracking branch 'qt/upstream/master' into lts-5.15
Notes: * Incoming qtbase backport already available since 5.15.13 * Chromium fix applied also to qtpdf recipe * Update CI build so that instead of building all recipes in the layer, only build relevant qt modules reducing CI failures coming from not maintained or not building recipes existing in the layer Changelog: 4c389047 qtwebengine: fix build with binutils-2.41 c83b6529 qtbase: Backport patch for CVE-2023-24607. a46344fd qttools: fix -staticdev package without opengl ... d86e2e82 python3-pyqt5: add 5.15.9 b1fd5592 python3-pyqt5-sip: add 12.12.1 3b2823b6 python3-pyqt-builder: add 1.15.0 fe4ed264 qtlocation: fix compilation with gcc13 Conflicts: recipes-qt/qt5/qtwebengine_git.bb Change-Id: I0a33b51b4f0871e015c679d19b53cc362535e6bc
-rw-r--r--coin/module_config.yaml8
-rw-r--r--licenses/SIP49
-rw-r--r--recipes-python/pyqt5/python3-pyqt-builder-native_1.15.0.bb10
-rw-r--r--recipes-python/pyqt5/python3-pyqt5-sip_12.12.1.bb10
-rw-r--r--recipes-python/pyqt5/python3-pyqt5_5.15.9.bb97
-rw-r--r--recipes-qt/qt5/qtlocation/0001-mapbox-gl-explicitly-include-cstdint-header.patch52
-rw-r--r--recipes-qt/qt5/qtlocation_git.bb1
-rw-r--r--recipes-qt/qt5/qtpdf_git.bb1
-rw-r--r--recipes-qt/qt5/qttools_git.bb4
-rw-r--r--recipes-qt/qt5/qtwebengine/chromium/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch74
-rw-r--r--recipes-qt/qt5/qtwebengine_git.bb1
11 files changed, 302 insertions, 5 deletions
diff --git a/coin/module_config.yaml b/coin/module_config.yaml
index 7296dfe6..b3983af1 100644
--- a/coin/module_config.yaml
+++ b/coin/module_config.yaml
@@ -137,13 +137,11 @@ instructions:
echo "require ${SOURCE_DIR}/coin/test-${conf}.inc" >> conf/local.conf
done
- # EXCLUDE_FROM_WORLD
+ # EXCLUDE FROM WORLD
rm -fv ${SOURCE_DIR}/recipes-qt/examples/qt5-opengles2-test_git.bb
- rm -rv ${SOURCE_DIR}/recipes-python/pyqtchart/python3-pyqtchart_*.bb
- rm -rv ${SOURCE_DIR}/recipes-python/pytest-qt/python3-pytest-qt_*.bb
- # build all recipes found in the layer
- bitbake $(find ${SOURCE_DIR} -name *.bb | xargs -n1 basename | sed -e 's/\([^._]*\).*/\1/')
+ # 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
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/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..8e82f664
--- /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+=" --disabled-feature=${i}"
+ done
+
+ for i in ${PYQT_MODULES}; do
+ 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-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 98b64ab1..c372efc8 100644
--- a/recipes-qt/qt5/qtlocation_git.bb
+++ b/recipes-qt/qt5/qtlocation_git.bb
@@ -33,6 +33,7 @@ QT_MODULE_BRANCH_MAPBOXGL = "upstream/qt-staging"
SRC_URI += " \
${QT_GIT}/qtlocation-mapboxgl.git;name=qtlocation-mapboxgl;branch=${QT_MODULE_BRANCH_MAPBOXGL};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/mapbox-gl-native \
+ file://0001-mapbox-gl-explicitly-include-cstdint-header.patch;patchdir=src/3rdparty/mapbox-gl-native \
"
SRCREV_qtlocation = "d247db3041560d2a04cd8401697a465829307968"
diff --git a/recipes-qt/qt5/qtpdf_git.bb b/recipes-qt/qt5/qtpdf_git.bb
index 852956fb..067acd50 100644
--- a/recipes-qt/qt5/qtpdf_git.bb
+++ b/recipes-qt/qt5/qtpdf_git.bb
@@ -164,6 +164,7 @@ SRC_URI += " \
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/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch;patchdir=src/3rdparty \
"
# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/87-based
diff --git a/recipes-qt/qt5/qttools_git.bb b/recipes-qt/qt5/qttools_git.bb
index 17bc6c8a..31a1dfa0 100644
--- a/recipes-qt/qt5/qttools_git.bb
+++ b/recipes-qt/qt5/qttools_git.bb
@@ -24,6 +24,10 @@ SRC_URI:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'clang', '
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"
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
new file mode 100644
index 00000000..302c5130
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/chromium/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
@@ -0,0 +1,74 @@
+From c19489849ce57e54370dfad51ab0e1395d6dd62c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/effadce6c756247ea8bae32dc13bb3e6f464f0eb]
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+ .../ffmpeg/libavcodec/x86/mathops.h | 26 ++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h b/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
+index 6298f5ed198..ca7e2dffc10 100644
+--- a/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
++++ b/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index dd7f9d18..03a657e1 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -180,6 +180,7 @@ SRC_URI += " \
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/0014-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch;patchdir=src/3rdparty \
"
# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/87-based