Skip to contentSkip to conversation

qt5webkit: restore package

PATCH Superseded Gary Bisson 2 participants 2 messages Apr 12, 2016

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 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,

Changelog 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. Changelog v2->v3:
- Update licenses to match source code headers, suggested by Arnout.
- Add Arnout comment explaining the .git folder creation.
- Add Julien Reviewed-by.

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     | 31 +++++++++
 .../qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch | 80 ++++++++++++++++++++++
 ...ude-backtrace-API-for-non-glibc-libraries.patch | 39 +++++++++++
 .../0004-Fix-linking-with-libpthread.patch         | 34 +++++++++
 package/qt5/qt5webkit/Config.in                    | 24 +++++++
 package/qt5/qt5webkit/qt5webkit.hash               |  2 +
 package/qt5/qt5webkit/qt5webkit.mk                 | 66 ++++++++++++++++++
 9 files changed, 277 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
index 60702ce..6691c50 100644
@@ -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
index f673daa..0c0e971 100644
@@ -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 +31 -0
new file mode 100644
index 0000000..ada98a2
@@ -0,0 +1,31 @@
+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]>
+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 +80 -0

80 lines not on this page · raw message

package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch new file +39 -0
new file mode 100644
index 0000000..9496947
@@ -0,0 +1,39 @@
+From 6c36f0ff8c1f5852c33d2b23714f9f187cc6ff26 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Fri, 5 Jun 2015 19:55:05 -0700
+Subject: [PATCH] Exclude backtrace() API for non-glibc libraries
+
+It was excluding musl with current checks, so lets make it such that it
+considers only glibc when using backtrace API
+
+Signed-off-by: Khem Raj <[email protected]>
+Signed-off-by: Gary Bisson <[email protected]>
+---
+ Source/WTF/wtf/Assertions.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp
+index 1b2091f..ba03a28 100644
+--- a/Source/WTF/wtf/Assertions.cpp
++++ b/Source/WTF/wtf/Assertions.cpp
+@@ -61,7 +61,7 @@
+ #include <windows.h>
+ #endif
+ 
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined (__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ #include <cxxabi.h>
+ #include <dlfcn.h>
+ #include <execinfo.h>
+@@ -245,7 +245,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f
+ 
+ void WTFGetBacktrace(void** stack, int* size)
+ {
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+     *size = backtrace(stack, *size);
+ #elif OS(WINDOWS) && !OS(WINCE)
+     // The CaptureStackBackTrace function is available in XP, but it is not defined
+-- 
+2.7.0
+
package/qt5/qt5webkit/0004-Fix-linking-with-libpthread.patch new file +34 -0
new file mode 100644
index 0000000..b7b6791
@@ -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 +24 -0
new file mode 100644
index 0000000..fb84b1e
@@ -0,0 +1,24 @@
+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
+	# This module does not support static linking
+	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
package/qt5/qt5webkit/qt5webkit.hash new file +2 -0
new file mode 100644
index 0000000..d2ac7bb
@@ -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
#1 lore raw

PATCH v3 1/1 qt5webkit: restore package

Still two small issues...

Quoted 95 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/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,

Changelog 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. Changelog v2->v3:
- Update licenses to match source code headers, suggested by Arnout.
- Add Arnout comment explaining the .git folder creation.
- Add Julien Reviewed-by.

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     | 31 +++++++++
  .../qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch | 80 ++++++++++++++++++++++
  ...ude-backtrace-API-for-non-glibc-libraries.patch | 39 +++++++++++
  .../0004-Fix-linking-with-libpthread.patch         | 34 +++++++++
  package/qt5/qt5webkit/Config.in                    | 24 +++++++
  package/qt5/qt5webkit/qt5webkit.hash               |  2 +
  package/qt5/qt5webkit/qt5webkit.mk                 | 66 ++++++++++++++++++
  9 files changed, 277 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
index 60702ce..6691c50 100644
@@ -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
index f673daa..0c0e971 100644
@@ -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 +2 -0
new file mode 100644
index 0000000..ada98a2
@@ -0,0 +1,31 @@
+From 1735a8484ef9ae336f8d607b56bda64c8af10c79 Mon Sep 17 00:00:00 2001
+From: Trevor Woerner <[email protected]>

package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch line 12

Quoted 10 lines
package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch new file +10 -0
+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]>
+Signed-off-by: Gary Bisson <[email protected]>

I thought that these commits were coming from qt-project.org, but actually
they come from yocto I guess. In this case, the commit ID isn't enough, you really have to refer to the yocto URL. Something like

sob: Trevor
sob: Martin

Downloaded from:
<url from yocto>

sob: Gary

Same for patches 2 and 3.

Patch 4 does come from upstream so you can use it as is.

[snip]

Quoted 6 lines
package/qt5/qt5webkit/Config.in new file +0 -0
new file mode 100644
index 0000000..fb84b1e

package/qt5/qt5webkit/Config.in line 9

Quoted 9 lines
package/qt5/qt5webkit/Config.in new file +9 -0
@@ -0,0 +1,24 @@
+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
+	# This module does not support static linking

This is actually redundant.

package/qt5/qt5webkit/Config.in line 10

Quoted 1 line
package/qt5/qt5webkit/Config.in new file +1 -0
+	depends on !BR2_STATIC_LIBS

There should probably be a comment as well:

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

Regards,
Arnout

Quoted 14 lines
package/qt5/qt5webkit/Config.in new file +14 -0
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	 # 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

[snip]

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