* [meta-qt4][PATCH 0/2] fix qt4 for zeus
@ 2019-11-17 21:44 Jeroen Hofstee
2019-11-17 21:44 ` [meta-qt4][PATCH 1/2] qt4: fix whitespace so it aligns Jeroen Hofstee
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Jeroen Hofstee @ 2019-11-17 21:44 UTC (permalink / raw)
To: openembedded-devel@lists.openembedded.org; +Cc: Paul Eggleton, Adrian Bunk
Gcc 9.2 miscompiles the foreach resulting in broken applications.
This backports a fix from qt5 to make it work again. The fix is
not written for this issue, but it does solve it.
As a prepartion it includes some whitespace fixes, so the patches
are aligned in the SRC_URI.
Jeroen Hofstee (2):
qt4: fix whitespace so it aligns
qt4: updates for gcc 9.2
recipes-qt4/qt4/nativesdk-qt4-tools.inc | 2 +
recipes-qt4/qt4/qt4-4.8.7.inc | 6 +-
...event-gcc-9.2-miscompiling-Q_FOREACH.patch | 78 ++++++++++++++++
...ence-some-loud-but-innocent-warnings.patch | 91 +++++++++++++++++++
recipes-qt4/qt4/qt4-native.inc | 12 ++-
5 files changed, 182 insertions(+), 7 deletions(-)
create mode 100644 recipes-qt4/qt4/qt4-4.8.7/0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch
create mode 100644 recipes-qt4/qt4/qt4-4.8.7/0039-silence-some-loud-but-innocent-warnings.patch
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread* [meta-qt4][PATCH 1/2] qt4: fix whitespace so it aligns 2019-11-17 21:44 [meta-qt4][PATCH 0/2] fix qt4 for zeus Jeroen Hofstee @ 2019-11-17 21:44 ` Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 2/2] qt4: updates for gcc 9.2 Jeroen Hofstee 2019-11-18 3:12 ` [meta-qt4][PATCH 0/2] fix qt4 for zeus Paul Eggleton 2 siblings, 0 replies; 9+ messages in thread From: Jeroen Hofstee @ 2019-11-17 21:44 UTC (permalink / raw) To: openembedded-devel@lists.openembedded.org Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com> --- recipes-qt4/qt4/qt4-4.8.7.inc | 4 ++-- recipes-qt4/qt4/qt4-native.inc | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes-qt4/qt4/qt4-4.8.7.inc b/recipes-qt4/qt4/qt4-4.8.7.inc index d8b178f..7d9b9b9 100644 --- a/recipes-qt4/qt4/qt4-4.8.7.inc +++ b/recipes-qt4/qt4/qt4-4.8.7.inc @@ -27,7 +27,7 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://0034-Fix-kmap2qmap-build-with-clang.patch \ file://0035-Add-nios2-support.patch \ file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \ - file://0037-fix-configure-with-icu60.patch \ + file://0037-fix-configure-with-icu60.patch \ file://gcc-version.patch \ file://Fix-QWSLock-invalid-argument-logs.patch \ file://add_check_for_aarch64_32.patch \ @@ -35,7 +35,7 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://g++.conf \ file://linux.conf \ file://fix-for-mips-n32.patch \ - file://qt-everywhere-opensource-src-4.8.6-QTBUG-22829.patch \ + file://qt-everywhere-opensource-src-4.8.6-QTBUG-22829.patch \ " SRC_URI[md5sum] = "d990ee66bf7ab0c785589776f35ba6ad" diff --git a/recipes-qt4/qt4/qt4-native.inc b/recipes-qt4/qt4/qt4-native.inc index 8a672bd..b813f9e 100644 --- a/recipes-qt4/qt4/qt4-native.inc +++ b/recipes-qt4/qt4/qt4-native.inc @@ -15,14 +15,14 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ file://0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch \ file://0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch \ - file://0015-configure-add-nostrip-for-debug-packages.patch \ + file://0015-configure-add-nostrip-for-debug-packages.patch \ file://0021-configure-make-qt4-native-work-with-long-building-pa.patch \ - file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \ - file://gcc-version.patch \ + file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \ + file://gcc-version.patch \ file://g++.conf \ file://linux.conf \ - file://qt-everywhere-opensource-src-4.8.6-QTBUG-22829.patch \ - " + file://qt-everywhere-opensource-src-4.8.6-QTBUG-22829.patch \ +" UPSTREAM_CHECK_URI = "http://download.qt.io/official_releases/qt/4.8/" UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/" -- 2.17.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [meta-qt4][PATCH 2/2] qt4: updates for gcc 9.2 2019-11-17 21:44 [meta-qt4][PATCH 0/2] fix qt4 for zeus Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 1/2] qt4: fix whitespace so it aligns Jeroen Hofstee @ 2019-11-17 21:44 ` Jeroen Hofstee 2019-11-18 3:12 ` [meta-qt4][PATCH 0/2] fix qt4 for zeus Paul Eggleton 2 siblings, 0 replies; 9+ messages in thread From: Jeroen Hofstee @ 2019-11-17 21:44 UTC (permalink / raw) To: openembedded-devel@lists.openembedded.org This adds two patches, the first one is a backport from qt5 to make Q_FOREACH work again. The patch itself contains the details. The other one makes the build logs readable again by suppressing many harmless warnings issued by newer compilers. Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com> --- recipes-qt4/qt4/nativesdk-qt4-tools.inc | 2 + recipes-qt4/qt4/qt4-4.8.7.inc | 2 + ...event-gcc-9.2-miscompiling-Q_FOREACH.patch | 78 ++++++++++++++++ ...ence-some-loud-but-innocent-warnings.patch | 91 +++++++++++++++++++ recipes-qt4/qt4/qt4-native.inc | 2 + 5 files changed, 175 insertions(+) create mode 100644 recipes-qt4/qt4/qt4-4.8.7/0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch create mode 100644 recipes-qt4/qt4/qt4-4.8.7/0039-silence-some-loud-but-innocent-warnings.patch diff --git a/recipes-qt4/qt4/nativesdk-qt4-tools.inc b/recipes-qt4/qt4/nativesdk-qt4-tools.inc index e9c45da..f071b22 100644 --- a/recipes-qt4/qt4/nativesdk-qt4-tools.inc +++ b/recipes-qt4/qt4/nativesdk-qt4-tools.inc @@ -19,6 +19,8 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch \ file://0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch \ file://0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch \ + file://0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch \ + file://0039-silence-some-loud-but-innocent-warnings.patch \ file://g++.conf \ file://linux.conf" diff --git a/recipes-qt4/qt4/qt4-4.8.7.inc b/recipes-qt4/qt4/qt4-4.8.7.inc index 7d9b9b9..1b52d6d 100644 --- a/recipes-qt4/qt4/qt4-4.8.7.inc +++ b/recipes-qt4/qt4/qt4-4.8.7.inc @@ -28,6 +28,8 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://0035-Add-nios2-support.patch \ file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \ file://0037-fix-configure-with-icu60.patch \ + file://0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch \ + file://0039-silence-some-loud-but-innocent-warnings.patch \ file://gcc-version.patch \ file://Fix-QWSLock-invalid-argument-logs.patch \ file://add_check_for_aarch64_32.patch \ diff --git a/recipes-qt4/qt4/qt4-4.8.7/0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch b/recipes-qt4/qt4/qt4-4.8.7/0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch new file mode 100644 index 0000000..e02c9be --- /dev/null +++ b/recipes-qt4/qt4/qt4-4.8.7/0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch @@ -0,0 +1,78 @@ +From f27717257dc7fcfe1d48b02b10668da1af678ad4 Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee <jhofstee@victronenergy.com> +Date: Sat, 16 Nov 2019 16:48:58 +0100 +Subject: [PATCH 1/2] prevent gcc 9.2 miscompiling Q_FOREACH + +With gcc 9.2, Q_FOREACH only loops over the first element [1]. Fix +this by backporting [2]. That commit is for other reasons, but also +fixes this. + +Original commit by Thiago Macieira <thiago.macieira@intel.com>: + +It's possible to do without them, which probably makes the number of +supported compilers a lot bigger: they just need to support decltype() +or __typeof__. + +That includes the Intel compiler. The old code was also apparently +working, but no one had realized the old workaround for some old version +was still in place. + +The loop overhead is more or less the same. I have not done benchmarks, +but inspection of the generated assembly shows more or less the same +number of instructions. + +Change-Id: I32d499c84a6ddd19d994b49f17a469acb5c3a3f1 +Reviewed-by: Olivier Goffart <ogoffart@woboq.com> +Reviewed-by: Marc Mutz <marc.mutz@kdab.com> + +[1] https://github.com/qt/qtbase/commit/c35a3f519007af44c3b364b9af86f6a336f6411b +[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90617 +--- + src/corelib/global/qglobal.h | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) + +diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h +index 96fbeee0ae..a2f9ea097a 100644 +--- a/src/corelib/global/qglobal.h ++++ b/src/corelib/global/qglobal.h +@@ -2367,22 +2367,31 @@ typedef uint Flags; + + #endif /* Q_NO_TYPESAFE_FLAGS */ + +-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) ++#if defined(Q_CC_GNU) && !defined(Q_CC_RVCT) + /* make use of typeof-extension */ + template <typename T> + class QForeachContainer { + public: +- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } ++ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } + const T c; +- int brk; + typename T::const_iterator i, e; ++ int control; + }; + ++// Explanation of the control word: ++// - it's initialized to 1 ++// - that means both the inner and outer loops start ++// - if there were no breaks, at the end of the inner loop, it's set to 0, which ++// causes it to exit (the inner loop is run exactly once) ++// - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing ++// the outer loop to continue executing ++// - if there was a break inside the inner loop, it will exit with control still ++// set to 1; in that case, the outer loop will invert it to 0 and will exit too + #define Q_FOREACH(variable, container) \ + for (QForeachContainer<__typeof__(container)> _container_(container); \ +- !_container_.brk && _container_.i != _container_.e; \ +- __extension__ ({ ++_container_.brk; ++_container_.i; })) \ +- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) ++ _container_.control && _container_.i != _container_.e; \ ++ ++_container_.i, _container_.control ^= 1) \ ++ for (variable = *_container_.i; _container_.control; _container_.control = 0) + + #else + +-- +2.17.1 + diff --git a/recipes-qt4/qt4/qt4-4.8.7/0039-silence-some-loud-but-innocent-warnings.patch b/recipes-qt4/qt4/qt4-4.8.7/0039-silence-some-loud-but-innocent-warnings.patch new file mode 100644 index 0000000..0647261 --- /dev/null +++ b/recipes-qt4/qt4/qt4-4.8.7/0039-silence-some-loud-but-innocent-warnings.patch @@ -0,0 +1,91 @@ +From e03ee6b5bca6ab457a16faa8399ba20cd5cc1fbc Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee <jhofstee@victronenergy.com> +Date: Sat, 16 Nov 2019 16:50:00 +0100 +Subject: [PATCH] silence some loud but innocent warnings + +These warnings are harmless for old code, so suppress them so real +issue are visible in the logs. +--- + configure | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 66 insertions(+) + +diff --git a/configure b/configure +index a9ba7c8ccb..6ebf71ab21 100755 +--- a/configure ++++ b/configure +@@ -3435,6 +3435,72 @@ if [ -n "$CFG_SYSROOT" ]; then + fi + export SYSROOT_FLAG # used by config.tests/unix/compile.test + ++# Since qt4 is no longer officialy maintained, silence the harmless warnings ++# since nobody is going to fix them anyway... ++ ++if compilerSupportsFlag $TEST_COMPILER -Wunused-but-set-variable -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-unused-but-set-variable ++ QMakeVar add QMAKE_CXXFLAGS -Wno-unused-but-set-variable ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wunused-function -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-unused-function ++ QMakeVar add QMAKE_CXXFLAGS -Wno-unused-function ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wunused-variable -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-unused-variable ++ QMakeVar add QMAKE_CXXFLAGS -Wno-unused-variable ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wunused-local-typedefs; then ++ QMakeVar add QMAKE_CFLAGS -Wno-unused-local-typedefs ++ QMakeVar add QMAKE_CXXFLAGS -Wno-unused-local-typedefs ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wimplicit-fallthrough -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-implicit-fallthrough ++ QMakeVar add QMAKE_CXXFLAGS -Wno-implicit-fallthrough ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wunused-parameter -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-unused-parameter ++ QMakeVar add QMAKE_CXXFLAGS -Wno-unused-parameter ++fi ++ ++# when a compiler starts guessing it is often wrong.. ++if compilerSupportsFlag $TEST_COMPILER -Wmaybe-uninitialized -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-maybe-uninitialized ++ QMakeVar add QMAKE_CXXFLAGS -Wno-maybe-uninitialized ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wswitch -Werror; then ++ QMakeVar add QMAKE_CFLAGS -Wno-switch ++ QMakeVar add QMAKE_CXXFLAGS -Wno-switch ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wdeprecated-copy -Werror; then ++ QMakeVar add QMAKE_CXXFLAGS -Wno-deprecated-copy ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wdeprecated-declarations -Werror; then ++ QMakeVar add QMAKE_CXXFLAGS -Wno-deprecated-declarations ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wparentheses -Werror; then ++ QMakeVar add QMAKE_CXXFLAGS -Wno-parentheses ++fi ++ ++if compilerSupportsFlag $TEST_COMPILER -Wclass-memaccess -Werror; then ++ QMakeVar add QMAKE_CXXFLAGS -Wno-class-memaccess ++fi ++ ++# note: parameter passing for argument of type 'QMap<QSettingsKey, QVariant>::iterator' changed in GCC 7.1 ++# Assuming that OE is used to rebuild all sources, there is no need to worry about abi changes.. ++if compilerSupportsFlag $TEST_COMPILER -Wpsabi -Werror; then ++ QMakeVar add QMAKE_CXXFLAGS -Wno-psabi ++fi ++ + # auto-detect precompiled header support + if [ "$CFG_PRECOMPILE" = "auto" ]; then + if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then +-- +2.17.1 + diff --git a/recipes-qt4/qt4/qt4-native.inc b/recipes-qt4/qt4/qt4-native.inc index b813f9e..8a964c6 100644 --- a/recipes-qt4/qt4/qt4-native.inc +++ b/recipes-qt4/qt4/qt4-native.inc @@ -18,6 +18,8 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever file://0015-configure-add-nostrip-for-debug-packages.patch \ file://0021-configure-make-qt4-native-work-with-long-building-pa.patch \ file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \ + file://0038-prevent-gcc-9.2-miscompiling-Q_FOREACH.patch \ + file://0039-silence-some-loud-but-innocent-warnings.patch \ file://gcc-version.patch \ file://g++.conf \ file://linux.conf \ -- 2.17.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-17 21:44 [meta-qt4][PATCH 0/2] fix qt4 for zeus Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 1/2] qt4: fix whitespace so it aligns Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 2/2] qt4: updates for gcc 9.2 Jeroen Hofstee @ 2019-11-18 3:12 ` Paul Eggleton 2019-11-18 7:35 ` Jeroen Hofstee 2019-11-18 9:13 ` Mikko.Rapeli 2 siblings, 2 replies; 9+ messages in thread From: Paul Eggleton @ 2019-11-18 3:12 UTC (permalink / raw) To: openembedded-devel, Jeroen Hofstee; +Cc: Adrian Bunk Hi Jeroen On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: > Gcc 9.2 miscompiles the foreach resulting in broken applications. > This backports a fix from qt5 to make it work again. The fix is > not written for this issue, but it does solve it. > > As a prepartion it includes some whitespace fixes, so the patches > are aligned in the SRC_URI. > > Jeroen Hofstee (2): > qt4: fix whitespace so it aligns > qt4: updates for gcc 9.2 I've merged both of these. I've also created zeus and warrior branches. (For now I have assumed these two should not be on warrior - let me know if that's not correct.) Cheers Paul -- Paul Eggleton Intel System Software Products ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-18 3:12 ` [meta-qt4][PATCH 0/2] fix qt4 for zeus Paul Eggleton @ 2019-11-18 7:35 ` Jeroen Hofstee 2019-11-18 9:13 ` Mikko.Rapeli 1 sibling, 0 replies; 9+ messages in thread From: Jeroen Hofstee @ 2019-11-18 7:35 UTC (permalink / raw) To: Paul Eggleton, openembedded-devel@lists.openembedded.org; +Cc: Adrian Bunk Hello Paul, On 11/18/19 4:12 AM, Paul Eggleton wrote: > Hi Jeroen > > On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: >> Gcc 9.2 miscompiles the foreach resulting in broken applications. >> This backports a fix from qt5 to make it work again. The fix is >> not written for this issue, but it does solve it. >> >> As a prepartion it includes some whitespace fixes, so the patches >> are aligned in the SRC_URI. >> >> Jeroen Hofstee (2): >> qt4: fix whitespace so it aligns >> qt4: updates for gcc 9.2 > I've merged both of these. I've also created zeus and warrior branches. (For > now I have assumed these two should not be on warrior - let me know if that's > not correct.) Thanks, Warrior seems to have gcc 8.3 which indeed doesn't need the fix, see https://godbolt.org/z/XFEDna. With kind regards, Jeroen ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-18 3:12 ` [meta-qt4][PATCH 0/2] fix qt4 for zeus Paul Eggleton 2019-11-18 7:35 ` Jeroen Hofstee @ 2019-11-18 9:13 ` Mikko.Rapeli 2019-11-18 11:01 ` Jeroen Hofstee 1 sibling, 1 reply; 9+ messages in thread From: Mikko.Rapeli @ 2019-11-18 9:13 UTC (permalink / raw) To: paul.eggleton; +Cc: openembedded-devel, bunk On Mon, Nov 18, 2019 at 04:12:56PM +1300, Paul Eggleton wrote: > Hi Jeroen > > On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: > > Gcc 9.2 miscompiles the foreach resulting in broken applications. > > This backports a fix from qt5 to make it work again. The fix is > > not written for this issue, but it does solve it. > > > > As a prepartion it includes some whitespace fixes, so the patches > > are aligned in the SRC_URI. > > > > Jeroen Hofstee (2): > > qt4: fix whitespace so it aligns > > qt4: updates for gcc 9.2 > > I've merged both of these. I've also created zeus and warrior branches. (For > now I have assumed these two should not be on warrior - let me know if that's > not correct.) It this ok from licensing point of view since LICENSE = "LGPLv2.1 | GPLv3"? I suspect the LGPLv2.1 is not correct if GPLv3 licensed patches from qt5 are there too. -Mikko ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-18 9:13 ` Mikko.Rapeli @ 2019-11-18 11:01 ` Jeroen Hofstee 2019-11-18 11:40 ` Mikko.Rapeli 0 siblings, 1 reply; 9+ messages in thread From: Jeroen Hofstee @ 2019-11-18 11:01 UTC (permalink / raw) To: Mikko.Rapeli@bmw.de, paul.eggleton@linux.intel.com Cc: openembedded-devel@lists.openembedded.org, bunk@stusta.de Hello Mikko, On 11/18/19 10:13 AM, Mikko.Rapeli@bmw.de wrote: > On Mon, Nov 18, 2019 at 04:12:56PM +1300, Paul Eggleton wrote: >> Hi Jeroen >> >> On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: >>> Gcc 9.2 miscompiles the foreach resulting in broken applications. >>> This backports a fix from qt5 to make it work again. The fix is >>> not written for this issue, but it does solve it. >>> >>> As a prepartion it includes some whitespace fixes, so the patches >>> are aligned in the SRC_URI. >>> >>> Jeroen Hofstee (2): >>> qt4: fix whitespace so it aligns >>> qt4: updates for gcc 9.2 >> I've merged both of these. I've also created zeus and warrior branches. (For >> now I have assumed these two should not be on warrior - let me know if that's >> not correct.) > It this ok from licensing point of view since LICENSE = "LGPLv2.1 | GPLv3"? > > I suspect the LGPLv2.1 is not correct if GPLv3 licensed patches from qt5 are there too. > Since the license of the file this patch is coming from is the same as in qt4, I don't understand how you suspect that it conflicts. With kind regards, Jeroen ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-18 11:01 ` Jeroen Hofstee @ 2019-11-18 11:40 ` Mikko.Rapeli 2019-11-18 19:38 ` Paul Eggleton 0 siblings, 1 reply; 9+ messages in thread From: Mikko.Rapeli @ 2019-11-18 11:40 UTC (permalink / raw) To: jhofstee; +Cc: paul.eggleton, openembedded-devel, bunk On Mon, Nov 18, 2019 at 11:01:09AM +0000, Jeroen Hofstee wrote: > Hello Mikko, > > On 11/18/19 10:13 AM, Mikko.Rapeli@bmw.de wrote: > > On Mon, Nov 18, 2019 at 04:12:56PM +1300, Paul Eggleton wrote: > >> Hi Jeroen > >> > >> On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: > >>> Gcc 9.2 miscompiles the foreach resulting in broken applications. > >>> This backports a fix from qt5 to make it work again. The fix is > >>> not written for this issue, but it does solve it. > >>> > >>> As a prepartion it includes some whitespace fixes, so the patches > >>> are aligned in the SRC_URI. > >>> > >>> Jeroen Hofstee (2): > >>> qt4: fix whitespace so it aligns > >>> qt4: updates for gcc 9.2 > >> I've merged both of these. I've also created zeus and warrior branches. (For > >> now I have assumed these two should not be on warrior - let me know if that's > >> not correct.) > > It this ok from licensing point of view since LICENSE = "LGPLv2.1 | GPLv3"? > > > > I suspect the LGPLv2.1 is not correct if GPLv3 licensed patches from qt5 are there too. > > > > Since the license of the file this patch is coming from is the same > as in qt4, I don't understand how you suspect that it conflicts. Ok, that's great then! As you know, licensing of qt5 is different, e.g. in meta-qt5/recipes-qt/qt5/qt5.inc says 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 )" which does not include LGPLv2.1. Thus one needs to be very careful when backporting patches, or change the licensing to be compatible. If qt4 would not include LGPLv2.1 in LICENSE, then backporting GPLv3 licensed changes from qt5 could be more straight forward. -Mikko ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [meta-qt4][PATCH 0/2] fix qt4 for zeus 2019-11-18 11:40 ` Mikko.Rapeli @ 2019-11-18 19:38 ` Paul Eggleton 0 siblings, 0 replies; 9+ messages in thread From: Paul Eggleton @ 2019-11-18 19:38 UTC (permalink / raw) To: Mikko.Rapeli; +Cc: openembedded-devel, bunk Hi Mikko, On Tuesday, 19 November 2019 12:40:27 AM NZDT Mikko.Rapeli@bmw.de wrote: > On Mon, Nov 18, 2019 at 11:01:09AM +0000, Jeroen Hofstee wrote: > > On 11/18/19 10:13 AM, Mikko.Rapeli@bmw.de wrote: > > > On Mon, Nov 18, 2019 at 04:12:56PM +1300, Paul Eggleton wrote: > > >> On Monday, 18 November 2019 10:44:37 AM NZDT Jeroen Hofstee wrote: > > >>> Gcc 9.2 miscompiles the foreach resulting in broken applications. > > >>> This backports a fix from qt5 to make it work again. The fix is > > >>> not written for this issue, but it does solve it. > > >>> > > >>> As a prepartion it includes some whitespace fixes, so the patches > > >>> are aligned in the SRC_URI. > > >>> > > >>> Jeroen Hofstee (2): > > >>> qt4: fix whitespace so it aligns > > >>> qt4: updates for gcc 9.2 > > >> I've merged both of these. I've also created zeus and warrior branches. (For > > >> now I have assumed these two should not be on warrior - let me know if that's > > >> not correct.) > > > It this ok from licensing point of view since LICENSE = "LGPLv2.1 | GPLv3"? > > > > > > I suspect the LGPLv2.1 is not correct if GPLv3 licensed patches from qt5 are there too. > > > > Since the license of the file this patch is coming from is the same > > as in qt4, I don't understand how you suspect that it conflicts. > > Ok, that's great then! FYI the patch that was backported [1] [2] first appeared in qtbase in v5.4.0-alpha1 in 2014 which was prior to the re-licensing that happened in 5.6. > As you know, licensing of qt5 is different, e.g. in meta-qt5/recipes-qt/qt5/qt5.inc says > 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 )" > which does not include LGPLv2.1. > > Thus one needs to be very careful when backporting patches, or change the licensing to be > compatible. If qt4 would not include LGPLv2.1 in LICENSE, then backporting GPLv3 licensed > changes from qt5 could be more straight forward. Indeed, thanks for the reminder. I think we probably want to leave qt4's LICENSE as-is though, since the upstream code is available under LGPLv2.1 and I think it would be odd if we were to remove that just for the sake of a few patches. Cheers Paul [1] https://salsa.debian.org/qt-kde-team/qt/qt4-x11/commit/0d4a3dd61ccb156dee556c214dbe91c04d44a717 [2] https://github.com/qt/qtbase/commit/c35a3f519007af44c3b364b9af86f6a336f6411b -- Paul Eggleton Intel System Software Products ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-11-18 19:38 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-11-17 21:44 [meta-qt4][PATCH 0/2] fix qt4 for zeus Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 1/2] qt4: fix whitespace so it aligns Jeroen Hofstee 2019-11-17 21:44 ` [meta-qt4][PATCH 2/2] qt4: updates for gcc 9.2 Jeroen Hofstee 2019-11-18 3:12 ` [meta-qt4][PATCH 0/2] fix qt4 for zeus Paul Eggleton 2019-11-18 7:35 ` Jeroen Hofstee 2019-11-18 9:13 ` Mikko.Rapeli 2019-11-18 11:01 ` Jeroen Hofstee 2019-11-18 11:40 ` Mikko.Rapeli 2019-11-18 19:38 ` Paul Eggleton
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.