[1/1] qt5webkit: add missing icu dependency

Message ID 20180211020330.32658-1-gael.portay@savoirfairelinux.com
State Changes Requested
Headers show
Series
  • [1/1] qt5webkit: add missing icu dependency
Related show

Commit Message

Gaël PORTAY Feb. 11, 2018, 2:03 a.m.
Qt WebKit requires icu to be build.

The Config.in is already selecting BR2_PACKAGE_QT5BASE_ICU but the
dependency is missing from the QT5WEBKIT_DEPENDENCIES list in
qt5webkit.mk.

Add icu to the list.

Fixes:

	>>> qt5webkit 5.9.1 Configuring
	...
	Running configure tests...

	Checking for fontconfig... no
	Checking for gccdepends... yes
	Checking for glx... no
	Checking for gnuld... yes
	Checking for icu... no
	Checking for leveldb... no
	Checking for libsqlite3... yes
	Checking for libwebp... no
	Checking for libXcomposite... no
	Checking for libxml2... no
	Checking for libXrender... no
	Checking for libxslt... no
	Checking for libzlib... yes
	Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /home/gportay/src/buildroot/output-beaglebone_qt5/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output-beaglebone_qt5/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output-beaglebone_qt5/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig
	Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /home/gportay/src/buildroot/output-beaglebone_qt5/host/arm-buildroot-linux-gnueabihf/sysroot
	Negative repeat count does nothing at /home/gportay/src/buildroot/output-beaglebone_qt5/build/qt5webkit-5.9.1/Tools/qmake/dump-features.pl line 17.
	Negative repeat count does nothing at /home/gportay/src/buildroot/output-beaglebone_qt5/build/qt5webkit-5.9.1/Tools/qmake/dump-features.pl line 17.
	Negative repeat count does nothing at /home/gportay/src/buildroot/output-beaglebone_qt5/build/qt5webkit-5.9.1/Tools/qmake/dump-features.pl line 17.
	Negative repeat count does nothing at /home/gportay/src/buildroot/output-beaglebone_qt5/build/qt5webkit-5.9.1/Tools/qmake/dump-features.pl line 17.

	Final configuration:

	Build ......................... webkit2
	Configuration ................. release
	All-in-one files .............. no
	GNUmake ....................... yes
	Static libs as shared ......... no
	Static libs as thin archives .. yes
	Production build .............. yes

	Have .......................... qtquick qttestlib sqlite3
	Use ........................... tiled_backing_store cross_platform_context_menus zlib 3d_graphics leveldb
	Features ...................... fast_mobile_scrolling gesture_events inspector_server legacy_viewport_adaption smooth_scrolling subpixel_layout touch_adjustment view_mode_css_media plugin_architecture_unsupported

	3D Rendering .................. yes
	Accelerated 2D Canvas ......... yes
	Battery Status ................ no
	Blob .......................... yes
	Canvas Path ................... yes
	CanvasProxy ................... no
	Channel Messaging ............. yes
	Content Security Policy 1.1 ... no
	CSS Device Adaptation ......... no
	CSS Exclusions ................ yes
	CSS Shapes .................... yes
	CSS Filters ................... yes
	CSS3 Conditional Rules support (i.e. @supports)  no
	CSS3 Text ..................... no
	CSS3 Text Line Break .......... no
	CSS box-decoration-break ...... yes
	CSS image-orientation ......... no
	CSS image-resolution .......... no
	CSS image-set ................. yes
	CSS Regions ................... yes
	CSS Shaders ................... no
	CSS sticky position ........... yes
	CSS Compositing ............... yes
	Support for unprefixed CSS animations and transforms  yes
	CSS Variable .................. no
	Custom Scheme Handler ......... no
	Datalist Element .............. yes
	Data Transfer Items ........... no
	Details Element ............... yes
	Device Orientation ............ no
	Dialog Element ................ no
	Directory Upload .............. no
	Expose DOM4 Events constructors  no
	Download Attribute ............ yes
	File System ................... no
	Filters ....................... yes
	Font Load Events .............. no
	FTP Directory ................. yes
	Fullscreen API ................ yes
	Gamepad ....................... yes
	Geolocation ................... no
	High DPI Canvas ............... no
	Icondatabase .................. yes
	Iframe seamless attribute ..... yes
	Indexed Database .............. yes
	Input Speech .................. no
	Input Type Color .............. yes
	Input Type Date ............... no
	Broken Input Type Datetime .... no
	Input Type Datetimelocal ...... no
	Input Type Month .............. no
	Input Type Time ............... no
	Input Type Week ............... no
	Inspector ..................... yes
	JavaScript Debugger ........... yes
	Legacy Notifications .......... yes
	Legacy Vendor Prefix .......... yes
	Legacy Web Audio .............. yes
	Link Prefetch ................. yes
	MathML ........................ no
	Media Capture ................. no
	Media Source .................. no
	Media Statistics .............. no
	Media Stream .................. no
	Meter Element ................. yes
	MHTML ......................... yes
	Microdata ..................... no
	Scaled mouse cursor ........... no
	Navigator Content Utils ....... no
	Netscape Plugin API ........... no
	Network Info .................. no
	Support for 'X-Content-Type-Options: nosniff'  no
	Notifications ................. yes
	Orientation Events ............ no
	Page Visibility API ........... yes
	Performance Timeline .......... no
	Progress Element .............. yes
	Proximity Events .............. no
	Quota ......................... no
	Resolution media query ........ yes
	Resource Timing ............... no
	Request Animation Frame ....... yes
	Seccomp Filter sandbox ........ no
	Scripted Speech ............... no
	Shadow DOM .................... no
	Shared Workers ................ yes
	SQL Database .................. yes
	Style Scoped .................. no
	Suid sandbox for linux ........ no
	SVG ........................... yes
	SVG Fonts ..................... yes
	HTMLTemplateElement ........... no
	Text Autosizing ............... no
	Tiled Backing Store ........... no
	Threaded HTML parser .......... no
	Touch Events .................. yes
	Touch Slider .................. yes
	Touch Icon Loading Support .... no
	User Timing ................... no
	Vibration ..................... no
	Video ......................... no
	Video Track ................... no
	WebGL ......................... yes
	Web Audio ..................... no
	Web Sockets ................... yes
	Web Timing .................... yes
	Workers ....................... yes
	XHR Timeout ................... yes
	XSLT .......................... no

	Encountered 4 configuration warning(s):

	 ! Qt not configured to use system libjpeg, QImageDecoder will decode JPEG images
	 ! Qt not configured to use system libpng, QImageDecoder will decode PNG images
	 ! Missing GStreamer or QtMultimedia, disabling HTML5 media element support
	 ! Missing QtWidgets module, disabling WebKit1

	The WebKit build was disabled for the following reasons:
	    * ICU is required.

Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
 package/qt5/qt5webkit/qt5webkit.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni Feb. 11, 2018, 9:14 a.m. | #1
