aboutsummaryrefslogtreecommitdiff
path: root/package/qt5/qt5base
diff options
context:
space:
mode:
Diffstat (limited to 'package/qt5/qt5base')
-rw-r--r--package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch63
-rw-r--r--package/qt5/qt5base/0005-evdevkeyboard-fix-input_event-time-related-compile.patch57
-rw-r--r--package/qt5/qt5base/0006-evdevtouch-fix-input_event-time-related-compile.patch57
-rw-r--r--package/qt5/qt5base/0007-qimage_conversions-arm-neon-draw-helper-only-availab.patch58
-rw-r--r--package/qt5/qt5base/Config.in6
-rw-r--r--package/qt5/qt5base/qt5base.hash17
-rw-r--r--package/qt5/qt5base/qt5base.mk15
7 files changed, 89 insertions, 184 deletions
diff --git a/package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch b/package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch
new file mode 100644
index 0000000000..3621cdb2d3
--- /dev/null
+++ b/package/qt5/qt5base/0005-eglfs-avoid-breaking-compilation-for-obscure-EGLNativeDisplayType-types.patch
@@ -0,0 +1,63 @@
+From 0eb7058b473069a04cde60a800dfd04148c0c8b1 Mon Sep 17 00:00:00 2001
+From: Yann E. MORIN <yann.morin.1998@free.fr>
+Date: Sat, 14 Dec 2020 21:15:17 +0100
+Subject: [PATCH] plugins/eglfs/gbm: don't FTBFS when EGLNativeDisplayType is not a pointer
+
+On some platforms, EGLNativeDisplayType is not a pointer, but some kind
+of integer, like an int (e.g. TI's SGX) or an unsigned int. In those
+cases, the build breaks with:
+
+ qeglfskmsgbmintegration.cpp: In member function ‘virtual void* QEglFSKmsGbmIntegration::createDisplay(EGLNativeDisplayType)’:
+ qeglfskmsgbmintegration.cpp:83:60: error: invalid conversion from ‘EGLNativeDisplayType’ {aka ‘int’} to ‘void*’ [-fpermissive]
+ 83 | display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr);
+ | ^~~~~~~~~~~~~
+ | |
+ | EGLNativeDisplayType {aka int}
+
+We fix that by casting nativeDisplay to void* as expected by
+getPlatformDisplay().
+
+We can do that, because usually, nativeDisplay is already a pointer, and
+thus this cast is a no-op. When it is not already a pointer, we either
+don't care because the code path will not be taken at runtime, or the
+integer really is an opaque handle to some internal, low-level memory
+management, much like a void* is an pointer to an opaque memory type...
+
+It is to be noted, though, that in some ABIs (like x32), the size of a
+nativeDisplay that is not already a pointer, might be bigger than that
+of a pointer. There is not much we can do here anyway, since there would
+be no way to fit that in a void* to begin with, and the build will still
+fail for those situations. Those types of ABIs are far frome being
+widespread, the most prominent one, x32, even being retired...
+
+To be noted further: a more usual solution (as suggested in QTBUG-72567
+or in Gerrit:248270) would be to first cast to a qintptr or a quintptr,
+before finally casting to a void*. However, casting to either (resp.)
+qintptr or quintptr first, risk the case that nativeDisplay is of the other
+kind of signedness, (resp.) unsigned or signed, which would also cause
+some compile-time breakage.
+
+Finally, if nativeDisplay is something that is not an int-like, and that
+can't be cast into a void*, this would be hugely weird, so much so, that
+we do not even attempt to catter for that case.
+
+Fixes: QTBUG-72567
+Inspired-by: https://codereview.qt-project.org/c/qt/qtbase/+/248270
+Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
+---
+
+diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
+index d495a8d..059a580 100644
+--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
++++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
+@@ -80,7 +80,9 @@
+ }
+
+ if (getPlatformDisplay) {
+- display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr);
++ // EGLNativeDisplayType may be int on some platforms but those
++ // won't hit this path. Have to keep it compiling nonetheless.
++ display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, reinterpret_cast<void *>(nativeDisplay), nullptr);
+ } else {
+ qCDebug(qLcEglfsKmsDebug, "No eglGetPlatformDisplay for GBM, falling back to eglGetDisplay");
+ display = eglGetDisplay(nativeDisplay);
diff --git a/package/qt5/qt5base/0005-evdevkeyboard-fix-input_event-time-related-compile.patch b/package/qt5/qt5base/0005-evdevkeyboard-fix-input_event-time-related-compile.patch
deleted file mode 100644
index 1ed397870c..0000000000
--- a/package/qt5/qt5base/0005-evdevkeyboard-fix-input_event-time-related-compile.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From e3821efb37d64d599760b82beac024804188b824 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Mon, 4 May 2020 23:17:45 +0200
-Subject: [PATCH] evdevkeyboard: fix input_event time related compile
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-
- evdevkeyboard/qevdevkeyboardhandler.cpp: In member function ‘void QEvdevKeyboardHandler::switchLed(int, bool)’:
- evdevkeyboard/qevdevkeyboardhandler.cpp:153:28: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’?
- ::gettimeofday(&led_ie.time, 0);
- ^~~~
- type
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
-Upstream: https://github.com/qt/qtbase/commit/c5b8b662105cc5ced968da9f567fe1134c52d6b5
----
- .../input/evdevkeyboard/qevdevkeyboardhandler.cpp | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
-index 3555763b..de37f5e2 100644
---- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
-+++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
-@@ -58,6 +58,14 @@
- #include <linux/input.h>
- #endif
-
-+#ifndef input_event_sec
-+#define input_event_sec time.tv_sec
-+#endif
-+
-+#ifndef input_event_usec
-+#define input_event_usec time.tv_usec
-+#endif
-+
- QT_BEGIN_NAMESPACE
-
- Q_LOGGING_CATEGORY(qLcEvdevKey, "qt.qpa.input")
-@@ -149,8 +157,11 @@ void QEvdevKeyboardHandler::switchLed(int led, bool state)
- {
- qCDebug(qLcEvdevKey, "switchLed %d %d", led, int(state));
-
-+ struct timeval tv;
-+ ::gettimeofday(&tv, 0);
- struct ::input_event led_ie;
-- ::gettimeofday(&led_ie.time, 0);
-+ led_ie.input_event_sec = tv.tv_sec;
-+ led_ie.input_event_usec = tv.tv_usec;
- led_ie.type = EV_LED;
- led_ie.code = led;
- led_ie.value = state;
---
-2.26.2
-
diff --git a/package/qt5/qt5base/0006-evdevtouch-fix-input_event-time-related-compile.patch b/package/qt5/qt5base/0006-evdevtouch-fix-input_event-time-related-compile.patch
deleted file mode 100644
index a24ac4f184..0000000000
--- a/package/qt5/qt5base/0006-evdevtouch-fix-input_event-time-related-compile.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c9adb999cdb21f991f2c70b1d3b40e16d4fed2c0 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Mon, 4 May 2020 23:19:25 +0200
-Subject: [PATCH] evdevtouch: fix input_event time related compile
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-
- evdevtouch/qevdevtouchhandler.cpp: In member function ‘void QEvdevTouchScreenData::processInputEvent(input_event*)’:
- evdevtouch/qevdevtouchhandler.cpp:579:29: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’?
- m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0;
- ^~~~
- type
- evdevtouch/qevdevtouchhandler.cpp:579:49: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’?
- m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0;
- ^~~~
- type
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
-Upstream: https://github.com/qt/qtbase/commit/71fb4d081c7f3675939ac8c62063631a18175fd1
----
- .../input/evdevtouch/qevdevtouchhandler.cpp | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
-index c51db59e..94a9b103 100644
---- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
-+++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
-@@ -58,6 +58,14 @@
- #include <linux/input.h>
- #endif
-
-+#ifndef input_event_sec
-+#define input_event_sec time.tv_sec
-+#endif
-+
-+#ifndef input_event_usec
-+#define input_event_usec time.tv_usec
-+#endif
-+
- #include <math.h>
-
- #if QT_CONFIG(mtdev)
-@@ -576,7 +584,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data)
-
- // update timestamps
- m_lastTimeStamp = m_timeStamp;
-- m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0;
-+ m_timeStamp = data->input_event_sec + data->input_event_usec / 1000000.0;
-
- m_lastTouchPoints = m_touchPoints;
- m_touchPoints.clear();
---
-2.26.2
-
diff --git a/package/qt5/qt5base/0007-qimage_conversions-arm-neon-draw-helper-only-availab.patch b/package/qt5/qt5base/0007-qimage_conversions-arm-neon-draw-helper-only-availab.patch
deleted file mode 100644
index 6c2080a669..0000000000
--- a/package/qt5/qt5base/0007-qimage_conversions-arm-neon-draw-helper-only-availab.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 78d94321149f8e10e5270516082cb37a5b91e327 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Sun, 10 May 2020 22:26:43 +0200
-Subject: [PATCH] qimage_conversions: arm neon draw helper only available for
- little endian
-
-Fixes:
-
- qimage_conversions.cpp:(.text+0x2598): undefined reference to `storeRGB32FromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QVector<unsigned int> const*, QDitherInfo*)'
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- src/gui/image/qimage_conversions.cpp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp
-index 97a5f89e..5fc5aba1 100644
---- a/src/gui/image/qimage_conversions.cpp
-+++ b/src/gui/image/qimage_conversions.cpp
-@@ -119,7 +119,7 @@ void qGamma_correct_back_to_linear_cs(QImage *image)
- *****************************************************************************/
-
- // The drawhelper conversions from/to RGB32 are passthroughs which is not always correct for general image conversion
--#if !defined(__ARM_NEON__)
-+#if !defined(__ARM_NEON__) || !(Q_BYTE_ORDER == Q_LITTLE_ENDIAN)
- static void QT_FASTCALL storeRGB32FromARGB32PM(uchar *dest, const uint *src, int index, int count,
- const QVector<QRgb> *, QDitherInfo *)
- {
-@@ -149,7 +149,7 @@ static const uint *QT_FASTCALL fetchRGB32ToARGB32PM(uint *buffer, const uchar *s
- #ifdef QT_COMPILER_SUPPORTS_SSE4_1
- extern void QT_FASTCALL storeRGB32FromARGB32PM_sse4(uchar *dest, const uint *src, int index, int count,
- const QVector<QRgb> *, QDitherInfo *);
--#elif defined(__ARM_NEON__)
-+#elif defined(__ARM_NEON__) && (Q_BYTE_ORDER == Q_LITTLE_ENDIAN)
- extern void QT_FASTCALL storeRGB32FromARGB32PM_neon(uchar *dest, const uint *src, int index, int count,
- const QVector<QRgb> *, QDitherInfo *);
- #endif
-@@ -181,7 +181,7 @@ void convert_generic(QImageData *dest, const QImageData *src, Qt::ImageConversio
- store = storeRGB32FromARGB32PM_sse4;
- else
- store = storeRGB32FromARGB32PM;
--#elif defined(__ARM_NEON__)
-+#elif defined(__ARM_NEON__) && (Q_BYTE_ORDER == Q_LITTLE_ENDIAN)
- store = storeRGB32FromARGB32PM_neon;
- #else
- store = storeRGB32FromARGB32PM;
-@@ -289,7 +289,7 @@ bool convert_generic_inplace(QImageData *data, QImage::Format dst_format, Qt::Im
- store = storeRGB32FromARGB32PM_sse4;
- else
- store = storeRGB32FromARGB32PM;
--#elif defined(__ARM_NEON__)
-+#elif defined(__ARM_NEON__) && (Q_BYTE_ORDER == Q_LITTLE_ENDIAN)
- store = storeRGB32FromARGB32PM_neon;
- #else
- store = storeRGB32FromARGB32PM;
---
-2.26.2
-
diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index 28b03f5438..ee7c757c60 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -192,6 +192,7 @@ config BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_IMAGE
select BR2_PACKAGE_XCB_UTIL_KEYSYMS
+ select BR2_PACKAGE_XCB_UTIL_RENDERUTIL
select BR2_PACKAGE_XCB_UTIL_WM
select BR2_PACKAGE_LIBXKBCOMMON
@@ -262,6 +263,11 @@ config BR2_PACKAGE_QT5BASE_PNG
endif
+config BR2_PACKAGE_QT5BASE_SYSLOG
+ bool "syslog support"
+ help
+ Logs to the standard UNIX logging mechanism.
+
config BR2_PACKAGE_QT5BASE_DBUS
bool "DBus module"
depends on BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/qt5/qt5base/qt5base.hash b/package/qt5/qt5base/qt5base.hash
index a32723f37a..a824890e3c 100644
--- a/package/qt5/qt5base/qt5base.hash
+++ b/package/qt5/qt5base/qt5base.hash
@@ -1,11 +1,10 @@
-# Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz.sha256
-sha256 9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5 qtbase-everywhere-src-5.15.0.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/qtbase-everywhere-src-5.15.2.tar.xz.sha256
+sha256 909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8 qtbase-everywhere-src-5.15.2.tar.xz
# Hashes for license files:
-sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
-sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
-sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT
-sha256 88ec689407cf2df9b2eb5c45952564d51ce73c129a3bdffb15c0d2d161ad7558 LICENSE.LGPLv3
-sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL
-sha256 1f4fa3d202198f5d836993748eac9d91157e2cec7fb8426f56000a02a677cdc5 header.BSD
-sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
+sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT
+sha256 88ec689407cf2df9b2eb5c45952564d51ce73c129a3bdffb15c0d2d161ad7558 LICENSE.LGPLv3
+sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL
+sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 359a380075..84e9fa4edb 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -76,9 +76,12 @@ QT5BASE_DEPENDENCIES += mesa3d
else ifeq ($(BR2_PACKAGE_GCNANO_BINARIES),y)
QT5BASE_CONFIGURE_OPTS += -gbm
QT5BASE_DEPENDENCIES += gcnano-binaries
-else ifeq ($(BR2_PACKAGE_TI_SGX_LIBGBM),y)
+else ifeq ($(BR2_PACKAGE_TI_SGX_UM),y)
QT5BASE_CONFIGURE_OPTS += -gbm
-QT5BASE_DEPENDENCIES += ti-sgx-libgbm
+QT5BASE_DEPENDENCIES += ti-sgx-um
+else ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL),y)
+QT5BASE_CONFIGURE_OPTS += -gbm
+QT5BASE_DEPENDENCIES += imx-gpu-viv
else
QT5BASE_CONFIGURE_OPTS += -no-gbm
endif
@@ -94,7 +97,6 @@ QT5BASE_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3
QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL
ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
QT5BASE_LICENSE += , BSD-3-Clause (examples)
-QT5BASE_LICENSE_FILES += header.BSD
endif
QT5BASE_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_QT5BASE_CONFIG_FILE))
@@ -174,6 +176,7 @@ QT5BASE_DEPENDENCIES += \
xcb-util-wm \
xcb-util-image \
xcb-util-keysyms \
+ xcb-util-renderutil \
xlib_libX11 \
libxkbcommon
ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
@@ -250,6 +253,12 @@ else
QT5BASE_CONFIGURE_OPTS += -no-journald
endif
+ifeq ($(BR2_PACKAGE_QT5BASE_SYSLOG),y)
+QT5BASE_CONFIGURE_OPTS += -syslog
+else
+QT5BASE_CONFIGURE_OPTS += -no-syslog
+endif
+
ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y)
# use vivante backend
QT5BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_viv