diff mbox

[v3,4/5] qt5webengine: new package

Message ID 1436538022-18924-4-git-send-email-corjon.j@ecagroup.com
State Superseded
Headers show

Commit Message

Julien Corjon July 10, 2015, 2:20 p.m. UTC
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
---
 package/qt5/Config.in                              |  1 +
 .../qt5webengine/0001-allow_all_linux_gxx.patch    | 16 +++++
 .../0002-switch_float_abi_for_arm_to_hard.patch    | 39 ++++++++++++
 package/qt5/qt5webengine/Config.in                 | 19 ++++++
 package/qt5/qt5webengine/qt5webengine.hash         |  4 ++
 package/qt5/qt5webengine/qt5webengine.mk           | 69 ++++++++++++++++++++++
 6 files changed, 148 insertions(+)
 create mode 100644 package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
 create mode 100644 package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
 create mode 100644 package/qt5/qt5webengine/Config.in
 create mode 100644 package/qt5/qt5webengine/qt5webengine.hash
 create mode 100644 package/qt5/qt5webengine/qt5webengine.mk

Comments

Thomas Petazzoni July 19, 2015, 1:02 p.m. UTC | #1
Dear Julien Corjon,

On Fri, 10 Jul 2015 16:20:21 +0200, Julien Corjon wrote:

> diff --git a/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
> new file mode 100644
> index 0000000..62c5a34
> --- /dev/null
> +++ b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
> @@ -0,0 +1,16 @@

This patch lacks a description + Signed-off-by. Also, don't forget to
submit it upstream.