Hello,

On Sat, 10 Feb 2018 21:03:30 -0500, Gaël PORTAY wrote:

> The Config.in is already selecting BR2_PACKAGE_QT5BASE_ICU but the
> dependency is missing from the QT5WEBKIT_DEPENDENCIES list in
> qt5webkit.mk.

And qt5base.mk has:

QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu)

and in turn, qt5webkit depends on qt5base.

Therefore, I don't see how you can fall into the situation where the
qt5webkit build is started without icu being already built.

Could you explain ?

Thanks!

Thomas
Gaël PORTAY Feb. 11, 2018, 2:49 p.m. | #2
Thomas,

On Sun, Feb 11, 2018 at 10:14:45AM +0100, Thomas Petazzoni wrote:
> Hello,
> 
> On Sat, 10 Feb 2018 21:03:30 -0500, Gaël PORTAY wrote:
> 
> > The Config.in is already selecting BR2_PACKAGE_QT5BASE_ICU but the
> > dependency is missing from the QT5WEBKIT_DEPENDENCIES list in
> > qt5webkit.mk.
> 
> And qt5base.mk has:
> 
> QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu)
> 
> and in turn, qt5webkit depends on qt5base.
> 

Good catch !

> Therefore, I don't see how you can fall into the situation where the
> qt5webkit build is started without icu being already built.
> 
> Could you explain ?
> 

