All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1
@ 2018-02-21 14:27 Gaël PORTAY
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package Gaël PORTAY
                   ` (5 more replies)
  0 siblings, 6 replies; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:27 UTC (permalink / raw)
  To: buildroot

Dear maintainers,

This patch series bumps the latest version of Qt to 5.10.1. All modules
compile fine (on PC x86-64 BIOS configuration). I tested a few of them
through the examples.

The first two patches add two new host libraries that are needed by
qtwebengine (since 5.10.0). I patched libnss to be able to set the
include directory for zlib. The patch works the same way as for sqlite.
I have not submitted the patch mainline yet. 

The third patch adds a pkg-config wrapper for host packages. This
wrapper is needed by qtwebengine since this new version compiles host
tools that get host package data using pkg-config (host-libnss,
host-libpng).

The fourth patch updates all hashes for all Qt5 modules; at the
exception of qtwebkit (and qtwebkit-samples) that stay in 5.9.

Unfortunately, the filename has changed since 5.10. The module suffix
*opensource-src* has changed to *everywhere-src*. I introduced the
*qt5source* function to compute automatically the right filename
according to the Qt version. This function takes the module as first
argument and its version as second argument.

The two last patches fix build issues with qtwebengine. One adds the new
requirements (libnss, host-libnss, host-libpng). One sets the host
pkg-config wrapper for host to Ninja using the qmake $GN_PKG_CONFIG_HOST
environment variable. Those two last patches can be squashed to the
fourth patch.

Note: The third and the sixth patch fixes the issue below:

	FAILED: host/transport_security_state_generator 
	/home/gportay/src/buildroot/output-qt5.10/host/bin/python2 "../../3rdparty/chromium/build/toolchain/gcc_link_wrapper.py" --output="host/transport_security_state_generator" -- /usr/bin/g++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -m64 -Wl,-O1 -Wl,--gc-sections -Wl,-rpath-link=host -Wl,--disable-new-dtags -L/home/gportay/src/buildroot/output-qt5.10/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib -o "host/transport_security_state_generator" -Wl,--start-group @"host/transport_security_state_generator.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lnss3 -lnssutil3 -lsmime3 -lplds4 -lplc4 -lnspr4 
	/usr/bin/ld: cannot find /lib64/libpthread.so.0
	/usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a
	collect2: error: ld returned 1 exit status
	ninja: build stopped: subcommand failed.
	Makefile.gn_run:449: recipe for target 'run_ninja' failed

[1]: https://github.com/qt/qtwebengine/blob/v5.10.1/src/core/config/linux.pri#L111-L125

Changes since RFC:
 * add libnss and libnpsr host packages (qtwebengine)
 * add host-pkg-config wrapper (qtwebengine)
 * bump to Qt 5.10.1
 * add host-libnss and host-libpng dependencies to qtwebengine
 * set host pkg-config using $GN_PKG_CONFIG_HOST in qtwebengine

Regards,
Ga?l PORTAY (6):
  package: add libnpsr host package
  package: add libnss host package
  pkgconf: add host-pkg-config wrapper
  qt5: bump latest version to 5.10.1
  qt5webengine: satisfy new requirements for 5.10
  qt5webengine: set ninja host pkg-config tool

 package/libnspr/Config.in.host                     | 10 +++
 package/libnspr/libnspr.mk                         |  7 ++
 .../0002-add-zlib-include-dir-variable.patch       | 30 ++++++++
 package/libnss/libnss.mk                           | 50 ++++++++++++
 package/pkgconf/host-pkg-config                    |  4 +
 package/pkgconf/pkgconf.mk                         |  6 +-
 package/qt5/Config.in                              |  4 +-
 package/qt5/qt5.mk                                 | 10 ++-
 package/qt5/qt53d/qt53d.hash                       |  4 +-
 package/qt5/qt53d/qt53d.mk                         |  2 +-
 package/qt5/qt5base/qt5base.hash                   |  4 +-
 package/qt5/qt5base/qt5base.mk                     |  2 +-
 package/qt5/qt5canvas3d/qt5canvas3d.hash           |  4 +-
 package/qt5/qt5canvas3d/qt5canvas3d.mk             |  2 +-
 package/qt5/qt5charts/qt5charts.hash               |  4 +-
 package/qt5/qt5charts/qt5charts.mk                 |  2 +-
 ...rtrate-server-needs-only-core-and-bluetoo.patch | 32 --------
 package/qt5/qt5connectivity/qt5connectivity.hash   |  4 +-
 package/qt5/qt5connectivity/qt5connectivity.mk     |  2 +-
 package/qt5/qt5declarative/qt5declarative.hash     |  4 +-
 package/qt5/qt5declarative/qt5declarative.mk       |  2 +-
 package/qt5/qt5enginio/qt5enginio.mk               |  4 +-
 .../qt5graphicaleffects/qt5graphicaleffects.hash   |  4 +-
 .../qt5/qt5graphicaleffects/qt5graphicaleffects.mk |  2 +-
 package/qt5/qt5imageformats/qt5imageformats.hash   |  4 +-
 package/qt5/qt5imageformats/qt5imageformats.mk     |  2 +-
 package/qt5/qt5location/qt5location.hash           |  4 +-
 package/qt5/qt5location/qt5location.mk             |  2 +-
 package/qt5/qt5multimedia/qt5multimedia.hash       |  4 +-
 package/qt5/qt5multimedia/qt5multimedia.mk         |  2 +-
 package/qt5/qt5quickcontrols/qt5quickcontrols.hash |  4 +-
 package/qt5/qt5quickcontrols/qt5quickcontrols.mk   |  2 +-
 ...01-Example-flatstyle-needs-widgets-module.patch | 31 --------
 .../qt5/qt5quickcontrols2/qt5quickcontrols2.hash   |  4 +-
 package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk |  2 +-
 package/qt5/qt5script/qt5script.hash               |  4 +-
 package/qt5/qt5script/qt5script.mk                 |  2 +-
 package/qt5/qt5scxml/qt5scxml.hash                 |  4 +-
 package/qt5/qt5scxml/qt5scxml.mk                   |  2 +-
 package/qt5/qt5sensors/qt5sensors.hash             |  4 +-
 package/qt5/qt5sensors/qt5sensors.mk               |  2 +-
 package/qt5/qt5serialbus/qt5serialbus.hash         |  4 +-
 package/qt5/qt5serialbus/qt5serialbus.mk           |  2 +-
 package/qt5/qt5serialport/qt5serialport.hash       |  4 +-
 package/qt5/qt5serialport/qt5serialport.mk         |  2 +-
 package/qt5/qt5svg/qt5svg.hash                     |  4 +-
 package/qt5/qt5svg/qt5svg.mk                       |  2 +-
 package/qt5/qt5tools/qt5tools.hash                 |  4 +-
 package/qt5/qt5tools/qt5tools.mk                   |  2 +-
 .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash |  4 +-
 .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk   |  2 +-
 package/qt5/qt5wayland/qt5wayland.hash             |  4 +-
 package/qt5/qt5wayland/qt5wayland.mk               |  2 +-
 package/qt5/qt5webchannel/qt5webchannel.hash       |  4 +-
 package/qt5/qt5webchannel/qt5webchannel.mk         |  2 +-
 ...ad-libEGL-and-libGLES2-symbols-implicitly.patch | 89 ----------------------
 package/qt5/qt5webengine/Config.in                 |  1 +
 package/qt5/qt5webengine/qt5webengine.hash         |  4 +-
 package/qt5/qt5webengine/qt5webengine.mk           |  8 +-
 .../qt5/qt5webkit-examples/qt5webkit-examples.mk   |  2 +-
 package/qt5/qt5websockets/qt5websockets.hash       |  4 +-
 package/qt5/qt5websockets/qt5websockets.mk         |  2 +-
 package/qt5/qt5x11extras/qt5x11extras.hash         |  4 +-
 package/qt5/qt5x11extras/qt5x11extras.mk           |  2 +-
 package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash     |  4 +-
 package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk       |  2 +-
 66 files changed, 202 insertions(+), 240 deletions(-)
 create mode 100644 package/libnspr/Config.in.host
 create mode 100644 package/libnss/0002-add-zlib-include-dir-variable.patch
 create mode 100644 package/pkgconf/host-pkg-config
 delete mode 100644 package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
 delete mode 100644 package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
 delete mode 100644 package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch

-- 
2.16.1

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
@ 2018-02-21 14:27 ` Gaël PORTAY
  2018-02-21 21:27   ` Thomas Petazzoni
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss " Gaël PORTAY
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:27 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
 package/libnspr/Config.in.host | 10 ++++++++++
 package/libnspr/libnspr.mk     |  7 +++++++
 2 files changed, 17 insertions(+)
 create mode 100644 package/libnspr/Config.in.host

diff --git a/package/libnspr/Config.in.host b/package/libnspr/Config.in.host
new file mode 100644
index 0000000000..a80b55e122
--- /dev/null
+++ b/package/libnspr/Config.in.host
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_HOST_LIBNSPR
+	bool "host libnspr"
+	help
+	  NSPR is the Netscape Portable Runtime library which provides
+	  a platform-neutral API for system level and libc like
+	  functions. The library is used by the Mozilla project as well
+	  as others.
+
+	  http://www.mozilla.org/projects/nspr/
+
diff --git a/package/libnspr/libnspr.mk b/package/libnspr/libnspr.mk
index 0c782ae309..c1662947f7 100644
--- a/package/libnspr/libnspr.mk
+++ b/package/libnspr/libnspr.mk
@@ -49,4 +49,11 @@ LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) LIBRARY= install
 LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LIBRARY= install
 endif
 
+ifeq ($(HOSTARCH),x86_64)
+HOST_LIBNSPR_CONF_OPTS += --enable-64bit
+else
+HOST_LIBNSPR_CONF_OPTS += --disable-64bit
+endif
+
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss host package
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package Gaël PORTAY
@ 2018-02-21 14:27 ` Gaël PORTAY
  2018-02-21 21:32   ` Thomas Petazzoni
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper Gaël PORTAY
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:27 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
 .../0002-add-zlib-include-dir-variable.patch       | 30 +++++++++++++
 package/libnss/libnss.mk                           | 50 ++++++++++++++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 package/libnss/0002-add-zlib-include-dir-variable.patch

diff --git a/package/libnss/0002-add-zlib-include-dir-variable.patch b/package/libnss/0002-add-zlib-include-dir-variable.patch
new file mode 100644
index 0000000000..c127d39249
--- /dev/null
+++ b/package/libnss/0002-add-zlib-include-dir-variable.patch
@@ -0,0 +1,30 @@
+Add ZLIB_INCLUDE_DIR variable
+
+Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
+
+--- libnss-3.33.orig/nss/lib/ssl/manifest.mn	2017-09-20 02:47:27.000000000 -0400
++++ libnss-3.33/nss/lib/ssl/manifest.mn	2018-02-16 16:45:41.512709898 -0500
+@@ -6,6 +6,10 @@
+ 
+ # DEFINES = -DTRACE
+ 
++ifdef ZLIB_INCLUDE_DIR
++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
++endif
++
+ EXPORTS = \
+         ssl.h \
+         sslt.h \
+--- host-libnss-3.33.orig/nss/cmd/signtool/manifest.mn.orig	2018-02-16 17:08:58.474777871 -0500
++++ host-libnss-3.33/nss/cmd/signtool/manifest.mn	2018-02-16 17:09:22.603710963 -0500
+@@ -6,6 +6,10 @@
+ 
+ MODULE = nss
+ 
++ifdef ZLIB_INCLUDE_DIR
++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
++endif
++
+ EXPORTS = 
+ 
+ CSRCS = signtool.c		\
diff --git a/package/libnss/libnss.mk b/package/libnss/libnss.mk
index 27d305cc34..29f87ccb17 100644
--- a/package/libnss/libnss.mk
+++ b/package/libnss/libnss.mk
@@ -92,4 +92,54 @@ define LIBNSS_INSTALL_TARGET_CMDS
 		$(TARGET_DIR)/usr/lib/pkgconfig/nss.pc
 endef
 
+HOST_LIBNSS_BUILD_VARS = \
+	MOZILLA_CLIENT=1 \
+	NSPR_INCLUDE_DIR=$(HOST_DIR)/include/nspr \
+	NSPR_LIB_DIR=$(HOST_DIR)/lib \
+	BUILD_OPT=1 \
+	NS_USE_GCC=1 \
+	NSS_DISABLE_GTESTS=1 \
+	NSS_USE_SYSTEM_SQLITE=1 \
+	SQLITE_INCLUDE_DIR=$(HOST_DIR)/include \
+	ZLIB_INCLUDE_DIR=$(HOST_DIR)/include \
+	NSS_ENABLE_ECC=1 \
+	NATIVE_CC="$(HOSTCC)" \
+	NATIVE_FLAGS="$(HOST_CFLAGS)"
+
+HOST_LIBNSS_DEPENDENCIES = host-libnspr host-sqlite host-zlib
+
+ifeq ($(HOSTARCH),x86_64)
+HOST_LIBNSS_BUILD_VARS += USE_64=1
+endif
+
+define HOST_LIBNSS_BUILD_CMDS
+	$(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/nss coreconf \
+		SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
+		DIST=$(@D)/$(LIBNSS_DISTDIR) \
+		CHECKLOC= \
+		$(HOST_LIBNSS_BUILD_VARS)
+	$(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/nss lib/dbm all \
+		SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
+		DIST=$(@D)/$(LIBNSS_DISTDIR) \
+		CHECKLOC= \
+		$(HOST_LIBNSS_BUILD_VARS)
+endef
+
+define HOST_LIBNSS_INSTALL_CMDS
+	$(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \
+		$(@D)/$(LIBNSS_DISTDIR)/lib/*.so
+	$(INSTALL) -m 755 -d $(HOST_DIR)/include/nss
+	$(INSTALL) -m 644 -t $(HOST_DIR)/include/nss \
+		$(@D)/$(LIBNSS_DISTDIR)/public/nss/*
+	$(INSTALL) -m 755 -t $(HOST_DIR)/lib/ \
+		$(@D)/$(LIBNSS_DISTDIR)/lib/*.a
+	$(INSTALL) -D -m 0644 $(TOPDIR)/package/libnss/nss.pc.in \
+		$(HOST_DIR)/lib/pkgconfig/nss.pc
+	$(SED) 's/@VERSION@/$(LIBNSS_VERSION)/g;' \
+		$(HOST_DIR)/lib/pkgconfig/nss.pc
+	$(SED) '/^prefix/s,=.*,=$(HOST_DIR),g;' \
+		$(HOST_DIR)/lib/pkgconfig/nss.pc
+endef
+
 $(eval $(generic-package))
+$(eval $(host-generic-package))
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package Gaël PORTAY
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss " Gaël PORTAY
@ 2018-02-21 14:27 ` Gaël PORTAY
  2018-02-21 21:50   ` Thomas Petazzoni
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1 Gaël PORTAY
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:27 UTC (permalink / raw)
  To: buildroot

The host-pkg-config wrapper gets package data compiled for host.

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
 package/pkgconf/host-pkg-config | 4 ++++
 package/pkgconf/pkgconf.mk      | 6 ++++--
 2 files changed, 8 insertions(+), 2 deletions(-)
 create mode 100644 package/pkgconf/host-pkg-config

diff --git a/package/pkgconf/host-pkg-config b/package/pkgconf/host-pkg-config
new file mode 100644
index 0000000000..3362a3f927
--- /dev/null
+++ b/package/pkgconf/host-pkg-config
@@ -0,0 +1,4 @@
+#!/bin/sh
+PKGCONFDIR=$(dirname "$0")
+DEFAULT_PKG_CONFIG_PATH=${PKGCONFDIR}/../lib/pkgconfig:${PKGCONFDIR}/../share/pkgconfig
+PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-${DEFAULT_PKG_CONFIG_PATH}} exec ${PKGCONFDIR}/pkgconf "$@"
diff --git a/package/pkgconf/pkgconf.mk b/package/pkgconf/pkgconf.mk
index 00b2d017ee..54b4570419 100644
--- a/package/pkgconf/pkgconf.mk
+++ b/package/pkgconf/pkgconf.mk
@@ -16,11 +16,13 @@ define PKGCONF_LINK_PKGCONFIG
 	ln -sf pkgconf $(TARGET_DIR)/usr/bin/pkg-config
 endef
 
-define HOST_PKGCONF_INSTALL_WRAPPER
+define HOST_PKGCONF_INSTALL_WRAPPERS
 	$(INSTALL) -m 0755 -D package/pkgconf/pkg-config.in \
 		$(HOST_DIR)/bin/pkg-config
 	$(SED) 's, at STAGING_SUBDIR@,$(STAGING_SUBDIR),g' \
 		$(HOST_DIR)/bin/pkg-config
+	$(INSTALL) -m 0755 -D package/pkgconf/host-pkg-config \
+		$(HOST_DIR)/bin/host-pkg-config
 endef
 
 define HOST_PKGCONF_STATIC
@@ -32,7 +34,7 @@ define HOST_PKGCONF_SHARED
 endef
 
 PKGCONF_POST_INSTALL_TARGET_HOOKS += PKGCONF_LINK_PKGCONFIG
-HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_WRAPPER
+HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_WRAPPERS
 
 ifeq ($(BR2_STATIC_LIBS),y)
 HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_STATIC
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
                   ` (2 preceding siblings ...)
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper Gaël PORTAY
@ 2018-02-21 14:27 ` Gaël PORTAY
  2018-02-21 21:56   ` Thomas Petazzoni
  2018-02-23 18:32   ` Peter Seiderer
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10 Gaël PORTAY
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool Gaël PORTAY
  5 siblings, 2 replies; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:27 UTC (permalink / raw)
  To: buildroot

qtconnectivity:

	0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
	was upstreamed[1].

qtquickcontrols:

	0001-Example-flatstyle-needs-widgets-module.patch was
	upstreamed[2]

qtwebengine:

	0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch was
	upstreamed[3], then reverted[4] and finally restored[5].

[1]: https://code.qt.io/cgit/qt/qtconnectivity.git/commit/?id=22d20e81d866b79e1e9fefe3f24f93aeb687a450
[2]: https://code.qt.io/cgit/qt/qtquickcontrols2.git/commit/?id=bd617ed62ba35ee11da75b7e92db3fd190751b0f
[3]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad
[4]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=c11c2c8981e647c1eb2c6753ce77d436b92fff87
[5]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=e812237b6980584fc5939f49f6a18315cc694c3a

Note: Hashes has been updated and tested using the following script:

	#!/bin/bash

	set -e

	if [ "$BR2_PACKAGE_QT5_VERSION_5_6" = y ]
	then
		set -- "${@/qt5charts/}"
		set -- "${@/qt5scxml/}"
		set -- "${@/qt5virtualkeyboard/}"
		set -- "${@/qt5wayland/}"
		set -- BR2_PACKAGE_QT5_VERSION_5_6=y
		QT5_VERSION_MAJOR=5.6
		QT5_VERSION=5.6.3
	else
		QT5_VERSION_MAJOR=5.10
		QT5_VERSION=5.10.1
		set -- BR2_PACKAGE_QT5_VERSION_LATEST=y
	fi

	update_hash() {
		find package/qt5/ -name "*.hash" -exec \
		sed -e "s,$QT5_VERSION_MAJOR\.[0-9]*,$QT5_VERSION,g" \
		    -e "\,https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/,{s,opensource,everywhere,;n;s,opensource,everywhere,}" \
		    -i {} \;
	}

	update_makefile() {
		find package/qt5/ -name "*.mk" -exec \
		sed -e "/QT5[A-Z0-9_]*_SOURCE = qt\([a-z0-9-]*\)-opensource-src-\$(\(QT5[A-Z0-9_]*\)_VERSION).tar.xz/s/= .*/= \$(call qt5source,qt5\1,\$(\2_VERSION))/" \
		     {} \;
	}

	update_makefile() {
		find package/qt5/ -name "*.mk" -exec \
		sed -e "/QT5[A-Z0-9_]*_SOURCE = qt[a-z0-9-]*-opensource-src-\$(QT5[A-Z0-9_]*_VERSION).tar.xz/s/= \(qt[a-z0-9-]*\)-opensource-src-\$(\(QT5[A-Z0-9_]*\)_VERSION).tar.xz/= \$(call qt5source,\1,\$(\2_VERSION))/" \
		    -i {} \;
	}

	get_url() {
		sed -e "\,# Hash from: https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/.*,{s,# Hash from: ,,;s,\.mirrorlist,.sha256,p}" \
		    -n "$1"
	}

	update_sha256() {
		sed -e "\,# Hash from: https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/.*,{n;s,^.*$,sha256 $2,}" \
		    -i "$1"
	}

	update_hashfile() {
		local url sha256
		url="$(get_url "$pkg/$module.hash")"
		sha256="$(wget -O- "$url")"
		update_sha256 "$pkg/$module.hash" "$sha256"
	}

	update_hash

	for pkg in package/qt5/qt5*
	do
		[ -d "$pkg" ] || continue
		module=${pkg##*/}
		if [ "$BR2_PACKAGE_QT5_VERSION_5_6" = y ]
		then
			case "$module" in
			qt5charts|qt5scxml|qt5virtualkeyboard|qt5wayland)
				echo "Warning: $module: skipped" >&2
				continue
				;;
			qt5webbrowser)
				echo "Warning: $module: skipped" >&2
				continue
				;;
			esac
		fi

		if ! update_hashfile "$pkg/$module.hash"
		then
			continue
		fi
		echo "$module-source"
	done | xargs make "$@"

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
 package/qt5/Config.in                              |  4 +-
 package/qt5/qt5.mk                                 | 10 ++-
 package/qt5/qt53d/qt53d.hash                       |  4 +-
 package/qt5/qt53d/qt53d.mk                         |  2 +-
 package/qt5/qt5base/qt5base.hash                   |  4 +-
 package/qt5/qt5base/qt5base.mk                     |  2 +-
 package/qt5/qt5canvas3d/qt5canvas3d.hash           |  4 +-
 package/qt5/qt5canvas3d/qt5canvas3d.mk             |  2 +-
 package/qt5/qt5charts/qt5charts.hash               |  4 +-
 package/qt5/qt5charts/qt5charts.mk                 |  2 +-
 ...rtrate-server-needs-only-core-and-bluetoo.patch | 32 --------
 package/qt5/qt5connectivity/qt5connectivity.hash   |  4 +-
 package/qt5/qt5connectivity/qt5connectivity.mk     |  2 +-
 package/qt5/qt5declarative/qt5declarative.hash     |  4 +-
 package/qt5/qt5declarative/qt5declarative.mk       |  2 +-
 package/qt5/qt5enginio/qt5enginio.mk               |  4 +-
 .../qt5graphicaleffects/qt5graphicaleffects.hash   |  4 +-
 .../qt5/qt5graphicaleffects/qt5graphicaleffects.mk |  2 +-
 package/qt5/qt5imageformats/qt5imageformats.hash   |  4 +-
 package/qt5/qt5imageformats/qt5imageformats.mk     |  2 +-
 package/qt5/qt5location/qt5location.hash           |  4 +-
 package/qt5/qt5location/qt5location.mk             |  2 +-
 package/qt5/qt5multimedia/qt5multimedia.hash       |  4 +-
 package/qt5/qt5multimedia/qt5multimedia.mk         |  2 +-
 package/qt5/qt5quickcontrols/qt5quickcontrols.hash |  4 +-
 package/qt5/qt5quickcontrols/qt5quickcontrols.mk   |  2 +-
 ...01-Example-flatstyle-needs-widgets-module.patch | 31 --------
 .../qt5/qt5quickcontrols2/qt5quickcontrols2.hash   |  4 +-
 package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk |  2 +-
 package/qt5/qt5script/qt5script.hash               |  4 +-
 package/qt5/qt5script/qt5script.mk                 |  2 +-
 package/qt5/qt5scxml/qt5scxml.hash                 |  4 +-
 package/qt5/qt5scxml/qt5scxml.mk                   |  2 +-
 package/qt5/qt5sensors/qt5sensors.hash             |  4 +-
 package/qt5/qt5sensors/qt5sensors.mk               |  2 +-
 package/qt5/qt5serialbus/qt5serialbus.hash         |  4 +-
 package/qt5/qt5serialbus/qt5serialbus.mk           |  2 +-
 package/qt5/qt5serialport/qt5serialport.hash       |  4 +-
 package/qt5/qt5serialport/qt5serialport.mk         |  2 +-
 package/qt5/qt5svg/qt5svg.hash                     |  4 +-
 package/qt5/qt5svg/qt5svg.mk                       |  2 +-
 package/qt5/qt5tools/qt5tools.hash                 |  4 +-
 package/qt5/qt5tools/qt5tools.mk                   |  2 +-
 .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash |  4 +-
 .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk   |  2 +-
 package/qt5/qt5wayland/qt5wayland.hash             |  4 +-
 package/qt5/qt5wayland/qt5wayland.mk               |  2 +-
 package/qt5/qt5webchannel/qt5webchannel.hash       |  4 +-
 package/qt5/qt5webchannel/qt5webchannel.mk         |  2 +-
 ...ad-libEGL-and-libGLES2-symbols-implicitly.patch | 89 ----------------------
 package/qt5/qt5webengine/qt5webengine.hash         |  4 +-
 package/qt5/qt5webengine/qt5webengine.mk           |  2 +-
 .../qt5/qt5webkit-examples/qt5webkit-examples.mk   |  2 +-
 package/qt5/qt5websockets/qt5websockets.hash       |  4 +-
 package/qt5/qt5websockets/qt5websockets.mk         |  2 +-
 package/qt5/qt5x11extras/qt5x11extras.hash         |  4 +-
 package/qt5/qt5x11extras/qt5x11extras.mk           |  2 +-
 package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash     |  4 +-
 package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk       |  2 +-
 59 files changed, 90 insertions(+), 238 deletions(-)
 delete mode 100644 package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
 delete mode 100644 package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
 delete mode 100644 package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch

diff --git a/package/qt5/Config.in b/package/qt5/Config.in
index a9ee44c11f..b7786f7a63 100644
--- a/package/qt5/Config.in
+++ b/package/qt5/Config.in
@@ -35,14 +35,14 @@ choice
 	prompt "Qt5 version"
 
 config BR2_PACKAGE_QT5_VERSION_LATEST
-	bool "Latest (5.9)"
+	bool "Latest (5.10)"
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
 	depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
 	depends on !BR2_ARM_CPU_ARMV4 # needs ARMv5+
 	# no built-in double-conversion support
 	depends on !BR2_arc && !BR2_nios2 && !BR2_xtensa
 	help
-	  This option builds Qt 5.9, which is licensed under
+	  This option builds Qt 5.10, which is licensed under
 	  (L)GPL-3.0+.
 
 comment "Latest Qt version needs host/toolchain w/ gcc >= 4.8"
diff --git a/package/qt5/qt5.mk b/package/qt5/qt5.mk
index 7a6e1d7cfe..2ad35dbd1f 100644
--- a/package/qt5/qt5.mk
+++ b/package/qt5/qt5.mk
@@ -5,13 +5,17 @@
 ################################################################################
 
 ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
-QT5_VERSION_MAJOR = 5.9
-QT5_VERSION = $(QT5_VERSION_MAJOR).3
+QT5_VERSION_MAJOR = 5.10
+QT5_VERSION = $(QT5_VERSION_MAJOR).1
+QT5_SRC = everywhere-src
 else
 QT5_VERSION_MAJOR = 5.6
 QT5_VERSION = $(QT5_VERSION_MAJOR).3
+QT5_SRC = opensource-src
 endif
-QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
+QT5_SITE = https://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
+# qt5(module,version): returns site of Qt5 tarball
+qt5source = $(1)-$(QT5_SRC)-$(2).tar.xz
 
 include $(sort $(wildcard package/qt5/*/*.mk))
 
diff --git a/package/qt5/qt53d/qt53d.hash b/package/qt5/qt53d/qt53d.hash
index 18441ead0d..9d9ff8f69c 100644
--- a/package/qt5/qt53d/qt53d.hash
+++ b/package/qt5/qt53d/qt53d.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qt3d-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 10d05a30e925fcad971126c7f47a5e32c39f007dab96b298b2094501f9607ffe qt3d-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qt3d-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 97925132f0583ccd76f5e104c849341df3abba73dd4d9b647622a23bdae6273f qt3d-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qt3d-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 041fb42536a72bbf9be17a6f52d4b73ce93fb98b456fd63503cc47d80d196b3b  qt3d-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPL
diff --git a/package/qt5/qt53d/qt53d.mk b/package/qt5/qt53d/qt53d.mk
index 4f37ae7f5d..fcbecff68c 100644
--- a/package/qt5/qt53d/qt53d.mk
+++ b/package/qt5/qt53d/qt53d.mk
@@ -6,7 +6,7 @@
 
 QT53D_VERSION = $(QT5_VERSION)
 QT53D_SITE = $(QT5_SITE)
-QT53D_SOURCE = qt3d-opensource-src-$(QT5SVG_VERSION).tar.xz
+QT53D_SOURCE = $(call qt5source,qt3d,$(QT53D_VERSION))
 QT53D_DEPENDENCIES = qt5base qt5declarative
 QT53D_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5base/qt5base.hash b/package/qt5/qt5base/qt5base.hash
index c6e694ab39..d788c071d8 100644
--- a/package/qt5/qt5base/qt5base.hash
+++ b/package/qt5/qt5base/qt5base.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtbase-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 9e7c44005e7691dc7c85165bd4510282c47f0163521f4973eab71dbdb39a9982 qtbase-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtbase-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 d8660e189caa5da5142d5894d328b61a4d3ee9750b76d61ad74e4eee8765a969  qtbase-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index b3f9c799cb..a48ce2e308 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -6,7 +6,7 @@
 
 QT5BASE_VERSION = $(QT5_VERSION)
 QT5BASE_SITE = $(QT5_SITE)
-QT5BASE_SOURCE = qtbase-opensource-src-$(QT5BASE_VERSION).tar.xz
+QT5BASE_SOURCE = $(call qt5source,qtbase,$(QT5BASE_VERSION))
 
 QT5BASE_DEPENDENCIES = host-pkgconf zlib
 QT5BASE_INSTALL_STAGING = YES
diff --git a/package/qt5/qt5canvas3d/qt5canvas3d.hash b/package/qt5/qt5canvas3d/qt5canvas3d.hash
index 1664f626cd..d15fde9df7 100644
--- a/package/qt5/qt5canvas3d/qt5canvas3d.hash
+++ b/package/qt5/qt5canvas3d/qt5canvas3d.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtcanvas3d-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 e99e0e159f2fba539b7947a1921072f6807f20958d32809edbf12aac571f56ff qtcanvas3d-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcanvas3d-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 5e38b17844af801be57844da0379cc6882750b9019034f4fe884aae70c300abc qtcanvas3d-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtcanvas3d-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 de829a8e6aa4b8496048e9b6f3bff306a80c35935855a94426025ddfb8bcb0c0  qtcanvas3d-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5canvas3d/qt5canvas3d.mk b/package/qt5/qt5canvas3d/qt5canvas3d.mk
index 97b0ec494e..0d31f45184 100644
--- a/package/qt5/qt5canvas3d/qt5canvas3d.mk
+++ b/package/qt5/qt5canvas3d/qt5canvas3d.mk
@@ -6,7 +6,7 @@
 
 QT5CANVAS3D_VERSION = $(QT5_VERSION)
 QT5CANVAS3D_SITE = $(QT5_SITE)
-QT5CANVAS3D_SOURCE = qtcanvas3d-opensource-src-$(QT5CANVAS3D_VERSION).tar.xz
+QT5CANVAS3D_SOURCE = $(call qt5source,qtcanvas3d,$(QT5CANVAS3D_VERSION))
 QT5CANVAS3D_DEPENDENCIES = qt5base qt5declarative
 QT5CANVAS3D_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5charts/qt5charts.hash b/package/qt5/qt5charts/qt5charts.hash
index 3a9db5b297..5a5845ef9f 100644
--- a/package/qt5/qt5charts/qt5charts.hash
+++ b/package/qt5/qt5charts/qt5charts.hash
@@ -1,5 +1,5 @@
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcharts-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 ec1783a81d5715fc48a3276e67b90a66cac3e283ac14fc3bf88b2058994d69e9  qtcharts-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtcharts-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 4f0d577bf73dd2bbb2765c2cfb493a2d68790fc2c64f42544d31dba806321ec9  qtcharts-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
diff --git a/package/qt5/qt5charts/qt5charts.mk b/package/qt5/qt5charts/qt5charts.mk
index 17fdd96702..ab5d7f5aa6 100644
--- a/package/qt5/qt5charts/qt5charts.mk
+++ b/package/qt5/qt5charts/qt5charts.mk
@@ -6,7 +6,7 @@
 
 QT5CHARTS_VERSION = $(QT5_VERSION)
 QT5CHARTS_SITE = $(QT5_SITE)
-QT5CHARTS_SOURCE = qtcharts-opensource-src-$(QT5CHARTS_VERSION).tar.xz
+QT5CHARTS_SOURCE = $(call qt5source,qtcharts,$(QT5CHARTS_VERSION))
 QT5CHARTS_DEPENDENCIES = qt5base
 QT5CHARTS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch b/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
deleted file mode 100644
index cb0e8d18b1..0000000000
--- a/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 13c2f56cc9c3bbfe0c96031107e7fafd437703d9 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Sat, 18 Nov 2017 21:07:44 +0100
-Subject: [PATCH] Example heartrate-server needs only core and bluetooth module
-
-Fixes compile with disabled gui module.
-
-Task-number: QTBUG-64597
-Change-Id: I376dede3db987e524f97070344cc119e0ee1d187
-
-Upstream: https://codereview.qt-project.org/211810
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- examples/bluetooth/heartrate-server/heartrate-server.pro | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/examples/bluetooth/heartrate-server/heartrate-server.pro b/examples/bluetooth/heartrate-server/heartrate-server.pro
-index 4ccf486c..edd011b9 100644
---- a/examples/bluetooth/heartrate-server/heartrate-server.pro
-+++ b/examples/bluetooth/heartrate-server/heartrate-server.pro
-@@ -1,7 +1,7 @@
- TEMPLATE = app
- TARGET = heartrate-server
- 
--QT += bluetooth
-+QT = core bluetooth
- CONFIG += c++11
- 
- SOURCES += main.cpp
--- 
-2.14.2
-
diff --git a/package/qt5/qt5connectivity/qt5connectivity.hash b/package/qt5/qt5connectivity/qt5connectivity.hash
index aaa3ef275b..8364536309 100644
--- a/package/qt5/qt5connectivity/qt5connectivity.hash
+++ b/package/qt5/qt5connectivity/qt5connectivity.hash
@@ -1,5 +1,5 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtconnectivity-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 fa406e3d63fa4a2acc8ecae6d110f20c766f19a21c7061a12f3c167deb07ccde qtconnectivity-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtconnectivity-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 e2891e6e8d91e82e3c4d5667f3146062458067c0b706d65ac0fc7562afce0649 qtconnectivity-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtconnectivity-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 652821dc6819658ec4bc1a6bf149fd7a61008748ff4745b54f038ccf276d3ec9  qtconnectivity-everywhere-src-5.10.1.tar.xz
diff --git a/package/qt5/qt5connectivity/qt5connectivity.mk b/package/qt5/qt5connectivity/qt5connectivity.mk
index 4369a411a5..61dd853f81 100644
--- a/package/qt5/qt5connectivity/qt5connectivity.mk
+++ b/package/qt5/qt5connectivity/qt5connectivity.mk
@@ -6,7 +6,7 @@
 
 QT5CONNECTIVITY_VERSION = $(QT5_VERSION)
 QT5CONNECTIVITY_SITE = $(QT5_SITE)
-QT5CONNECTIVITY_SOURCE = qtconnectivity-opensource-src-$(QT5CONNECTIVITY_VERSION).tar.xz
+QT5CONNECTIVITY_SOURCE = $(call qt5source,qtconnectivity,$(QT5CONNECTIVITY_VERSION))
 QT5CONNECTIVITY_DEPENDENCIES = qt5base
 QT5CONNECTIVITY_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5declarative/qt5declarative.hash b/package/qt5/qt5declarative/qt5declarative.hash
index 6f171ffa40..1634a88ecc 100644
--- a/package/qt5/qt5declarative/qt5declarative.hash
+++ b/package/qt5/qt5declarative/qt5declarative.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtdeclarative-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 f63fc053d0d16b8a9ca9308f8ead77874b470ae31b66057e2bd336bf648191fc qtdeclarative-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtdeclarative-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 505f66d2062c1d84ce743a0b4969531e1cf94e30970dc64efffe10f74f989407 qtdeclarative-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtdeclarative-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 3af9ed51bce5b5c6f04c4a67a6008f98765ccde897c43fff670621ab70789553  qtdeclarative-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5declarative/qt5declarative.mk b/package/qt5/qt5declarative/qt5declarative.mk
index de8b048329..2c5027e304 100644
--- a/package/qt5/qt5declarative/qt5declarative.mk
+++ b/package/qt5/qt5declarative/qt5declarative.mk
@@ -6,7 +6,7 @@
 
 QT5DECLARATIVE_VERSION = $(QT5_VERSION)
 QT5DECLARATIVE_SITE = $(QT5_SITE)
-QT5DECLARATIVE_SOURCE = qtdeclarative-opensource-src-$(QT5DECLARATIVE_VERSION).tar.xz
+QT5DECLARATIVE_SOURCE = $(call qt5source,qtdeclarative,$(QT5DECLARATIVE_VERSION))
 QT5DECLARATIVE_DEPENDENCIES = qt5base qt5xmlpatterns
 QT5DECLARATIVE_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5enginio/qt5enginio.mk b/package/qt5/qt5enginio/qt5enginio.mk
index 5590d7cf4e..38f309646f 100644
--- a/package/qt5/qt5enginio/qt5enginio.mk
+++ b/package/qt5/qt5enginio/qt5enginio.mk
@@ -6,8 +6,8 @@
 
 # Qt5Enginio does not follow Qt versionning
 # see https://bugreports.qt.io/browse/QTBUG-50111
-QT5ENGINIO_VERSION = 1.6.2
-QT5ENGINIO_SITE = $(QT5_SITE)
+QT5ENGINIO_VERSION = 1.6.3
+QT5ENGINIO_SITE = https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules
 QT5ENGINIO_SOURCE = qtenginio-opensource-src-$(QT5ENGINIO_VERSION).tar.xz
 QT5ENGINIO_DEPENDENCIES = openssl qt5base
 QT5ENGINIO_INSTALL_STAGING = YES
diff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
index 8770d72a19..0eb188f139 100644
--- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
+++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtgraphicaleffects-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 c742592d5e45b122b29df60b69be23ba7c817f2dc471db86e054f6ea24a999ed qtgraphicaleffects-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtgraphicaleffects-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 790b029bc8bdbb5c9548ecad2ff6e73b7da3deabbdba6bacac4a6aacd3a0f0d9 qtgraphicaleffects-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtgraphicaleffects-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 3f3b0631b579630bf58e99f3ca0d8dfdb6a44153c63cf90ac9e07041b4b1847f  qtgraphicaleffects-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
index 2f6380f712..3467783b60 100644
--- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
+++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
@@ -6,7 +6,7 @@
 
 QT5GRAPHICALEFFECTS_VERSION = $(QT5_VERSION)
 QT5GRAPHICALEFFECTS_SITE = $(QT5_SITE)
-QT5GRAPHICALEFFECTS_SOURCE = qtgraphicaleffects-opensource-src-$(QT5GRAPHICALEFFECTS_VERSION).tar.xz
+QT5GRAPHICALEFFECTS_SOURCE = $(call qt5source,qtgraphicaleffects,$(QT5GRAPHICALEFFECTS_VERSION))
 QT5GRAPHICALEFFECTS_DEPENDENCIES = qt5base qt5declarative
 QT5GRAPHICALEFFECTS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5imageformats/qt5imageformats.hash b/package/qt5/qt5imageformats/qt5imageformats.hash
index c56ed7d587..ac858ea244 100644
--- a/package/qt5/qt5imageformats/qt5imageformats.hash
+++ b/package/qt5/qt5imageformats/qt5imageformats.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtimageformats-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 efe4da3c90c976c9b9a2eb6b081d2b8e1435935695104456276ce98e8a5848c3 qtimageformats-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtimageformats-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 d4b309ddbac2275cafadffc62047a26ed8f169bde015925761894843eae725dd qtimageformats-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtimageformats-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 2804baa2779eae015096820e233d7f86bb7fde9853b7c9150a321a453422a283  qtimageformats-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5imageformats/qt5imageformats.mk b/package/qt5/qt5imageformats/qt5imageformats.mk
index f70f131d50..f0215837bd 100644
--- a/package/qt5/qt5imageformats/qt5imageformats.mk
+++ b/package/qt5/qt5imageformats/qt5imageformats.mk
@@ -6,7 +6,7 @@
 
 QT5IMAGEFORMATS_VERSION = $(QT5_VERSION)
 QT5IMAGEFORMATS_SITE = $(QT5_SITE)
-QT5IMAGEFORMATS_SOURCE = qtimageformats-opensource-src-$(QT5IMAGEFORMATS_VERSION).tar.xz
+QT5IMAGEFORMATS_SOURCE = $(call qt5source,qtimageformats,$(QT5IMAGEFORMATS_VERSION))
 QT5IMAGEFORMATS_DEPENDENCIES = qt5base
 QT5IMAGEFORMATS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5location/qt5location.hash b/package/qt5/qt5location/qt5location.hash
index 5bb2021e09..c89af3fa89 100644
--- a/package/qt5/qt5location/qt5location.hash
+++ b/package/qt5/qt5location/qt5location.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtlocation-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 b7a81c58cc331fb15bea8fba21d3c9a59f6dc6ad2e4855e30a14ce59a2af1466 qtlocation-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtlocation-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 80fd425cde8747c1fc79aa90994a9caf921d7c79ff41babec692fe43cdc74ce1 qtlocation-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtlocation-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 5e5cc05517c701a2c8ebba1fbe3ddff2b6b90d5aa554d307b1c477fe0cfd72c9  qtlocation-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5location/qt5location.mk b/package/qt5/qt5location/qt5location.mk
index e9f1e4d93d..3b0ec5d2ef 100644
--- a/package/qt5/qt5location/qt5location.mk
+++ b/package/qt5/qt5location/qt5location.mk
@@ -6,7 +6,7 @@
 
 QT5LOCATION_VERSION = $(QT5_VERSION)
 QT5LOCATION_SITE = $(QT5_SITE)
-QT5LOCATION_SOURCE = qtlocation-opensource-src-$(QT5LOCATION_VERSION).tar.xz
+QT5LOCATION_SOURCE = $(call qt5source,qtlocation,$(QT5LOCATION_VERSION))
 QT5LOCATION_DEPENDENCIES = qt5base
 QT5LOCATION_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5multimedia/qt5multimedia.hash b/package/qt5/qt5multimedia/qt5multimedia.hash
index 750c3379ca..0fb25b6e09 100644
--- a/package/qt5/qt5multimedia/qt5multimedia.hash
+++ b/package/qt5/qt5multimedia/qt5multimedia.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtmultimedia-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 ae36039ea8037742342f1615687e0ca2188f3ed0d700627a5e5be546c15e1b46 qtmultimedia-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtmultimedia-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 e79558d24ace9b4444d91d807b85778b6a0a592e7d1500ffadf45f7d3b8238a6 qtmultimedia-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtmultimedia-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 a1fa98015ee5a6b81f2d337abc98d8b297c6718f7714a1f13fccfd2934c23649  qtmultimedia-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5multimedia/qt5multimedia.mk b/package/qt5/qt5multimedia/qt5multimedia.mk
index 6df96bcab4..6120403f30 100644
--- a/package/qt5/qt5multimedia/qt5multimedia.mk
+++ b/package/qt5/qt5multimedia/qt5multimedia.mk
@@ -6,7 +6,7 @@
 
 QT5MULTIMEDIA_VERSION = $(QT5_VERSION)
 QT5MULTIMEDIA_SITE = $(QT5_SITE)
-QT5MULTIMEDIA_SOURCE = qtmultimedia-opensource-src-$(QT5MULTIMEDIA_VERSION).tar.xz
+QT5MULTIMEDIA_SOURCE = $(call qt5source,qtmultimedia,$(QT5MULTIMEDIA_VERSION))
 QT5MULTIMEDIA_DEPENDENCIES = qt5base
 QT5MULTIMEDIA_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
index 84890c5612..a829e6b495 100644
--- a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
+++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 31bb0fc8f21b855af6ff02c415be3246128b523d0ef7c05e248e92281ab0db8e qtquickcontrols-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtquickcontrols-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 300eeebd7d2c243c0123bc2324b5643b3f967c0816aead0ba7b993aeeac0e226 qtquickcontrols-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtquickcontrols-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 d231a1993dc6a3f0dbc60a21d01fc0be15b0c26e881bd0631573952ea61682b7  qtquickcontrols-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
index 88e767bcf9..9cd223208f 100644
--- a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
+++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
@@ -6,7 +6,7 @@
 
 QT5QUICKCONTROLS_VERSION = $(QT5_VERSION)
 QT5QUICKCONTROLS_SITE = $(QT5_SITE)
-QT5QUICKCONTROLS_SOURCE = qtquickcontrols-opensource-src-$(QT5QUICKCONTROLS_VERSION).tar.xz
+QT5QUICKCONTROLS_SOURCE = $(call qt5source,qtquickcontrols,$(QT5QUICKCONTROLS_VERSION))
 QT5QUICKCONTROLS_DEPENDENCIES = qt5base qt5declarative
 QT5QUICKCONTROLS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch b/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
deleted file mode 100644
index 17e3b3610e..0000000000
--- a/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 10d92524cd6736c767c9ce55a1d9b9f1a2a69a9f Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Sat, 25 Nov 2017 22:26:58 +0100
-Subject: [PATCH] Example flatstyle needs widgets module
-
-Fixes compile with disabled widgets module.
-
-Task-number: QTBUG-64761
-Change-Id: I743884d77d51e89061d87cab006bab0cafc9ddb7
-
-Upstream: https://codereview.qt-project.org/212583
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- examples/quickcontrols2/quickcontrols2.pro | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/examples/quickcontrols2/quickcontrols2.pro b/examples/quickcontrols2/quickcontrols2.pro
-index 858759f..8310e9b 100644
---- a/examples/quickcontrols2/quickcontrols2.pro
-+++ b/examples/quickcontrols2/quickcontrols2.pro
-@@ -6,5 +6,6 @@ SUBDIRS += \
-     contactlist \
-     sidepanel \
-     swipetoremove \
--    flatstyle \
-     wearable
-+
-+qtHaveModule(widgets): SUBDIRS += flatstyle
--- 
-2.7.4
-
diff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
index 7a6040f34c..f446980e87 100644
--- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
+++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols2-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 ec5078470abe2da888c2be5d1749b5961ef5132487c180ce4d4aa19ea7ff81cb qtquickcontrols2-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtquickcontrols2-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 21aaa26956ad0ccc3ce86ced7925ceae4b4cef25c6c5ef2f7ded608431420843 qtquickcontrols2-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtquickcontrols2-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 5dc64a1b901e418b76fd3bf65dfa87a0cb11338741fb8970211c1df6df0e604a  qtquickcontrols2-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 d2cfc059acb4abd8e513cd0a73cd8489f34cbafa7bc34d5d31fb3210821cf8ca LICENSE.GPLv3
diff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
index f27cafc63b..7508b84b27 100644
--- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
+++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
@@ -6,7 +6,7 @@
 
 QT5QUICKCONTROLS2_VERSION = $(QT5_VERSION)
 QT5QUICKCONTROLS2_SITE = $(QT5_SITE)
-QT5QUICKCONTROLS2_SOURCE = qtquickcontrols2-opensource-src-$(QT5QUICKCONTROLS2_VERSION).tar.xz
+QT5QUICKCONTROLS2_SOURCE = $(call qt5source,qtquickcontrols2,$(QT5QUICKCONTROLS2_VERSION))
 QT5QUICKCONTROLS2_DEPENDENCIES = qt5base qt5declarative
 QT5QUICKCONTROLS2_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5script/qt5script.hash b/package/qt5/qt5script/qt5script.hash
index 66582ad448..2d41a98e83 100644
--- a/package/qt5/qt5script/qt5script.hash
+++ b/package/qt5/qt5script/qt5script.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtscript-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 f08720dd0e3a70377c1cb7fa3b129e24f4cdedade279e51b67c9271ab470b389 qtscript-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtscript-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 b80bfaaf58f154b68101e438a1881f669cb9974026926be7755adb00af355566 qtscript-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtscript-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 e0618af7cb1f1f30d292c04cf484e3507cf6f4815f79870e35d2b0ce7ac9532d  qtscript-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3
diff --git a/package/qt5/qt5script/qt5script.mk b/package/qt5/qt5script/qt5script.mk
index b6c02d0d1c..49371fba16 100644
--- a/package/qt5/qt5script/qt5script.mk
+++ b/package/qt5/qt5script/qt5script.mk
@@ -6,7 +6,7 @@
 
 QT5SCRIPT_VERSION = $(QT5_VERSION)
 QT5SCRIPT_SITE = $(QT5_SITE)
-QT5SCRIPT_SOURCE = qtscript-opensource-src-$(QT5SCRIPT_VERSION).tar.xz
+QT5SCRIPT_SOURCE = $(call qt5source,qtscript,$(QT5SCRIPT_VERSION))
 QT5SCRIPT_DEPENDENCIES = qt5base
 QT5SCRIPT_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5scxml/qt5scxml.hash b/package/qt5/qt5scxml/qt5scxml.hash
index b0d861573c..d272881843 100644
--- a/package/qt5/qt5scxml/qt5scxml.hash
+++ b/package/qt5/qt5scxml/qt5scxml.hash
@@ -1,5 +1,5 @@
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtscxml-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 d8f51fa8eddd09fef29d8fad6e570e9ca9403469543ab10cb5cfad738786a81b qtscxml-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtscxml-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 0b42d201e4f96af1c404a61f01da6726bab9bfba4e280cc4a82c717f0db26103  qtscxml-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 
diff --git a/package/qt5/qt5scxml/qt5scxml.mk b/package/qt5/qt5scxml/qt5scxml.mk
index 2d197a2bca..065cdd7d1a 100644
--- a/package/qt5/qt5scxml/qt5scxml.mk
+++ b/package/qt5/qt5scxml/qt5scxml.mk
@@ -6,7 +6,7 @@
 
 QT5SCXML_VERSION = $(QT5_VERSION)
 QT5SCXML_SITE = $(QT5_SITE)
-QT5SCXML_SOURCE = qtscxml-opensource-src-$(QT5SCXML_VERSION).tar.xz
+QT5SCXML_SOURCE = $(call qt5source,qtscxml,$(QT5SCXML_VERSION))
 QT5SCXML_DEPENDENCIES = qt5base qt5declarative
 QT5SCXML_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5sensors/qt5sensors.hash b/package/qt5/qt5sensors/qt5sensors.hash
index 26e13d60b1..0b7222f14d 100644
--- a/package/qt5/qt5sensors/qt5sensors.hash
+++ b/package/qt5/qt5sensors/qt5sensors.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsensors-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 7502d4dc5571865a7eea2a4180c3be396dfb8ce22df4c4f3d7e9ff32ab334973 qtsensors-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtsensors-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 b95ea20b3d616655435357671558631da6fe6970500b7e6d35d1111f0b8cdac1 qtsensors-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtsensors-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 bb0df76c0e53cf2b39d10dbf0964706a264413aae74a4596119143ab4d165c96  qtsensors-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5sensors/qt5sensors.mk b/package/qt5/qt5sensors/qt5sensors.mk
index d4dc47e89c..b9e995bbfd 100644
--- a/package/qt5/qt5sensors/qt5sensors.mk
+++ b/package/qt5/qt5sensors/qt5sensors.mk
@@ -6,7 +6,7 @@
 
 QT5SENSORS_VERSION = $(QT5_VERSION)
 QT5SENSORS_SITE = $(QT5_SITE)
-QT5SENSORS_SOURCE = qtsensors-opensource-src-$(QT5SENSORS_VERSION).tar.xz
+QT5SENSORS_SOURCE = $(call qt5source,qtsensors,$(QT5SENSORS_VERSION))
 QT5SENSORS_DEPENDENCIES = qt5base
 QT5SENSORS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5serialbus/qt5serialbus.hash b/package/qt5/qt5serialbus/qt5serialbus.hash
index 9191fd2198..d392897816 100644
--- a/package/qt5/qt5serialbus/qt5serialbus.hash
+++ b/package/qt5/qt5serialbus/qt5serialbus.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialbus-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 71c89be3879414e2a11cad93a4882758f9259b1c0aec980560309192c99f9a9e qtserialbus-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtserialbus-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 ef62745e1793515e03fa586171de13eb17ee7699c9eb626f76a4dc5a00c46938 qtserialbus-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtserialbus-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 0650a17950f140130ec20520b06592618850cc5673a815cb4fd585590d922257  qtserialbus-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5serialbus/qt5serialbus.mk b/package/qt5/qt5serialbus/qt5serialbus.mk
index 218aba4e0a..359bb14955 100644
--- a/package/qt5/qt5serialbus/qt5serialbus.mk
+++ b/package/qt5/qt5serialbus/qt5serialbus.mk
@@ -6,7 +6,7 @@
 
 QT5SERIALBUS_VERSION = $(QT5_VERSION)
 QT5SERIALBUS_SITE = $(QT5_SITE)
-QT5SERIALBUS_SOURCE = qtserialbus-opensource-src-$(QT5SERIALBUS_VERSION).tar.xz
+QT5SERIALBUS_SOURCE = $(call qt5source,qtserialbus,$(QT5SERIALBUS_VERSION))
 QT5SERIALBUS_DEPENDENCIES = qt5base qt5serialport
 QT5SERIALBUS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5serialport/qt5serialport.hash b/package/qt5/qt5serialport/qt5serialport.hash
index 15abf7ac09..544371d391 100644
--- a/package/qt5/qt5serialport/qt5serialport.hash
+++ b/package/qt5/qt5serialport/qt5serialport.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialport-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 082d1fee2703aed19f840c4e4031e37c9b929e5bd8ebef2ebac4b28c509bae1a qtserialport-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtserialport-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 4cdd3e9157ec3e91078f993cd28651989fa2429a409e19d398fb9cced231abdf qtserialport-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtserialport-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 08e4cb13bbf165eb99857301f3cffe280a4946ff58a34ccc542ad1f790194a9e  qtserialport-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5serialport/qt5serialport.mk b/package/qt5/qt5serialport/qt5serialport.mk
index 479870b16e..fe14d2f6e4 100644
--- a/package/qt5/qt5serialport/qt5serialport.mk
+++ b/package/qt5/qt5serialport/qt5serialport.mk
@@ -6,7 +6,7 @@
 
 QT5SERIALPORT_VERSION = $(QT5_VERSION)
 QT5SERIALPORT_SITE = $(QT5_SITE)
-QT5SERIALPORT_SOURCE = qtserialport-opensource-src-$(QT5SERIALPORT_VERSION).tar.xz
+QT5SERIALPORT_SOURCE = $(call qt5source,qtserialport,$(QT5SERIALPORT_VERSION))
 QT5SERIALPORT_DEPENDENCIES = qt5base
 QT5SERIALPORT_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5svg/qt5svg.hash b/package/qt5/qt5svg/qt5svg.hash
index 03659702d6..3a10080e29 100644
--- a/package/qt5/qt5svg/qt5svg.hash
+++ b/package/qt5/qt5svg/qt5svg.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsvg-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 100f183517b46554079beabd8d2cabe3070a74dd0a2e64b6a304eac71cfadcec qtsvg-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtsvg-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 df6628a60c8fbbcff99e6a24955c29494268d741509a3367a2294031ab4f5df2 qtsvg-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtsvg-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 00e00c04abcc8363cf7d94ca8b16af61840995a4af23685d49fa4ccafa1c7f5a  qtsvg-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5svg/qt5svg.mk b/package/qt5/qt5svg/qt5svg.mk
index 5a12755f94..078ea3dbee 100644
--- a/package/qt5/qt5svg/qt5svg.mk
+++ b/package/qt5/qt5svg/qt5svg.mk
@@ -6,7 +6,7 @@
 
 QT5SVG_VERSION = $(QT5_VERSION)
 QT5SVG_SITE = $(QT5_SITE)
-QT5SVG_SOURCE = qtsvg-opensource-src-$(QT5SVG_VERSION).tar.xz
+QT5SVG_SOURCE = $(call qt5source,qtsvg,$(QT5SVG_VERSION))
 QT5SVG_DEPENDENCIES = qt5base
 QT5SVG_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5tools/qt5tools.hash b/package/qt5/qt5tools/qt5tools.hash
index 44856400e7..83e6ef41be 100644
--- a/package/qt5/qt5tools/qt5tools.hash
+++ b/package/qt5/qt5tools/qt5tools.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qttools-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 1a63ba838058d73cb540040589b235ded77f76402693decfd6d4d3c75ea67926 qttools-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qttools-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 442c38de3e35f9dcc355dadff35436e23a5a7abd7dd1167a3bf6325e3d9284ff qttools-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qttools-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 f1ea441e5fe138756e6de3b60ab7d8d3051799eabe85a9408c995dfd4d048a53  qttools-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5tools/qt5tools.mk b/package/qt5/qt5tools/qt5tools.mk
index 3638b74163..eb03dbfc71 100644
--- a/package/qt5/qt5tools/qt5tools.mk
+++ b/package/qt5/qt5tools/qt5tools.mk
@@ -6,7 +6,7 @@
 
 QT5TOOLS_VERSION = $(QT5_VERSION)
 QT5TOOLS_SITE = $(QT5_SITE)
-QT5TOOLS_SOURCE = qttools-opensource-src-$(QT5BASE_VERSION).tar.xz
+QT5TOOLS_SOURCE = $(call qt5source,qttools,$(QT5TOOLS_VERSION))
 
 QT5TOOLS_DEPENDENCIES = qt5base
 QT5TOOLS_INSTALL_STAGING = YES
diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
index 54ded48dea..44ef1f230f 100644
--- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
+++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
@@ -1,5 +1,5 @@
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtvirtualkeyboard-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 b9313f744026f0dcf6e1008212880cd34851499d8b6bc9fc9fbaa1e4e52532ff qtvirtualkeyboard-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtvirtualkeyboard-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 4319f90e68a571974d03f39507dde548971412e31f971081ca7eaf388187d52e  qtvirtualkeyboard-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
index 7d2201b55d..45f096e44b 100644
--- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
+++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
@@ -6,7 +6,7 @@
 
 QT5VIRTUALKEYBOARD_VERSION = $(QT5_VERSION)
 QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE)
-QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-opensource-src-$(QT5VIRTUALKEYBOARD_VERSION).tar.xz
+QT5VIRTUALKEYBOARD_SOURCE = $(call qt5source,qtvirtualkeyboard,$(QT5VIRTUALKEYBOARD_VERSION))
 QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5base qt5declarative qt5svg
 QT5VIRTUALKEYBOARD_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5wayland/qt5wayland.hash b/package/qt5/qt5wayland/qt5wayland.hash
index f03a15ceb9..b28677ad29 100644
--- a/package/qt5/qt5wayland/qt5wayland.hash
+++ b/package/qt5/qt5wayland/qt5wayland.hash
@@ -1,8 +1,8 @@
 # hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwayland-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 5a475278b2db73aa7fa7f3ba6d98d8d72774f5c77e172495007d79f91d09daa3 qtwayland-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwayland-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 308e8c44b0ad13520868365d72786d3e3f0b384da99ee72ba543cd866f655f6d qtwayland-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwayland-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 f5a7643a5ebcdc50d02b293191e675f387f67dc360c27bf6f94345372fba6356  qtwayland-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5wayland/qt5wayland.mk b/package/qt5/qt5wayland/qt5wayland.mk
index 0a7bdb8cf9..3887287174 100644
--- a/package/qt5/qt5wayland/qt5wayland.mk
+++ b/package/qt5/qt5wayland/qt5wayland.mk
@@ -6,7 +6,7 @@
 
 QT5WAYLAND_VERSION = $(QT5_VERSION)
 QT5WAYLAND_SITE = $(QT5_SITE)
-QT5WAYLAND_SOURCE = qtwayland-opensource-src-$(QT5WAYLAND_VERSION).tar.xz
+QT5WAYLAND_SOURCE = $(call qt5source,qtwayland,$(QT5WAYLAND_VERSION))
 QT5WAYLAND_DEPENDENCIES = qt5base qt5declarative wayland
 QT5WAYLAND_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5webchannel/qt5webchannel.hash b/package/qt5/qt5webchannel/qt5webchannel.hash
index 188e5ea1f3..f94942f577 100644
--- a/package/qt5/qt5webchannel/qt5webchannel.hash
+++ b/package/qt5/qt5webchannel/qt5webchannel.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebchannel-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 8eb1b0ac2286653c7932758c21e7760788a5d7cfd6162da09afa926d5be50713 qtwebchannel-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebchannel-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 632795b293f1318e9aaa1e124b6a39b1625c8c1e35b0a9f05a02ea0066458358 qtwebchannel-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebchannel-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 c22c449fecb052597d12f8dd59498db39767037f9098123f3defc04eb20a3764  qtwebchannel-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5webchannel/qt5webchannel.mk b/package/qt5/qt5webchannel/qt5webchannel.mk
index d46e053a53..20a7c6c1db 100644
--- a/package/qt5/qt5webchannel/qt5webchannel.mk
+++ b/package/qt5/qt5webchannel/qt5webchannel.mk
@@ -6,7 +6,7 @@
 
 QT5WEBCHANNEL_VERSION = $(QT5_VERSION)
 QT5WEBCHANNEL_SITE = $(QT5_SITE)
-QT5WEBCHANNEL_SOURCE = qtwebchannel-opensource-src-$(QT5WEBCHANNEL_VERSION).tar.xz
+QT5WEBCHANNEL_SOURCE = $(call qt5source,qtwebchannel,$(QT5WEBCHANNEL_VERSION))
 QT5WEBCHANNEL_DEPENDENCIES = qt5base qt5websockets
 QT5WEBCHANNEL_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch b/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch
deleted file mode 100644
index b8ef687f99..0000000000
--- a/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad Mon Sep 17 00:00:00 2001
-From: Viktor Engelmann <viktor.engelmann@qt.io>
-Date: Fri, 7 Jul 2017 12:56:19 +0200
-Subject: [PATCH] Load libEGL and libGLES2 symbols implicitly
-
-Instead of explicitly loading libraries from hard-coded locations,
-we now just call dlopen(NULL, RTLD_LAZY). This returns a handle to
-the host process'es context, which already contains the symbols of
-both these libraries, because we link against them.
-It was necessary to bypass LoadLibrary, because that expects a non-NULL
-file path, so we couldn't pass NULL through that interface.
-
-Task-number: QTBUG-57761
-Change-Id: I29f037dfe542222b5188a33c7727c81a464a87bb
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-Reviewed-by: Michal Klocek <michal.klocek@qt.io>
-Upstream-Status: Merged
-Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
----
- src/core/surface_factory_qt.cpp | 40 ++++++++--------------------------------
- 1 file changed, 8 insertions(+), 32 deletions(-)
-
-diff --git a/src/core/surface_factory_qt.cpp b/src/core/surface_factory_qt.cpp
-index 36c05ec5..e8be8480 100644
---- a/src/core/surface_factory_qt.cpp
-+++ b/src/core/surface_factory_qt.cpp
-@@ -51,51 +51,27 @@
- #if defined(USE_OZONE)
- 
- #include <EGL/egl.h>
--
--#ifndef QT_LIBDIR_EGL
--#define QT_LIBDIR_EGL "/usr/lib"
--#endif
--#ifndef QT_LIBDIR_GLES2
--#define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
--#endif
-+#include <dlfcn.h>
- 
- namespace QtWebEngineCore {
- 
--base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
--    base::NativeLibraryLoadError error;
--    base::NativeLibrary library = base::LoadNativeLibrary(filename, &error);
--    if (!library) {
--        LOG(ERROR) << "Failed to load " << filename.MaybeAsASCII() << ": " << error.ToString();
--        return NULL;
--    }
--    return library;
--}
--
- bool SurfaceFactoryQt::LoadEGLGLES2Bindings()
- {
--    base::FilePath libEGLPath = QtWebEngineCore::toFilePath(QT_LIBDIR_EGL);
--    libEGLPath = libEGLPath.Append("libEGL.so.1");
--    base::NativeLibrary eglLibrary = LoadLibrary(libEGLPath);
--    if (!eglLibrary)
--        return false;
--
--    base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
--    libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
--    base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
--    if (!gles2Library)
-+    base::NativeLibrary eglgles2Library = dlopen(NULL, RTLD_LAZY);
-+    if (!eglgles2Library) {
-+        LOG(ERROR) << "Failed to open EGL/GLES2 context " << dlerror();
-         return false;
-+    }
- 
--    gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglLibrary, "eglGetProcAddress"));
-+    gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglgles2Library, "eglGetProcAddress"));
-     if (!get_proc_address) {
-         LOG(ERROR) << "eglGetProcAddress not found.";
--        base::UnloadNativeLibrary(eglLibrary);
--        base::UnloadNativeLibrary(gles2Library);
-+        base::UnloadNativeLibrary(eglgles2Library);
-         return false;
-     }
- 
-     gl::SetGLGetProcAddressProc(get_proc_address);
--    gl::AddGLNativeLibrary(eglLibrary);
--    gl::AddGLNativeLibrary(gles2Library);
-+    gl::AddGLNativeLibrary(eglgles2Library);
-     return true;
- }
- 
--- 
-2.13.2
-
diff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash
index 35acf8da2c..3b54435822 100644
--- a/package/qt5/qt5webengine/qt5webengine.hash
+++ b/package/qt5/qt5webengine/qt5webengine.hash
@@ -1,5 +1,5 @@
 # Hash from https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebengine-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 009d69fb39f6c0e2b0cd89a7e9302cd0ae1872d02c787d3a37f2cacca5ddb7a7 qtwebengine-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebengine-opensource-src-5.9.2.tar.xz.mirrorlist
-sha256 45ae1142fd87271c100f4d7889427738e774e86db5d8f6bcf9ceb99d18571d37 qtwebengine-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebengine-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 12644f8d2ba8354a2a533d5a7f3f5139c6ff168c2f51aa3e21b701db6dbc01de  qtwebengine-everywhere-src-5.10.1.tar.xz
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
index 96dd401c6c..b9edacec62 100644
--- a/package/qt5/qt5webengine/qt5webengine.mk
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -6,7 +6,7 @@
 
 QT5WEBENGINE_VERSION = $(QT5_VERSION)
 QT5WEBENGINE_SITE = $(QT5_SITE)
-QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
+QT5WEBENGINE_SOURCE = $(call qt5source,qtwebengine,$(QT5WEBENGINE_VERSION))
 QT5WEBENGINE_DEPENDENCIES = ffmpeg libglib2 libvpx opus webp qt5base \
 	qt5declarative qt5webchannel host-bison host-flex host-gperf \
 	host-pkgconf host-python
diff --git a/package/qt5/qt5webkit-examples/qt5webkit-examples.mk b/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
index f81e994dc5..22c1d519d6 100644
--- a/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
+++ b/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-# no 5.9.2 package available, fall back to 5.9.1 version
+# no 5.10 package available, fall back to 5.9.1 version
 ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
 QT5WEBKIT_EXAMPLES_VERSION = 5.9.1
 QT5WEBKIT_EXAMPLES_SITE = http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules
diff --git a/package/qt5/qt5websockets/qt5websockets.hash b/package/qt5/qt5websockets/qt5websockets.hash
index e76482bcfe..34cd6e6ce1 100644
--- a/package/qt5/qt5websockets/qt5websockets.hash
+++ b/package/qt5/qt5websockets/qt5websockets.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebsockets-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 a2439045616c89dfe06333734ff4726075c92e01db6e6b6863bc138e39c028eb qtwebsockets-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebsockets-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 ce069dff5b552bc6039bcf17e211d2c8837757e2194773bb54054105866111de qtwebsockets-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebsockets-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 6ecf790955ffe42dce731e10557f4ba625e359e867953d73f7fb453c0bad53ea  qtwebsockets-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5websockets/qt5websockets.mk b/package/qt5/qt5websockets/qt5websockets.mk
index 4cb2aed1db..618c835566 100644
--- a/package/qt5/qt5websockets/qt5websockets.mk
+++ b/package/qt5/qt5websockets/qt5websockets.mk
@@ -6,7 +6,7 @@
 
 QT5WEBSOCKETS_VERSION = $(QT5_VERSION)
 QT5WEBSOCKETS_SITE = $(QT5_SITE)
-QT5WEBSOCKETS_SOURCE = qtwebsockets-opensource-src-$(QT5WEBSOCKETS_VERSION).tar.xz
+QT5WEBSOCKETS_SOURCE = $(call qt5source,qtwebsockets,$(QT5WEBSOCKETS_VERSION))
 QT5WEBSOCKETS_DEPENDENCIES = qt5base
 QT5WEBSOCKETS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5x11extras/qt5x11extras.hash b/package/qt5/qt5x11extras/qt5x11extras.hash
index e835648c52..173e9e6b57 100644
--- a/package/qt5/qt5x11extras/qt5x11extras.hash
+++ b/package/qt5/qt5x11extras/qt5x11extras.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtx11extras-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 1e7a8e96e0629f2b2b78de684b156b357210cf5df6b42f30789423f2cb07677f qtx11extras-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtx11extras-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 e4e0bf8cbb629758ab85b72d240d7424642482f602ce414e06deef4e147bf2be qtx11extras-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtx11extras-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 c38a371fd50b2da976ed809230678284f029cefb02d240253dcbb3d575dc97b4  qtx11extras-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
diff --git a/package/qt5/qt5x11extras/qt5x11extras.mk b/package/qt5/qt5x11extras/qt5x11extras.mk
index 0905d5f738..85af6a2da3 100644
--- a/package/qt5/qt5x11extras/qt5x11extras.mk
+++ b/package/qt5/qt5x11extras/qt5x11extras.mk
@@ -6,7 +6,7 @@
 
 QT5X11EXTRAS_VERSION = $(QT5_VERSION)
 QT5X11EXTRAS_SITE = $(QT5_SITE)
-QT5X11EXTRAS_SOURCE = qtx11extras-opensource-src-$(QT5X11EXTRAS_VERSION).tar.xz
+QT5X11EXTRAS_SOURCE = $(call qt5source,qtx11extras,$(QT5X11EXTRAS_VERSION))
 QT5X11EXTRAS_DEPENDENCIES = qt5base
 QT5X11EXTRAS_INSTALL_STAGING = YES
 
diff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
index e7f9d60fdd..8210993782 100644
--- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
+++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
@@ -1,8 +1,8 @@
 # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtxmlpatterns-opensource-src-5.6.3.tar.xz.mirrorlist
 sha256 a461ff9f0d7310de9b9904ff9cd34919e958bf4071a6fc7096450b8990ab51f6 qtxmlpatterns-opensource-src-5.6.3.tar.xz
 
-# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtxmlpatterns-opensource-src-5.9.3.tar.xz.mirrorlist
-sha256 cf9c66a612a963382f7b4b51ac8ee5e920bd035b26ecb5c5957f8f3d3286f0ba qtxmlpatterns-opensource-src-5.9.3.tar.xz
+# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtxmlpatterns-everywhere-src-5.10.1.tar.xz.mirrorlist
+sha256 3cdef59ce96a796606e5adc5756c63c8607fb29b281fddb38acee3e674d5e9fe  qtxmlpatterns-everywhere-src-5.10.1.tar.xz
 
 # Hashes for license files:
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
diff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
index 65fd9bd345..e670bf51b1 100644
--- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
+++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
@@ -6,7 +6,7 @@
 
 QT5XMLPATTERNS_VERSION = $(QT5_VERSION)
 QT5XMLPATTERNS_SITE = $(QT5_SITE)
-QT5XMLPATTERNS_SOURCE = qtxmlpatterns-opensource-src-$(QT5XMLPATTERNS_VERSION).tar.xz
+QT5XMLPATTERNS_SOURCE = $(call qt5source,qtxmlpatterns,$(QT5XMLPATTERNS_VERSION))
 QT5XMLPATTERNS_DEPENDENCIES = qt5base
 QT5XMLPATTERNS_INSTALL_STAGING = YES
 
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
                   ` (3 preceding siblings ...)
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1 Gaël PORTAY
@ 2018-02-21 14:28 ` Gaël PORTAY
  2018-02-21 21:58   ` Thomas Petazzoni
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool Gaël PORTAY
  5 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:28 UTC (permalink / raw)
  To: buildroot

