[Buildroot] [PATCH v3 4/5] qt5webengine: new package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Jul 19 13:02:36 UTC 2015


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 at 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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the buildroot mailing list