> +Index: qt5webengine-5.5.0/tools/qmake/mkspecs/features/functions.prf
> +===================================================================
> +--- qt5webengine-5.5.0.orig/tools/qmake/mkspecs/features/functions.prf
> ++++ qt5webengine-5.5.0/tools/qmake/mkspecs/features/functions.prf
> +@@ -12,9 +12,9 @@ defineTest(isPlatformSupported) {
> +     return(false)
> +   }
> + 
> +-  linux-g++*:!isGCCVersionSupported(): return(false)
> ++  linux*g++*:!isGCCVersionSupported(): return(false)
> +   !isPythonVersionSupported(): return(false)
> +-  linux-g++*|win32-msvc2013|macx-clang: return(true)
> ++  linux*g++*|win32-msvc2013|macx-clang: return(true)
> +   boot2qt: return(true)
> + 
> +   skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.")
> diff --git a/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
> new file mode 100644
> index 0000000..6210a13
> --- /dev/null
> +++ b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
> @@ -0,0 +1,39 @@
> +commit 779d02564f64654487db059f71c7e8257a851397
> +Author: sbc <sbc@chromium.org>
> +Date:   Sun May 17 16:52:45 2015 -0700
> +
> +    Switch default float-abi for ARM linux from softfp to hard
> +    
> +    All the ARM linux builders already specify this, and
> +    armhf is the now the default for both Ubuntu and Debian.
> +    
> +    Followup cleanup cl for the bots:
> +    https://codereview.chromium.org/1141643004/
> +    
> +    BUG=308256
> +    
> +    Review URL: https://codereview.chromium.org/1140503004
> +    
> +    Cr-Original-Commit-Position: refs/heads/master@{#330316}
> +    Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
> +    Cr-Mirrored-Commit: ff8ec298fd273181647ec4d94c032343382dbe57

Please add your Signed-off-by here as well, so that we know who
integrated it in Buildroot.


 diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
> new file mode 100644
> index 0000000..39c087a
> --- /dev/null
> +++ b/package/qt5/qt5webengine/Config.in
> @@ -0,0 +1,19 @@
> +config BR2_PACKAGE_QT5WEBENGINE
> +	bool "qt5webengine"
> +	select BR2_PACKAGE_QT5BASE
> +	select BR2_PACKAGE_QT5BASE_GUI
> +	select BR2_PACKAGE_QT5BASE_FONTCONFIG
> +	select BR2_PACKAGE_QT5BASE_DBUS
> +	select BR2_PACKAGE_QT5BASE_ICU
> +	select BR2_PACKAGE_QT5WEBCHANNEL

So you need qt5webchannel, so this patch should come *after*
qt5webchannel is added as a package in your series.

> +	select BR2_PACKAGE_OPENSSL
> +	select BR2_PACKAGE_LIBCAP
> +	select BR2_PACKAGE_QT5DECLARATIVE
> +	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
> +	help
> +	  Qt is a cross-platform application and UI framework for
> +	  developers using C++.
> +
> +	  This package corresponds to the qt5webengine module.
> +
> +	  http://qt.io
> diff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash
> new file mode 100644
> index 0000000..b8c7e1d
> --- /dev/null
> +++ b/package/qt5/qt5webengine/qt5webengine.hash
> @@ -0,0 +1,4 @@
> +# Hashes from: http://download.qt.io/official_releases/qt/5.5/5.5.0/submodules/qtwebengine-opensource-src-5.5.0.tar.xz.mirrorlist
> +sha256 d703e60838744283f9a3419bdd8708f2e01d3ed81f18aaadd713342033cbd65a qtwebengine-opensource-src-5.5.0.tar.xz
> +sha1   e080d91b707af6ad096e356189488ffd65115553                         qtwebengine-opensource-src-5.5.0.tar.xz
> +md5    1405a87ce84ba58478f98e89ec1e737e                                 qtwebengine-opensource-src-5.5.0.tar.xz
> diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
> new file mode 100644
> index 0000000..d091c50
> --- /dev/null
> +++ b/package/qt5/qt5webengine/qt5webengine.mk
> @@ -0,0 +1,69 @@
> +################################################################################
> +#
> +# qt5webengine
> +#
> +################################################################################
> +
> +QT5WEBENGINE_VERSION = $(QT5_VERSION)
> +QT5WEBENGINE_SITE = $(QT5_SITE)
> +QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
> +QT5WEBENGINE_DEPENDENCIES = qt5base qt5declarative qt5webchannel libcap openssl host-gperf
> +QT5WEBENGINE_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
> +QT5WEBENGINE_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2
> +# Source files contain references to LGPL_EXCEPTION.txt but it is not included
> +# in the archive.
> +QT5WEBENGINE_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2
> +else
> +QT5WEBENGINE_LICENSE = Commercial license
> +QT5WEBENGINE_REDISTRIBUTE = NO
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
> +QT5WEBENGINE_DEPENDENCIES += qt5declarative
> +endif

You already have qt5declarative in the list of mandatory dependencies
above. So you really need to decide whether it's an optional dependency
or not.

> +
> +define QT5WEBENGINE_CONFIGURE_CMDS
> +	(cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
> +endef
> +
> +define QT5WEBENGINE_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
> +endef
> +
> +define QT5WEBENGINE_INSTALL_STAGING_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
> +	$(QT5_LA_PRL_FILES_FIXUP)
> +endef
> +
> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
> +define QT5WEBENGINE_INSTALL_TARGET_QMLS
> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtWebEngine $(TARGET_DIR)/usr/qml/
> +endef
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
> +define QT5WEBENGINE_INSTALL_TARGET_EXAMPLES
> +	cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/webengine* $(TARGET_DIR)/usr/lib/qt/examples/
> +endef
> +endif
> +
> +ifneq ($(BR2_STATIC_LIBS),y)
> +define QT5WEBENGINE_INSTALL_TARGET_LIBS
> +	cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebEngine*.so.* $(TARGET_DIR)/usr/lib
> +	cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/qtwebengine $(TARGET_DIR)/usr/lib/qt/plugins/
> +	cp -dpf $(STAGING_DIR)/usr/libexec/QtWebEngineProcess $(TARGET_DIR)/usr/libexec/
> +	cp -dpfr $(STAGING_DIR)/usr/translations/qtwebengine_locales $(TARGET_DIR)/usr/translations/
> +	cp -dpf $(STAGING_DIR)/usr/qtwebengine_resources.pak $(TARGET_DIR)/usr/
> +	# cp -dpf $(STAGING_DIR)/usr/icudtl.dat $(TARGET_DIR)/usr/

Line commented. Why?

Thomas
Julien Corjon July 20, 2015, 9:17 a.m. UTC | #2
Dear Thomas,

It's look like I forget to send the cover letter for this series...
I submited the qt webengine in hurry since you had the hackathon on the 
week-end and did not want you to review the v2 of qt5.5.0 integration.

In the missing cover letter I explained that qtwebengine was an work in 
progress and should not be considered as a commit request.

Instead of split qtwebengine in an other series I keep this one in 
qt5.5.0 bump series as it depend on it. Not sure it was a good idea...

Le 19/07/2015 15:02, Thomas Petazzoni a écrit :
> Dear Julien Corjon,
>
> On Fri, 10 Jul 2015 16:20:21 +0200, Julien Corjon wrote:
>
>> diff --git a/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
>> new file mode 100644
>> index 0000000..62c5a34
>> --- /dev/null
>> +++ b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
>> @@ -0,0 +1,16 @@
>
> This patch lacks a description + Signed-off-by. Also, don't forget to
> submit it upstream.
>

Ok, I will add a description and a Signed off in a v4. Also I'm not sure 
to submit it upstream since Yocto community tagged the (almost) same 
patch as 'Inappropriate [OE specific]'[1].
In the source file we can read : 'Qt WebEngine can currently only be 
built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for 
Device Creation' [2] but Qt community intend to support embedded linux 
and embedded Android [3].

...

>> diff --git a/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
>> new file mode 100644
>> index 0000000..6210a13
>> --- /dev/null
>> +++ b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
>> @@ -0,0 +1,39 @@
>> +commit 779d02564f64654487db059f71c7e8257a851397
>> +Author: sbc <sbc@chromium.org>
>> +Date:   Sun May 17 16:52:45 2015 -0700
>> +
>> +    Switch default float-abi for ARM linux from softfp to hard
>> +
>> +    All the ARM linux builders already specify this, and
>> +    armhf is the now the default for both Ubuntu and Debian.
>> +
>> +    Followup cleanup cl for the bots:
>> +    https://codereview.chromium.org/1141643004/
>> +
>> +    BUG=308256
>> +
>> +    Review URL: https://codereview.chromium.org/1140503004
>> +
>> +    Cr-Original-Commit-Position: refs/heads/master@{#330316}
>> +    Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
>> +    Cr-Mirrored-Commit: ff8ec298fd273181647ec4d94c032343382dbe57
>
> Please add your Signed-off-by here as well, so that we know who
> integrated it in Buildroot.
>

To be done in a v4 version. I realize afterwards that this patch will 
not apply 'as is' since it is from chromium project and the file does 
not have the same path in qt5webengine sources.

>
>   diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
>> new file mode 100644
>> index 0000000..39c087a
>> --- /dev/null
>> +++ b/package/qt5/qt5webengine/Config.in
>> @@ -0,0 +1,19 @@
>> +config BR2_PACKAGE_QT5WEBENGINE
>> +	bool "qt5webengine"
>> +	select BR2_PACKAGE_QT5BASE
>> +	select BR2_PACKAGE_QT5BASE_GUI
>> +	select BR2_PACKAGE_QT5BASE_FONTCONFIG
>> +	select BR2_PACKAGE_QT5BASE_DBUS
>> +	select BR2_PACKAGE_QT5BASE_ICU
>> +	select BR2_PACKAGE_QT5WEBCHANNEL
>
> So you need qt5webchannel, so this patch should come *after*
> qt5webchannel is added as a package in your series.
>

I messed-up with git (I had mixed rebase/amend on several branches) and 
did not find a way to force webchannel before webengine in patches order.

>> +	select BR2_PACKAGE_OPENSSL
>> +	select BR2_PACKAGE_LIBCAP
>> +	select BR2_PACKAGE_QT5DECLARATIVE
>> +	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
>> +	help
>> +	  Qt is a cross-platform application and UI framework for
>> +	  developers using C++.
>> +
>> +	  This package corresponds to the qt5webengine module.
>> +
>> +	  http://qt.io
>> diff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash
>> new file mode 100644
>> index 0000000..b8c7e1d
>> --- /dev/null
>> +++ b/package/qt5/qt5webengine/qt5webengine.hash
>> @@ -0,0 +1,4 @@
>> +# Hashes from: http://download.qt.io/official_releases/qt/5.5/5.5.0/submodules/qtwebengine-opensource-src-5.5.0.tar.xz.mirrorlist
>> +sha256 d703e60838744283f9a3419bdd8708f2e01d3ed81f18aaadd713342033cbd65a qtwebengine-opensource-src-5.5.0.tar.xz
>> +sha1   e080d91b707af6ad096e356189488ffd65115553                         qtwebengine-opensource-src-5.5.0.tar.xz
>> +md5    1405a87ce84ba58478f98e89ec1e737e                                 qtwebengine-opensource-src-5.5.0.tar.xz
>> diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
>> new file mode 100644
>> index 0000000..d091c50
>> --- /dev/null
>> +++ b/package/qt5/qt5webengine/qt5webengine.mk
>> @@ -0,0 +1,69 @@
>> +################################################################################
>> +#
>> +# qt5webengine
>> +#
>> +################################################################################
>> +
>> +QT5WEBENGINE_VERSION = $(QT5_VERSION)
>> +QT5WEBENGINE_SITE = $(QT5_SITE)
>> +QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
>> +QT5WEBENGINE_DEPENDENCIES = qt5base qt5declarative qt5webchannel libcap openssl host-gperf
>> +QT5WEBENGINE_INSTALL_STAGING = YES
>> +
>> +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
>> +QT5WEBENGINE_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2
>> +# Source files contain references to LGPL_EXCEPTION.txt but it is not included
>> +# in the archive.
>> +QT5WEBENGINE_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2
>> +else
>> +QT5WEBENGINE_LICENSE = Commercial license
>> +QT5WEBENGINE_REDISTRIBUTE = NO
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
>> +QT5WEBENGINE_DEPENDENCIES += qt5declarative
>> +endif
>
> You already have qt5declarative in the list of mandatory dependencies
> above. So you really need to decide whether it's an optional dependency
> or not.
>

I'm not sure yet.

>> +
>> +define QT5WEBENGINE_CONFIGURE_CMDS
>> +	(cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
>> +endef
>> +
>> +define QT5WEBENGINE_BUILD_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
>> +endef
>> +
>> +define QT5WEBENGINE_INSTALL_STAGING_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
>> +	$(QT5_LA_PRL_FILES_FIXUP)
>> +endef
>> +
>> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
>> +define QT5WEBENGINE_INSTALL_TARGET_QMLS
>> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtWebEngine $(TARGET_DIR)/usr/qml/
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
>> +define QT5WEBENGINE_INSTALL_TARGET_EXAMPLES
>> +	cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/webengine* $(TARGET_DIR)/usr/lib/qt/examples/
>> +endef
>> +endif
>> +
>> +ifneq ($(BR2_STATIC_LIBS),y)
>> +define QT5WEBENGINE_INSTALL_TARGET_LIBS
>> +	cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebEngine*.so.* $(TARGET_DIR)/usr/lib
>> +	cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/qtwebengine $(TARGET_DIR)/usr/lib/qt/plugins/
>> +	cp -dpf $(STAGING_DIR)/usr/libexec/QtWebEngineProcess $(TARGET_DIR)/usr/libexec/
>> +	cp -dpfr $(STAGING_DIR)/usr/translations/qtwebengine_locales $(TARGET_DIR)/usr/translations/
>> +	cp -dpf $(STAGING_DIR)/usr/qtwebengine_resources.pak $(TARGET_DIR)/usr/
>> +	# cp -dpf $(STAGING_DIR)/usr/icudtl.dat $(TARGET_DIR)/usr/
>
> Line commented. Why?

Install on staging try to copy icudtl.dat but this file is not built. 
Since i don't know why, i keeped this line as comment for futher 
investigation.

>
> Thomas
>

[1] 
https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch
[2] 
https://github.com/qtproject/qtwebengine/blob/dev/tools/qmake/mkspecs/features/functions.prf
[3] https://wiki.qt.io/QtWebEngine

Regards

Julien Corjon
Thomas Petazzoni July 20, 2015, 9:25 a.m. UTC | #3
Julien,

On Mon, 20 Jul 2015 09:17:35 +0000, Julien CORJON wrote:

> It's look like I forget to send the cover letter for this series...
> I submited the qt webengine in hurry since you had the hackathon on the 
> week-end and did not want you to review the v2 of qt5.5.0 integration.
> 
> In the missing cover letter I explained that qtwebengine was an work in 
> progress and should not be considered as a commit request.
> 
> Instead of split qtwebengine in an other series I keep this one in 
> qt5.5.0 bump series as it depend on it. Not sure it was a good idea...

Ok, then maybe your next version should only contain the Qt 5.5 bump,
and then you can send the qt5webengine patch separately once you
consider it ready.


> > So you need qt5webchannel, so this patch should come *after*
> > qt5webchannel is added as a package in your series.
> >
> 
> I messed-up with git (I had mixed rebase/amend on several branches) and 
> did not find a way to force webchannel before webengine in patches order.

Just use 'git rebase -i'. It allows you to re-order your commits at any
time.

Thomas
Gary Bisson Dec. 23, 2015, 9:40 a.m. UTC | #4
Julien, Thomas, All,

On Mon, Jul 20, 2015 at 11:25:15AM +0200, Thomas Petazzoni wrote:
> Julien,
> 
> On Mon, 20 Jul 2015 09:17:35 +0000, Julien CORJON wrote:
> 
> > It's look like I forget to send the cover letter for this series...
> > I submited the qt webengine in hurry since you had the hackathon on the 
> > week-end and did not want you to review the v2 of qt5.5.0 integration.
> > 
> > In the missing cover letter I explained that qtwebengine was an work in 
> > progress and should not be considered as a commit request.
> > 
> > Instead of split qtwebengine in an other series I keep this one in 
> > qt5.5.0 bump series as it depend on it. Not sure it was a good idea...
> 
> Ok, then maybe your next version should only contain the Qt 5.5 bump,
> and then you can send the qt5webengine patch separately once you
> consider it ready.
> 
> 
> > > So you need qt5webchannel, so this patch should come *after*
> > > qt5webchannel is added as a package in your series.
> > >
> > 
> > I messed-up with git (I had mixed rebase/amend on several branches) and 
> > did not find a way to force webchannel before webengine in patches order.
> 
> Just use 'git rebase -i'. It allows you to re-order your commits at any
> time.

Any update on this package? I'm asking since webkit is declared as
deprecated/legacy without an alternative. Let me know if I can be of any
help.

Regards,
Gary
Thomas Petazzoni Dec. 23, 2015, 9:49 a.m. UTC | #5
Gary,

On Wed, 23 Dec 2015 10:40:50 +0100, Gary Bisson wrote:

> Any update on this package? I'm asking since webkit is declared as
> deprecated/legacy without an alternative. Let me know if I can be of any
> help.

Right now, there is no longer any qt5webengine patch pending in
patchwork, so we're waiting for someone to resend an updated version of
the patch.

If you have some time, and Julien Corjon agrees, maybe you can adopt
his patch?

Thanks,

Thomas
Julien Corjon Dec. 23, 2015, 10:15 a.m. UTC | #6
Gary,

Le 23/12/2015 10:49, Thomas Petazzoni a écrit :
> Gary,
>
> On Wed, 23 Dec 2015 10:40:50 +0100, Gary Bisson wrote:
>
>> Any update on this package? I'm asking since webkit is declared as
>> deprecated/legacy without an alternative. Let me know if I can be of any
>> help.

I did not work on this qt module since my previous post. And QtWebkit 
will be removed in Qt 5.6.0 released package (but sources will be still 
available [1])

>
> Right now, there is no longer any qt5webengine patch pending in
> patchwork, so we're waiting for someone to resend an updated version of
> the patch.
>
> If you have some time, and Julien Corjon agrees, maybe you can adopt
> his patch?

Sure, you can adopt my patch and make every modifications needed to make 
it work :-)

With the release of Qt 5.6.0-beta I have start a branch to take a look 
on status of pending Qt patch and evaluate the integration effort of the 
'new/not integrated yet' modules in Buildroot (canvas3D, location, 
QuickControl2, Wayland, WebEngine, WebView).

Regards,

Julien

>
> Thanks,
>
> Thomas
>


[1] https://wiki.qt.io/New_Features_in_Qt_5.6
Gary Bisson Dec. 23, 2015, 2:21 p.m. UTC | #7
Julien, Thomas, All,

Thanks for the quick replies.

On Wed, Dec 23, 2015 at 11:15 AM, Julien CORJON <corjon.j@ecagroup.com> wrote:
> Gary,
>
> Le 23/12/2015 10:49, Thomas Petazzoni a écrit :
>> Gary,
>>
>> On Wed, 23 Dec 2015 10:40:50 +0100, Gary Bisson wrote:
>>
>>> Any update on this package? I'm asking since webkit is declared as
>>> deprecated/legacy without an alternative. Let me know if I can be of any
>>> help.
>
> I did not work on this qt module since my previous post. And QtWebkit
> will be removed in Qt 5.6.0 released package (but sources will be still
> available [1])
>
>>
>> Right now, there is no longer any qt5webengine patch pending in
>> patchwork, so we're waiting for someone to resend an updated version of
>> the patch.
>>
>> If you have some time, and Julien Corjon agrees, maybe you can adopt
>> his patch?
>
> Sure, you can adopt my patch and make every modifications needed to make
> it work :-)

Ok I'll look at it when I have time. I definitely would like to see
the package for next release. Not sure I'll be able to submit anything
before next year though.

Regarding the current patch, I'm not sure about the armhf patch, does
it default to armhf all the time (except when OS=android) even if the
toolchain doesn't support it?
Also dependencies need some work since this package implicitly depend
on OpenGL, so the select of BR2_PACKAGE_QT5DECLARATIVE_QUICK can fail
currently.

> With the release of Qt 5.6.0-beta I have start a branch to take a look
> on status of pending Qt patch and evaluate the integration effort of the
> 'new/not integrated yet' modules in Buildroot (canvas3D, location,
> QuickControl2, Wayland, WebEngine, WebView).

I don't feel brave enough to look at all those items, that's for sure.
I'll let you know once I've spent some time on webengine.

Regards,
Gary
Julien Corjon Dec. 23, 2015, 3:04 p.m. UTC | #8
Gary,

Le 23/12/2015 15:21, Gary Bisson a écrit :
> Julien, Thomas, All,

>

> Thanks for the quick replies.

>

> On Wed, Dec 23, 2015 at 11:15 AM, Julien CORJON <corjon.j@ecagroup.com> wrote:

>> Gary,

>>

>> Le 23/12/2015 10:49, Thomas Petazzoni a écrit :

>>> Gary,

>>>

>>> On Wed, 23 Dec 2015 10:40:50 +0100, Gary Bisson wrote:

>>>

>>>> Any update on this package? I'm asking since webkit is declared as

>>>> deprecated/legacy without an alternative. Let me know if I can be of any

>>>> help.

>>

>> I did not work on this qt module since my previous post. And QtWebkit

>> will be removed in Qt 5.6.0 released package (but sources will be still

>> available [1])

>>

>>>

>>> Right now, there is no longer any qt5webengine patch pending in

>>> patchwork, so we're waiting for someone to resend an updated version of

>>> the patch.

>>>

>>> If you have some time, and Julien Corjon agrees, maybe you can adopt

>>> his patch?

>>

>> Sure, you can adopt my patch and make every modifications needed to make

>> it work :-)

>

> Ok I'll look at it when I have time. I definitely would like to see

> the package for next release. Not sure I'll be able to submit anything

> before next year though.


Chromium is not an easy one. I give up because I didn't had enough time 
and skill...

>

> Regarding the current patch, I'm not sure about the armhf patch, does

> it default to armhf all the time (except when OS=android) even if the

> toolchain doesn't support it?


It default to armhf for arm7 even if the toolchain doesn't support it. 
It had some issue to compile with the linaro toolchain so i took this 
patch from chromium.

> Also dependencies need some work since this package implicitly depend

> on OpenGL, so the select of BR2_PACKAGE_QT5DECLARATIVE_QUICK can fail

> currently.


Indeed

>

>> With the release of Qt 5.6.0-beta I have start a branch to take a look

>> on status of pending Qt patch and evaluate the integration effort of the

>> 'new/not integrated yet' modules in Buildroot (canvas3D, location,

>> QuickControl2, Wayland, WebEngine, WebView).

>

> I don't feel brave enough to look at all those items, that's for sure.

> I'll let you know once I've spent some time on webengine.

>

> Regards,

> Gary

>
diff mbox

Patch

diff --git a/package/qt5/Config.in b/package/qt5/Config.in
index 737a789..4cce323 100644
--- a/package/qt5/Config.in
+++ b/package/qt5/Config.in
@@ -40,6 +40,7 @@  source "package/qt5/qt5quickcontrols/Config.in"
 source "package/qt5/qt5sensors/Config.in"
 source "package/qt5/qt5serialport/Config.in"
 source "package/qt5/qt5svg/Config.in"
+source "package/qt5/qt5webengine/Config.in"
 source "package/qt5/qt5websockets/Config.in"
 source "package/qt5/qt5x11extras/Config.in"
 source "package/qt5/qt5xmlpatterns/Config.in"
diff --git a/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
new file mode 100644
index 0000000..62c5a34
--- /dev/null
+++ b/package/qt5/qt5webengine/0001-allow_all_linux_gxx.patch
@@ -0,0 +1,16 @@ 
+Index: qt5webengine-5.5.0/tools/qmake/mkspecs/features/functions.prf
+===================================================================
+--- qt5webengine-5.5.0.orig/tools/qmake/mkspecs/features/functions.prf
++++ qt5webengine-5.5.0/tools/qmake/mkspecs/features/functions.prf
+@@ -12,9 +12,9 @@ defineTest(isPlatformSupported) {
+     return(false)
+   }
+ 
+-  linux-g++*:!isGCCVersionSupported(): return(false)
++  linux*g++*:!isGCCVersionSupported(): return(false)
+   !isPythonVersionSupported(): return(false)
+-  linux-g++*|win32-msvc2013|macx-clang: return(true)
++  linux*g++*|win32-msvc2013|macx-clang: return(true)
+   boot2qt: return(true)
+ 
+   skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.")
diff --git a/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
new file mode 100644
index 0000000..6210a13
--- /dev/null
+++ b/package/qt5/qt5webengine/0002-switch_float_abi_for_arm_to_hard.patch
@@ -0,0 +1,39 @@ 
+commit 779d02564f64654487db059f71c7e8257a851397
+Author: sbc <sbc@chromium.org>
+Date:   Sun May 17 16:52:45 2015 -0700
+
+    Switch default float-abi for ARM linux from softfp to hard
+    
+    All the ARM linux builders already specify this, and
+    armhf is the now the default for both Ubuntu and Debian.
+    
+    Followup cleanup cl for the bots:
+    https://codereview.chromium.org/1141643004/
+    
+    BUG=308256
+    
+    Review URL: https://codereview.chromium.org/1140503004
+    
+    Cr-Original-Commit-Position: refs/heads/master@{#330316}
+    Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
+    Cr-Mirrored-Commit: ff8ec298fd273181647ec4d94c032343382dbe57
+
+diff --git a/common.gypi b/common.gypi
+index cd9f5b7..2f5ea2d 100644
+--- a/common.gypi
++++ b/common.gypi
+@@ -2311,9 +2311,12 @@
+           }, {
+             'arm_fpu%': 'vfpv3-d16',
+           }],
++          ['OS=="android"', {
++            'arm_float_abi%': 'softfp',
++          }, {
++            'arm_float_abi%': 'hard',
++          }],
+         ],
+-        # Change the default to hard once the armhf transition is complete.
+-        'arm_float_abi%': 'softfp',
+         'arm_thumb%': 1,
+       }],
+ 
diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
new file mode 100644
index 0000000..39c087a
--- /dev/null
+++ b/package/qt5/qt5webengine/Config.in
@@ -0,0 +1,19 @@ 
+config BR2_PACKAGE_QT5WEBENGINE
+	bool "qt5webengine"
+	select BR2_PACKAGE_QT5BASE
+	select BR2_PACKAGE_QT5BASE_GUI
+	select BR2_PACKAGE_QT5BASE_FONTCONFIG
+	select BR2_PACKAGE_QT5BASE_DBUS
+	select BR2_PACKAGE_QT5BASE_ICU
+	select BR2_PACKAGE_QT5WEBCHANNEL
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_LIBCAP
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	help
+	  Qt is a cross-platform application and UI framework for
+	  developers using C++.
+
+	  This package corresponds to the qt5webengine module.
+
+	  http://qt.io
diff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash
new file mode 100644
index 0000000..b8c7e1d
--- /dev/null
+++ b/package/qt5/qt5webengine/qt5webengine.hash
@@ -0,0 +1,4 @@ 
+# Hashes from: http://download.qt.io/official_releases/qt/5.5/5.5.0/submodules/qtwebengine-opensource-src-5.5.0.tar.xz.mirrorlist
+sha256 d703e60838744283f9a3419bdd8708f2e01d3ed81f18aaadd713342033cbd65a qtwebengine-opensource-src-5.5.0.tar.xz
+sha1   e080d91b707af6ad096e356189488ffd65115553                         qtwebengine-opensource-src-5.5.0.tar.xz
+md5    1405a87ce84ba58478f98e89ec1e737e                                 qtwebengine-opensource-src-5.5.0.tar.xz
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
new file mode 100644
index 0000000..d091c50
--- /dev/null
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -0,0 +1,69 @@ 
+################################################################################
+#
+# qt5webengine
+#
+################################################################################
+
+QT5WEBENGINE_VERSION = $(QT5_VERSION)
+QT5WEBENGINE_SITE = $(QT5_SITE)
+QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
+QT5WEBENGINE_DEPENDENCIES = qt5base qt5declarative qt5webchannel libcap openssl host-gperf
+QT5WEBENGINE_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
+QT5WEBENGINE_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2
+# Source files contain references to LGPL_EXCEPTION.txt but it is not included
+# in the archive.
+QT5WEBENGINE_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2
+else
+QT5WEBENGINE_LICENSE = Commercial license
+QT5WEBENGINE_REDISTRIBUTE = NO
+endif
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
+QT5WEBENGINE_DEPENDENCIES += qt5declarative
+endif
+
+define QT5WEBENGINE_CONFIGURE_CMDS
+	(cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
+endef
+
+define QT5WEBENGINE_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define QT5WEBENGINE_INSTALL_STAGING_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
+	$(QT5_LA_PRL_FILES_FIXUP)
+endef
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
+define QT5WEBENGINE_INSTALL_TARGET_QMLS
+	cp -dpfr $(STAGING_DIR)/usr/qml/QtWebEngine $(TARGET_DIR)/usr/qml/
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
+define QT5WEBENGINE_INSTALL_TARGET_EXAMPLES
+	cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/webengine* $(TARGET_DIR)/usr/lib/qt/examples/
+endef
+endif
+
+ifneq ($(BR2_STATIC_LIBS),y)
+define QT5WEBENGINE_INSTALL_TARGET_LIBS
+	cp -dpf $(STAGING_DIR)/usr/lib/libQt5WebEngine*.so.* $(TARGET_DIR)/usr/lib
+	cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/qtwebengine $(TARGET_DIR)/usr/lib/qt/plugins/
+	cp -dpf $(STAGING_DIR)/usr/libexec/QtWebEngineProcess $(TARGET_DIR)/usr/libexec/
+	cp -dpfr $(STAGING_DIR)/usr/translations/qtwebengine_locales $(TARGET_DIR)/usr/translations/
+	cp -dpf $(STAGING_DIR)/usr/qtwebengine_resources.pak $(TARGET_DIR)/usr/
+	# cp -dpf $(STAGING_DIR)/usr/icudtl.dat $(TARGET_DIR)/usr/
+endef
+endif
+
+define QT5WEBENGINE_INSTALL_TARGET_CMDS
+	$(QT5WEBENGINE_INSTALL_TARGET_LIBS)
+	$(QT5WEBENGINE_INSTALL_TARGET_QMLS)
+	$(QT5WEBENGINE_INSTALL_TARGET_EXAMPLES)
+endef
+
+$(eval $(generic-package))