Since Qt WebEngine 5.10, libnss is a requirement[1] because OpenSSL
certificate validation[3] and NSS bundle[3] was dropped.

Also, it compiles host-tools that require libnss and libpng.

Let satisfy these new requirements by selecting libnss and adding
host-libnss and host-libpng dependencies.

[1]: https://github.com/qt/qtwebengine/commit/9b449045fbd5fd3b58bcaff6cf0c5878cd6e64eb
[2]: https://codereview.chromium.org/2862543003
[3]: https://codereview.chromium.org/1882433002

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
 package/qt5/qt5webengine/Config.in       | 1 +
 package/qt5/qt5webengine/qt5webengine.mk | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
index d0c8d18210..c0d2a54682 100644
--- a/package/qt5/qt5webengine/Config.in
+++ b/package/qt5/qt5webengine/Config.in
@@ -38,6 +38,7 @@ config BR2_PACKAGE_QT5WEBENGINE
 	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 # v8/chromium
 	select BR2_PACKAGE_FFMPEG
 	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBNSS if !BR2_PACKAGE_QT5_VERSION_5_6
 	select BR2_PACKAGE_LIBVPX
 	select BR2_PACKAGE_OPUS
 	select BR2_PACKAGE_WEBP
diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
index b9edacec62..47084c1af4 100644
--- a/package/qt5/qt5webengine/qt5webengine.mk
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -22,6 +22,10 @@ QT5WEBENGINE_DEPENDENCIES += xlib_libXScrnSaver xlib_libXcomposite \
 	xlib_libXcursor xlib_libXi xlib_libXrandr xlib_libXtst
 endif
 