Well, I do not remember exactly the situation :/

It happened in development. I assume I had a qtbase already build
(certainly without ICU support). And then, I build qtwebkit running
`make qt5webkit`, the issue happened.

BTW, I made a quick look to qtwebkit, and it does not seem to call some
Qt ICU symbols. It looks qtwebkit requires ICU for its own needs.

> Thanks!
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> http://bootlin.com
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Gael
Thomas Petazzoni Feb. 12, 2018, 8:07 p.m. | #3
Hello,

On Sun, 11 Feb 2018 09:49:26 -0500, Gaël PORTAY wrote:

> > Therefore, I don't see how you can fall into the situation where the
> > qt5webkit build is started without icu being already built.
> > 
> > Could you explain ?
> >   
> 
> Well, I do not remember exactly the situation :/
> 
> It happened in development. I assume I had a qtbase already build
> (certainly without ICU support). And then, I build qtwebkit running
> `make qt5webkit`, the issue happened.
> 
> BTW, I made a quick look to qtwebkit, and it does not seem to call some
> Qt ICU symbols. It looks qtwebkit requires ICU for its own needs.

If that is truly the case, then qtwebkit should not select
BR2_PACKAGE_QT5BASE_ICU. Can you try to make a build with qt5webkit
enabled, but BR2_PACKAGE_QT5BASE_ICU disabled, and see what happens ?

Perhaps this select BR2_PACKAGE_QT5BASE_ICU needs to be turned into a
select BR2_PACKAGE_ICU + icu in QT5WEBKIT_DEPENDENCIES. Of course, make
sure to verify for Qt 5.6 and Qt 5.9. I hope you have some decent build
machines, because building qt5webkit is very long :)

Best regards,

Thomas
Gaël PORTAY Feb. 12, 2018, 8:54 p.m. | #4
Thomas,

On Mon, Feb 12, 2018 at 09:07:23PM +0100, Thomas Petazzoni wrote:
> > BTW, I made a quick look to qtwebkit, and it does not seem to call some
> > Qt ICU symbols. It looks qtwebkit requires ICU for its own needs.
> 
> If that is truly the case, then qtwebkit should not select
> BR2_PACKAGE_QT5BASE_ICU. Can you try to make a build with qt5webkit
> enabled, but BR2_PACKAGE_QT5BASE_ICU disabled, and see what happens ?
> 
> Perhaps this select BR2_PACKAGE_QT5BASE_ICU needs to be turned into a
> select BR2_PACKAGE_ICU + icu in QT5WEBKIT_DEPENDENCIES. Of course, make
> sure to verify for Qt 5.6 and Qt 5.9. I hope you have some decent build
> machines, because building qt5webkit is very long :)
> 

Fore sure! I already have a patch for this :) I need to find time to
test it and make sure it still works without QT5 ICU.

Hopefuly, I have access to a powerful machine now. I get the output
within the next 1 hour.

> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> http://bootlin.com

Regards,
Gael

Patch

diff --git a/package/qt5/qt5webkit/qt5webkit.mk b/package/qt5/qt5webkit/qt5webkit.mk
index 7925b114e6..3b218a5385 100644
--- a/package/qt5/qt5webkit/qt5webkit.mk
+++ b/package/qt5/qt5webkit/qt5webkit.mk
@@ -16,7 +16,7 @@  endif
 QT5WEBKIT_SOURCE = qtwebkit-opensource-src-$(QT5WEBKIT_VERSION).tar.xz
 QT5WEBKIT_DEPENDENCIES = \
 	host-bison host-flex host-gperf host-python host-ruby \
-	qt5base sqlite
+	icu qt5base sqlite
 QT5WEBKIT_INSTALL_STAGING = YES
 
 QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1