qt5webkit: restore package
PATCH v4 1/1 qt5webkit: restore package
Although this package has been removed from the official release packages since Qt5.6.0, it is still available for users to build it from source. This is useful for platforms without GPU since its successor (QtWebEngine) requires OpenGL support.
The package now matches the community-based meta-qt5 Yocto layer, using the exact same revision of the qtwebkit source from github:
https://github.com/meta-qt5/meta-qt5/commit/e434995a
Here is the project source tree:
https://github.com/qtproject/qtwebkit
All the patches have been pulled from Yocto as well.
Since we are now using the source from the git repository, we need to create an empty .git/ folder to force the headers re-generation.
https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33
Note that GPLv3 license option has been added with this release.
---
Hi all,
Changes v1->v2:
- Add comment to explain GitHub choice, suggested by Arnout.
- Add comment to explain .git folder creation, suggested by Julien.
- Remove || true for .git folder creation, suggested by Julien.
- Add SOB to patches, suggested by Julien and Arnout.
- Remove x/y number in patches titles, suggested by Arnout. Changes v2->v3:
- Update licenses to match source code headers, suggested by Arnout.
- Add Arnout comment explaining the .git folder creation.
- Add Julien Reviewed-by.
Changes v3->v4:
- Add patches (1-3) download link, suggested by Arnout.
- Add comment for static build, suggested by Arnout.
Tested on i.MX6Q Nitrogen6x platform.
Regards,
Gary
--- Config.in.legacy | 7 -- package/qt5/Config.in | 1 + .../0001-qtwebkit-fix-QA-issue-bad-RPATH.patch | 36 +++++++++ .../qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch | 85 ++++++++++++++++++++++ ...ude-backtrace-API-for-non-glibc-libraries.patch | 44 +++++++++++ .../0004-Fix-linking-with-libpthread.patch | 34 +++++++++ package/qt5/qt5webkit/Config.in | 28 +++++++ package/qt5/qt5webkit/qt5webkit.hash | 2 + package/qt5/qt5webkit/qt5webkit.mk | 66 +++++++++++++++++ 9 files changed, 296 insertions(+), 7 deletions(-) create mode 100644 package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch create mode 100644 package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch create mode 100644 package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch create mode 100644 package/qt5/qt5webkit/0004-Fix-linking-with-libpthread.patch create mode 100644 package/qt5/qt5webkit/Config.in create mode 100644 package/qt5/qt5webkit/qt5webkit.hash create mode 100644 package/qt5/qt5webkit/qt5webkit.mk
Config.in.legacy +0 -7
@@ -152,13 +152,6 @@ config BR2_PACKAGE_QT5WEBKIT_EXAMPLES The qt5webkit-examples package has been removed, since it was removed from upstream starting from Qt 5.6. -config BR2_PACKAGE_QT5WEBKIT - bool "qt5webkit package removed" - select BR2_LEGACY - help - The qt5webkit package has been removed, since it was removed - from upstream starting from Qt 5.6. - config BR2_PACKAGE_QT5QUICK1 bool "qt5quick1 package removed" select BR2_LEGACY
package/qt5/Config.in +1 -0
@@ -49,4 +49,5 @@ source "package/qt5/qt5x11extras/Config.in" source "package/qt5/qt5xmlpatterns/Config.in" comment "legacy compatibility" source "package/qt5/qt5script/Config.in" +source "package/qt5/qt5webkit/Config.in" endif
package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch new file +36 -0
@@ -0,0 +1,36 @@ +From 1735a8484ef9ae336f8d607b56bda64c8af10c79 Mon Sep 17 00:00:00 2001 +From: Trevor Woerner <[email protected]> +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 <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> + +Downloaded from: +https://github.com/meta-qt5/meta-qt5/blob/krogoth/recipes-qt/qt5/qtwebkit/ +0001-qtwebkit-fix-QA-issue-bad-RPATH.patch + +Signed-off-by: Gary Bisson <[email protected]> +--- + 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. +-- +2.7.0 +
package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch new file +85 -0
85 lines not on this page · raw message
package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch new file +44 -0
44 lines not on this page · raw message
package/qt5/qt5webkit/0004-Fix-linking-with-libpthread.patch new file +34 -0
@@ -0,0 +1,34 @@ +From 5dd4bb67cfce812fd7686e43616e2069f354a7df Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen <[email protected]> +Date: Mon, 22 Feb 2016 10:57:32 +0100 +Subject: [PATCH] Fix linking with libpthread + +WebKit use libpthread directly but is depending on other qt modules +causing it to be linked against, which might break unless -lpthread +is last. Instead just add it explicitly after the static libraries. + +Upstream-Status: Backport from 5.7 branch + +Change-Id: I2b95cff2c96373f8dce6f95052c4fccbe1982b33 +Reviewed-by: Simon Hausmann <[email protected]> +Signed-off-by: Jonathan Liu <[email protected]> +Signed-off-by: Gary Bisson <[email protected]> +--- + Tools/qmake/mkspecs/features/default_post.prf | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Tools/qmake/mkspecs/features/default_post.prf b/Tools/qmake/mkspecs/features/default_post.prf +index 67276b7..39bb3f7 100644 +--- a/Tools/qmake/mkspecs/features/default_post.prf ++++ b/Tools/qmake/mkspecs/features/default_post.prf +@@ -201,6 +201,7 @@ needToLink() { + linkAgainstLibrary($$library, $$eval(WEBKIT.$${library_identifier}.root_source_dir)) + LIBS += $$eval(WEBKIT.$${library_identifier}.dependent_libs) + } ++ posix:!darwin: LIBS += -lpthread + } + + creating_module { +-- +2.7.1 +
package/qt5/qt5webkit/Config.in new file +28 -0
@@ -0,0 +1,28 @@ +config BR2_PACKAGE_QT5WEBKIT + bool "qt5webkit" + select BR2_PACKAGE_QT5BASE + select BR2_PACKAGE_QT5BASE_ICU + select BR2_PACKAGE_QT5BASE_GUI + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT5BASE_XCB + select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_QT5BASE_XCB + depends on !BR2_STATIC_LIBS + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE + depends on !BR2_BINFMT_FLAT # icu + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5webkit module. + + This package has been removed from the official release packages + since Qt5.6.0, but it is still available for users to build it + from source. This is useful for platforms without GPU since the + successor (QtWebEngine) requires OpenGL support. + + http://qt.io + +comment "qt5webkit needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE + depends on !BR2_BINFMT_FLAT
package/qt5/qt5webkit/qt5webkit.hash new file +2 -0
@@ -0,0 +1,2 @@ +# locally computed +sha256 1c79843ef32313312290d4fe0b87256a9129dc44d62b01789a692981edf4d8ab qt5webkit-d2ff5a085572b1ee24dcb42ae107063f3142d14e.tar.gz
package/qt5/qt5webkit/qt5webkit.mk new file +66 -0
66 lines not on this page · raw message
Signature · 1 line
2.7.0
PATCH v4 1/1 qt5webkit: restore package
Hello,
Thanks. Looks mostly good, but I have a few questions.
Quoted 5 lines · Gary Bisson
Since we are now using the source from the git repository, we need to create an empty .git/ folder to force the headers re-generation.
https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33Note that GPLv3 license option has been added with this release.
Yes, but I don't see any reference to GPLv3 in your license information below.
package/qt5/qt5webkit/qt5webkit.mk line 24
Quoted 9 lines
package/qt5/qt5webkit/qt5webkit.mk new file +9
-0+ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5WEBKIT_LICENSE = LGPLv2+, BSD-3c, BSD-2c +# Source files contain references to LGPL_EXCEPTION.txt but it is not included +# in the archive. +QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 +else +QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), Commercial license +QT5WEBKIT_REDISTRIBUTE = NO +endif
No reference to GPLv3 whatsoever.
Also, LGPLv2+ is not correct I believe, it should be LGPLv2.1+, as the name of the license file suggests.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v4 1/1 qt5webkit: restore package
Quoted 6 lines · Thomas Petazzoni
Hello,
Thanks. Looks mostly good, but I have a few questions.
On Wed, 13 Apr 2016 15:40:35 +0200, Gary Bisson wrote:
Quoted 8 lines
Quoted 5 lines
Since we are now using the source from the git repository, we need to create an empty .git/ folder to force the headers re-generation.
https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33Note that GPLv3 license option has been added with this release.
Yes, but I don't see any reference to GPLv3 in your license information below.
Argh, licensing. A LICENSE.GPLv3 file has been added to the package. Clearly,
whenever a package is licensed under LGPLv2+, you are allowed to redistribute it under GPLv3+. But I don't think that that's very relevant for us.
However, when you look at the source files, all of them (except for a few
build tools) are either LGPLv2 or BSD-3c or BSD-2c (a bunch of them are dual-licensed, but that's hardly relevant for the package as a whole because not all files are dual-licensed). Yes, indeed, the license file is for LGPLv2.1, but that doesn't correspond to the actual source code.
I threw it into the unomaha fossology a couple of days ago [1] so I'm pretty
sure of my statement :-)
Hm, taking a second look, there are in fact a few dozen files that are
LGPLv2.1+, so I guess indeed the concluded license should be LGPLv2.1+.
Regards,
Arnout
[1]
https://fossology.ist.unomaha.edu/?mod=license&upload=8&folder=1&item=107&show=quick
Quoted 21 lines
package/qt5/qt5webkit/qt5webkit.mk line 24
Quoted 11 lines
package/qt5/qt5webkit/qt5webkit.mk new file +9
-0+ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5WEBKIT_LICENSE = LGPLv2+, BSD-3c, BSD-2c +# Source files contain references to LGPL_EXCEPTION.txt but it is not included +# in the archive. +QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 +else +QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), Commercial license +QT5WEBKIT_REDISTRIBUTE = NO +endifNo reference to GPLv3 whatsoever.
Also, LGPLv2+ is not correct I believe, it should be LGPLv2.1+, as the name of the license file suggests.
Thanks!
Thomas
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v4 1/1 qt5webkit: restore package
Thomas, Arnout, All,
Quoted 16 lines · Arnout Vandecappelle
Quoted 15 lines · Thomas Petazzoni
Hello,
Thanks. Looks mostly good, but I have a few questions.
Quoted 6 lines · Gary Bisson
Since we are now using the source from the git repository, we need to create an empty .git/ folder to force the headers re-generation.
https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33
Note that GPLv3 license option has been added with this release.
Quoted 7 lines
Quoted 2 lines
Yes, but I don't see any reference to GPLv3 in your license information below.
Argh, licensing. A LICENSE.GPLv3 file has been added to the package.
Clearly, whenever a package is licensed under LGPLv2+, you are allowed to redistribute it under GPLv3+. But I don't think that that's very relevant for us.
Yes I forgot to remove this comment, the LICENSE file for GPLv3 has been added but that's about it.
Quoted 11 lines
However, when you look at the source files, all of them (except for a few
build tools) are either LGPLv2 or BSD-3c or BSD-2c (a bunch of them are dual-licensed, but that's hardly relevant for the package as a whole because not all files are dual-licensed). Yes, indeed, the license file is for LGPLv2.1, but that doesn't correspond to the actual source code.I threw it into the unomaha fossology a couple of days ago [1] so I'm
pretty sure of my statement :-)Hm, taking a second look, there are in fact a few dozen files that are
LGPLv2.1+, so I guess indeed the concluded license should be LGPLv2.1+.
Ok, should I submit a v5 to fix it or will you make the change directly?
Quoted 5 lines
Regards,
Arnout[1]
https://fossology.ist.unomaha.edu/?mod=license&upload=8&folder=1&item=107&show=quick
Didn't know that website, that's pretty useful, thanks!
Regards,
Gary
PATCH v4 1/1 qt5webkit: restore package
In reply to Gary BissonHello,
Quoted 14 lines · Gary Bisson
Although this package has been removed from the official release packages since Qt5.6.0, it is still available for users to build it from source. This is useful for platforms without GPU since its successor (QtWebEngine) requires OpenGL support.
The package now matches the community-based meta-qt5 Yocto layer, using the exact same revision of the qtwebkit source from github:
https://github.com/meta-qt5/meta-qt5/commit/e434995aHere is the project source tree:
https://github.com/qtproject/qtwebkitAll the patches have been pulled from Yocto as well.
Quoted 8 lines
Since we are now using the source from the git repository, we need to create an empty .git/ folder to force the headers re-generation.
https://github.com/meta-qt5/meta-qt5/blob/jethro/recipes-qt/qt5/qt5.inc#L33Note that GPLv3 license option has been added with this release.
Reviewed-by Julien Corjon <[email protected]>Signed-off-by Gary Bisson <[email protected]>
I've fixed the s/LGPLv2+/LGPLv2.1+/ issue in the license information, and applied. However, it is worth noting that at some point, we will be forced to remove the packages for software that is unmaintained upstream. We can keep it for a while, but just like recently libgtk3 was bumped to a version that requires OpenGL because the latest versions of libgtk3 require it, we will have to do the same for Qt5 if that's the decision of upstream. People who want something that works without OpenGL should work with upstream to resolve this.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com