+ifneq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
+QT5WEBENGINE_DEPENDENCIES += host-libpng host-libnss libnss
+endif
+
 QT5WEBENGINE_QMAKEFLAGS += WEBENGINE_CONFIG+=use_system_ffmpeg
 
 ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y)
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool
  2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
                   ` (4 preceding siblings ...)
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10 Gaël PORTAY
@ 2018-02-21 14:28 ` Gaël PORTAY
  2018-02-21 21:59   ` Thomas Petazzoni
  5 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-21 14:28 UTC (permalink / raw)
  To: buildroot

The WebEngine build system uses pkg-config to get package data for both
host and target architectures.

Using the same call to pkg-config for both target and host leads to
build mismatches.

In this situation, it tries to link a host-tool using target libraries.

Qt is able to set host pkg-config for Ninja, using environment variable
$GN_PKG_CONFIG_HOST[1].

Fixes:

	FAILED: host/transport_security_state_generator
	/home/gportay/src/buildroot/output-qt5.10/host/bin/python2 "../../3rdparty/chromium/build/toolchain/gcc_link_wrapper.py" --output="host/transport_security_state_generator" -- /usr/bin/g++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -m64 -Wl,-O1 -Wl,--gc-sections -Wl,-rpath-link=host -Wl,--disable-new-dtags -L/home/gportay/src/buildroot/output-qt5.10/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib -o "host/transport_security_state_generator" -Wl,--start-group @"host/transport_security_state_generator.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lnss3 -lnssutil3 -lsmime3 -lplds4 -lplc4 -lnspr4
	/usr/bin/ld: cannot find /lib64/libpthread.so.0
	/usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a
	collect2: error: ld returned 1 exit status
	ninja: build stopped: subcommand failed.
	Makefile.gn_run:449: recipe for target 'run_ninja' failed

[1]: https://github.com/qt/qtwebengine/blob/v5.10.1/src/core/config/linux.pri#L111-L125

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

diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
index 47084c1af4..c0cc6b263c 100644
--- a/package/qt5/qt5webengine/qt5webengine.mk
+++ b/package/qt5/qt5webengine/qt5webengine.mk
@@ -42,6 +42,8 @@ define QT5WEBENGINE_PYTHON2_SYMLINK
 endef
 QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_PYTHON2_SYMLINK
 
+QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=host-pkg-config
+
 define QT5WEBENGINE_CONFIGURE_CMDS
 	(cd $(@D); $(TARGET_MAKE_ENV) $(QT5WEBENGINE_ENV) $(HOST_DIR)/usr/bin/qmake $(QT5WEBENGINE_QMAKEFLAGS))
 endef
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package Gaël PORTAY
@ 2018-02-21 21:27   ` Thomas Petazzoni
  2018-02-22 14:29     ` Gaël PORTAY
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:27 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 21 Feb 2018 09:27:56 -0500, Ga?l PORTAY wrote:
> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> ---
>  package/libnspr/Config.in.host | 10 ++++++++++
>  package/libnspr/libnspr.mk     |  7 +++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 package/libnspr/Config.in.host
> 
> diff --git a/package/libnspr/Config.in.host b/package/libnspr/Config.in.host
> new file mode 100644
> index 0000000000..a80b55e122
> --- /dev/null
> +++ b/package/libnspr/Config.in.host
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_HOST_LIBNSPR
> +	bool "host libnspr"
> +	help
> +	  NSPR is the Netscape Portable Runtime library which provides
> +	  a platform-neutral API for system level and libc like
> +	  functions. The library is used by the Mozilla project as well
> +	  as others.
> +
> +	  http://www.mozilla.org/projects/nspr/
> +

It is not necessary to add a Config.in.host option for this package, it
is just a build dependency of another package.

> diff --git a/package/libnspr/libnspr.mk b/package/libnspr/libnspr.mk
> index 0c782ae309..c1662947f7 100644
> --- a/package/libnspr/libnspr.mk
> +++ b/package/libnspr/libnspr.mk
> @@ -49,4 +49,11 @@ LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) LIBRARY= install
>  LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LIBRARY= install
>  endif
>  
> +ifeq ($(HOSTARCH),x86_64)
> +HOST_LIBNSPR_CONF_OPTS += --enable-64bit

x86_64 is not the only 64-bit architecture in the world: we have an
autobuilder running on a ppc64 machine for example.

We don't really have a good way today to test if the host architecture
is 64 bit or not, so it would need to be added.

Best regards,

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss host package
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss " Gaël PORTAY
@ 2018-02-21 21:32   ` Thomas Petazzoni
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:32 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 21 Feb 2018 09:27:57 -0500, Ga?l PORTAY wrote:
> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> ---
>  .../0002-add-zlib-include-dir-variable.patch       | 30 +++++++++++++
>  package/libnss/libnss.mk                           | 50 ++++++++++++++++++++++
>  2 files changed, 80 insertions(+)
>  create mode 100644 package/libnss/0002-add-zlib-include-dir-variable.patch
> 
> diff --git a/package/libnss/0002-add-zlib-include-dir-variable.patch b/package/libnss/0002-add-zlib-include-dir-variable.patch
> new file mode 100644
> index 0000000000..c127d39249
> --- /dev/null
> +++ b/package/libnss/0002-add-zlib-include-dir-variable.patch
> @@ -0,0 +1,30 @@
> +Add ZLIB_INCLUDE_DIR variable

