All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.