This patch needs a better description. This only describes *what* is
done, but not *why*. And the *why* is the most important, because the
*what* can trivially be seen by reading the patch :-)

> +
> +Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> +
> +--- libnss-3.33.orig/nss/lib/ssl/manifest.mn	2017-09-20 02:47:27.000000000 -0400
> ++++ libnss-3.33/nss/lib/ssl/manifest.mn	2018-02-16 16:45:41.512709898 -0500
> +@@ -6,6 +6,10 @@
> + 
> + # DEFINES = -DTRACE
> + 
> ++ifdef ZLIB_INCLUDE_DIR
> ++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
> ++endif
> ++
> + EXPORTS = \
> +         ssl.h \
> +         sslt.h \
> +--- host-libnss-3.33.orig/nss/cmd/signtool/manifest.mn.orig	2018-02-16 17:08:58.474777871 -0500
> ++++ host-libnss-3.33/nss/cmd/signtool/manifest.mn	2018-02-16 17:09:22.603710963 -0500
> +@@ -6,6 +6,10 @@
> + 
> + MODULE = nss
> + 
> ++ifdef ZLIB_INCLUDE_DIR
> ++INCLUDES += -I$(ZLIB_INCLUDE_DIR)
> ++endif
> ++
> + EXPORTS = 
> + 
> + CSRCS = signtool.c		\
> diff --git a/package/libnss/libnss.mk b/package/libnss/libnss.mk
> index 27d305cc34..29f87ccb17 100644
> --- a/package/libnss/libnss.mk
> +++ b/package/libnss/libnss.mk
> @@ -92,4 +92,54 @@ define LIBNSS_INSTALL_TARGET_CMDS
>  		$(TARGET_DIR)/usr/lib/pkgconfig/nss.pc
>  endef
>  
> +HOST_LIBNSS_BUILD_VARS = \
> +	MOZILLA_CLIENT=1 \
> +	NSPR_INCLUDE_DIR=$(HOST_DIR)/include/nspr \
> +	NSPR_LIB_DIR=$(HOST_DIR)/lib \
> +	BUILD_OPT=1 \
> +	NS_USE_GCC=1 \
> +	NSS_DISABLE_GTESTS=1 \
> +	NSS_USE_SYSTEM_SQLITE=1 \
> +	SQLITE_INCLUDE_DIR=$(HOST_DIR)/include \
> +	ZLIB_INCLUDE_DIR=$(HOST_DIR)/include \
> +	NSS_ENABLE_ECC=1 \
> +	NATIVE_CC="$(HOSTCC)" \
> +	NATIVE_FLAGS="$(HOST_CFLAGS)"

Are you sure the NATIVE_CC and NATIVE_FLAGS options are needed? When
cross-compiling, I do understand the meaning of those options, but not
when building natively.

> +
> +HOST_LIBNSS_DEPENDENCIES = host-libnspr host-sqlite host-zlib
> +
> +ifeq ($(HOSTARCH),x86_64)
> +HOST_LIBNSS_BUILD_VARS += USE_64=1

Same comment as for libnspr: there's more than x86-64 in the 64-bit
host architectures :)

Otherwise, looks good to me.

Thanks!

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper Gaël PORTAY
@ 2018-02-21 21:50   ` Thomas Petazzoni
  2018-02-22  9:27     ` Arnout Vandecappelle
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:50 UTC (permalink / raw)
  To: buildroot

Hello,

+Peter, Yann, Arnout, there's a question below about a small change but
has a big impact.

On Wed, 21 Feb 2018 09:27:58 -0500, Ga?l PORTAY wrote:
> The host-pkg-config wrapper gets package data compiled for host.
> 
> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> ---
>  package/pkgconf/host-pkg-config | 4 ++++
>  package/pkgconf/pkgconf.mk      | 6 ++++--
>  2 files changed, 8 insertions(+), 2 deletions(-)
>  create mode 100644 package/pkgconf/host-pkg-config
> 
> diff --git a/package/pkgconf/host-pkg-config b/package/pkgconf/host-pkg-config
> new file mode 100644
> index 0000000000..3362a3f927
> --- /dev/null
> +++ b/package/pkgconf/host-pkg-config
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +PKGCONFDIR=$(dirname "$0")
> +DEFAULT_PKG_CONFIG_PATH=${PKGCONFDIR}/../lib/pkgconfig:${PKGCONFDIR}/../share/pkgconfig
> +PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-${DEFAULT_PKG_CONFIG_PATH}} exec ${PKGCONFDIR}/pkgconf "$@"

I've been thinking about this for a while, and I remember having a
discussion about this with some other Buildroot developer a while ago.
I think the most correct thing to do would be:

 $(HOST_DIR)/bin/pkg-config returns results valid for native compilation

 $(HOST_DIR)/bin/<tuple>-pkg-config returns results valid for cross-compilation

I.e, the current pkg-config wrapper should be renamed
<tuple>-pkg-config, and pkg-config should behave like a normal native
pkg-config, except that it provides results for libraries located in
$(HOST_DIR).

The autoconf PKG_CHECK_MODULES() macro uses PKG_PROG_PKG_CONFIG(),
which internally uses AC_PATH_TOOL(). And AC_PATH_TOOL() will first
search for the program with the host machine tuple, and warn if the
program cannot be found with this tuple. From
https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Generic-Programs.html:

"""
When cross-compiling, this macro will issue a warning if no program
prefixed with the host type could be found. For more information, see
Specifying Target Triplets. 
"""

I know this change will:

 - Potentially break a number of packages we have in Buildroot, which
   directly use pkg-config without first trying to use
   <tuple>-pkg-config

 - Potentially break a number of downstream users who are using
   pkg-config.

However:

 - It would solve that once you add $(HOST_DIR)/bin to your PATH, you
   cannot anymore do native builds because "pkg-config" returns results
   that are not relevant for native builds. I already saw a number of
   people affected by this.

 - It would comply with the standard autoconf expectations.

Best regards,

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1 Gaël PORTAY
@ 2018-02-21 21:56   ` Thomas Petazzoni
  2018-02-23 18:32   ` Peter Seiderer
  1 sibling, 0 replies; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:56 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 21 Feb 2018 09:27:59 -0500, Ga?l PORTAY wrote:
> qtconnectivity:
> 
> 	0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
> 	was upstreamed[1].
> 
> qtquickcontrols:
> 
> 	0001-Example-flatstyle-needs-widgets-module.patch was
> 	upstreamed[2]
> 
> qtwebengine:
> 
> 	0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch was
> 	upstreamed[3], then reverted[4] and finally restored[5].
> 
> [1]: https://code.qt.io/cgit/qt/qtconnectivity.git/commit/?id=22d20e81d866b79e1e9fefe3f24f93aeb687a450
> [2]: https://code.qt.io/cgit/qt/qtquickcontrols2.git/commit/?id=bd617ed62ba35ee11da75b7e92db3fd190751b0f
> [3]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad
> [4]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=c11c2c8981e647c1eb2c6753ce77d436b92fff87
> [5]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=e812237b6980584fc5939f49f6a18315cc694c3a

Thanks for this detailed description of what happened to the different
patches. However, one thing that your commit log lacks is to explain
the addition of the qt5source macro. I know you explained it in your
cover letter, but the cover letter is never committed, so make sure to
include the relevant details in the commit log as well.


>  ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
> -QT5_VERSION_MAJOR = 5.9
> -QT5_VERSION = $(QT5_VERSION_MAJOR).3
> +QT5_VERSION_MAJOR = 5.10
> +QT5_VERSION = $(QT5_VERSION_MAJOR).1
> +QT5_SRC = everywhere-src
>  else
>  QT5_VERSION_MAJOR = 5.6
>  QT5_VERSION = $(QT5_VERSION_MAJOR).3
> +QT5_SRC = opensource-src

I find QT5_SRC a bit "short", and likely to cause name clash.
QT5_SOURCE_TARBALL_PREFIX or something like that perhaps ?

Also, you should introduce this qt5source macro in a separate commit,
prior to the 5.10 bump. Indeed, it can be done separately, and
therefore it should.

>  endif
> -QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
> +QT5_SITE = https://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
> +# qt5(module,version): returns site of Qt5 tarball

It doesn't return the site but the name of the tarball.

> +qt5source = $(1)-$(QT5_SRC)-$(2).tar.xz

I'm also wondering if we really need a macro. Can't we just change all
packages to do:

FOO_SOURCE = foo-$(QT5_SOURCE_TARBALL_PREFIX)-$(FOO_VERSION).tar.xz

Other than that, looks good to me. Thanks!

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10 Gaël PORTAY
@ 2018-02-21 21:58   ` Thomas Petazzoni
  2018-02-22 14:42     ` Gaël PORTAY
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:58 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 21 Feb 2018 09:28:00 -0500, Ga?l PORTAY wrote:
> Since Qt WebEngine 5.10, libnss is a requirement[1] because OpenSSL
> certificate validation[3] and NSS bundle[3] was dropped.
> 
> Also, it compiles host-tools that require libnss and libpng.
> 
> Let satisfy these new requirements by selecting libnss and adding
> host-libnss and host-libpng dependencies.
> 
> [1]: https://github.com/qt/qtwebengine/commit/9b449045fbd5fd3b58bcaff6cf0c5878cd6e64eb
> [2]: https://codereview.chromium.org/2862543003
> [3]: https://codereview.chromium.org/1882433002
> 
> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>

So if we merge PATCH 4/6, but not this PATCH 5/6, qt5webengine doesn't
build in its 5.10 version ? If that's the case, then you have a
bisectability problem.

I'm fine with having it separate during the review, to make PATCH 4/6
be just a mechanism change of all versions and hashes, and PATCH 5/6 be
a fixup patch that should be squashed into the 5.10 bump once applied.
But if that's the case, it should be noted...

> ---

... here.

>  package/qt5/qt5webengine/Config.in       | 1 +
>  package/qt5/qt5webengine/qt5webengine.mk | 4 ++++
>  2 files changed, 5 insertions(+)
> 
> diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in
> index d0c8d18210..c0d2a54682 100644
> --- a/package/qt5/qt5webengine/Config.in
> +++ b/package/qt5/qt5webengine/Config.in
> @@ -38,6 +38,7 @@ config BR2_PACKAGE_QT5WEBENGINE
>  	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 # v8/chromium
>  	select BR2_PACKAGE_FFMPEG
>  	select BR2_PACKAGE_LIBGLIB2
> +	select BR2_PACKAGE_LIBNSS if !BR2_PACKAGE_QT5_VERSION_5_6
>  	select BR2_PACKAGE_LIBVPX
>  	select BR2_PACKAGE_OPUS
>  	select BR2_PACKAGE_WEBP
> diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
> index b9edacec62..47084c1af4 100644
> --- a/package/qt5/qt5webengine/qt5webengine.mk
> +++ b/package/qt5/qt5webengine/qt5webengine.mk
> @@ -22,6 +22,10 @@ QT5WEBENGINE_DEPENDENCIES += xlib_libXScrnSaver xlib_libXcomposite \
>  	xlib_libXcursor xlib_libXi xlib_libXrandr xlib_libXtst
>  endif
>  
> +ifneq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
> +QT5WEBENGINE_DEPENDENCIES += host-libpng host-libnss libnss
> +endif
> +
>  QT5WEBENGINE_QMAKEFLAGS += WEBENGINE_CONFIG+=use_system_ffmpeg
>  
>  ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y)

Thanks!

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool
  2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool Gaël PORTAY
@ 2018-02-21 21:59   ` Thomas Petazzoni
  2018-02-22 14:44     ` Gaël PORTAY
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-21 21:59 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 21 Feb 2018 09:28:01 -0500, Ga?l PORTAY wrote:
> The WebEngine build system uses pkg-config to get package data for both
> host and target architectures.
> 
> Using the same call to pkg-config for both target and host leads to
> build mismatches.
> 
> In this situation, it tries to link a host-tool using target libraries.
> 
> Qt is able to set host pkg-config for Ninja, using environment variable
> $GN_PKG_CONFIG_HOST[1].
> 
> Fixes:
> 
> 	FAILED: host/transport_security_state_generator
> 	/home/gportay/src/buildroot/output-qt5.10/host/bin/python2 "../../3rdparty/chromium/build/toolchain/gcc_link_wrapper.py" --output="host/transport_security_state_generator" -- /usr/bin/g++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -m64 -Wl,-O1 -Wl,--gc-sections -Wl,-rpath-link=host -Wl,--disable-new-dtags -L/home/gportay/src/buildroot/output-qt5.10/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib -o "host/transport_security_state_generator" -Wl,--start-group @"host/transport_security_state_generator.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lnss3 -lnssutil3 -lsmime3 -lplds4 -lplc4 -lnspr4
> 	/usr/bin/ld: cannot find /lib64/libpthread.so.0
> 	/usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a
> 	collect2: error: ld returned 1 exit status
> 	ninja: build stopped: subcommand failed.
> 	Makefile.gn_run:449: recipe for target 'run_ninja' failed
> 
> [1]: https://github.com/qt/qtwebengine/blob/v5.10.1/src/core/config/linux.pri#L111-L125
> 
> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>

Same comment for this one as for PATCH 5/6: what happens if we apply
your series up to PATCH 5/6, but excluding PATCH 6/6 ? qt5webengine
will fail to build, while it was building before, which is a
regression. So I assume this should be in the 5.10 bump as well, or
kept separate during the review, and squashed when applying. But it
should be mentioned.

Thanks!

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-21 21:50   ` Thomas Petazzoni
@ 2018-02-22  9:27     ` Arnout Vandecappelle
  2018-02-22  9:41       ` Thomas Petazzoni
  0 siblings, 1 reply; 24+ messages in thread
From: Arnout Vandecappelle @ 2018-02-22  9:27 UTC (permalink / raw)
  To: buildroot



On 21-02-18 22:50, Thomas Petazzoni wrote:
> Hello,
> 
> +Peter, Yann, Arnout, there's a question below about a small change but
> has a big impact.
> 
> On Wed, 21 Feb 2018 09:27:58 -0500, Ga?l PORTAY wrote:
>> The host-pkg-config wrapper gets package data compiled for host.
>>
>> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
>> ---
>>  package/pkgconf/host-pkg-config | 4 ++++
>>  package/pkgconf/pkgconf.mk      | 6 ++++--
>>  2 files changed, 8 insertions(+), 2 deletions(-)
>>  create mode 100644 package/pkgconf/host-pkg-config
>>
>> diff --git a/package/pkgconf/host-pkg-config b/package/pkgconf/host-pkg-config
>> new file mode 100644
>> index 0000000000..3362a3f927
>> --- /dev/null
>> +++ b/package/pkgconf/host-pkg-config
>> @@ -0,0 +1,4 @@
>> +#!/bin/sh
>> +PKGCONFDIR=$(dirname "$0")
>> +DEFAULT_PKG_CONFIG_PATH=${PKGCONFDIR}/../lib/pkgconfig:${PKGCONFDIR}/../share/pkgconfig
>> +PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-${DEFAULT_PKG_CONFIG_PATH}} exec ${PKGCONFDIR}/pkgconf "$@"
> 
> I've been thinking about this for a while, and I remember having a
> discussion about this with some other Buildroot developer a while ago.
> I think the most correct thing to do would be:
> 
>  $(HOST_DIR)/bin/pkg-config returns results valid for native compilation
> 
>  $(HOST_DIR)/bin/<tuple>-pkg-config returns results valid for cross-compilation

 This sounds like a good idea, but as you note below, could lead to breakage as
well.

 An alternative would be (IIRC this idea was launched by ThomasDS (added in Cc)):

$(HOST_DIR)/bin/ contains binaries valid for native compilation (i.e. no
cross-compiler, cross-pkg-config, ...)

$(HOST_DIR)/<tuple>/bin contains binaries valid for cross-compilation

When building for host, PATH contains $(HOST_DIR)/bin

When building for target, PATH contains $(HOST_DIR)/<tuple>/bin:$(HOST_DIR)/bin


 So let's analyse that option:

> I.e, the current pkg-config wrapper should be renamed
> <tuple>-pkg-config, and pkg-config should behave like a normal native
> pkg-config, except that it provides results for libraries located in
> $(HOST_DIR).
> 
> The autoconf PKG_CHECK_MODULES() macro uses PKG_PROG_PKG_CONFIG(),
> which internally uses AC_PATH_TOOL(). And AC_PATH_TOOL() will first
> search for the program with the host machine tuple, and warn if the
> program cannot be found with this tuple. From
> https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Generic-Programs.html:
> 
> """
> When cross-compiling, this macro will issue a warning if no program
> prefixed with the host type could be found. For more information, see
> Specifying Target Triplets. 

 Weird, I checked a couple of log files and I could see no such warning. Ah,
that's because we pass PKG_CONFIG=... in the environment. Is it the idea to
remove that from the environment then?

 Anyway, the PATH-based alternative will not remove this warning, but that
shouldn't be different from the current situation.

> """
> 
> I know this change will:
> 
>  - Potentially break a number of packages we have in Buildroot, which
>    directly use pkg-config without first trying to use
>    <tuple>-pkg-config

 I.e. anything not using autotools? Well, most will probably heed the
PKG_CONFIG=... in the environment.

 The PATH-based alternative doesn't have this potential breakage.


>  - Potentially break a number of downstream users who are using
>    pkg-config.

 The PATH-based alternative reduces this problem, downstream users just have to
add $(HOST_DIR)/tuple/bin to their path (and Buildroot will do this for post-xxx
scripts).


> However:
> 
>  - It would solve that once you add $(HOST_DIR)/bin to your PATH, you
>    cannot anymore do native builds because "pkg-config" returns results
>    that are not relevant for native builds. I already saw a number of
>    people affected by this.

 The PATH-based alternative solves this as well.

 Note BTW that neither alternative solves the problem when building a host-tool
during a target build (and yes, we have seen this problem already in some
packages). AFAICS, autotools will also for host builds use the PKG_CONFIG passed
in the environment or discovered through the tuple. Same for CMake.


>  - It would comply with the standard autoconf expectations.

 With the PATH-based alternative, it might make sense to have the cross-stuff
both in $(HOST_DIR)/bin with the tuple prefix, and in $(HOST_DIR)/tuple/bin
without the prefix. That way, we get the advantages of both: comply with
autoconf expectations, and avoid breaking packages or downstream users.


 Regards,
 Arnout

-- 
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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-22  9:27     ` Arnout Vandecappelle
@ 2018-02-22  9:41       ` Thomas Petazzoni
  2018-02-22 10:56         ` Arnout Vandecappelle
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni @ 2018-02-22  9:41 UTC (permalink / raw)
  To: buildroot

Hello,

Thanks for the feedback!

On Thu, 22 Feb 2018 10:27:13 +0100, Arnout Vandecappelle wrote:

> > I've been thinking about this for a while, and I remember having a
> > discussion about this with some other Buildroot developer a while ago.
> > I think the most correct thing to do would be:
> > 
> >  $(HOST_DIR)/bin/pkg-config returns results valid for native compilation
> > 
> >  $(HOST_DIR)/bin/<tuple>-pkg-config returns results valid for cross-compilation  
> 
>  This sounds like a good idea, but as you note below, could lead to breakage as
> well.

Yes.

> 
>  An alternative would be (IIRC this idea was launched by ThomasDS (added in Cc)):
> 
> $(HOST_DIR)/bin/ contains binaries valid for native compilation (i.e. no
> cross-compiler, cross-pkg-config, ...)
> 
> $(HOST_DIR)/<tuple>/bin contains binaries valid for cross-compilation

Changing this will also lead to a lot of breakage. All our users who
have scripts doing $(HOST_DIR)/bin/<tuple>-gcc will be broken. I would
even qualify it as an even more radical change, breaking even more
stuff.

And more importantly, the result is not great. I think the most correct
result is to have a single HOST_DIR/bin, with both native and cross
compilation tools, with cross-compilation tools prefixed by <tuple>.

> > I.e, the current pkg-config wrapper should be renamed
> > <tuple>-pkg-config, and pkg-config should behave like a normal native
> > pkg-config, except that it provides results for libraries located in
> > $(HOST_DIR).
> > 
> > The autoconf PKG_CHECK_MODULES() macro uses PKG_PROG_PKG_CONFIG(),
> > which internally uses AC_PATH_TOOL(). And AC_PATH_TOOL() will first
> > search for the program with the host machine tuple, and warn if the
> > program cannot be found with this tuple. From
> > https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Generic-Programs.html:
> > 
> > """
> > When cross-compiling, this macro will issue a warning if no program
> > prefixed with the host type could be found. For more information, see
> > Specifying Target Triplets.   
> 
>  Weird, I checked a couple of log files and I could see no such warning. Ah,
> that's because we pass PKG_CONFIG=... in the environment.

Yes, I believe it is because we pass PKG_CONFIG=.

> Is it the idea to remove that from the environment then?

Not necessarily, because PKG_CONFIG may be used by non-autoconf based
packages. Some non-autotools packages do:

	FOO=`$PKG_CONFIG ...`

>  Anyway, the PATH-based alternative will not remove this warning, but that
> shouldn't be different from the current situation.
> 
> > """
> > 
> > I know this change will:
> > 
> >  - Potentially break a number of packages we have in Buildroot, which
> >    directly use pkg-config without first trying to use
> >    <tuple>-pkg-config  
> 
>  I.e. anything not using autotools? Well, most will probably heed the
> PKG_CONFIG=... in the environment.

Most yes, but not all. Some of them do:

	FOO=`pkg-config ...`

which currently works because PATH contains $(HOST_DIR)/bin, and
pkg-config returns correct results thanks to us injecting the proper
PKG_CONFIG_LIBDIR and PKG_CONFIG_SYSROOT_DIR depending on whether we're
building a host or target package.

>  The PATH-based alternative doesn't have this potential breakage.
> 
> 
> >  - Potentially break a number of downstream users who are using
> >    pkg-config.  
> 
>  The PATH-based alternative reduces this problem, downstream users just have to
> add $(HOST_DIR)/tuple/bin to their path (and Buildroot will do this for post-xxx
> scripts).

Well, they still have to change to $(HOST_DIR)/tuple/bin, which means
it breaks stuff for them anyway.

> > However:
> > 
> >  - It would solve that once you add $(HOST_DIR)/bin to your PATH, you
> >    cannot anymore do native builds because "pkg-config" returns results
> >    that are not relevant for native builds. I already saw a number of
> >    people affected by this.  
> 
>  The PATH-based alternative solves this as well.
> 
>  Note BTW that neither alternative solves the problem when building a host-tool
> during a target build (and yes, we have seen this problem already in some
> packages). AFAICS, autotools will also for host builds use the PKG_CONFIG passed
> in the environment or discovered through the tuple. Same for CMake.

Potentially autotools could be taught about PKG_CONFIG_FOR_BUILD, just
like it does for CC_FOR_BUILD and al. But that's obviously not
supported by packages today.

> >  - It would comply with the standard autoconf expectations.  
> 
>  With the PATH-based alternative, it might make sense to have the cross-stuff
> both in $(HOST_DIR)/bin with the tuple prefix, and in $(HOST_DIR)/tuple/bin
> without the prefix. That way, we get the advantages of both: comply with
> autoconf expectations, and avoid breaking packages or downstream users.

I'm still not convinced about changing the HOST_DIR/ organization. It's
a massive change, affecting everything, and not just pkg-config, and
the outcome is less nice than what we have today, for my perspective.

Best regards,

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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-22  9:41       ` Thomas Petazzoni
@ 2018-02-22 10:56         ` Arnout Vandecappelle
  2018-02-25 20:38           ` Thomas De Schampheleire
  0 siblings, 1 reply; 24+ messages in thread
From: Arnout Vandecappelle @ 2018-02-22 10:56 UTC (permalink / raw)
  To: buildroot



On 22-02-18 10:41, Thomas Petazzoni wrote:
>>  With the PATH-based alternative, it might make sense to have the cross-stuff
>> both in $(HOST_DIR)/bin with the tuple prefix, and in $(HOST_DIR)/tuple/bin
>> without the prefix. That way, we get the advantages of both: comply with
>> autoconf expectations, and avoid breaking packages or downstream users.
>
> I'm still not convinced about changing the HOST_DIR/ organization. It's
> a massive change, affecting everything, and not just pkg-config, and
> the outcome is less nice than what we have today, for my perspective.

 Well, this extended PATH-based alternative (which is BTW what I think ThomasDS
suggested to begin with) is not at all invasive: cross-things stay in host/bin
as they are today, we just add host/tuple/bin which contains cross-things
without the tuple-prefix, and we add this to the PATH. Then in a second step, we
move pkg-config to tuple-pkg-config, BUT we also add it without prefix to
host/tuple/bin. So it doesn't break anything at all, since for target builds, we
have host/tuple/bin in PATH (and PKG_CONFIG=host/bin/tuple-pkg-config in the
environment) - behaviour is the same as before.

 There is a bit of breakage, however: host/tuple/bin/gcc will be in PATH, so any
package that calls gcc from PATH will now get target gcc instead of host gcc. On
the other hand, apparently[1], CMake doesn't have any support for building host
executables and requires a two-step approach instead; I guess most non-autotools
packages will have a similar limitation.

 So yeah, adding host/tuple/bin to PATH may not be as uninvasive as I thought...

 Regards,
 Arnout


[1]
https://cmake.org/Wiki/CMake_Cross_Compiling#Using_executables_in_the_build_created_during_the_build


-- 
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

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package
  2018-02-21 21:27   ` Thomas Petazzoni
@ 2018-02-22 14:29     ` Gaël PORTAY
  2018-02-22 16:38       ` Baruch Siach
  0 siblings, 1 reply; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-22 14:29 UTC (permalink / raw)
  To: buildroot

Thomas,

On Wed, Feb 21, 2018 at 10:27:00PM +0100, Thomas Petazzoni wrote:
> Hello,
> 
> On Wed, 21 Feb 2018 09:27:56 -0500, Ga?l PORTAY wrote:
> > Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> > ---
> >  package/libnspr/Config.in.host | 10 ++++++++++
> >  package/libnspr/libnspr.mk     |  7 +++++++
> >  2 files changed, 17 insertions(+)
> >  create mode 100644 package/libnspr/Config.in.host
> > 
> > diff --git a/package/libnspr/Config.in.host b/package/libnspr/Config.in.host
> > new file mode 100644
> > index 0000000000..a80b55e122
> > --- /dev/null
> > +++ b/package/libnspr/Config.in.host
> > @@ -0,0 +1,10 @@
> > +config BR2_PACKAGE_HOST_LIBNSPR
> > +	bool "host libnspr"
> > +	help
> > +	  NSPR is the Netscape Portable Runtime library which provides
> > +	  a platform-neutral API for system level and libc like
> > +	  functions. The library is used by the Mozilla project as well
> > +	  as others.
> > +
> > +	  http://www.mozilla.org/projects/nspr/
> > +
> 
> It is not necessary to add a Config.in.host option for this package, it
> is just a build dependency of another package.
> 

Okay. I have not noticed that.

> > diff --git a/package/libnspr/libnspr.mk b/package/libnspr/libnspr.mk
> > index 0c782ae309..c1662947f7 100644
> > --- a/package/libnspr/libnspr.mk
> > +++ b/package/libnspr/libnspr.mk
> > @@ -49,4 +49,11 @@ LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) LIBRARY= install
> >  LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LIBRARY= install
> >  endif
> >  
> > +ifeq ($(HOSTARCH),x86_64)
> > +HOST_LIBNSPR_CONF_OPTS += --enable-64bit
> 
> x86_64 is not the only 64-bit architecture in the world: we have an
> autobuilder running on a ppc64 machine for example.
> 

Okay, great! I did not know that we were supporting other architecture
than intel for build :)

BTW, I picked up the "code" from another package. Probably took it from
wine.mk.

	# Wine needs to enable 64-bit build tools on 64-bit host
	ifeq ($(HOSTARCH),x86_64)
	HOST_WINE_CONF_OPTS += --enable-win64
	endif

I may filter to %64 instead. Do very 64bits architectures are named
using 64?

> We don't really have a good way today to test if the host architecture
> is 64 bit or not, so it would need to be added.
> 
> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> http://bootlin.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Gael

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10
  2018-02-21 21:58   ` Thomas Petazzoni
@ 2018-02-22 14:42     ` Gaël PORTAY
  0 siblings, 0 replies; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-22 14:42 UTC (permalink / raw)
  To: buildroot

Thomas,

On Wed, Feb 21, 2018 at 10:58:15PM +0100, Thomas Petazzoni wrote:
> ... 
> 
> So if we merge PATCH 4/6, but not this PATCH 5/6, qt5webengine doesn't
> build in its 5.10 version ? If that's the case, then you have a
> bisectability problem.
> 

Right.

> I'm fine with having it separate during the review, to make PATCH 4/6
> be just a mechanism change of all versions and hashes, and PATCH 5/6 be
> a fixup patch that should be squashed into the 5.10 bump once applied.
> But if that's the case, it should be noted...
> 
> > ---
> 
> ... here.
> 

Indeed, it is a good place for this note.

I should have thought of this :)

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

Regards,
Gael

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool
  2018-02-21 21:59   ` Thomas Petazzoni
@ 2018-02-22 14:44     ` Gaël PORTAY
  0 siblings, 0 replies; 24+ messages in thread
From: Gaël PORTAY @ 2018-02-22 14:44 UTC (permalink / raw)
  To: buildroot

Thomas,

On Wed, Feb 21, 2018 at 10:59:31PM +0100, Thomas Petazzoni wrote:
> ... 
> 
> Same comment for this one as for PATCH 5/6: what happens if we apply
> your series up to PATCH 5/6, but excluding PATCH 6/6 ? qt5webengine
> will fail to build, while it was building before, which is a
> regression. So I assume this should be in the 5.10 bump as well, or
> kept separate during the review, and squashed when applying. But it
> should be mentioned.
> 

Right.

I will squash both patches in the next version of the patchset.

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

Regards,
Gael

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package
  2018-02-22 14:29     ` Gaël PORTAY
@ 2018-02-22 16:38       ` Baruch Siach
  0 siblings, 0 replies; 24+ messages in thread
From: Baruch Siach @ 2018-02-22 16:38 UTC (permalink / raw)
  To: buildroot

Hi Ga?l,

On Thu, Feb 22, 2018 at 09:29:13AM -0500, Ga?l PORTAY wrote:
> On Wed, Feb 21, 2018 at 10:27:00PM +0100, Thomas Petazzoni wrote:
> > On Wed, 21 Feb 2018 09:27:56 -0500, Ga?l PORTAY wrote:
> > > +ifeq ($(HOSTARCH),x86_64)
> > > +HOST_LIBNSPR_CONF_OPTS += --enable-64bit
> > 
> > x86_64 is not the only 64-bit architecture in the world: we have an
> > autobuilder running on a ppc64 machine for example.
> 
> Okay, great! I did not know that we were supporting other architecture
> than intel for build :)
> 
> BTW, I picked up the "code" from another package. Probably took it from
> wine.mk.
> 
> 	# Wine needs to enable 64-bit build tools on 64-bit host
> 	ifeq ($(HOSTARCH),x86_64)
> 	HOST_WINE_CONF_OPTS += --enable-win64
> 	endif

Wine is a special case. Originally it supported build only on x86 hosts. See 
commit e6803b9f913 (wine: New package). Later, commit 43e7aab08382 (wine: more 
hostarch) added more host architectures. Among these is aarch64. So this code 
is indeed not correct.

> I may filter to %64 instead. Do very 64bits architectures are named
> using 64?

This seems to be the case for the architectures that Buildroot currently 
supports. I don't think this rule holds in the general case. Counterexample: 
alpha.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1
  2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1 Gaël PORTAY
  2018-02-21 21:56   ` Thomas Petazzoni
@ 2018-02-23 18:32   ` Peter Seiderer
  1 sibling, 0 replies; 24+ messages in thread
From: Peter Seiderer @ 2018-02-23 18:32 UTC (permalink / raw)
  To: buildroot

Hello Ga?l,

On Wed, 21 Feb 2018 09:27:59 -0500, Ga?l PORTAY <gael.portay@savoirfairelinux.com> wrote:

> qtconnectivity:
> 
> 	0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
> 	was upstreamed[1].
> 
> qtquickcontrols:
> 
> 	0001-Example-flatstyle-needs-widgets-module.patch was
> 	upstreamed[2]
> 
> qtwebengine:
> 
> 	0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch was
> 	upstreamed[3], then reverted[4] and finally restored[5].
> 
> [1]: https://code.qt.io/cgit/qt/qtconnectivity.git/commit/?id=22d20e81d866b79e1e9fefe3f24f93aeb687a450
> [2]: https://code.qt.io/cgit/qt/qtquickcontrols2.git/commit/?id=bd617ed62ba35ee11da75b7e92db3fd190751b0f
> [3]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad
> [4]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=c11c2c8981e647c1eb2c6753ce77d436b92fff87
> [5]: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=e812237b6980584fc5939f49f6a18315cc694c3a
> 
> Note: Hashes has been updated and tested using the following script:
> 
> 	#!/bin/bash
> 
> 	set -e
> 
> 	if [ "$BR2_PACKAGE_QT5_VERSION_5_6" = y ]
> 	then
> 		set -- "${@/qt5charts/}"
> 		set -- "${@/qt5scxml/}"
> 		set -- "${@/qt5virtualkeyboard/}"
> 		set -- "${@/qt5wayland/}"
> 		set -- BR2_PACKAGE_QT5_VERSION_5_6=y
> 		QT5_VERSION_MAJOR=5.6
> 		QT5_VERSION=5.6.3
> 	else
> 		QT5_VERSION_MAJOR=5.10
> 		QT5_VERSION=5.10.1
> 		set -- BR2_PACKAGE_QT5_VERSION_LATEST=y
> 	fi
> 
> 	update_hash() {
> 		find package/qt5/ -name "*.hash" -exec \
> 		sed -e "s,$QT5_VERSION_MAJOR\.[0-9]*,$QT5_VERSION,g" \
> 		    -e "\,https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/,{s,opensource,everywhere,;n;s,opensource,everywhere,}" \
> 		    -i {} \;
> 	}
> 
> 	update_makefile() {
> 		find package/qt5/ -name "*.mk" -exec \
> 		sed -e "/QT5[A-Z0-9_]*_SOURCE = qt\([a-z0-9-]*\)-opensource-src-\$(\(QT5[A-Z0-9_]*\)_VERSION).tar.xz/s/= .*/= \$(call qt5source,qt5\1,\$(\2_VERSION))/" \
> 		     {} \;
> 	}
> 
> 	update_makefile() {
> 		find package/qt5/ -name "*.mk" -exec \
> 		sed -e "/QT5[A-Z0-9_]*_SOURCE = qt[a-z0-9-]*-opensource-src-\$(QT5[A-Z0-9_]*_VERSION).tar.xz/s/= \(qt[a-z0-9-]*\)-opensource-src-\$(\(QT5[A-Z0-9_]*\)_VERSION).tar.xz/= \$(call qt5source,\1,\$(\2_VERSION))/" \
> 		    -i {} \;
> 	}
> 
> 	get_url() {
> 		sed -e "\,# Hash from: https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/.*,{s,# Hash from: ,,;s,\.mirrorlist,.sha256,p}" \
> 		    -n "$1"
> 	}
> 
> 	update_sha256() {
> 		sed -e "\,# Hash from: https\?://download.qt.io/official_releases/qt/$QT5_VERSION_MAJOR/.*,{n;s,^.*$,sha256 $2,}" \
> 		    -i "$1"
> 	}
> 
> 	update_hashfile() {
> 		local url sha256
> 		url="$(get_url "$pkg/$module.hash")"
> 		sha256="$(wget -O- "$url")"
> 		update_sha256 "$pkg/$module.hash" "$sha256"
> 	}
> 
> 	update_hash
> 
> 	for pkg in package/qt5/qt5*
> 	do
> 		[ -d "$pkg" ] || continue
> 		module=${pkg##*/}
> 		if [ "$BR2_PACKAGE_QT5_VERSION_5_6" = y ]
> 		then
> 			case "$module" in
> 			qt5charts|qt5scxml|qt5virtualkeyboard|qt5wayland)
> 				echo "Warning: $module: skipped" >&2
> 				continue
> 				;;
> 			qt5webbrowser)
> 				echo "Warning: $module: skipped" >&2
> 				continue
> 				;;
> 			esac
> 		fi
> 
> 		if ! update_hashfile "$pkg/$module.hash"
> 		then
> 			continue
> 		fi
> 		echo "$module-source"
> 	done | xargs make "$@"
> 

The script part is a little lengthy for a commit log, maybe better
to add an extra patch adding something like utils/update-qt-helper
with the script content to ease the next qt5 version bump?

Otherwise looks good, and did a partly compile-/runtime test of
some packages, but found two compile/install failures (sqlite plugin,
qt5multimedia with gstreamer), patches will follow...

Regards,
Peter

> Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> ---
>  package/qt5/Config.in                              |  4 +-
>  package/qt5/qt5.mk                                 | 10 ++-
>  package/qt5/qt53d/qt53d.hash                       |  4 +-
>  package/qt5/qt53d/qt53d.mk                         |  2 +-
>  package/qt5/qt5base/qt5base.hash                   |  4 +-
>  package/qt5/qt5base/qt5base.mk                     |  2 +-
>  package/qt5/qt5canvas3d/qt5canvas3d.hash           |  4 +-
>  package/qt5/qt5canvas3d/qt5canvas3d.mk             |  2 +-
>  package/qt5/qt5charts/qt5charts.hash               |  4 +-
>  package/qt5/qt5charts/qt5charts.mk                 |  2 +-
>  ...rtrate-server-needs-only-core-and-bluetoo.patch | 32 --------
>  package/qt5/qt5connectivity/qt5connectivity.hash   |  4 +-
>  package/qt5/qt5connectivity/qt5connectivity.mk     |  2 +-
>  package/qt5/qt5declarative/qt5declarative.hash     |  4 +-
>  package/qt5/qt5declarative/qt5declarative.mk       |  2 +-
>  package/qt5/qt5enginio/qt5enginio.mk               |  4 +-
>  .../qt5graphicaleffects/qt5graphicaleffects.hash   |  4 +-
>  .../qt5/qt5graphicaleffects/qt5graphicaleffects.mk |  2 +-
>  package/qt5/qt5imageformats/qt5imageformats.hash   |  4 +-
>  package/qt5/qt5imageformats/qt5imageformats.mk     |  2 +-
>  package/qt5/qt5location/qt5location.hash           |  4 +-
>  package/qt5/qt5location/qt5location.mk             |  2 +-
>  package/qt5/qt5multimedia/qt5multimedia.hash       |  4 +-
>  package/qt5/qt5multimedia/qt5multimedia.mk         |  2 +-
>  package/qt5/qt5quickcontrols/qt5quickcontrols.hash |  4 +-
>  package/qt5/qt5quickcontrols/qt5quickcontrols.mk   |  2 +-
>  ...01-Example-flatstyle-needs-widgets-module.patch | 31 --------
>  .../qt5/qt5quickcontrols2/qt5quickcontrols2.hash   |  4 +-
>  package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk |  2 +-
>  package/qt5/qt5script/qt5script.hash               |  4 +-
>  package/qt5/qt5script/qt5script.mk                 |  2 +-
>  package/qt5/qt5scxml/qt5scxml.hash                 |  4 +-
>  package/qt5/qt5scxml/qt5scxml.mk                   |  2 +-
>  package/qt5/qt5sensors/qt5sensors.hash             |  4 +-
>  package/qt5/qt5sensors/qt5sensors.mk               |  2 +-
>  package/qt5/qt5serialbus/qt5serialbus.hash         |  4 +-
>  package/qt5/qt5serialbus/qt5serialbus.mk           |  2 +-
>  package/qt5/qt5serialport/qt5serialport.hash       |  4 +-
>  package/qt5/qt5serialport/qt5serialport.mk         |  2 +-
>  package/qt5/qt5svg/qt5svg.hash                     |  4 +-
>  package/qt5/qt5svg/qt5svg.mk                       |  2 +-
>  package/qt5/qt5tools/qt5tools.hash                 |  4 +-
>  package/qt5/qt5tools/qt5tools.mk                   |  2 +-
>  .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash |  4 +-
>  .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk   |  2 +-
>  package/qt5/qt5wayland/qt5wayland.hash             |  4 +-
>  package/qt5/qt5wayland/qt5wayland.mk               |  2 +-
>  package/qt5/qt5webchannel/qt5webchannel.hash       |  4 +-
>  package/qt5/qt5webchannel/qt5webchannel.mk         |  2 +-
>  ...ad-libEGL-and-libGLES2-symbols-implicitly.patch | 89 ----------------------
>  package/qt5/qt5webengine/qt5webengine.hash         |  4 +-
>  package/qt5/qt5webengine/qt5webengine.mk           |  2 +-
>  .../qt5/qt5webkit-examples/qt5webkit-examples.mk   |  2 +-
>  package/qt5/qt5websockets/qt5websockets.hash       |  4 +-
>  package/qt5/qt5websockets/qt5websockets.mk         |  2 +-
>  package/qt5/qt5x11extras/qt5x11extras.hash         |  4 +-
>  package/qt5/qt5x11extras/qt5x11extras.mk           |  2 +-
>  package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash     |  4 +-
>  package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk       |  2 +-
>  59 files changed, 90 insertions(+), 238 deletions(-)
>  delete mode 100644 package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
>  delete mode 100644 package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
>  delete mode 100644 package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch
> 
> diff --git a/package/qt5/Config.in b/package/qt5/Config.in
> index a9ee44c11f..b7786f7a63 100644
> --- a/package/qt5/Config.in
> +++ b/package/qt5/Config.in
> @@ -35,14 +35,14 @@ choice
>  	prompt "Qt5 version"
>  
>  config BR2_PACKAGE_QT5_VERSION_LATEST
> -	bool "Latest (5.9)"
> +	bool "Latest (5.10)"
>  	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
>  	depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
>  	depends on !BR2_ARM_CPU_ARMV4 # needs ARMv5+
>  	# no built-in double-conversion support
>  	depends on !BR2_arc && !BR2_nios2 && !BR2_xtensa
>  	help
> -	  This option builds Qt 5.9, which is licensed under
> +	  This option builds Qt 5.10, which is licensed under
>  	  (L)GPL-3.0+.
>  
>  comment "Latest Qt version needs host/toolchain w/ gcc >= 4.8"
> diff --git a/package/qt5/qt5.mk b/package/qt5/qt5.mk
> index 7a6e1d7cfe..2ad35dbd1f 100644
> --- a/package/qt5/qt5.mk
> +++ b/package/qt5/qt5.mk
> @@ -5,13 +5,17 @@
>  ################################################################################
>  
>  ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
> -QT5_VERSION_MAJOR = 5.9
> -QT5_VERSION = $(QT5_VERSION_MAJOR).3
> +QT5_VERSION_MAJOR = 5.10
> +QT5_VERSION = $(QT5_VERSION_MAJOR).1
> +QT5_SRC = everywhere-src
>  else
>  QT5_VERSION_MAJOR = 5.6
>  QT5_VERSION = $(QT5_VERSION_MAJOR).3
> +QT5_SRC = opensource-src
>  endif
> -QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
> +QT5_SITE = https://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
> +# qt5(module,version): returns site of Qt5 tarball
> +qt5source = $(1)-$(QT5_SRC)-$(2).tar.xz
>  
>  include $(sort $(wildcard package/qt5/*/*.mk))
>  
> diff --git a/package/qt5/qt53d/qt53d.hash b/package/qt5/qt53d/qt53d.hash
> index 18441ead0d..9d9ff8f69c 100644
> --- a/package/qt5/qt53d/qt53d.hash
> +++ b/package/qt5/qt53d/qt53d.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qt3d-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 10d05a30e925fcad971126c7f47a5e32c39f007dab96b298b2094501f9607ffe qt3d-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qt3d-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 97925132f0583ccd76f5e104c849341df3abba73dd4d9b647622a23bdae6273f qt3d-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qt3d-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 041fb42536a72bbf9be17a6f52d4b73ce93fb98b456fd63503cc47d80d196b3b  qt3d-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPL
> diff --git a/package/qt5/qt53d/qt53d.mk b/package/qt5/qt53d/qt53d.mk
> index 4f37ae7f5d..fcbecff68c 100644
> --- a/package/qt5/qt53d/qt53d.mk
> +++ b/package/qt5/qt53d/qt53d.mk
> @@ -6,7 +6,7 @@
>  
>  QT53D_VERSION = $(QT5_VERSION)
>  QT53D_SITE = $(QT5_SITE)
> -QT53D_SOURCE = qt3d-opensource-src-$(QT5SVG_VERSION).tar.xz
> +QT53D_SOURCE = $(call qt5source,qt3d,$(QT53D_VERSION))
>  QT53D_DEPENDENCIES = qt5base qt5declarative
>  QT53D_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5base/qt5base.hash b/package/qt5/qt5base/qt5base.hash
> index c6e694ab39..d788c071d8 100644
> --- a/package/qt5/qt5base/qt5base.hash
> +++ b/package/qt5/qt5base/qt5base.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtbase-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 9e7c44005e7691dc7c85165bd4510282c47f0163521f4973eab71dbdb39a9982 qtbase-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtbase-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 d8660e189caa5da5142d5894d328b61a4d3ee9750b76d61ad74e4eee8765a969  qtbase-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index b3f9c799cb..a48ce2e308 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -6,7 +6,7 @@
>  
>  QT5BASE_VERSION = $(QT5_VERSION)
>  QT5BASE_SITE = $(QT5_SITE)
> -QT5BASE_SOURCE = qtbase-opensource-src-$(QT5BASE_VERSION).tar.xz
> +QT5BASE_SOURCE = $(call qt5source,qtbase,$(QT5BASE_VERSION))
>  
>  QT5BASE_DEPENDENCIES = host-pkgconf zlib
>  QT5BASE_INSTALL_STAGING = YES
> diff --git a/package/qt5/qt5canvas3d/qt5canvas3d.hash b/package/qt5/qt5canvas3d/qt5canvas3d.hash
> index 1664f626cd..d15fde9df7 100644
> --- a/package/qt5/qt5canvas3d/qt5canvas3d.hash
> +++ b/package/qt5/qt5canvas3d/qt5canvas3d.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtcanvas3d-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 e99e0e159f2fba539b7947a1921072f6807f20958d32809edbf12aac571f56ff qtcanvas3d-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcanvas3d-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 5e38b17844af801be57844da0379cc6882750b9019034f4fe884aae70c300abc qtcanvas3d-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtcanvas3d-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 de829a8e6aa4b8496048e9b6f3bff306a80c35935855a94426025ddfb8bcb0c0  qtcanvas3d-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5canvas3d/qt5canvas3d.mk b/package/qt5/qt5canvas3d/qt5canvas3d.mk
> index 97b0ec494e..0d31f45184 100644
> --- a/package/qt5/qt5canvas3d/qt5canvas3d.mk
> +++ b/package/qt5/qt5canvas3d/qt5canvas3d.mk
> @@ -6,7 +6,7 @@
>  
>  QT5CANVAS3D_VERSION = $(QT5_VERSION)
>  QT5CANVAS3D_SITE = $(QT5_SITE)
> -QT5CANVAS3D_SOURCE = qtcanvas3d-opensource-src-$(QT5CANVAS3D_VERSION).tar.xz
> +QT5CANVAS3D_SOURCE = $(call qt5source,qtcanvas3d,$(QT5CANVAS3D_VERSION))
>  QT5CANVAS3D_DEPENDENCIES = qt5base qt5declarative
>  QT5CANVAS3D_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5charts/qt5charts.hash b/package/qt5/qt5charts/qt5charts.hash
> index 3a9db5b297..5a5845ef9f 100644
> --- a/package/qt5/qt5charts/qt5charts.hash
> +++ b/package/qt5/qt5charts/qt5charts.hash
> @@ -1,5 +1,5 @@
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtcharts-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 ec1783a81d5715fc48a3276e67b90a66cac3e283ac14fc3bf88b2058994d69e9  qtcharts-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtcharts-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 4f0d577bf73dd2bbb2765c2cfb493a2d68790fc2c64f42544d31dba806321ec9  qtcharts-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
> diff --git a/package/qt5/qt5charts/qt5charts.mk b/package/qt5/qt5charts/qt5charts.mk
> index 17fdd96702..ab5d7f5aa6 100644
> --- a/package/qt5/qt5charts/qt5charts.mk
> +++ b/package/qt5/qt5charts/qt5charts.mk
> @@ -6,7 +6,7 @@
>  
>  QT5CHARTS_VERSION = $(QT5_VERSION)
>  QT5CHARTS_SITE = $(QT5_SITE)
> -QT5CHARTS_SOURCE = qtcharts-opensource-src-$(QT5CHARTS_VERSION).tar.xz
> +QT5CHARTS_SOURCE = $(call qt5source,qtcharts,$(QT5CHARTS_VERSION))
>  QT5CHARTS_DEPENDENCIES = qt5base
>  QT5CHARTS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch b/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
> deleted file mode 100644
> index cb0e8d18b1..0000000000
> --- a/package/qt5/qt5connectivity/5.9.3/0001-Example-heartrate-server-needs-only-core-and-bluetoo.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From 13c2f56cc9c3bbfe0c96031107e7fafd437703d9 Mon Sep 17 00:00:00 2001
> -From: Peter Seiderer <ps.report@gmx.net>
> -Date: Sat, 18 Nov 2017 21:07:44 +0100
> -Subject: [PATCH] Example heartrate-server needs only core and bluetooth module
> -
> -Fixes compile with disabled gui module.
> -
> -Task-number: QTBUG-64597
> -Change-Id: I376dede3db987e524f97070344cc119e0ee1d187
> -
> -Upstream: https://codereview.qt-project.org/211810
> -Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ----
> - examples/bluetooth/heartrate-server/heartrate-server.pro | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/examples/bluetooth/heartrate-server/heartrate-server.pro b/examples/bluetooth/heartrate-server/heartrate-server.pro
> -index 4ccf486c..edd011b9 100644
> ---- a/examples/bluetooth/heartrate-server/heartrate-server.pro
> -+++ b/examples/bluetooth/heartrate-server/heartrate-server.pro
> -@@ -1,7 +1,7 @@
> - TEMPLATE = app
> - TARGET = heartrate-server
> - 
> --QT += bluetooth
> -+QT = core bluetooth
> - CONFIG += c++11
> - 
> - SOURCES += main.cpp
> --- 
> -2.14.2
> -
> diff --git a/package/qt5/qt5connectivity/qt5connectivity.hash b/package/qt5/qt5connectivity/qt5connectivity.hash
> index aaa3ef275b..8364536309 100644
> --- a/package/qt5/qt5connectivity/qt5connectivity.hash
> +++ b/package/qt5/qt5connectivity/qt5connectivity.hash
> @@ -1,5 +1,5 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtconnectivity-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 fa406e3d63fa4a2acc8ecae6d110f20c766f19a21c7061a12f3c167deb07ccde qtconnectivity-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtconnectivity-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 e2891e6e8d91e82e3c4d5667f3146062458067c0b706d65ac0fc7562afce0649 qtconnectivity-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtconnectivity-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 652821dc6819658ec4bc1a6bf149fd7a61008748ff4745b54f038ccf276d3ec9  qtconnectivity-everywhere-src-5.10.1.tar.xz
> diff --git a/package/qt5/qt5connectivity/qt5connectivity.mk b/package/qt5/qt5connectivity/qt5connectivity.mk
> index 4369a411a5..61dd853f81 100644
> --- a/package/qt5/qt5connectivity/qt5connectivity.mk
> +++ b/package/qt5/qt5connectivity/qt5connectivity.mk
> @@ -6,7 +6,7 @@
>  
>  QT5CONNECTIVITY_VERSION = $(QT5_VERSION)
>  QT5CONNECTIVITY_SITE = $(QT5_SITE)
> -QT5CONNECTIVITY_SOURCE = qtconnectivity-opensource-src-$(QT5CONNECTIVITY_VERSION).tar.xz
> +QT5CONNECTIVITY_SOURCE = $(call qt5source,qtconnectivity,$(QT5CONNECTIVITY_VERSION))
>  QT5CONNECTIVITY_DEPENDENCIES = qt5base
>  QT5CONNECTIVITY_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5declarative/qt5declarative.hash b/package/qt5/qt5declarative/qt5declarative.hash
> index 6f171ffa40..1634a88ecc 100644
> --- a/package/qt5/qt5declarative/qt5declarative.hash
> +++ b/package/qt5/qt5declarative/qt5declarative.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtdeclarative-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 f63fc053d0d16b8a9ca9308f8ead77874b470ae31b66057e2bd336bf648191fc qtdeclarative-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtdeclarative-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 505f66d2062c1d84ce743a0b4969531e1cf94e30970dc64efffe10f74f989407 qtdeclarative-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtdeclarative-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 3af9ed51bce5b5c6f04c4a67a6008f98765ccde897c43fff670621ab70789553  qtdeclarative-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5declarative/qt5declarative.mk b/package/qt5/qt5declarative/qt5declarative.mk
> index de8b048329..2c5027e304 100644
> --- a/package/qt5/qt5declarative/qt5declarative.mk
> +++ b/package/qt5/qt5declarative/qt5declarative.mk
> @@ -6,7 +6,7 @@
>  
>  QT5DECLARATIVE_VERSION = $(QT5_VERSION)
>  QT5DECLARATIVE_SITE = $(QT5_SITE)
> -QT5DECLARATIVE_SOURCE = qtdeclarative-opensource-src-$(QT5DECLARATIVE_VERSION).tar.xz
> +QT5DECLARATIVE_SOURCE = $(call qt5source,qtdeclarative,$(QT5DECLARATIVE_VERSION))
>  QT5DECLARATIVE_DEPENDENCIES = qt5base qt5xmlpatterns
>  QT5DECLARATIVE_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5enginio/qt5enginio.mk b/package/qt5/qt5enginio/qt5enginio.mk
> index 5590d7cf4e..38f309646f 100644
> --- a/package/qt5/qt5enginio/qt5enginio.mk
> +++ b/package/qt5/qt5enginio/qt5enginio.mk
> @@ -6,8 +6,8 @@
>  
>  # Qt5Enginio does not follow Qt versionning
>  # see https://bugreports.qt.io/browse/QTBUG-50111
> -QT5ENGINIO_VERSION = 1.6.2
> -QT5ENGINIO_SITE = $(QT5_SITE)
> +QT5ENGINIO_VERSION = 1.6.3
> +QT5ENGINIO_SITE = https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules
>  QT5ENGINIO_SOURCE = qtenginio-opensource-src-$(QT5ENGINIO_VERSION).tar.xz
>  QT5ENGINIO_DEPENDENCIES = openssl qt5base
>  QT5ENGINIO_INSTALL_STAGING = YES
> diff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
> index 8770d72a19..0eb188f139 100644
> --- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
> +++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtgraphicaleffects-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 c742592d5e45b122b29df60b69be23ba7c817f2dc471db86e054f6ea24a999ed qtgraphicaleffects-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtgraphicaleffects-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 790b029bc8bdbb5c9548ecad2ff6e73b7da3deabbdba6bacac4a6aacd3a0f0d9 qtgraphicaleffects-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtgraphicaleffects-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 3f3b0631b579630bf58e99f3ca0d8dfdb6a44153c63cf90ac9e07041b4b1847f  qtgraphicaleffects-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
> index 2f6380f712..3467783b60 100644
> --- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
> +++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk
> @@ -6,7 +6,7 @@
>  
>  QT5GRAPHICALEFFECTS_VERSION = $(QT5_VERSION)
>  QT5GRAPHICALEFFECTS_SITE = $(QT5_SITE)
> -QT5GRAPHICALEFFECTS_SOURCE = qtgraphicaleffects-opensource-src-$(QT5GRAPHICALEFFECTS_VERSION).tar.xz
> +QT5GRAPHICALEFFECTS_SOURCE = $(call qt5source,qtgraphicaleffects,$(QT5GRAPHICALEFFECTS_VERSION))
>  QT5GRAPHICALEFFECTS_DEPENDENCIES = qt5base qt5declarative
>  QT5GRAPHICALEFFECTS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5imageformats/qt5imageformats.hash b/package/qt5/qt5imageformats/qt5imageformats.hash
> index c56ed7d587..ac858ea244 100644
> --- a/package/qt5/qt5imageformats/qt5imageformats.hash
> +++ b/package/qt5/qt5imageformats/qt5imageformats.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtimageformats-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 efe4da3c90c976c9b9a2eb6b081d2b8e1435935695104456276ce98e8a5848c3 qtimageformats-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtimageformats-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 d4b309ddbac2275cafadffc62047a26ed8f169bde015925761894843eae725dd qtimageformats-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtimageformats-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 2804baa2779eae015096820e233d7f86bb7fde9853b7c9150a321a453422a283  qtimageformats-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5imageformats/qt5imageformats.mk b/package/qt5/qt5imageformats/qt5imageformats.mk
> index f70f131d50..f0215837bd 100644
> --- a/package/qt5/qt5imageformats/qt5imageformats.mk
> +++ b/package/qt5/qt5imageformats/qt5imageformats.mk
> @@ -6,7 +6,7 @@
>  
>  QT5IMAGEFORMATS_VERSION = $(QT5_VERSION)
>  QT5IMAGEFORMATS_SITE = $(QT5_SITE)
> -QT5IMAGEFORMATS_SOURCE = qtimageformats-opensource-src-$(QT5IMAGEFORMATS_VERSION).tar.xz
> +QT5IMAGEFORMATS_SOURCE = $(call qt5source,qtimageformats,$(QT5IMAGEFORMATS_VERSION))
>  QT5IMAGEFORMATS_DEPENDENCIES = qt5base
>  QT5IMAGEFORMATS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5location/qt5location.hash b/package/qt5/qt5location/qt5location.hash
> index 5bb2021e09..c89af3fa89 100644
> --- a/package/qt5/qt5location/qt5location.hash
> +++ b/package/qt5/qt5location/qt5location.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtlocation-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 b7a81c58cc331fb15bea8fba21d3c9a59f6dc6ad2e4855e30a14ce59a2af1466 qtlocation-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtlocation-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 80fd425cde8747c1fc79aa90994a9caf921d7c79ff41babec692fe43cdc74ce1 qtlocation-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtlocation-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 5e5cc05517c701a2c8ebba1fbe3ddff2b6b90d5aa554d307b1c477fe0cfd72c9  qtlocation-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5location/qt5location.mk b/package/qt5/qt5location/qt5location.mk
> index e9f1e4d93d..3b0ec5d2ef 100644
> --- a/package/qt5/qt5location/qt5location.mk
> +++ b/package/qt5/qt5location/qt5location.mk
> @@ -6,7 +6,7 @@
>  
>  QT5LOCATION_VERSION = $(QT5_VERSION)
>  QT5LOCATION_SITE = $(QT5_SITE)
> -QT5LOCATION_SOURCE = qtlocation-opensource-src-$(QT5LOCATION_VERSION).tar.xz
> +QT5LOCATION_SOURCE = $(call qt5source,qtlocation,$(QT5LOCATION_VERSION))
>  QT5LOCATION_DEPENDENCIES = qt5base
>  QT5LOCATION_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5multimedia/qt5multimedia.hash b/package/qt5/qt5multimedia/qt5multimedia.hash
> index 750c3379ca..0fb25b6e09 100644
> --- a/package/qt5/qt5multimedia/qt5multimedia.hash
> +++ b/package/qt5/qt5multimedia/qt5multimedia.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtmultimedia-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 ae36039ea8037742342f1615687e0ca2188f3ed0d700627a5e5be546c15e1b46 qtmultimedia-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtmultimedia-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 e79558d24ace9b4444d91d807b85778b6a0a592e7d1500ffadf45f7d3b8238a6 qtmultimedia-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtmultimedia-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 a1fa98015ee5a6b81f2d337abc98d8b297c6718f7714a1f13fccfd2934c23649  qtmultimedia-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5multimedia/qt5multimedia.mk b/package/qt5/qt5multimedia/qt5multimedia.mk
> index 6df96bcab4..6120403f30 100644
> --- a/package/qt5/qt5multimedia/qt5multimedia.mk
> +++ b/package/qt5/qt5multimedia/qt5multimedia.mk
> @@ -6,7 +6,7 @@
>  
>  QT5MULTIMEDIA_VERSION = $(QT5_VERSION)
>  QT5MULTIMEDIA_SITE = $(QT5_SITE)
> -QT5MULTIMEDIA_SOURCE = qtmultimedia-opensource-src-$(QT5MULTIMEDIA_VERSION).tar.xz
> +QT5MULTIMEDIA_SOURCE = $(call qt5source,qtmultimedia,$(QT5MULTIMEDIA_VERSION))
>  QT5MULTIMEDIA_DEPENDENCIES = qt5base
>  QT5MULTIMEDIA_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
> index 84890c5612..a829e6b495 100644
> --- a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
> +++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 31bb0fc8f21b855af6ff02c415be3246128b523d0ef7c05e248e92281ab0db8e qtquickcontrols-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtquickcontrols-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 300eeebd7d2c243c0123bc2324b5643b3f967c0816aead0ba7b993aeeac0e226 qtquickcontrols-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtquickcontrols-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 d231a1993dc6a3f0dbc60a21d01fc0be15b0c26e881bd0631573952ea61682b7  qtquickcontrols-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
> index 88e767bcf9..9cd223208f 100644
> --- a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
> +++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
> @@ -6,7 +6,7 @@
>  
>  QT5QUICKCONTROLS_VERSION = $(QT5_VERSION)
>  QT5QUICKCONTROLS_SITE = $(QT5_SITE)
> -QT5QUICKCONTROLS_SOURCE = qtquickcontrols-opensource-src-$(QT5QUICKCONTROLS_VERSION).tar.xz
> +QT5QUICKCONTROLS_SOURCE = $(call qt5source,qtquickcontrols,$(QT5QUICKCONTROLS_VERSION))
>  QT5QUICKCONTROLS_DEPENDENCIES = qt5base qt5declarative
>  QT5QUICKCONTROLS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch b/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
> deleted file mode 100644
> index 17e3b3610e..0000000000
> --- a/package/qt5/qt5quickcontrols2/5.9.3/0001-Example-flatstyle-needs-widgets-module.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 10d92524cd6736c767c9ce55a1d9b9f1a2a69a9f Mon Sep 17 00:00:00 2001
> -From: Peter Seiderer <ps.report@gmx.net>
> -Date: Sat, 25 Nov 2017 22:26:58 +0100
> -Subject: [PATCH] Example flatstyle needs widgets module
> -
> -Fixes compile with disabled widgets module.
> -
> -Task-number: QTBUG-64761
> -Change-Id: I743884d77d51e89061d87cab006bab0cafc9ddb7
> -
> -Upstream: https://codereview.qt-project.org/212583
> -Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ----
> - examples/quickcontrols2/quickcontrols2.pro | 3 ++-
> - 1 file changed, 2 insertions(+), 1 deletion(-)
> -
> -diff --git a/examples/quickcontrols2/quickcontrols2.pro b/examples/quickcontrols2/quickcontrols2.pro
> -index 858759f..8310e9b 100644
> ---- a/examples/quickcontrols2/quickcontrols2.pro
> -+++ b/examples/quickcontrols2/quickcontrols2.pro
> -@@ -6,5 +6,6 @@ SUBDIRS += \
> -     contactlist \
> -     sidepanel \
> -     swipetoremove \
> --    flatstyle \
> -     wearable
> -+
> -+qtHaveModule(widgets): SUBDIRS += flatstyle
> --- 
> -2.7.4
> -
> diff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
> index 7a6040f34c..f446980e87 100644
> --- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
> +++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols2-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 ec5078470abe2da888c2be5d1749b5961ef5132487c180ce4d4aa19ea7ff81cb qtquickcontrols2-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtquickcontrols2-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 21aaa26956ad0ccc3ce86ced7925ceae4b4cef25c6c5ef2f7ded608431420843 qtquickcontrols2-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtquickcontrols2-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 5dc64a1b901e418b76fd3bf65dfa87a0cb11338741fb8970211c1df6df0e604a  qtquickcontrols2-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 d2cfc059acb4abd8e513cd0a73cd8489f34cbafa7bc34d5d31fb3210821cf8ca LICENSE.GPLv3
> diff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
> index f27cafc63b..7508b84b27 100644
> --- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
> +++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk
> @@ -6,7 +6,7 @@
>  
>  QT5QUICKCONTROLS2_VERSION = $(QT5_VERSION)
>  QT5QUICKCONTROLS2_SITE = $(QT5_SITE)
> -QT5QUICKCONTROLS2_SOURCE = qtquickcontrols2-opensource-src-$(QT5QUICKCONTROLS2_VERSION).tar.xz
> +QT5QUICKCONTROLS2_SOURCE = $(call qt5source,qtquickcontrols2,$(QT5QUICKCONTROLS2_VERSION))
>  QT5QUICKCONTROLS2_DEPENDENCIES = qt5base qt5declarative
>  QT5QUICKCONTROLS2_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5script/qt5script.hash b/package/qt5/qt5script/qt5script.hash
> index 66582ad448..2d41a98e83 100644
> --- a/package/qt5/qt5script/qt5script.hash
> +++ b/package/qt5/qt5script/qt5script.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtscript-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 f08720dd0e3a70377c1cb7fa3b129e24f4cdedade279e51b67c9271ab470b389 qtscript-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtscript-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 b80bfaaf58f154b68101e438a1881f669cb9974026926be7755adb00af355566 qtscript-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtscript-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 e0618af7cb1f1f30d292c04cf484e3507cf6f4815f79870e35d2b0ce7ac9532d  qtscript-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3
> diff --git a/package/qt5/qt5script/qt5script.mk b/package/qt5/qt5script/qt5script.mk
> index b6c02d0d1c..49371fba16 100644
> --- a/package/qt5/qt5script/qt5script.mk
> +++ b/package/qt5/qt5script/qt5script.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SCRIPT_VERSION = $(QT5_VERSION)
>  QT5SCRIPT_SITE = $(QT5_SITE)
> -QT5SCRIPT_SOURCE = qtscript-opensource-src-$(QT5SCRIPT_VERSION).tar.xz
> +QT5SCRIPT_SOURCE = $(call qt5source,qtscript,$(QT5SCRIPT_VERSION))
>  QT5SCRIPT_DEPENDENCIES = qt5base
>  QT5SCRIPT_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5scxml/qt5scxml.hash b/package/qt5/qt5scxml/qt5scxml.hash
> index b0d861573c..d272881843 100644
> --- a/package/qt5/qt5scxml/qt5scxml.hash
> +++ b/package/qt5/qt5scxml/qt5scxml.hash
> @@ -1,5 +1,5 @@
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtscxml-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 d8f51fa8eddd09fef29d8fad6e570e9ca9403469543ab10cb5cfad738786a81b qtscxml-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtscxml-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 0b42d201e4f96af1c404a61f01da6726bab9bfba4e280cc4a82c717f0db26103  qtscxml-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  
> diff --git a/package/qt5/qt5scxml/qt5scxml.mk b/package/qt5/qt5scxml/qt5scxml.mk
> index 2d197a2bca..065cdd7d1a 100644
> --- a/package/qt5/qt5scxml/qt5scxml.mk
> +++ b/package/qt5/qt5scxml/qt5scxml.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SCXML_VERSION = $(QT5_VERSION)
>  QT5SCXML_SITE = $(QT5_SITE)
> -QT5SCXML_SOURCE = qtscxml-opensource-src-$(QT5SCXML_VERSION).tar.xz
> +QT5SCXML_SOURCE = $(call qt5source,qtscxml,$(QT5SCXML_VERSION))
>  QT5SCXML_DEPENDENCIES = qt5base qt5declarative
>  QT5SCXML_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5sensors/qt5sensors.hash b/package/qt5/qt5sensors/qt5sensors.hash
> index 26e13d60b1..0b7222f14d 100644
> --- a/package/qt5/qt5sensors/qt5sensors.hash
> +++ b/package/qt5/qt5sensors/qt5sensors.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsensors-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 7502d4dc5571865a7eea2a4180c3be396dfb8ce22df4c4f3d7e9ff32ab334973 qtsensors-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtsensors-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 b95ea20b3d616655435357671558631da6fe6970500b7e6d35d1111f0b8cdac1 qtsensors-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtsensors-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 bb0df76c0e53cf2b39d10dbf0964706a264413aae74a4596119143ab4d165c96  qtsensors-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5sensors/qt5sensors.mk b/package/qt5/qt5sensors/qt5sensors.mk
> index d4dc47e89c..b9e995bbfd 100644
> --- a/package/qt5/qt5sensors/qt5sensors.mk
> +++ b/package/qt5/qt5sensors/qt5sensors.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SENSORS_VERSION = $(QT5_VERSION)
>  QT5SENSORS_SITE = $(QT5_SITE)
> -QT5SENSORS_SOURCE = qtsensors-opensource-src-$(QT5SENSORS_VERSION).tar.xz
> +QT5SENSORS_SOURCE = $(call qt5source,qtsensors,$(QT5SENSORS_VERSION))
>  QT5SENSORS_DEPENDENCIES = qt5base
>  QT5SENSORS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5serialbus/qt5serialbus.hash b/package/qt5/qt5serialbus/qt5serialbus.hash
> index 9191fd2198..d392897816 100644
> --- a/package/qt5/qt5serialbus/qt5serialbus.hash
> +++ b/package/qt5/qt5serialbus/qt5serialbus.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialbus-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 71c89be3879414e2a11cad93a4882758f9259b1c0aec980560309192c99f9a9e qtserialbus-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtserialbus-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 ef62745e1793515e03fa586171de13eb17ee7699c9eb626f76a4dc5a00c46938 qtserialbus-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtserialbus-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 0650a17950f140130ec20520b06592618850cc5673a815cb4fd585590d922257  qtserialbus-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5serialbus/qt5serialbus.mk b/package/qt5/qt5serialbus/qt5serialbus.mk
> index 218aba4e0a..359bb14955 100644
> --- a/package/qt5/qt5serialbus/qt5serialbus.mk
> +++ b/package/qt5/qt5serialbus/qt5serialbus.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SERIALBUS_VERSION = $(QT5_VERSION)
>  QT5SERIALBUS_SITE = $(QT5_SITE)
> -QT5SERIALBUS_SOURCE = qtserialbus-opensource-src-$(QT5SERIALBUS_VERSION).tar.xz
> +QT5SERIALBUS_SOURCE = $(call qt5source,qtserialbus,$(QT5SERIALBUS_VERSION))
>  QT5SERIALBUS_DEPENDENCIES = qt5base qt5serialport
>  QT5SERIALBUS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5serialport/qt5serialport.hash b/package/qt5/qt5serialport/qt5serialport.hash
> index 15abf7ac09..544371d391 100644
> --- a/package/qt5/qt5serialport/qt5serialport.hash
> +++ b/package/qt5/qt5serialport/qt5serialport.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialport-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 082d1fee2703aed19f840c4e4031e37c9b929e5bd8ebef2ebac4b28c509bae1a qtserialport-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtserialport-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 4cdd3e9157ec3e91078f993cd28651989fa2429a409e19d398fb9cced231abdf qtserialport-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtserialport-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 08e4cb13bbf165eb99857301f3cffe280a4946ff58a34ccc542ad1f790194a9e  qtserialport-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5serialport/qt5serialport.mk b/package/qt5/qt5serialport/qt5serialport.mk
> index 479870b16e..fe14d2f6e4 100644
> --- a/package/qt5/qt5serialport/qt5serialport.mk
> +++ b/package/qt5/qt5serialport/qt5serialport.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SERIALPORT_VERSION = $(QT5_VERSION)
>  QT5SERIALPORT_SITE = $(QT5_SITE)
> -QT5SERIALPORT_SOURCE = qtserialport-opensource-src-$(QT5SERIALPORT_VERSION).tar.xz
> +QT5SERIALPORT_SOURCE = $(call qt5source,qtserialport,$(QT5SERIALPORT_VERSION))
>  QT5SERIALPORT_DEPENDENCIES = qt5base
>  QT5SERIALPORT_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5svg/qt5svg.hash b/package/qt5/qt5svg/qt5svg.hash
> index 03659702d6..3a10080e29 100644
> --- a/package/qt5/qt5svg/qt5svg.hash
> +++ b/package/qt5/qt5svg/qt5svg.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsvg-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 100f183517b46554079beabd8d2cabe3070a74dd0a2e64b6a304eac71cfadcec qtsvg-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtsvg-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 df6628a60c8fbbcff99e6a24955c29494268d741509a3367a2294031ab4f5df2 qtsvg-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtsvg-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 00e00c04abcc8363cf7d94ca8b16af61840995a4af23685d49fa4ccafa1c7f5a  qtsvg-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5svg/qt5svg.mk b/package/qt5/qt5svg/qt5svg.mk
> index 5a12755f94..078ea3dbee 100644
> --- a/package/qt5/qt5svg/qt5svg.mk
> +++ b/package/qt5/qt5svg/qt5svg.mk
> @@ -6,7 +6,7 @@
>  
>  QT5SVG_VERSION = $(QT5_VERSION)
>  QT5SVG_SITE = $(QT5_SITE)
> -QT5SVG_SOURCE = qtsvg-opensource-src-$(QT5SVG_VERSION).tar.xz
> +QT5SVG_SOURCE = $(call qt5source,qtsvg,$(QT5SVG_VERSION))
>  QT5SVG_DEPENDENCIES = qt5base
>  QT5SVG_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5tools/qt5tools.hash b/package/qt5/qt5tools/qt5tools.hash
> index 44856400e7..83e6ef41be 100644
> --- a/package/qt5/qt5tools/qt5tools.hash
> +++ b/package/qt5/qt5tools/qt5tools.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qttools-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 1a63ba838058d73cb540040589b235ded77f76402693decfd6d4d3c75ea67926 qttools-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qttools-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 442c38de3e35f9dcc355dadff35436e23a5a7abd7dd1167a3bf6325e3d9284ff qttools-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qttools-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 f1ea441e5fe138756e6de3b60ab7d8d3051799eabe85a9408c995dfd4d048a53  qttools-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5tools/qt5tools.mk b/package/qt5/qt5tools/qt5tools.mk
> index 3638b74163..eb03dbfc71 100644
> --- a/package/qt5/qt5tools/qt5tools.mk
> +++ b/package/qt5/qt5tools/qt5tools.mk
> @@ -6,7 +6,7 @@
>  
>  QT5TOOLS_VERSION = $(QT5_VERSION)
>  QT5TOOLS_SITE = $(QT5_SITE)
> -QT5TOOLS_SOURCE = qttools-opensource-src-$(QT5BASE_VERSION).tar.xz
> +QT5TOOLS_SOURCE = $(call qt5source,qttools,$(QT5TOOLS_VERSION))
>  
>  QT5TOOLS_DEPENDENCIES = qt5base
>  QT5TOOLS_INSTALL_STAGING = YES
> diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
> index 54ded48dea..44ef1f230f 100644
> --- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
> +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash
> @@ -1,5 +1,5 @@
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtvirtualkeyboard-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 b9313f744026f0dcf6e1008212880cd34851499d8b6bc9fc9fbaa1e4e52532ff qtvirtualkeyboard-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtvirtualkeyboard-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 4319f90e68a571974d03f39507dde548971412e31f971081ca7eaf388187d52e  qtvirtualkeyboard-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
> diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> index 7d2201b55d..45f096e44b 100644
> --- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> @@ -6,7 +6,7 @@
>  
>  QT5VIRTUALKEYBOARD_VERSION = $(QT5_VERSION)
>  QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE)
> -QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-opensource-src-$(QT5VIRTUALKEYBOARD_VERSION).tar.xz
> +QT5VIRTUALKEYBOARD_SOURCE = $(call qt5source,qtvirtualkeyboard,$(QT5VIRTUALKEYBOARD_VERSION))
>  QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5base qt5declarative qt5svg
>  QT5VIRTUALKEYBOARD_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5wayland/qt5wayland.hash b/package/qt5/qt5wayland/qt5wayland.hash
> index f03a15ceb9..b28677ad29 100644
> --- a/package/qt5/qt5wayland/qt5wayland.hash
> +++ b/package/qt5/qt5wayland/qt5wayland.hash
> @@ -1,8 +1,8 @@
>  # hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwayland-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 5a475278b2db73aa7fa7f3ba6d98d8d72774f5c77e172495007d79f91d09daa3 qtwayland-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwayland-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 308e8c44b0ad13520868365d72786d3e3f0b384da99ee72ba543cd866f655f6d qtwayland-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwayland-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 f5a7643a5ebcdc50d02b293191e675f387f67dc360c27bf6f94345372fba6356  qtwayland-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5wayland/qt5wayland.mk b/package/qt5/qt5wayland/qt5wayland.mk
> index 0a7bdb8cf9..3887287174 100644
> --- a/package/qt5/qt5wayland/qt5wayland.mk
> +++ b/package/qt5/qt5wayland/qt5wayland.mk
> @@ -6,7 +6,7 @@
>  
>  QT5WAYLAND_VERSION = $(QT5_VERSION)
>  QT5WAYLAND_SITE = $(QT5_SITE)
> -QT5WAYLAND_SOURCE = qtwayland-opensource-src-$(QT5WAYLAND_VERSION).tar.xz
> +QT5WAYLAND_SOURCE = $(call qt5source,qtwayland,$(QT5WAYLAND_VERSION))
>  QT5WAYLAND_DEPENDENCIES = qt5base qt5declarative wayland
>  QT5WAYLAND_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5webchannel/qt5webchannel.hash b/package/qt5/qt5webchannel/qt5webchannel.hash
> index 188e5ea1f3..f94942f577 100644
> --- a/package/qt5/qt5webchannel/qt5webchannel.hash
> +++ b/package/qt5/qt5webchannel/qt5webchannel.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebchannel-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 8eb1b0ac2286653c7932758c21e7760788a5d7cfd6162da09afa926d5be50713 qtwebchannel-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebchannel-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 632795b293f1318e9aaa1e124b6a39b1625c8c1e35b0a9f05a02ea0066458358 qtwebchannel-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebchannel-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 c22c449fecb052597d12f8dd59498db39767037f9098123f3defc04eb20a3764  qtwebchannel-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5webchannel/qt5webchannel.mk b/package/qt5/qt5webchannel/qt5webchannel.mk
> index d46e053a53..20a7c6c1db 100644
> --- a/package/qt5/qt5webchannel/qt5webchannel.mk
> +++ b/package/qt5/qt5webchannel/qt5webchannel.mk
> @@ -6,7 +6,7 @@
>  
>  QT5WEBCHANNEL_VERSION = $(QT5_VERSION)
>  QT5WEBCHANNEL_SITE = $(QT5_SITE)
> -QT5WEBCHANNEL_SOURCE = qtwebchannel-opensource-src-$(QT5WEBCHANNEL_VERSION).tar.xz
> +QT5WEBCHANNEL_SOURCE = $(call qt5source,qtwebchannel,$(QT5WEBCHANNEL_VERSION))
>  QT5WEBCHANNEL_DEPENDENCIES = qt5base qt5websockets
>  QT5WEBCHANNEL_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch b/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch
> deleted file mode 100644
> index b8ef687f99..0000000000
> --- a/package/qt5/qt5webengine/5.9.3/0002-Load-libEGL-and-libGLES2-symbols-implicitly.patch
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -From d4c621f6a6b87f2a86069fa393b9f7c4f9e7b9ad Mon Sep 17 00:00:00 2001
> -From: Viktor Engelmann <viktor.engelmann@qt.io>
> -Date: Fri, 7 Jul 2017 12:56:19 +0200
> -Subject: [PATCH] Load libEGL and libGLES2 symbols implicitly
> -
> -Instead of explicitly loading libraries from hard-coded locations,
> -we now just call dlopen(NULL, RTLD_LAZY). This returns a handle to
> -the host process'es context, which already contains the symbols of
> -both these libraries, because we link against them.
> -It was necessary to bypass LoadLibrary, because that expects a non-NULL
> -file path, so we couldn't pass NULL through that interface.
> -
> -Task-number: QTBUG-57761
> -Change-Id: I29f037dfe542222b5188a33c7727c81a464a87bb
> -Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
> -Reviewed-by: Michal Klocek <michal.klocek@qt.io>
> -Upstream-Status: Merged
> -Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> ----
> - src/core/surface_factory_qt.cpp | 40 ++++++++--------------------------------
> - 1 file changed, 8 insertions(+), 32 deletions(-)
> -
> -diff --git a/src/core/surface_factory_qt.cpp b/src/core/surface_factory_qt.cpp
> -index 36c05ec5..e8be8480 100644
> ---- a/src/core/surface_factory_qt.cpp
> -+++ b/src/core/surface_factory_qt.cpp
> -@@ -51,51 +51,27 @@
> - #if defined(USE_OZONE)
> - 
> - #include <EGL/egl.h>
> --
> --#ifndef QT_LIBDIR_EGL
> --#define QT_LIBDIR_EGL "/usr/lib"
> --#endif
> --#ifndef QT_LIBDIR_GLES2
> --#define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
> --#endif
> -+#include <dlfcn.h>
> - 
> - namespace QtWebEngineCore {
> - 
> --base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
> --    base::NativeLibraryLoadError error;
> --    base::NativeLibrary library = base::LoadNativeLibrary(filename, &error);
> --    if (!library) {
> --        LOG(ERROR) << "Failed to load " << filename.MaybeAsASCII() << ": " << error.ToString();
> --        return NULL;
> --    }
> --    return library;
> --}
> --
> - bool SurfaceFactoryQt::LoadEGLGLES2Bindings()
> - {
> --    base::FilePath libEGLPath = QtWebEngineCore::toFilePath(QT_LIBDIR_EGL);
> --    libEGLPath = libEGLPath.Append("libEGL.so.1");
> --    base::NativeLibrary eglLibrary = LoadLibrary(libEGLPath);
> --    if (!eglLibrary)
> --        return false;
> --
> --    base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
> --    libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
> --    base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
> --    if (!gles2Library)
> -+    base::NativeLibrary eglgles2Library = dlopen(NULL, RTLD_LAZY);
> -+    if (!eglgles2Library) {
> -+        LOG(ERROR) << "Failed to open EGL/GLES2 context " << dlerror();
> -         return false;
> -+    }
> - 
> --    gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglLibrary, "eglGetProcAddress"));
> -+    gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(base::GetFunctionPointerFromNativeLibrary(eglgles2Library, "eglGetProcAddress"));
> -     if (!get_proc_address) {
> -         LOG(ERROR) << "eglGetProcAddress not found.";
> --        base::UnloadNativeLibrary(eglLibrary);
> --        base::UnloadNativeLibrary(gles2Library);
> -+        base::UnloadNativeLibrary(eglgles2Library);
> -         return false;
> -     }
> - ae0db1d8267aa1554e69824f579f17305f3969fa
> -     gl::SetGLGetProcAddressProc(get_proc_address);
> --    gl::AddGLNativeLibrary(eglLibrary);
> --    gl::AddGLNativeLibrary(gles2Library);
> -+    gl::AddGLNativeLibrary(eglgles2Library);
> -     return true;
> - }
> - 
> --- 
> -2.13.2
> -
> diff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash
> index 35acf8da2c..3b54435822 100644
> --- a/package/qt5/qt5webengine/qt5webengine.hash
> +++ b/package/qt5/qt5webengine/qt5webengine.hash
> @@ -1,5 +1,5 @@
>  # Hash from https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebengine-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 009d69fb39f6c0e2b0cd89a7e9302cd0ae1872d02c787d3a37f2cacca5ddb7a7 qtwebengine-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebengine-opensource-src-5.9.2.tar.xz.mirrorlist
> -sha256 45ae1142fd87271c100f4d7889427738e774e86db5d8f6bcf9ceb99d18571d37 qtwebengine-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebengine-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 12644f8d2ba8354a2a533d5a7f3f5139c6ff168c2f51aa3e21b701db6dbc01de  qtwebengine-everywhere-src-5.10.1.tar.xz
> diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk
> index 96dd401c6c..b9edacec62 100644ae0db1d8267aa1554e69824f579f17305f3969fa
> --- a/package/qt5/qt5webengine/qt5webengine.mk
> +++ b/package/qt5/qt5webengine/qt5webengine.mk
> @@ -6,7 +6,7 @@
>  
>  QT5WEBENGINE_VERSION = $(QT5_VERSION)
>  QT5WEBENGINE_SITE = $(QT5_SITE)
> -QT5WEBENGINE_SOURCE = qtwebengine-opensource-src-$(QT5WEBENGINE_VERSION).tar.xz
> +QT5WEBENGINE_SOURCE = $(call qt5source,qtwebengine,$(QT5WEBENGINE_VERSION))
>  QT5WEBENGINE_DEPENDENCIES = ffmpeg libglib2 libvpx opus webp qt5base \
>  	qt5declarative qt5webchannel host-bison host-flex host-gperf \
>  	host-pkgconf host-python
> diff --git a/package/qt5/qt5webkit-examples/qt5webkit-examples.mk b/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
> index f81e994dc5..22c1d519d6 100644
> --- a/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
> +++ b/package/qt5/qt5webkit-examples/qt5webkit-examples.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -# no 5.9.2 package available, fall back to 5.9.1 version
> +# no 5.10 package available, fall back to 5.9.1 version
>  ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
>  QT5WEBKIT_EXAMPLES_VERSION = 5.9.1
>  QT5WEBKIT_EXAMPLES_SITE = http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules
> diff --git a/package/qt5/qt5websockets/qt5websockets.hash b/package/qt5/qt5websockets/qt5websockets.hash
> index e76482bcfe..34cd6e6ce1 100644ae0db1d8267aa1554e69824f579f17305f3969fa
> --- a/package/qt5/qt5websockets/qt5websockets.hash
> +++ b/package/qt5/qt5websockets/qt5websockets.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebsockets-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 a2439045616c89dfe06333734ff4726075c92e01db6e6b6863bc138e39c028eb qtwebsockets-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtwebsockets-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 ce069dff5b552bc6039bcf17e211d2c8837757e2194773bb54054105866111de qtwebsockets-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwebsockets-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 6ecf790955ffe42dce731e10557f4ba625e359e867953d73f7fb453c0bad53ea  qtwebsockets-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5websockets/qt5websockets.mk b/package/qt5/qt5websockets/qt5websockets.mk
> index 4cb2aed1db..618c835566 100644
> --- a/package/qt5/qt5websockets/qt5websockets.mkae0db1d8267aa1554e69824f579f17305f3969fa
> +++ b/package/qt5/qt5websockets/qt5websockets.mk
> @@ -6,7 +6,7 @@
>  
>  QT5WEBSOCKETS_VERSION = $(QT5_VERSION)
>  QT5WEBSOCKETS_SITE = $(QT5_SITE)
> -QT5WEBSOCKETS_SOURCE = qtwebsockets-opensource-src-$(QT5WEBSOCKETS_VERSION).tar.xz
> +QT5WEBSOCKETS_SOURCE = $(call qt5source,qtwebsockets,$(QT5WEBSOCKETS_VERSION))
>  QT5WEBSOCKETS_DEPENDENCIES = qt5base
>  QT5WEBSOCKETS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5x11extras/qt5x11extras.hash b/package/qt5/qt5x11extras/qt5x11extras.hash
> index e835648c52..173e9e6b57 100644
> --- a/package/qt5/qt5x11extras/qt5x11extras.hash
> +++ b/package/qt5/qt5x11extras/qt5x11extras.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtx11extras-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 1e7a8e96e0629f2b2b78de684b156b357210cf5df6b42f30789423f2cb07677f qtx11extras-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtx11extras-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 e4e0bf8cbb629758ab85b72d240d7424642482f602ce414e06deef4e147bf2be qtx11extras-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtx11extras-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 c38a371fd50b2da976ed809230678284f029cefb02d240253dcbb3d575dc97b4  qtx11extras-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPLv2
> diff --git a/package/qt5/qt5x11extras/qt5x11extras.mk b/package/qt5/qt5x11extras/qt5x11extras.mk
> index 0905d5f738..85af6a2da3 100644
> --- a/package/qt5/qt5x11extras/qt5x11extras.mk
> +++ b/package/qt5/qt5x11extras/qt5x11extras.mk
> @@ -6,7 +6,7 @@
>  
>  QT5X11EXTRAS_VERSION = $(QT5_VERSION)
>  QT5X11EXTRAS_SITE = $(QT5_SITE)
> -QT5X11EXTRAS_SOURCE = qtx11extras-opensource-src-$(QT5X11EXTRAS_VERSION).tar.xz
> +QT5X11EXTRAS_SOURCE = $(call qt5source,qtx11extras,$(QT5X11EXTRAS_VERSION))
>  QT5X11EXTRAS_DEPENDENCIES = qt5base
>  QT5X11EXTRAS_INSTALL_STAGING = YES
>  
> diff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
> index e7f9d60fdd..8210993782 100644
> --- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
> +++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash
> @@ -1,8 +1,8 @@
>  # Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtxmlpatterns-opensource-src-5.6.3.tar.xz.mirrorlist
>  sha256 a461ff9f0d7310de9b9904ff9cd34919e958bf4071a6fc7096450b8990ab51f6 qtxmlpatterns-opensource-src-5.6.3.tar.xz
>  
> -# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtxmlpatterns-opensource-src-5.9.3.tar.xz.mirrorlist
> -sha256 cf9c66a612a963382f7b4b51ac8ee5e920bd035b26ecb5c5957f8f3d3286f0ba qtxmlpatterns-opensource-src-5.9.3.tar.xz
> +# Hash from: https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtxmlpatterns-everywhere-src-5.10.1.tar.xz.mirrorlist
> +sha256 3cdef59ce96a796606e5adc5756c63c8607fb29b281fddb38acee3e674d5e9fe  qtxmlpatterns-everywhere-src-5.10.1.tar.xz
>  
>  # Hashes for license files:
>  sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> diff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
> index 65fd9bd345..e670bf51b1 100644
> --- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
> +++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk
> @@ -6,7 +6,7 @@
>  
>  QT5XMLPATTERNS_VERSION = $(QT5_VERSION)
>  QT5XMLPATTERNS_SITE = $(QT5_SITE)
> -QT5XMLPATTERNS_SOURCE = qtxmlpatterns-opensource-src-$(QT5XMLPATTERNS_VERSION).tar.xz
> +QT5XMLPATTERNS_SOURCE = $(call qt5source,qtxmlpatterns,$(QT5XMLPATTERNS_VERSION))
>  QT5XMLPATTERNS_DEPENDENCIES = qt5base
>  QT5XMLPATTERNS_INSTALL_STAGING = YES
>  

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-22 10:56         ` Arnout Vandecappelle
@ 2018-02-25 20:38           ` Thomas De Schampheleire
  2018-02-25 20:53             ` Yann E. MORIN
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas De Schampheleire @ 2018-02-25 20:38 UTC (permalink / raw)
  To: buildroot

Hi,

2018-02-22 11:56 GMT+01:00 Arnout Vandecappelle <arnout@mind.be>:
>
>
> On 22-02-18 10:41, Thomas Petazzoni wrote:
>>>  With the PATH-based alternative, it might make sense to have the cross-stuff
>>> both in $(HOST_DIR)/bin with the tuple prefix, and in $(HOST_DIR)/tuple/bin
>>> without the prefix. That way, we get the advantages of both: comply with
>>> autoconf expectations, and avoid breaking packages or downstream users.
>>
>> I'm still not convinced about changing the HOST_DIR/ organization. It's
>> a massive change, affecting everything, and not just pkg-config, and
>> the outcome is less nice than what we have today, for my perspective.
>
>  Well, this extended PATH-based alternative (which is BTW what I think ThomasDS
> suggested to begin with) is not at all invasive: cross-things stay in host/bin
> as they are today, we just add host/tuple/bin which contains cross-things
> without the tuple-prefix, and we add this to the PATH. Then in a second step, we
> move pkg-config to tuple-pkg-config, BUT we also add it without prefix to
> host/tuple/bin. So it doesn't break anything at all, since for target builds, we
> have host/tuple/bin in PATH (and PKG_CONFIG=host/bin/tuple-pkg-config in the
> environment) - behaviour is the same as before.
>
>  There is a bit of breakage, however: host/tuple/bin/gcc will be in PATH, so any
> package that calls gcc from PATH will now get target gcc instead of host gcc. On
> the other hand, apparently[1], CMake doesn't have any support for building host
> executables and requires a two-step approach instead; I guess most non-autotools
> packages will have a similar limitation.
>
>  So yeah, adding host/tuple/bin to PATH may not be as uninvasive as I thought...
>

For reference, here is my mail:
http://lists.busybox.net/pipermail/buildroot/2018-February/213629.html

I think you misunderstood my question/proposal: what I'd need is a
unique path to the cross tools (gcc, ...) that does _not_ contain the
tuple anywhere in it (or is reachable via a symlink that does not
contain the tuple).
Where I wrote 'cross' in the example path:
    $(HOST_DIR)/bin/cross/{gcc,gdb,nm,readelf}
I really meant the literal string 'cross', not the tuple (the exact
string is of course something that can be discussed)

The reason I need something like that is for scripts/build systems
external to Buildroot. They do not know the tuple upfront, and would
have to do tricks to determine it. All they typically know is a
reference to the buildroot path and a defconfig name.

So, for that use case, I do not need any changes to the PATH env
variable. Just an extra shadow tree with symlinks to the necessary
cross tools, but reachable without knowing the tuple.

/Thomas

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-25 20:38           ` Thomas De Schampheleire
@ 2018-02-25 20:53             ` Yann E. MORIN
  2018-02-25 21:56               ` Thomas De Schampheleire
  0 siblings, 1 reply; 24+ messages in thread
From: Yann E. MORIN @ 2018-02-25 20:53 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2018-02-25 21:38 +0100, Thomas De Schampheleire spake thusly:
[--SNIP--]
> For reference, here is my mail:
> http://lists.busybox.net/pipermail/buildroot/2018-February/213629.html
> 
> I think you misunderstood my question/proposal: what I'd need is a
> unique path to the cross tools (gcc, ...) that does _not_ contain the
> tuple anywhere in it (or is reachable via a symlink that does not
> contain the tuple).
> Where I wrote 'cross' in the example path:
>     $(HOST_DIR)/bin/cross/{gcc,gdb,nm,readelf}
> I really meant the literal string 'cross', not the tuple (the exact
> string is of course something that can be discussed)
> 
> The reason I need something like that is for scripts/build systems
> external to Buildroot. They do not know the tuple upfront, and would
> have to do tricks to determine it. All they typically know is a
> reference to the buildroot path and a defconfig name.

But then they can call buildroot to know the tuple:
    eval $(make -s printvars VARS=GNU_TARGET_NAME)

and then gain access to the tuple with ${GNU_TARGET_NAME}.

> So, for that use case, I do not need any changes to the PATH env
> variable. Just an extra shadow tree with symlinks to the necessary
> cross tools, but reachable without knowing the tuple.

I wonder if we would want to support this case, especially since we
can't have a sane way to keep it working.

What worries me is that by doing what you suggest, we would be diverging
*greatly* from established conventions, and any patch to packagees to
support that, would not be upstreamable...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper
  2018-02-25 20:53             ` Yann E. MORIN
@ 2018-02-25 21:56               ` Thomas De Schampheleire
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas De Schampheleire @ 2018-02-25 21:56 UTC (permalink / raw)
  To: buildroot

2018-02-25 21:53 GMT+01:00 Yann E. MORIN <yann.morin.1998@free.fr>:
> Thomas, All,
>
> On 2018-02-25 21:38 +0100, Thomas De Schampheleire spake thusly:
> [--SNIP--]
>> For reference, here is my mail:
>> http://lists.busybox.net/pipermail/buildroot/2018-February/213629.html
>>
>> I think you misunderstood my question/proposal: what I'd need is a
>> unique path to the cross tools (gcc, ...) that does _not_ contain the
>> tuple anywhere in it (or is reachable via a symlink that does not
>> contain the tuple).
>> Where I wrote 'cross' in the example path:
>>     $(HOST_DIR)/bin/cross/{gcc,gdb,nm,readelf}
>> I really meant the literal string 'cross', not the tuple (the exact
>> string is of course something that can be discussed)
>>
>> The reason I need something like that is for scripts/build systems
>> external to Buildroot. They do not know the tuple upfront, and would
>> have to do tricks to determine it. All they typically know is a
>> reference to the buildroot path and a defconfig name.
>
> But then they can call buildroot to know the tuple:
>     eval $(make -s printvars VARS=GNU_TARGET_NAME)
>
> and then gain access to the tuple with ${GNU_TARGET_NAME}.

Except that this is not always correct :-)
For example, on a MIPS octeon based defconfig with external toolchain,
I see:
GNU_TARGET_NAME=mips64-buildroot-linux-gnu
but:
BR2_TOOLCHAIN_EXTERNAL_PREFIX=mips64-octeon-linux-gnu
i.e. GNU_TARGET_NAME does not give the answer for all cases.

Depending on whether you have internal or external toolchain, and in
the latter case on whether the tool you need to access is provided by
the external toolchain or built by Buildroot (like gdb), you need more
logic.
See also the logic and comment here:
http://lists.busybox.net/pipermail/buildroot/2016-April/160055.html


>> So, for that use case, I do not need any changes to the PATH env
>> variable. Just an extra shadow tree with symlinks to the necessary
>> cross tools, but reachable without knowing the tuple.
>
> I wonder if we would want to support this case, especially since we
> can't have a sane way to keep it working.

While I'm open to alternative solutions, I don't see the difficulty here.
All existing logic remains, we'd just add a few extra symlinks from
the shadow path pointing to outpt/host/bin/...

>
> What worries me is that by doing what you suggest, we would be diverging
> *greatly* from established conventions, and any patch to packagees to
> support that, would not be upstreamable...

But none of the packages' source code would need any change for this.
Everything remains exactly as it was.
Only some additional symlinks are provided, which should normally not
be needed by anything inside of Buildroot.

/Thomas

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-02-25 21:56 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-21 14:27 [Buildroot] [PATCH-FOR-NEXT v1 0/6] Qt5 bump latest version to 5.10.1 Gaël PORTAY
2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 1/6] package: add libnpsr host package Gaël PORTAY
2018-02-21 21:27   ` Thomas Petazzoni
2018-02-22 14:29     ` Gaël PORTAY
2018-02-22 16:38       ` Baruch Siach
2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 2/6] package: add libnss " Gaël PORTAY
2018-02-21 21:32   ` Thomas Petazzoni
2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 3/6] pkgconf: add host-pkg-config wrapper Gaël PORTAY
2018-02-21 21:50   ` Thomas Petazzoni
2018-02-22  9:27     ` Arnout Vandecappelle
2018-02-22  9:41       ` Thomas Petazzoni
2018-02-22 10:56         ` Arnout Vandecappelle
2018-02-25 20:38           ` Thomas De Schampheleire
2018-02-25 20:53             ` Yann E. MORIN
2018-02-25 21:56               ` Thomas De Schampheleire
2018-02-21 14:27 ` [Buildroot] [PATCH-FOR-NEXT v1 4/6] qt5: bump latest version to 5.10.1 Gaël PORTAY
2018-02-21 21:56   ` Thomas Petazzoni
2018-02-23 18:32   ` Peter Seiderer
2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 5/6] qt5webengine: satisfy new requirements for 5.10 Gaël PORTAY
2018-02-21 21:58   ` Thomas Petazzoni
2018-02-22 14:42     ` Gaël PORTAY
2018-02-21 14:28 ` [Buildroot] [PATCH-FOR-NEXT v1 6/6] qt5webengine: set ninja host pkg-config tool Gaël PORTAY
2018-02-21 21:59   ` Thomas Petazzoni
2018-02-22 14:44     ` Gaël PORTAY

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.