Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [WIP] qt5: split every submodule into it's own template
@ 2020-04-11 20:58 Johnnynator
  2020-05-29 16:46 ` [PR PATCH] [Updated] " Johnnynator
  2021-11-01 13:07 ` [PR PATCH] [Closed]: " Johnnynator
  0 siblings, 2 replies; 3+ messages in thread
From: Johnnynator @ 2020-04-11 20:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

There is a new pull request by Johnnynator against master on the void-packages repository

https://github.com/Johnnynator/void-packages qt5-split
https://github.com/void-linux/void-packages/pull/20893

[WIP] qt5: split every submodule into it's own template
This should make it less likely to constantly blow up the build servers. Also make it less annoying when updating and something fails in do_install and everything needs to be cleaned up.

Broken stuff:

- [ ] `qt5-wayland` cross
- [ ] qmake cross as wonky as ever (e.g. `host_build` in `.pro` has no effect, and modules do never get found on target arch)
- [ ] some deps are not detected when cross building (e.g. libdrm, tries to include from host)

A patch file from https://github.com/void-linux/void-packages/pull/20893.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-qt5-split-20893.patch --]
[-- Type: text/x-diff, Size: 135440 bytes --]

From 8aa9496d0bc815721297d0b22129e0f26e9ec943 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 17:36:35 +0200
Subject: [PATCH 01/34] qt5: split qt5-lottie into own template

---
 srcpkgs/qt5-lottie                    |  1 -
 srcpkgs/qt5-lottie-devel              |  2 +-
 srcpkgs/qt5-lottie/template           | 32 +++++++++++++++++++++++++++
 srcpkgs/qt5/files/shared_functions.sh | 23 +++++++++++++++++++
 srcpkgs/qt5/template                  | 13 +----------
 5 files changed, 57 insertions(+), 14 deletions(-)
 delete mode 120000 srcpkgs/qt5-lottie
 create mode 100644 srcpkgs/qt5-lottie/template
 create mode 100644 srcpkgs/qt5/files/shared_functions.sh

diff --git a/srcpkgs/qt5-lottie b/srcpkgs/qt5-lottie
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-lottie
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-lottie-devel b/srcpkgs/qt5-lottie-devel
index 75793eb6664..21f7f526002 120000
--- a/srcpkgs/qt5-lottie-devel
+++ b/srcpkgs/qt5-lottie-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-lottie
\ No newline at end of file
diff --git a/srcpkgs/qt5-lottie/template b/srcpkgs/qt5-lottie/template
new file mode 100644
index 00000000000..e7a914ad86c
--- /dev/null
+++ b/srcpkgs/qt5-lottie/template
@@ -0,0 +1,32 @@
+# Template file for 'qt5-lottie'
+pkgname=qt5-lottie
+version=5.14.2
+revision=1
+wrksrc="qtlottie-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-lottie component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlottie-everywhere-src-${version}.tar.xz"
+checksum=55d1392dc92cbec11263084360075dc5fc3fdc25c1969adfbdec84299b285978
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-lottie-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/files/shared_functions.sh b/srcpkgs/qt5/files/shared_functions.sh
new file mode 100644
index 00000000000..d07596e09f5
--- /dev/null
+++ b/srcpkgs/qt5/files/shared_functions.sh
@@ -0,0 +1,23 @@
+_cleanup_wrksrc_leak() {
+	if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
+		# Replace references to ${wrksrc} in cmake files
+		vsed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
+			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
+			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
+	fi
+	if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
+		# Replace references to ${wrksrc} in pkgconfig files
+		vsed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
+			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
+			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
+	fi
+	# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
+	# and replace references to ${wrksrc}
+	find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
+		-e "/^QMAKE_PRL_BUILD_DIR/d" \
+		-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
+	# Replace ${wrksrc} in project include files
+	find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
+		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
+}
+
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 738e6442918..f57236437e3 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -233,6 +233,7 @@ do_configure() {
 	# opts+=" -v"
 	opts+=" -skip qtwebengine"
 	opts+=" -skip qtwebview"
+	opts+=" -skip qtlottie"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -609,18 +610,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-lottie-devel_package() {
-	pkg_install() {
-		_install_devel qtlottie
-	}
-}
-
-qt5-lottie_package() {
-	pkg_install() {
-		_install_subpkg qtlottie
-	}
-}
-
 qt5-gamepad-devel_package() {
 	short_desc+=" - Gamepad component (development)"
 	depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From 6431d080ea87822e4c9862c5bc6669c8fe4c4f91 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 17:55:53 +0200
Subject: [PATCH 02/34] qt5: split qt5-translations into own template

---
 srcpkgs/qt5-translations          |  1 -
 srcpkgs/qt5-translations/template | 13 +++++++++++++
 srcpkgs/qt5/template              |  7 -------
 3 files changed, 13 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-translations
 create mode 100644 srcpkgs/qt5-translations/template

diff --git a/srcpkgs/qt5-translations b/srcpkgs/qt5-translations
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-translations
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-translations/template b/srcpkgs/qt5-translations/template
new file mode 100644
index 00000000000..d1c3e4873d6
--- /dev/null
+++ b/srcpkgs/qt5-translations/template
@@ -0,0 +1,13 @@
+# Template file for 'qt5-translations'
+pkgname=qt5-translations
+version=5.14.2
+revision=2
+wrksrc="qttranslations-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools"
+short_desc="Cross-platform application and UI framework (QT5) - Translations"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttranslations-everywhere-src-${version}.tar.xz"
+checksum=2088ebee9f5dd0336c9fd11436899a95b7ce0141ce072290de1e8f315d82d1a6
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f57236437e3..c7570787c26 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -957,13 +957,6 @@ qt5-xmlpatterns_package() {
 	}
 }
 
-qt5-translations_package() {
-	short_desc+=" - Translations"
-	pkg_install() {
-		_install_subpkg qttranslations
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 5841256615f79fd4e984998c9079ea761ba1bf4b Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:20:02 +0200
Subject: [PATCH 03/34] qt5: split qt5-3d into own template

---
 srcpkgs/qt5-3d          |  1 -
 srcpkgs/qt5-3d-devel    |  2 +-
 srcpkgs/qt5-3d/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template    | 19 ++-----------------
 4 files changed, 32 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-3d
 create mode 100644 srcpkgs/qt5-3d/template

diff --git a/srcpkgs/qt5-3d b/srcpkgs/qt5-3d
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-3d
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-3d-devel b/srcpkgs/qt5-3d-devel
index 75793eb6664..ff8473cf898 120000
--- a/srcpkgs/qt5-3d-devel
+++ b/srcpkgs/qt5-3d-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-3d
\ No newline at end of file
diff --git a/srcpkgs/qt5-3d/template b/srcpkgs/qt5-3d/template
new file mode 100644
index 00000000000..3752899a6ea
--- /dev/null
+++ b/srcpkgs/qt5-3d/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-3d'
+pkgname=qt5-3d
+version=5.14.2
+revision=2
+wrksrc="qt3d-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake perl qt5-host-tools"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - C++ and QML APIs for 3D graphics"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt3d-everywhere-src-${version}.tar.xz"
+checksum=9da82f1cc4b7d416d31ec96224c59d221473a48f6e579eef978f7d2e3932c674
+
+qt5-3d-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index c7570787c26..de4c1da498d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -234,6 +234,8 @@ do_configure() {
 	opts+=" -skip qtwebengine"
 	opts+=" -skip qtwebview"
 	opts+=" -skip qtlottie"
+	opts+=" -skip qttranslations"
+	opts+=" -skip qt3d"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -347,7 +349,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/qvkgen"
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qt3d/tools/qgltf"
 		dirs+=" qtremoteobjects/tools/repc"
 		dirs+=" qtscxml/tools/qscxmlc"
 		dirs+=" qttools/src/qtattributionsscanner"
@@ -513,22 +514,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-3d-devel_package() {
-	short_desc+=" - C++ and QML APIs for 3D graphics (development)"
-	depends="qt5-3d-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qt3d
-		_move_target_binaries qgltf
-	}
-}
-
-qt5-3d_package() {
-	short_desc+=" - C++ and QML APIs for 3D graphics"
-	pkg_install() {
-		_install_subpkg qt3d
-	}
-}
-
 qt5-charts-devel_package() {
 	short_desc+=" - Charts component (development)"
 	depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From 6b99a07499638e04acf63d357321213799452c42 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:27:04 +0200
Subject: [PATCH 04/34] qt5: split qt5-davis3d into own template

---
 srcpkgs/qt5-datavis3d          |  1 -
 srcpkgs/qt5-datavis3d-devel    |  2 +-
 srcpkgs/qt5-datavis3d/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template           | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-datavis3d
 create mode 100644 srcpkgs/qt5-datavis3d/template

diff --git a/srcpkgs/qt5-datavis3d b/srcpkgs/qt5-datavis3d
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-datavis3d
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-datavis3d-devel b/srcpkgs/qt5-datavis3d-devel
index 75793eb6664..d17727e5421 120000
--- a/srcpkgs/qt5-datavis3d-devel
+++ b/srcpkgs/qt5-datavis3d-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-datavis3d
\ No newline at end of file
diff --git a/srcpkgs/qt5-datavis3d/template b/srcpkgs/qt5-datavis3d/template
new file mode 100644
index 00000000000..6c44fec77f4
--- /dev/null
+++ b/srcpkgs/qt5-datavis3d/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-datavis3d'
+pkgname=qt5-datavis3d
+version=5.14.2
+revision=1
+wrksrc="qtdatavis3d-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - 3D data visualization"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdatavis3d-everywhere-src-${version}.tar.xz"
+checksum=723c03db2d2805b1be4ca534ac7bc867a1a21894d33a7e9261a382f3fa9d0e20
+
+qt5-datavis3d-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index de4c1da498d..1a6e17148f0 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -236,6 +236,7 @@ do_configure() {
 	opts+=" -skip qtlottie"
 	opts+=" -skip qttranslations"
 	opts+=" -skip qt3d"
+	opts+=" -skip qtdatavis3d"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -544,21 +545,6 @@ qt5-connectivity_package() {
 	}
 }
 
-qt5-datavis3d-devel_package() {
-	short_desc+=" - 3D data visualization (development)"
-	depends="qt5-datavis3d-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtdatavis3d
-	}
-}
-
-qt5-datavis3d_package() {
-	short_desc+=" - 3D data visualization"
-	pkg_install() {
-		_install_subpkg qtdatavis3d
-	}
-}
-
 qt5-declarative-devel_package() {
 	short_desc+=" - Declarative component (development)"
 	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"

From b1b93b9ada01d5c0c68bdc9ac7c84a3cd72b3d89 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:35:49 +0200
Subject: [PATCH 05/34] qt5: split qt5-charts into own template

---
 srcpkgs/qt5-charts          |  1 -
 srcpkgs/qt5-charts-devel    |  2 +-
 srcpkgs/qt5-charts/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-charts
 create mode 100644 srcpkgs/qt5-charts/template

diff --git a/srcpkgs/qt5-charts b/srcpkgs/qt5-charts
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-charts
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-charts-devel b/srcpkgs/qt5-charts-devel
index 75793eb6664..bd8c73cf5cb 120000
--- a/srcpkgs/qt5-charts-devel
+++ b/srcpkgs/qt5-charts-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-charts
\ No newline at end of file
diff --git a/srcpkgs/qt5-charts/template b/srcpkgs/qt5-charts/template
new file mode 100644
index 00000000000..69f2bd26f5e
--- /dev/null
+++ b/srcpkgs/qt5-charts/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-charts'
+pkgname=qt5-charts
+version=5.14.2
+revision=1
+wrksrc="qtcharts-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Charts component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtcharts-everywhere-src-${version}.tar.xz"
+checksum=adb25203ea748d886cc3d8993c20def702115eccea311594592058134ba83bb7
+
+qt5-charts-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 1a6e17148f0..954c7d8eedf 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -237,6 +237,7 @@ do_configure() {
 	opts+=" -skip qttranslations"
 	opts+=" -skip qt3d"
 	opts+=" -skip qtdatavis3d"
+	opts+=" -skip qtcharts"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -515,21 +516,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-charts-devel_package() {
-	short_desc+=" - Charts component (development)"
-	depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtcharts
-	}
-}
-
-qt5-charts_package() {
-	short_desc+=" - Charts component"
-	pkg_install() {
-		_install_subpkg qtcharts
-	}
-}
-
 qt5-connectivity-devel_package() {
 	short_desc+=" - Connectivity component (development)"
 	depends="qt5-connectivity-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From 0d5adba679b92f1e7cce302cdd28c5bd74a69e31 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:43:43 +0200
Subject: [PATCH 06/34] qt5: split qt5-connectivity into own template

---
 srcpkgs/qt5-connectivity          |  1 -
 srcpkgs/qt5-connectivity-devel    |  2 +-
 srcpkgs/qt5-connectivity/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template              | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-connectivity
 create mode 100644 srcpkgs/qt5-connectivity/template

diff --git a/srcpkgs/qt5-connectivity b/srcpkgs/qt5-connectivity
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-connectivity
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-connectivity-devel b/srcpkgs/qt5-connectivity-devel
index 75793eb6664..3015c508548 120000
--- a/srcpkgs/qt5-connectivity-devel
+++ b/srcpkgs/qt5-connectivity-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-connectivity
\ No newline at end of file
diff --git a/srcpkgs/qt5-connectivity/template b/srcpkgs/qt5-connectivity/template
new file mode 100644
index 00000000000..b8ef4838ac8
--- /dev/null
+++ b/srcpkgs/qt5-connectivity/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-connectivity'
+pkgname=qt5-connectivity
+version=5.14.2
+revision=2
+wrksrc="qtconnectivity-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel libbluetooth-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Connectivity component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz"
+checksum=abe67b3e3a775e2a2e27c62a5391f37007ffbe72bce58b96116995616cfcbc28
+
+qt5-connectivity-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 954c7d8eedf..f98b6666ddf 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -238,6 +238,7 @@ do_configure() {
 	opts+=" -skip qt3d"
 	opts+=" -skip qtdatavis3d"
 	opts+=" -skip qtcharts"
+	opts+=" -skip qtconnectivity"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -516,21 +517,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-connectivity-devel_package() {
-	short_desc+=" - Connectivity component (development)"
-	depends="qt5-connectivity-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtconnectivity
-	}
-}
-
-qt5-connectivity_package() {
-	short_desc+=" - Connectivity component"
-	pkg_install() {
-		_install_subpkg qtconnectivity
-	}
-}
-
 qt5-declarative-devel_package() {
 	short_desc+=" - Declarative component (development)"
 	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"

From 2c07a2257591066c615210143639fb68ffbc0b0d Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:48:51 +0200
Subject: [PATCH 07/34] qt5: split qt5-gamepad into own template

---
 srcpkgs/qt5-gamepad          |  1 -
 srcpkgs/qt5-gamepad-devel    |  2 +-
 srcpkgs/qt5-gamepad/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-gamepad
 create mode 100644 srcpkgs/qt5-gamepad/template

diff --git a/srcpkgs/qt5-gamepad b/srcpkgs/qt5-gamepad
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-gamepad
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-gamepad-devel b/srcpkgs/qt5-gamepad-devel
index 75793eb6664..4ec1b338bd6 120000
--- a/srcpkgs/qt5-gamepad-devel
+++ b/srcpkgs/qt5-gamepad-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-gamepad
\ No newline at end of file
diff --git a/srcpkgs/qt5-gamepad/template b/srcpkgs/qt5-gamepad/template
new file mode 100644
index 00000000000..af619a59857
--- /dev/null
+++ b/srcpkgs/qt5-gamepad/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-gamepad'
+pkgname=qt5-gamepad
+version=5.14.2
+revision=2
+wrksrc="qtgamepad-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config"
+makedepends="qt5-devel SDL2-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Gamepad component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtgamepad-everywhere-src-${version}.tar.xz"
+checksum=f77daadb4755cf760e11812264259fb103396fd1b06df1e06b5df162081c8d03
+
+qt5-gamepad-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f98b6666ddf..dcdd5db864e 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -239,6 +239,7 @@ do_configure() {
 	opts+=" -skip qtdatavis3d"
 	opts+=" -skip qtcharts"
 	opts+=" -skip qtconnectivity"
+	opts+=" -skip qtgamepad"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -553,21 +554,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-gamepad-devel_package() {
-	short_desc+=" - Gamepad component (development)"
-	depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtgamepad
-	}
-}
-
-qt5-gamepad_package() {
-	short_desc+=" - Gamepad component"
-	pkg_install() {
-		_install_subpkg qtgamepad
-	}
-}
-
 qt5-graphicaleffects_package() {
 	short_desc+=" - Graphicaleffects component"
 	pkg_install() {

From c9402deb0b90d00460c073fc80ff47f613fb1908 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:53:43 +0200
Subject: [PATCH 08/34] qt5: split qt5-location into own template

---
 srcpkgs/qt5-location                          |  1 -
 srcpkgs/qt5-location-devel                    |  2 +-
 .../0014-musl-set_thread_name_np.patch        | 24 +++++++++++++++
 srcpkgs/qt5-location/template                 | 30 +++++++++++++++++++
 srcpkgs/qt5/template                          | 16 +---------
 5 files changed, 56 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-location
 create mode 100644 srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
 create mode 100644 srcpkgs/qt5-location/template

diff --git a/srcpkgs/qt5-location b/srcpkgs/qt5-location
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-location
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-location-devel b/srcpkgs/qt5-location-devel
index 75793eb6664..6a3acc8712c 120000
--- a/srcpkgs/qt5-location-devel
+++ b/srcpkgs/qt5-location-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-location
\ No newline at end of file
diff --git a/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch b/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
new file mode 100644
index 00000000000..d7fa4fd4127
--- /dev/null
+++ b/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
@@ -0,0 +1,24 @@
+--- qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2017-11-14 18:03:52.000000000 +0100
++++ qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2018-01-27 19:49:19.691858141 +0100
+@@ -11,17 +11,21 @@
+ 
+ std::string getCurrentThreadName() {
+     char name[32] = "unknown";
++#if defined(__GLIBC__)
+     pthread_getname_np(pthread_self(), name, sizeof(name));
++#endif
+ 
+     return name;
+ }
+ 
+ void setCurrentThreadName(const std::string& name) {
++#if defined(__GLIBC__)
+     if (name.size() > 15) { // Linux hard limit (see manpages).
+         pthread_setname_np(pthread_self(), name.substr(0, 15).c_str());
+     } else {
+         pthread_setname_np(pthread_self(), name.c_str());
+     }
++#endif
+ }
+ 
+ void makeThreadLowPriority() {
diff --git a/srcpkgs/qt5-location/template b/srcpkgs/qt5-location/template
new file mode 100644
index 00000000000..15f484288dd
--- /dev/null
+++ b/srcpkgs/qt5-location/template
@@ -0,0 +1,30 @@
+# Template file for 'qt5-location'
+pkgname=qt5-location
+version=5.14.2
+revision=2
+wrksrc="qtlocation-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Location and Positioning components"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlocation-everywhere-src-${version}.tar.xz"
+checksum=c37708bc396f6dac397b49a6a268d5edb39e1c8296ca2337ce9e80bde04775cc
+patch_args="-Np1"
+
+qt5-location-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index dcdd5db864e..8eac7ca6e9b 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -240,6 +240,7 @@ do_configure() {
 	opts+=" -skip qtcharts"
 	opts+=" -skip qtconnectivity"
 	opts+=" -skip qtgamepad"
+	opts+=" -skip qtlocation"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -568,21 +569,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-location-devel_package() {
-	short_desc+=" - Location and Positioning components (development)"
-	depends="qt5-location-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtlocation
-	}
-}
-
-qt5-location_package() {
-	short_desc+=" - Location and Positioning components"
-	pkg_install() {
-		_install_subpkg qtlocation
-	}
-}
-
 qt5-multimedia-devel_package() {
 	short_desc+=" - Multimedia component (development)"
 	depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"

From e4d628735f3ff0357c38349cfbab738f40b44499 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:27:47 +0200
Subject: [PATCH 09/34] qt5: split qt5-x11extras into own template

---
 srcpkgs/qt5-x11extras          |  1 -
 srcpkgs/qt5-x11extras-devel    |  2 +-
 srcpkgs/qt5-x11extras/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template           | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-x11extras
 create mode 100644 srcpkgs/qt5-x11extras/template

diff --git a/srcpkgs/qt5-x11extras b/srcpkgs/qt5-x11extras
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-x11extras
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-x11extras-devel b/srcpkgs/qt5-x11extras-devel
index 75793eb6664..4e1951edec7 120000
--- a/srcpkgs/qt5-x11extras-devel
+++ b/srcpkgs/qt5-x11extras-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-x11extras
\ No newline at end of file
diff --git a/srcpkgs/qt5-x11extras/template b/srcpkgs/qt5-x11extras/template
new file mode 100644
index 00000000000..30e55bc9cc7
--- /dev/null
+++ b/srcpkgs/qt5-x11extras/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-x11extras'
+pkgname=qt5-x11extras
+version=5.14.2
+revision=2
+wrksrc="qtx11extras-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - X11 extras"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtx11extras-everywhere-src-${version}.tar.xz"
+checksum=be9a84a03a2ee81771215264e5dff7a996d04be6192b8cdaa1d41e319a81545a
+
+qt5-x11extras-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8eac7ca6e9b..b1169b453c7 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -241,6 +241,7 @@ do_configure() {
 	opts+=" -skip qtconnectivity"
 	opts+=" -skip qtgamepad"
 	opts+=" -skip qtlocation"
+	opts+=" -skip qtx11extras"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -841,21 +842,6 @@ qt5-websockets_package() {
 	}
 }
 
-qt5-x11extras-devel_package() {
-	short_desc+=" - X11 extras (development)"
-	depends="qt5-x11extras-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtx11extras
-	}
-}
-
-qt5-x11extras_package() {
-	short_desc+=" - X11 extras"
-	pkg_install() {
-		_install_subpkg qtx11extras
-	}
-}
-
 qt5-xmlpatterns-devel_package() {
 	short_desc+=" - XML components (development)"
 	depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"

From 4432cc9a405e1a8a0e87777f39cbdc382f61a349 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:32:39 +0200
Subject: [PATCH 10/34] qt5: split qt5-purchasing into own template

---
 srcpkgs/qt5-purchasing          |  1 -
 srcpkgs/qt5-purchasing-devel    |  2 +-
 srcpkgs/qt5-purchasing/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-purchasing
 create mode 100644 srcpkgs/qt5-purchasing/template

diff --git a/srcpkgs/qt5-purchasing b/srcpkgs/qt5-purchasing
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-purchasing
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-purchasing-devel b/srcpkgs/qt5-purchasing-devel
index 75793eb6664..bcdea5b6e40 120000
--- a/srcpkgs/qt5-purchasing-devel
+++ b/srcpkgs/qt5-purchasing-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-purchasing
\ No newline at end of file
diff --git a/srcpkgs/qt5-purchasing/template b/srcpkgs/qt5-purchasing/template
new file mode 100644
index 00000000000..db1f2e22601
--- /dev/null
+++ b/srcpkgs/qt5-purchasing/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-purchasing'
+pkgname=qt5-purchasing
+version=5.14.2
+revision=1
+wrksrc="qtpurchasing-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Purchasing component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtpurchasing-everywhere-src-${version}.tar.xz"
+checksum=69b087001e8fcec5bb49ca333d5f44e6b7eb09f76421dc792fc9cd76dee9e851
+
+qt5-purchasing-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index b1169b453c7..ac5ea605edd 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -242,6 +242,7 @@ do_configure() {
 	opts+=" -skip qtgamepad"
 	opts+=" -skip qtlocation"
 	opts+=" -skip qtx11extras"
+	opts+=" -skip qtpurchasing"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -600,21 +601,6 @@ qt5-networkauth_package() {
 	}
 }
 
-qt5-purchasing-devel_package() {
-	short_desc+=" - Purchasing component (development)"
-	depends="qt5-purchasing-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtpurchasing
-	}
-}
-
-qt5-purchasing_package() {
-	short_desc+=" - Purchasing component"
-	pkg_install() {
-		_install_subpkg qtpurchasing
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From 54d1e0c4bf2aa544c07ab30157c2234b88d9e7f7 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:45:18 +0200
Subject: [PATCH 11/34] qt5: split qt5-multimedia into own template

---
 srcpkgs/qt5-multimedia          |  1 -
 srcpkgs/qt5-multimedia-devel    |  2 +-
 srcpkgs/qt5-multimedia/template | 30 ++++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 32 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-multimedia
 create mode 100644 srcpkgs/qt5-multimedia/template

diff --git a/srcpkgs/qt5-multimedia b/srcpkgs/qt5-multimedia
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-multimedia
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-multimedia-devel b/srcpkgs/qt5-multimedia-devel
index 75793eb6664..e3476fd7c92 120000
--- a/srcpkgs/qt5-multimedia-devel
+++ b/srcpkgs/qt5-multimedia-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt5-multimedia/template b/srcpkgs/qt5-multimedia/template
new file mode 100644
index 00000000000..784b3295d79
--- /dev/null
+++ b/srcpkgs/qt5-multimedia/template
@@ -0,0 +1,30 @@
+# Template file for 'qt5-multimedia'
+pkgname=qt5-multimedia
+version=5.14.2
+revision=2
+wrksrc="qtmultimedia-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config"
+makedepends="qt5-devel pulseaudio-devel alsa-lib-devel
+ gst-plugins-base1-devel libopenal-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Multimedia component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz"
+checksum=7acd8ede6835314206e407b35b668f0add67544577fb51fe67afb03137fb9fe9
+
+qt5-multimedia-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index ac5ea605edd..b7c69b8f371 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -243,6 +243,7 @@ do_configure() {
 	opts+=" -skip qtlocation"
 	opts+=" -skip qtx11extras"
 	opts+=" -skip qtpurchasing"
+	opts+=" -skip qtmultimedia"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -571,21 +572,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-multimedia-devel_package() {
-	short_desc+=" - Multimedia component (development)"
-	depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtmultimedia
-	}
-}
-
-qt5-multimedia_package() {
-	short_desc+=" - Multimedia component"
-	pkg_install() {
-		_install_subpkg qtmultimedia
-	}
-}
-
 qt5-networkauth-devel_package() {
 	short_desc+=" - NetworkAuth component (development)"
 	depends="qt5-networkauth-${version}_${revision} qt5-devel-${version}_${revision}"

From 240fa9143ae064584ce0e3872c05b69f7041a45a Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:55:18 +0200
Subject: [PATCH 12/34] qt5: split qt5-xmlpatterns into own template

---
 srcpkgs/qt5-xmlpatterns          |  1 -
 srcpkgs/qt5-xmlpatterns-devel    |  2 +-
 srcpkgs/qt5-xmlpatterns/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 17 +----------------
 4 files changed, 31 insertions(+), 18 deletions(-)
 delete mode 120000 srcpkgs/qt5-xmlpatterns
 create mode 100644 srcpkgs/qt5-xmlpatterns/template

diff --git a/srcpkgs/qt5-xmlpatterns b/srcpkgs/qt5-xmlpatterns
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-xmlpatterns
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-xmlpatterns-devel b/srcpkgs/qt5-xmlpatterns-devel
index 75793eb6664..21beb169101 120000
--- a/srcpkgs/qt5-xmlpatterns-devel
+++ b/srcpkgs/qt5-xmlpatterns-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-xmlpatterns
\ No newline at end of file
diff --git a/srcpkgs/qt5-xmlpatterns/template b/srcpkgs/qt5-xmlpatterns/template
new file mode 100644
index 00000000000..36c20f94e93
--- /dev/null
+++ b/srcpkgs/qt5-xmlpatterns/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-xmlpatterns'
+pkgname=qt5-xmlpatterns
+version=5.14.2
+revision=2
+wrksrc="qtxmlpatterns-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - XML component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtxmlpatterns-everywhere-src-${version}.tar.xz"
+checksum=219a876665345e3801baff71f31f30f5495c1cb9ab23fbbd27602632c80fcfb7
+
+qt5-xmlpatterns-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index b7c69b8f371..165729ead3e 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -244,6 +244,7 @@ do_configure() {
 	opts+=" -skip qtx11extras"
 	opts+=" -skip qtpurchasing"
 	opts+=" -skip qtmultimedia"
+	opts+=" -skip qtxmlpatterns"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -814,22 +815,6 @@ qt5-websockets_package() {
 	}
 }
 
-qt5-xmlpatterns-devel_package() {
-	short_desc+=" - XML components (development)"
-	depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtxmlpatterns
-	}
-}
-
-qt5-xmlpatterns_package() {
-	short_desc+=" - XML components"
-	depends="qtchooser"
-	pkg_install() {
-		_install_subpkg qtxmlpatterns
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 1695b3c07fac9a85c329d8e9b26ec21013fe9d46 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 20:05:53 +0200
Subject: [PATCH 13/34] qt5: split qt5-networkauth into own template

---
 srcpkgs/qt5-networkauth          |  1 -
 srcpkgs/qt5-networkauth-devel    |  2 +-
 srcpkgs/qt5-networkauth/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-networkauth
 create mode 100644 srcpkgs/qt5-networkauth/template

diff --git a/srcpkgs/qt5-networkauth b/srcpkgs/qt5-networkauth
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-networkauth
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-networkauth-devel b/srcpkgs/qt5-networkauth-devel
index 75793eb6664..ba9f3d57668 120000
--- a/srcpkgs/qt5-networkauth-devel
+++ b/srcpkgs/qt5-networkauth-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-networkauth
\ No newline at end of file
diff --git a/srcpkgs/qt5-networkauth/template b/srcpkgs/qt5-networkauth/template
new file mode 100644
index 00000000000..6be92a6fdd8
--- /dev/null
+++ b/srcpkgs/qt5-networkauth/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-networkauth'
+pkgname=qt5-networkauth
+version=5.14.2
+revision=2
+wrksrc="qtnetworkauth-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - NetworkAuth component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtnetworkauth-everywhere-src-${version}.tar.xz"
+checksum=4f00513dd18598487d02187b80b54c669662cf8a8f2573858c7f9282d7b9265e
+
+qt5-networkauth-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 165729ead3e..a2f964f2bb6 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -245,6 +245,7 @@ do_configure() {
 	opts+=" -skip qtpurchasing"
 	opts+=" -skip qtmultimedia"
 	opts+=" -skip qtxmlpatterns"
+	opts+=" -skip qtnetworkauth"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -573,21 +574,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-networkauth-devel_package() {
-	short_desc+=" - NetworkAuth component (development)"
-	depends="qt5-networkauth-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtnetworkauth
-	}
-}
-
-qt5-networkauth_package() {
-	short_desc+=" - NetworkAuth component"
-	pkg_install() {
-		_install_subpkg qtnetworkauth
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From 445dff09957e3ea379d22add35896cd6ffe19295 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 21:17:11 +0200
Subject: [PATCH 14/34] qt5: split qt5-websockets into own template

---
 srcpkgs/qt5-websockets          |  1 -
 srcpkgs/qt5-websockets-devel    |  2 +-
 srcpkgs/qt5-websockets/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-websockets
 create mode 100644 srcpkgs/qt5-websockets/template

diff --git a/srcpkgs/qt5-websockets b/srcpkgs/qt5-websockets
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-websockets
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-websockets-devel b/srcpkgs/qt5-websockets-devel
index 75793eb6664..da376a60e2d 120000
--- a/srcpkgs/qt5-websockets-devel
+++ b/srcpkgs/qt5-websockets-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-websockets
\ No newline at end of file
diff --git a/srcpkgs/qt5-websockets/template b/srcpkgs/qt5-websockets/template
new file mode 100644
index 00000000000..4e4e93dbabf
--- /dev/null
+++ b/srcpkgs/qt5-websockets/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-websockets'
+pkgname=qt5-websockets
+version=5.14.2
+revision=2
+wrksrc="qtwebsockets-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebSockets component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebsockets-everywhere-src-${version}.tar.xz"
+checksum=f06e62b18313fe1b40a35566e79645de4a8e7ac9f7717d1d98a06c5b49afca84
+
+qt5-websockets-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index a2f964f2bb6..fb681591752 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -246,6 +246,7 @@ do_configure() {
 	opts+=" -skip qtmultimedia"
 	opts+=" -skip qtxmlpatterns"
 	opts+=" -skip qtnetworkauth"
+	opts+=" -skip qtwebsockets"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -786,21 +787,6 @@ qt5-webglplugin_package() {
 	}
 }
 
-qt5-websockets-devel_package() {
-	short_desc+=" - WebSockets component (development)"
-	depends="qt5-websockets-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebsockets
-	}
-}
-
-qt5-websockets_package() {
-	short_desc+=" - WebSockets component"
-	pkg_install() {
-		_install_subpkg qtwebsockets
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 0012dd633317565aa12a75f94bfea3053a3cca05 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 21:33:06 +0200
Subject: [PATCH 15/34] qt5: split qt5-webglplugin into own template

---
 srcpkgs/qt5-webglplugin          |  1 -
 srcpkgs/qt5-webglplugin-devel    |  2 +-
 srcpkgs/qt5-webglplugin/template | 28 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 16 +---------------
 4 files changed, 30 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-webglplugin
 create mode 100644 srcpkgs/qt5-webglplugin/template

diff --git a/srcpkgs/qt5-webglplugin b/srcpkgs/qt5-webglplugin
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-webglplugin
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-webglplugin-devel b/srcpkgs/qt5-webglplugin-devel
index 75793eb6664..c69000d1cb4 120000
--- a/srcpkgs/qt5-webglplugin-devel
+++ b/srcpkgs/qt5-webglplugin-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-webglplugin
\ No newline at end of file
diff --git a/srcpkgs/qt5-webglplugin/template b/srcpkgs/qt5-webglplugin/template
new file mode 100644
index 00000000000..e6d330f4a70
--- /dev/null
+++ b/srcpkgs/qt5-webglplugin/template
@@ -0,0 +1,28 @@
+# Template file for 'qt5-webglplugin'
+pkgname=qt5-webglplugin
+version=5.14.2
+revision=2
+wrksrc="qtwebglplugin-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-websockets-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebGL plugin"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebglplugin-everywhere-src-${version}.tar.xz"
+checksum=eb4118910b65d03d8448658ac1646e860d337e59b82d6575beda21824e313417
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-websockets-devel"
+fi
+
+qt5-webglplugin-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/lib/cmake
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index fb681591752..2bf4822ecb8 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -247,6 +247,7 @@ do_configure() {
 	opts+=" -skip qtxmlpatterns"
 	opts+=" -skip qtnetworkauth"
 	opts+=" -skip qtwebsockets"
+	opts+=" -skip qtwebglplugin"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -772,21 +773,6 @@ qt5-webchannel_package() {
 	}
 }
 
-qt5-webglplugin-devel_package() {
-	short_desc+=" - WebGL plugin (development)"
-	depends="qt5-webglplugin-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebglplugin
-	}
-}
-
-qt5-webglplugin_package() {
-	short_desc+=" - WebGL plugin"
-	pkg_install() {
-		_install_subpkg qtwebglplugin
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 5abbac8fb78df7a85d80dadd4fdbb238da377af3 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 23:27:35 +0200
Subject: [PATCH 16/34] qt5: split qt5-webchannel into own template

---
 srcpkgs/qt5-webchannel          |  1 -
 srcpkgs/qt5-webchannel-devel    |  2 +-
 srcpkgs/qt5-webchannel/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-webchannel
 create mode 100644 srcpkgs/qt5-webchannel/template

diff --git a/srcpkgs/qt5-webchannel b/srcpkgs/qt5-webchannel
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-webchannel
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-webchannel-devel b/srcpkgs/qt5-webchannel-devel
index 75793eb6664..b829eeb8644 120000
--- a/srcpkgs/qt5-webchannel-devel
+++ b/srcpkgs/qt5-webchannel-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-webchannel
\ No newline at end of file
diff --git a/srcpkgs/qt5-webchannel/template b/srcpkgs/qt5-webchannel/template
new file mode 100644
index 00000000000..af771c4f8b5
--- /dev/null
+++ b/srcpkgs/qt5-webchannel/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-webchannel'
+pkgname=qt5-webchannel
+version=5.14.2
+revision=2
+wrksrc="qtwebchannel-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebChannel component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz"
+checksum=7d1dc8441523638c3d455c7d408ec65aebc073acab80e24063865f929231f874
+
+qt5-webchannel-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 2bf4822ecb8..8756deb8fd7 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -248,6 +248,7 @@ do_configure() {
 	opts+=" -skip qtnetworkauth"
 	opts+=" -skip qtwebsockets"
 	opts+=" -skip qtwebglplugin"
+	opts+=" -skip qtwebchannel"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -758,21 +759,6 @@ qt5-wayland_package() {
 	}
 }
 
-qt5-webchannel-devel_package() {
-	short_desc+=" - WebChannel component (development)"
-	depends="qt5-webchannel-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebchannel
-	}
-}
-
-qt5-webchannel_package() {
-	short_desc+=" - WebChannel component"
-	pkg_install() {
-		_install_subpkg qtwebchannel
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From ceff4c51bc6d085bb9770797bdb8b60f818b60af Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 23:32:52 +0200
Subject: [PATCH 17/34] qt5: split qt5-sensors into own template

---
 srcpkgs/qt5-sensors          |  1 -
 srcpkgs/qt5-sensors-devel    |  2 +-
 srcpkgs/qt5-sensors/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-sensors
 create mode 100644 srcpkgs/qt5-sensors/template

diff --git a/srcpkgs/qt5-sensors b/srcpkgs/qt5-sensors
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-sensors
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-sensors-devel b/srcpkgs/qt5-sensors-devel
index 75793eb6664..2c6043169ae 120000
--- a/srcpkgs/qt5-sensors-devel
+++ b/srcpkgs/qt5-sensors-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-sensors
\ No newline at end of file
diff --git a/srcpkgs/qt5-sensors/template b/srcpkgs/qt5-sensors/template
new file mode 100644
index 00000000000..318685deb35
--- /dev/null
+++ b/srcpkgs/qt5-sensors/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-sensors'
+pkgname=qt5-sensors
+version=5.14.2
+revision=2
+wrksrc="qtsensors-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Sensors component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsensors-everywhere-src-${version}.tar.xz"
+checksum=bccfca6910b0383d8f65823496ff5011abed2fa8fd446b4b27333d0fd7bb8c61
+
+qt5-sensors-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8756deb8fd7..8ff486b53b7 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -249,6 +249,7 @@ do_configure() {
 	opts+=" -skip qtwebsockets"
 	opts+=" -skip qtwebglplugin"
 	opts+=" -skip qtwebchannel"
+	opts+=" -skip qtsensors"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -653,21 +654,6 @@ qt5-scxml_package() {
 	}
 }
 
-qt5-sensors-devel_package() {
-	short_desc+=" - Sensors component (development)"
-	depends="qt5-sensors-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtsensors
-	}
-}
-
-qt5-sensors_package() {
-	short_desc+=" - Sensors component"
-	pkg_install() {
-		_install_subpkg qtsensors
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From f5d1ad21d00e37371606d7df958e18f4c7420999 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:33:58 +0200
Subject: [PATCH 18/34] qt5: split qt5-wayland into own template

---
 srcpkgs/qt5-wayland          |  1 -
 srcpkgs/qt5-wayland-devel    |  2 +-
 srcpkgs/qt5-wayland/template | 31 +++++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 33 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-wayland
 create mode 100644 srcpkgs/qt5-wayland/template

diff --git a/srcpkgs/qt5-wayland b/srcpkgs/qt5-wayland
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-wayland
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-wayland-devel b/srcpkgs/qt5-wayland-devel
index 75793eb6664..fa1044621bc 120000
--- a/srcpkgs/qt5-wayland-devel
+++ b/srcpkgs/qt5-wayland-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-wayland
\ No newline at end of file
diff --git a/srcpkgs/qt5-wayland/template b/srcpkgs/qt5-wayland/template
new file mode 100644
index 00000000000..0dd7065e592
--- /dev/null
+++ b/srcpkgs/qt5-wayland/template
@@ -0,0 +1,31 @@
+# Template file for 'qt5-wayland'
+pkgname=qt5-wayland
+version=5.14.2
+revision=2
+wrksrc="qtwayland-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config wayland-devel"
+makedepends="qt5-devel wayland-devel libxkbcommon-devel
+ libXcomposite-devel MesaLib-devel Vulkan-Headers libdrm-devel"
+#XXX: the libdrm detection is broken, and tries to include form /usr/share/libdrm
+short_desc="Cross-platform application and UI framework (QT5) - Wayland component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwayland-everywhere-src-${version}.tar.xz"
+checksum=d31633ca718fb407cf70870613d45d0ed80aa04c058586ac3036bae1aff7832a
+
+qt5-wayland-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8ff486b53b7..6a0219c06e8 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -250,6 +250,7 @@ do_configure() {
 	opts+=" -skip qtwebglplugin"
 	opts+=" -skip qtwebchannel"
 	opts+=" -skip qtsensors"
+	opts+=" -skip qtwayland"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -730,21 +731,6 @@ qt5-virtualkeyboard_package() {
 	}
 }
 
-qt5-wayland-devel_package() {
-	short_desc+=" - Wayland component (development)"
-	depends="qt5-wayland-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwayland
-	}
-}
-
-qt5-wayland_package() {
-	short_desc+=" - Wayland component"
-	pkg_install() {
-		_install_subpkg qtwayland
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 0a92e693e780cdfb33a53f22dc046b74f1693592 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:37:24 +0200
Subject: [PATCH 19/34] qt5: split qt5-script into own template

---
 srcpkgs/qt5-script          |  1 -
 srcpkgs/qt5-script-devel    |  2 +-
 srcpkgs/qt5-script/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-script
 create mode 100644 srcpkgs/qt5-script/template

diff --git a/srcpkgs/qt5-script b/srcpkgs/qt5-script
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-script
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-script-devel b/srcpkgs/qt5-script-devel
index 75793eb6664..b75ecb21d15 120000
--- a/srcpkgs/qt5-script-devel
+++ b/srcpkgs/qt5-script-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-script
\ No newline at end of file
diff --git a/srcpkgs/qt5-script/template b/srcpkgs/qt5-script/template
new file mode 100644
index 00000000000..c7b8c6abea8
--- /dev/null
+++ b/srcpkgs/qt5-script/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-script'
+pkgname=qt5-script
+version=5.14.2
+revision=2
+wrksrc="qtscript-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Scriptable classes"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscript-everywhere-src-${version}.tar.xz"
+checksum=e9fd487ccb3cbf00e86b0b803aa79e9f6bbe7a337b8e97d069e040c3e0789bfe
+
+qt5-script-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 6a0219c06e8..885aa62e56b 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -251,6 +251,7 @@ do_configure() {
 	opts+=" -skip qtwebchannel"
 	opts+=" -skip qtsensors"
 	opts+=" -skip qtwayland"
+	opts+=" -skip qtscript"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -624,21 +625,6 @@ qt5-remoteobjects_package() {
 	}
 }
 
-qt5-script-devel_package() {
-	short_desc+=" - Scriptable classes (development)"
-	depends="qt5-script-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtscript
-	}
-}
-
-qt5-script_package() {
-	short_desc+=" - Scriptable classes"
-	pkg_install() {
-		_install_subpkg qtscript
-	}
-}
-
 qt5-scxml-devel_package() {
 	short_desc+=" - SCXML model integration (development)"
 	depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"

From 76a1e9daff26fbbb08bf1780319a70b9aae0ab89 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:42:41 +0200
Subject: [PATCH 20/34] qt5: split qt5-scxml into own template

---
 srcpkgs/qt5-scxml          |  1 -
 srcpkgs/qt5-scxml-devel    |  2 +-
 srcpkgs/qt5-scxml/template | 33 +++++++++++++++++++++++++++++++++
 srcpkgs/qt5/template       | 18 +-----------------
 4 files changed, 35 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-scxml
 create mode 100644 srcpkgs/qt5-scxml/template

diff --git a/srcpkgs/qt5-scxml b/srcpkgs/qt5-scxml
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-scxml
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-scxml-devel b/srcpkgs/qt5-scxml-devel
index 75793eb6664..5e24ab969e3 120000
--- a/srcpkgs/qt5-scxml-devel
+++ b/srcpkgs/qt5-scxml-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-scxml
\ No newline at end of file
diff --git a/srcpkgs/qt5-scxml/template b/srcpkgs/qt5-scxml/template
new file mode 100644
index 00000000000..27ee2f90df7
--- /dev/null
+++ b/srcpkgs/qt5-scxml/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-scxml'
+pkgname=qt5-scxml
+version=5.14.2
+revision=2
+wrksrc="qtscxml-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - SCXML model integration"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscxml-everywhere-src-${version}.tar.xz"
+checksum=030cea352a56074f577200f967ef37c959b2767127de61f766f59b0d99763790
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-scxml-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 885aa62e56b..de5802143b1 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -252,6 +252,7 @@ do_configure() {
 	opts+=" -skip qtsensors"
 	opts+=" -skip qtwayland"
 	opts+=" -skip qtscript"
+	opts+=" -skip qtscxml"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -366,7 +367,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
 		dirs+=" qtremoteobjects/tools/repc"
-		dirs+=" qtscxml/tools/qscxmlc"
 		dirs+=" qttools/src/qtattributionsscanner"
 		dirs+=" qttools/src/linguist/lconvert"
 		dirs+=" qttools/src/linguist/lrelease"
@@ -625,22 +625,6 @@ qt5-remoteobjects_package() {
 	}
 }
 
-qt5-scxml-devel_package() {
-	short_desc+=" - SCXML model integration (development)"
-	depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtscxml
-	}
-}
-
-qt5-scxml_package() {
-	short_desc+=" - SCXML model integration"
-	pkg_install() {
-		_install_subpkg qtscxml
-		_move_target_binaries qscxmlc
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From 675cba0614498cffd5d178f4382734395c1ef48a Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:47:58 +0200
Subject: [PATCH 21/34] qt5: split qt5-quickcontrols2 into own template

---
 srcpkgs/qt5-quickcontrols2          |  1 -
 srcpkgs/qt5-quickcontrols2-devel    |  2 +-
 srcpkgs/qt5-quickcontrols2/template | 33 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template                | 16 +-------------
 4 files changed, 35 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-quickcontrols2
 create mode 100644 srcpkgs/qt5-quickcontrols2/template

diff --git a/srcpkgs/qt5-quickcontrols2 b/srcpkgs/qt5-quickcontrols2
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quickcontrols2
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols2-devel b/srcpkgs/qt5-quickcontrols2-devel
index 75793eb6664..31080a8bc10 120000
--- a/srcpkgs/qt5-quickcontrols2-devel
+++ b/srcpkgs/qt5-quickcontrols2-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-quickcontrols2
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols2/template b/srcpkgs/qt5-quickcontrols2/template
new file mode 100644
index 00000000000..a5d18c431b5
--- /dev/null
+++ b/srcpkgs/qt5-quickcontrols2/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-quickcontrols2'
+pkgname=qt5-quickcontrols2
+version=5.14.2
+revision=2
+wrksrc="qtquickcontrols2-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Quick2 UI control"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquickcontrols2-everywhere-src-${version}.tar.xz"
+checksum=faf7d349d8f4a8db36cd3c62a5724bcf689300f2fdb7dc1ea034392aab981560
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-quickcontrols2-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index de5802143b1..8e2df5f4383 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -253,6 +253,7 @@ do_configure() {
 	opts+=" -skip qtwayland"
 	opts+=" -skip qtscript"
 	opts+=" -skip qtscxml"
+	opts+=" -skip qtquickcontrols2"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -587,21 +588,6 @@ qt5-quickcontrols_package() {
 	}
 }
 
-qt5-quickcontrols2-devel_package() {
-	short_desc+=" - Quick2 UI controls (development)"
-	depends="qt5-quickcontrols2-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtquickcontrols2
-	}
-}
-
-qt5-quickcontrols2_package() {
-	short_desc+=" - Quick2 UI controls"
-	pkg_install() {
-		_install_subpkg qtquickcontrols2
-	}
-}
-
 qt5-quicktimeline_package() {
 	short_desc+=" - Keyframe-based animations"
 	pkg_install() {

From c4f3e63c10ad108b8f45b7c983755b1ed9be52ee Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:50:32 +0200
Subject: [PATCH 22/34] qt5: split qt5-remoteobjects into own template

---
 srcpkgs/qt5-remoteobjects          |  1 -
 srcpkgs/qt5-remoteobjects-devel    |  2 +-
 srcpkgs/qt5-remoteobjects/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template               | 18 +-----------------
 4 files changed, 31 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-remoteobjects
 create mode 100644 srcpkgs/qt5-remoteobjects/template

diff --git a/srcpkgs/qt5-remoteobjects b/srcpkgs/qt5-remoteobjects
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-remoteobjects
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-remoteobjects-devel b/srcpkgs/qt5-remoteobjects-devel
index 75793eb6664..eef0300d9cc 120000
--- a/srcpkgs/qt5-remoteobjects-devel
+++ b/srcpkgs/qt5-remoteobjects-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-remoteobjects
\ No newline at end of file
diff --git a/srcpkgs/qt5-remoteobjects/template b/srcpkgs/qt5-remoteobjects/template
new file mode 100644
index 00000000000..4101f12ec98
--- /dev/null
+++ b/srcpkgs/qt5-remoteobjects/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-remoteobjects'
+pkgname=qt5-remoteobjects
+version=5.14.2
+revision=2
+wrksrc="qtremoteobjects-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Remote Objects"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtremoteobjects-everywhere-src-${version}.tar.xz"
+checksum=a6a601c4f4aab6fe41a462dae57033819f697e3317240a382cee45c08be614d6
+
+qt5-remoteobjects-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8e2df5f4383..cdc9570ed49 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -254,6 +254,7 @@ do_configure() {
 	opts+=" -skip qtscript"
 	opts+=" -skip qtscxml"
 	opts+=" -skip qtquickcontrols2"
+	opts+=" -skip qtremoteobjects"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -367,7 +368,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/qvkgen"
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qtremoteobjects/tools/repc"
 		dirs+=" qttools/src/qtattributionsscanner"
 		dirs+=" qttools/src/linguist/lconvert"
 		dirs+=" qttools/src/linguist/lrelease"
@@ -595,22 +595,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-remoteobjects-devel_package() {
-	short_desc+=" - Remote Objects (development)"
-	depends="qt5-remoteobjects-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtremoteobjects
-	}
-}
-
-qt5-remoteobjects_package() {
-	short_desc+=" - Remote Objects"
-	pkg_install() {
-		_install_subpkg qtremoteobjects
-		_move_target_binaries repc
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From 274e5e5f55c888d658b25a2ae7a631e217dfcc34 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:56:44 +0200
Subject: [PATCH 23/34] qt5: split qt5-serialbus into own template

---
 srcpkgs/qt5-serialbus                         |  1 -
 srcpkgs/qt5-serialbus-devel                   |  2 +-
 .../patches/0018-musl-timeval.patch           | 10 ++++++
 srcpkgs/qt5-serialbus/template                | 31 +++++++++++++++++++
 srcpkgs/qt5/template                          | 17 +---------
 5 files changed, 43 insertions(+), 18 deletions(-)
 delete mode 120000 srcpkgs/qt5-serialbus
 create mode 100644 srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
 create mode 100644 srcpkgs/qt5-serialbus/template

diff --git a/srcpkgs/qt5-serialbus b/srcpkgs/qt5-serialbus
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-serialbus
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialbus-devel b/srcpkgs/qt5-serialbus-devel
index 75793eb6664..908c26df6e1 120000
--- a/srcpkgs/qt5-serialbus-devel
+++ b/srcpkgs/qt5-serialbus-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-serialbus
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch b/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
new file mode 100644
index 00000000000..939fb58b265
--- /dev/null
+++ b/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
@@ -0,0 +1,10 @@
+--- qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2017-11-22 09:57:45.000000000 +0100
++++ qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2018-01-27 19:17:31.333759690 +0100
+@@ -47,6 +47,7 @@
+ 
+ // The order of the following includes is mandatory, because some
+ // distributions use sa_family_t in can.h without including socket.h
++#include <sys/time.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
+ #include <linux/can.h>
diff --git a/srcpkgs/qt5-serialbus/template b/srcpkgs/qt5-serialbus/template
new file mode 100644
index 00000000000..9301abe3d53
--- /dev/null
+++ b/srcpkgs/qt5-serialbus/template
@@ -0,0 +1,31 @@
+# Template file for 'qt5-serialbus'
+pkgname=qt5-serialbus
+version=5.14.2
+revision=2
+wrksrc="qtserialbus-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-serialport-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Serial bus component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtserialbus-everywhere-src-${version}.tar.xz"
+checksum=0b7762175a649a40c4dd619c5de61d772235dc86099343278e2c3229d0836a91
+patch_args="-Np1"
+
+qt5-serialbus-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
+
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index cdc9570ed49..d1876ed7707 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -255,6 +255,7 @@ do_configure() {
 	opts+=" -skip qtscxml"
 	opts+=" -skip qtquickcontrols2"
 	opts+=" -skip qtremoteobjects"
+	opts+=" -skip qtserialbus"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -595,22 +596,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-serialbus-devel_package() {
-	short_desc+=" - Serial bus component (development)"
-	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}
-		qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtserialbus
-	}
-}
-
-qt5-serialbus_package() {
-	short_desc+=" - Serial bus component"
-	pkg_install() {
-		_install_subpkg qtserialbus
-	}
-}
-
 qt5-serialport-devel_package() {
 	short_desc+=" - Serial port component (development)"
 	depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"

From d597e7a61c0dd5f45649116bafda1d968b553979 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:00:31 +0200
Subject: [PATCH 24/34] qt5: split qt5-virtualkeyboard into own template

---
 srcpkgs/qt5-virtualkeyboard          |  1 -
 srcpkgs/qt5-virtualkeyboard-devel    |  2 +-
 srcpkgs/qt5-virtualkeyboard/template | 33 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template                 | 16 +-------------
 4 files changed, 35 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-virtualkeyboard
 create mode 100644 srcpkgs/qt5-virtualkeyboard/template

diff --git a/srcpkgs/qt5-virtualkeyboard b/srcpkgs/qt5-virtualkeyboard
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-virtualkeyboard
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-virtualkeyboard-devel b/srcpkgs/qt5-virtualkeyboard-devel
index 75793eb6664..ab1bea3c245 120000
--- a/srcpkgs/qt5-virtualkeyboard-devel
+++ b/srcpkgs/qt5-virtualkeyboard-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-virtualkeyboard
\ No newline at end of file
diff --git a/srcpkgs/qt5-virtualkeyboard/template b/srcpkgs/qt5-virtualkeyboard/template
new file mode 100644
index 00000000000..ea57ef4803d
--- /dev/null
+++ b/srcpkgs/qt5-virtualkeyboard/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-virtualkeyboard'
+pkgname=qt5-virtualkeyboard
+version=5.14.2
+revision=2
+wrksrc="qtvirtualkeyboard-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-svg-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Virtual keyboard"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtvirtualkeyboard-everywhere-src-${version}.tar.xz"
+checksum=364f3338563e617e7c964a37170b415b546c5f82965e781271f9dada3e3868d7
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-svg-devel qt5-declarative-devel"
+fi
+
+qt5-virtualkeyboard-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index d1876ed7707..4de3844c1ab 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -256,6 +256,7 @@ do_configure() {
 	opts+=" -skip qtquickcontrols2"
 	opts+=" -skip qtremoteobjects"
 	opts+=" -skip qtserialbus"
+	opts+=" -skip qtvirtualkeyboard"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -641,21 +642,6 @@ qt5-svg_package() {
 	}
 }
 
-qt5-virtualkeyboard-devel_package() {
-	short_desc+=" - Virtual keyboard (development)"
-	depends="qt5-virtualkeyboard-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtvirtualkeyboard
-	}
-}
-
-qt5-virtualkeyboard_package() {
-	short_desc+=" - Virtual keyboard"
-	pkg_install() {
-		_install_subpkg qtvirtualkeyboard
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 63abd8e7f00afa505ee8d2d5d32e0293c57b2edd Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:07:49 +0200
Subject: [PATCH 25/34] qt5: split qt5-graphicaleffects into own template

---
 srcpkgs/qt5-graphicaleffects          |  1 -
 srcpkgs/qt5-graphicaleffects/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template                  |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-graphicaleffects
 create mode 100644 srcpkgs/qt5-graphicaleffects/template

diff --git a/srcpkgs/qt5-graphicaleffects b/srcpkgs/qt5-graphicaleffects
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-graphicaleffects
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-graphicaleffects/template b/srcpkgs/qt5-graphicaleffects/template
new file mode 100644
index 00000000000..ba4ccdd6e57
--- /dev/null
+++ b/srcpkgs/qt5-graphicaleffects/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-graphicaleffects'
+pkgname=qt5-graphicaleffects
+version=5.14.2
+revision=2
+wrksrc="qtgraphicaleffects-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Graphicaleffects component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtgraphicaleffects-everywhere-src-${version}.tar.xz"
+checksum=487a7f858244a08264363733055a8cf8b00e77c658c5608cc462817d15e4b50f
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 4de3844c1ab..57bfb049ddf 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -257,6 +257,7 @@ do_configure() {
 	opts+=" -skip qtremoteobjects"
 	opts+=" -skip qtserialbus"
 	opts+=" -skip qtvirtualkeyboard"
+	opts+=" -skip qtgraphicaleffects"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -569,13 +570,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-graphicaleffects_package() {
-	short_desc+=" - Graphicaleffects component"
-	pkg_install() {
-		_install_subpkg qtgraphicaleffects
-	}
-}
-
 qt5-imageformats_package() {
 	short_desc+=" - Plugins for additional image formats"
 	pkg_install() {

From 8b8ae5fe828fee3c438fcb37d163ee88cbe242f7 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:14:20 +0200
Subject: [PATCH 26/34] qt5: split qt5-serialport into own template

---
 srcpkgs/qt5-serialport          |  1 -
 srcpkgs/qt5-serialport-devel    |  2 +-
 srcpkgs/qt5-serialport/template | 28 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 30 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-serialport
 create mode 100644 srcpkgs/qt5-serialport/template

diff --git a/srcpkgs/qt5-serialport b/srcpkgs/qt5-serialport
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-serialport
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialport-devel b/srcpkgs/qt5-serialport-devel
index 75793eb6664..d159dc6602b 120000
--- a/srcpkgs/qt5-serialport-devel
+++ b/srcpkgs/qt5-serialport-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-serialport
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialport/template b/srcpkgs/qt5-serialport/template
new file mode 100644
index 00000000000..dd96bbbd9a6
--- /dev/null
+++ b/srcpkgs/qt5-serialport/template
@@ -0,0 +1,28 @@
+# Template file for 'qt5-serialport'
+pkgname=qt5-serialport
+version=5.14.2
+revision=2
+wrksrc="qtserialport-everywhere-src-${version}"
+build_style=qmake
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-serialport component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz"
+checksum=a6d977dd723ad4d3368b5163691405b8852f809974a96ec54103494e834aea21
+
+qt5-serialport-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 57bfb049ddf..03ea9825068 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -258,6 +258,7 @@ do_configure() {
 	opts+=" -skip qtserialbus"
 	opts+=" -skip qtvirtualkeyboard"
 	opts+=" -skip qtgraphicaleffects"
+	opts+=" -skip qtserialport"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -591,21 +592,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-serialport-devel_package() {
-	short_desc+=" - Serial port component (development)"
-	depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtserialport
-	}
-}
-
-qt5-serialport_package() {
-	short_desc+=" - Serial port component"
-	pkg_install() {
-		_install_subpkg qtserialport
-	}
-}
-
 qt5-speech-devel_package() {
 	short_desc+=" - Speech component (development)"
 	depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"

From 7997a534e71a22a6a4b4c7a25cc4be506dec3123 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:24:08 +0200
Subject: [PATCH 27/34] qt5: split qt5-speech into own template

---
 srcpkgs/qt5-speech          |  1 -
 srcpkgs/qt5-speech-devel    |  2 +-
 srcpkgs/qt5-speech/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-speech
 create mode 100644 srcpkgs/qt5-speech/template

diff --git a/srcpkgs/qt5-speech b/srcpkgs/qt5-speech
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-speech
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-speech-devel b/srcpkgs/qt5-speech-devel
index 75793eb6664..4fdd2a9f49b 120000
--- a/srcpkgs/qt5-speech-devel
+++ b/srcpkgs/qt5-speech-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-speech
\ No newline at end of file
diff --git a/srcpkgs/qt5-speech/template b/srcpkgs/qt5-speech/template
new file mode 100644
index 00000000000..f936415dc06
--- /dev/null
+++ b/srcpkgs/qt5-speech/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-speech'
+pkgname=qt5-speech
+version=5.14.2
+revision=2
+wrksrc="qtspeech-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-speech component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtspeech-everywhere-src-${version}.tar.xz"
+checksum=5e9e8ea62f0207ba894df1e136df0af9fc5443c7817d28c39f0ea2bbae9ec6da
+
+qt5-speech-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 03ea9825068..8ad67c42507 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -259,6 +259,7 @@ do_configure() {
 	opts+=" -skip qtvirtualkeyboard"
 	opts+=" -skip qtgraphicaleffects"
 	opts+=" -skip qtserialport"
+	opts+=" -skip qtspeech"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -592,21 +593,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-speech-devel_package() {
-	short_desc+=" - Speech component (development)"
-	depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtspeech
-	}
-}
-
-qt5-speech_package() {
-	short_desc+=" - Speech component"
-	pkg_install() {
-		_install_subpkg qtspeech
-	}
-}
-
 qt5-svg-devel_package() {
 	short_desc+=" - Svg component (development)"
 	depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"

From c1fb6d688f7f4ee044b42f38c8476093efcad7dd Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:26:01 +0200
Subject: [PATCH 28/34] qt5: split qt5-svg into own template

---
 srcpkgs/qt5-svg          |  1 -
 srcpkgs/qt5-svg-devel    |  2 +-
 srcpkgs/qt5-svg/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template     | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-svg
 create mode 100644 srcpkgs/qt5-svg/template

diff --git a/srcpkgs/qt5-svg b/srcpkgs/qt5-svg
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-svg
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-svg-devel b/srcpkgs/qt5-svg-devel
index 75793eb6664..c245257ab9b 120000
--- a/srcpkgs/qt5-svg-devel
+++ b/srcpkgs/qt5-svg-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-svg
\ No newline at end of file
diff --git a/srcpkgs/qt5-svg/template b/srcpkgs/qt5-svg/template
new file mode 100644
index 00000000000..81174d0e8c5
--- /dev/null
+++ b/srcpkgs/qt5-svg/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-svg'
+pkgname=qt5-svg
+version=5.14.2
+revision=2
+wrksrc="qtsvg-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Svg component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsvg-everywhere-src-${version}.tar.xz"
+checksum=c7d7faa01a3e7a6e4d38fafcec5529a488258218749779e6fa0e09a21173b5a1
+
+qt5-svg-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8ad67c42507..2fc9050c3fe 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -260,6 +260,7 @@ do_configure() {
 	opts+=" -skip qtgraphicaleffects"
 	opts+=" -skip qtserialport"
 	opts+=" -skip qtspeech"
+	opts+=" -skip qtsvg"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -593,21 +594,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-svg-devel_package() {
-	short_desc+=" - Svg component (development)"
-	depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtsvg
-	}
-}
-
-qt5-svg_package() {
-	short_desc+=" - Svg component"
-	pkg_install() {
-		_install_subpkg qtsvg
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From efa1f5bceb9dec4d0c5eb420ad4e50f3ab7db44f Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:21:23 +0200
Subject: [PATCH 29/34] qt5: split qt5-imageformats into own template

---
 srcpkgs/qt5-imageformats          |  1 -
 srcpkgs/qt5-imageformats/template | 14 ++++++++++++++
 srcpkgs/qt5/template              |  8 +-------
 3 files changed, 15 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-imageformats
 create mode 100644 srcpkgs/qt5-imageformats/template

diff --git a/srcpkgs/qt5-imageformats b/srcpkgs/qt5-imageformats
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-imageformats
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-imageformats/template b/srcpkgs/qt5-imageformats/template
new file mode 100644
index 00000000000..e9549ad0544
--- /dev/null
+++ b/srcpkgs/qt5-imageformats/template
@@ -0,0 +1,14 @@
+# Template file for 'qt5-imageformats'
+pkgname=qt5-imageformats
+version=5.14.2
+revision=2
+wrksrc="qtimageformats-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel libwebp-devel jasper-devel libmng-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Plugins for additional image formats"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtimageformats-everywhere-src-${version}.tar.xz"
+checksum=733eca0165c15e046b106039c989dac7f6bc2ecf215396d965ed065369264f8c
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 2fc9050c3fe..fe200faff4e 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -261,6 +261,7 @@ do_configure() {
 	opts+=" -skip qtserialport"
 	opts+=" -skip qtspeech"
 	opts+=" -skip qtsvg"
+	opts+=" -skip qtimageformats"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -573,13 +574,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-imageformats_package() {
-	short_desc+=" - Plugins for additional image formats"
-	pkg_install() {
-		_install_subpkg qtimageformats
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From 46a9c3b17e24e30d6641a0b7b4c8574e09fb1578 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:24:04 +0200
Subject: [PATCH 30/34] qt5: split qt5-quicktimeline into own template

---
 srcpkgs/qt5-quicktimeline          |  1 -
 srcpkgs/qt5-quicktimeline/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template               |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-quicktimeline
 create mode 100644 srcpkgs/qt5-quicktimeline/template

diff --git a/srcpkgs/qt5-quicktimeline b/srcpkgs/qt5-quicktimeline
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quicktimeline
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quicktimeline/template b/srcpkgs/qt5-quicktimeline/template
new file mode 100644
index 00000000000..a945013e074
--- /dev/null
+++ b/srcpkgs/qt5-quicktimeline/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-quicktimeline'
+pkgname=qt5-quicktimeline
+version=5.14.2
+revision=2
+wrksrc="qtquicktimeline-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Keyframe-based animations"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquicktimeline-everywhere-src-${version}.tar.xz"
+checksum=83a45d0998cbc77f8094854a477ab1ac0838ae7fd822563d995df40149893a9e
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index fe200faff4e..44c3498817e 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -262,6 +262,7 @@ do_configure() {
 	opts+=" -skip qtspeech"
 	opts+=" -skip qtsvg"
 	opts+=" -skip qtimageformats"
+	opts+=" -skip qtquicktimeline"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -581,13 +582,6 @@ qt5-quickcontrols_package() {
 	}
 }
 
-qt5-quicktimeline_package() {
-	short_desc+=" - Keyframe-based animations"
-	pkg_install() {
-		_install_subpkg qtquicktimeline
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 7a3537ecd76e02b12773b0f9ef7646eb5ffc1467 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:26:42 +0200
Subject: [PATCH 31/34] qt5: split qt5-quickcontrols into own template

---
 srcpkgs/qt5-quickcontrols          |  1 -
 srcpkgs/qt5-quickcontrols/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template               |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-quickcontrols
 create mode 100644 srcpkgs/qt5-quickcontrols/template

diff --git a/srcpkgs/qt5-quickcontrols b/srcpkgs/qt5-quickcontrols
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quickcontrols
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols/template b/srcpkgs/qt5-quickcontrols/template
new file mode 100644
index 00000000000..2121b0738e6
--- /dev/null
+++ b/srcpkgs/qt5-quickcontrols/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-quickcontrols'
+pkgname=qt5-quickcontrols
+version=5.14.2
+revision=2
+wrksrc="qtquickcontrols-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Quick UI controls"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquickcontrols-everywhere-src-${version}.tar.xz"
+checksum=d55def1dd4ee1250bd6a4e76849f4e362368b6411c2216d5f669c761216d4461
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 44c3498817e..8f82c7a3889 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -263,6 +263,7 @@ do_configure() {
 	opts+=" -skip qtsvg"
 	opts+=" -skip qtimageformats"
 	opts+=" -skip qtquicktimeline"
+	opts+=" -skip qtquickcontrols"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -575,13 +576,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-quickcontrols_package() {
-	short_desc+=" - Quick UI controls"
-	pkg_install() {
-		_install_subpkg qtquickcontrols
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 5a096d634cce11a989567a6efc24b3e76f905a71 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 13:45:42 +0200
Subject: [PATCH 32/34] qt5: split qt5-declarative into own template

---
 srcpkgs/qt5-declarative                       |  1 -
 srcpkgs/qt5-declarative-devel                 |  2 +-
 .../patches/0016-musl-stackbottom.patch       | 17 ++++++++
 srcpkgs/qt5-declarative/template              | 39 +++++++++++++++++
 srcpkgs/qt5/template                          | 43 +------------------
 5 files changed, 58 insertions(+), 44 deletions(-)
 delete mode 120000 srcpkgs/qt5-declarative
 create mode 100644 srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
 create mode 100644 srcpkgs/qt5-declarative/template

diff --git a/srcpkgs/qt5-declarative b/srcpkgs/qt5-declarative
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-declarative
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-declarative-devel b/srcpkgs/qt5-declarative-devel
index 75793eb6664..0ec1683a20e 120000
--- a/srcpkgs/qt5-declarative-devel
+++ b/srcpkgs/qt5-declarative-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-declarative
\ No newline at end of file
diff --git a/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch b/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
new file mode 100644
index 00000000000..fdfc19298ae
--- /dev/null
+++ b/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
@@ -0,0 +1,17 @@
+For musl libc the stackBottom for the main thread is recalculated
+just as it is for Android. See: https://bugreports.qt.io/browse/QTBUG-44268
+
+--- qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-02-26 10:34:34.000000000 +0100
++++ qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-04-04 21:52:43.780823136 +0200
+@@ -94,6 +94,11 @@
+ #include <valgrind/memcheck.h>
+ #endif
+ 
++#if defined(Q_OS_LINUX) && !defined(__GLIBC__)
++#include <sys/syscall.h>
++#define gettid() syscall(SYS_gettid)
++#endif
++
+ QT_BEGIN_NAMESPACE
+ 
+ using namespace QV4;
diff --git a/srcpkgs/qt5-declarative/template b/srcpkgs/qt5-declarative/template
new file mode 100644
index 00000000000..5a5fb75bef3
--- /dev/null
+++ b/srcpkgs/qt5-declarative/template
@@ -0,0 +1,39 @@
+# Template file for 'qt5-declarative'
+pkgname=qt5-declarative
+version=5.14.2
+revision=2
+wrksrc="qtdeclarative-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools python3 perl"
+makedepends="qt5-devel Vulkan-Headers"
+short_desc="Cross-platform application and UI framework (QT5) - Declarative component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdeclarative-everywhere-src-${version}.tar.xz"
+checksum=a3c4617adc9760347c93d2eb6c25d22f620cd22f44afa0494eb499a805831650
+patch_args="-Np1"
+
+post_install() {
+	vmkdir usr/bin
+	for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
+		base=${f##*/}
+		ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
+	done
+}
+
+qt5-declarative-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8f82c7a3889..53c279d91f6 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -264,6 +264,7 @@ do_configure() {
 	opts+=" -skip qtimageformats"
 	opts+=" -skip qtquicktimeline"
 	opts+=" -skip qtquickcontrols"
+	opts+=" -skip qtdeclarative"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -340,35 +341,9 @@ do_install() {
 		ln -sf ../lib/qt5/bin/qmake ${PKGDESTDIR}/usr/bin/qmake-qt5
 		cp -ar ${wrksrc}/qtbase/mkspecs ${PKGDESTDIR}/usr/lib/qt5
 
-		#
-		# Build qmldevtools for the target
-		#
-		base=qmldevtools
-		dir=qtdeclarative/src
-		_msg_cross " Building ${base}"
-		cd ${wrksrc}/${dir}/${base}
-		[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
-		vsed -i ${base}.pro \
-			-e "/option(host_build)/d" \
-			-e "/include(..\/3rdparty\/masm\/masm-defs.pri)/i include(../3rdparty/masm/masm.pri)"
-		make clean
-		# Create the Makefile
-		mv -v Makefile{,.orig}
-		${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
-		make ${makejobs}
-		# Restore profile, if any
-		[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
-		mv -v Makefile{.orig,}
-		# Avoid rebuilding the Makefile by changing the rule
-		vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
-
 		#
 		# Build various tools for the target
 		#
-		dirs+=" qtdeclarative/tools/qmlmin"
-		dirs+=" qtdeclarative/tools/qmllint"
-		dirs+=" qtdeclarative/tools/qmlcachegen"
-		dirs+=" qtdeclarative/tools/qmlimportscanner"
 		dirs+=" qtbase/src/tools/moc"
 		dirs+=" qtbase/src/tools/rcc"
 		dirs+=" qtbase/src/tools/uic"
@@ -540,22 +515,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-declarative-devel_package() {
-	short_desc+=" - Declarative component (development)"
-	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtdeclarative
-	}
-}
-
-qt5-declarative_package() {
-	short_desc+=" - Declarative component"
-	pkg_install() {
-		_install_subpkg qtdeclarative
-		_move_target_binaries qmlmin qmllint qmlimportscanner qmlcachegen
-	}
-}
-
 qt5-examples_package() {
 	short_desc+=" - Examples"
 	depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}

From 6758a61ce62dc2d8dab6e70130e8837da3291b92 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Sat, 11 Apr 2020 22:38:18 +0200
Subject: [PATCH 33/34] qt5: split qt5-tools into own template

---
 srcpkgs/qt5-host-tools     |  2 +-
 srcpkgs/qt5-tools          |  1 -
 srcpkgs/qt5-tools-devel    |  2 +-
 srcpkgs/qt5-tools/template | 48 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+), 3 deletions(-)
 delete mode 120000 srcpkgs/qt5-tools
 create mode 100644 srcpkgs/qt5-tools/template

diff --git a/srcpkgs/qt5-host-tools b/srcpkgs/qt5-host-tools
index 75793eb6664..46b61ce7e89 120000
--- a/srcpkgs/qt5-host-tools
+++ b/srcpkgs/qt5-host-tools
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-tools
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools b/srcpkgs/qt5-tools
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-tools
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools-devel b/srcpkgs/qt5-tools-devel
index 75793eb6664..46b61ce7e89 120000
--- a/srcpkgs/qt5-tools-devel
+++ b/srcpkgs/qt5-tools-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-tools
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools/template b/srcpkgs/qt5-tools/template
new file mode 100644
index 00000000000..b51ecf8e257
--- /dev/null
+++ b/srcpkgs/qt5-tools/template
@@ -0,0 +1,48 @@
+# Template file for 'qt5-tools'
+pkgname=qt5-tools
+version=5.14.2
+revision=2
+wrksrc="qttools-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-base-tools perl"
+makedepends="qt5-devel Vulkan-Headers"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-tools component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttools-everywhere-src-${version}.tar.xz"
+checksum=5bb0cf7832b88eb6bc9d4289f98307eb14b16a453ad6cf42cca13c4fe1a053c5
+
+post_install() {
+	vmkdir usr/bin
+	for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
+		base=${f##*/}
+		ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
+	done
+}
+
+qt5-tools-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
+
+qt5-host-tools_package() {
+	depends="qt5-base-tools>=${version}_1"
+	pkg_install() {
+		for i in lupdate lupdate-pro lprodump lrelease lrelease-pro; do
+			vmove usr/lib/qt5/bin/$i
+			vmove usr/bin/$i-qt5
+		done
+	}
+}

From 4259bddfee2e28b6ad8c1281352a5add8d14a02f Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Sat, 11 Apr 2020 22:39:35 +0200
Subject: [PATCH 34/34] qt5: update template to only build qt5-base

also use gles by default on arm instead of Desktop OpenGL

[ci skip]
---
 srcpkgs/qt5-base-tools                        |   1 +
 srcpkgs/qt5/files/moc.pro                     |   2 +-
 srcpkgs/qt5/files/rcc.pro                     |   2 +-
 srcpkgs/qt5/files/shared_functions.sh         |  58 +++
 srcpkgs/qt5/files/uic.pro                     |   2 +-
 .../0014-musl-set_thread_name_np.patch        |  24 --
 .../qt5/patches/0016-musl-stackbottom.patch   |  17 -
 srcpkgs/qt5/patches/0018-musl-timeval.patch   |  10 -
 srcpkgs/qt5/template                          | 353 +++---------------
 9 files changed, 122 insertions(+), 347 deletions(-)
 create mode 120000 srcpkgs/qt5-base-tools
 delete mode 100644 srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
 delete mode 100644 srcpkgs/qt5/patches/0016-musl-stackbottom.patch
 delete mode 100644 srcpkgs/qt5/patches/0018-musl-timeval.patch

diff --git a/srcpkgs/qt5-base-tools b/srcpkgs/qt5-base-tools
new file mode 120000
index 00000000000..75793eb6664
--- /dev/null
+++ b/srcpkgs/qt5-base-tools
@@ -0,0 +1 @@
+qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5/files/moc.pro b/srcpkgs/qt5/files/moc.pro
index 664c6d30b1c..3069121aac4 100644
--- a/srcpkgs/qt5/files/moc.pro
+++ b/srcpkgs/qt5/files/moc.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += \
     QT_MOC \
     QT_NO_CAST_FROM_ASCII \
diff --git a/srcpkgs/qt5/files/rcc.pro b/srcpkgs/qt5/files/rcc.pro
index 3296979769b..5555a716446 100644
--- a/srcpkgs/qt5/files/rcc.pro
+++ b/srcpkgs/qt5/files/rcc.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += QT_RCC QT_NO_CAST_FROM_ASCII QT_NO_FOREACH
 
 include(rcc.pri)
diff --git a/srcpkgs/qt5/files/shared_functions.sh b/srcpkgs/qt5/files/shared_functions.sh
index d07596e09f5..90a8fd3303a 100644
--- a/srcpkgs/qt5/files/shared_functions.sh
+++ b/srcpkgs/qt5/files/shared_functions.sh
@@ -21,3 +21,61 @@ _cleanup_wrksrc_leak() {
 		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
 }
 
+_msg_cross() {
+	msg_normal "***************************************************\n"
+	msg_normal "$1 for target ${CROSS_BUILD} ...\n"
+	msg_normal "***************************************************\n"
+}
+
+_host_tooling_for_target() {
+	base=${1##*/}
+	dir=${1%%/*}
+
+	_msg_cross " Building ${base}"
+
+	cd ${wrksrc}/${1}
+	if [ -x "${wrksrc}/${dir}/bin/${base}" ]; then
+		mv -v ${wrksrc}/${dir}/bin/${base}{,-host}
+	fi
+	[ -f Makefile ] && make clean
+	[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
+	if [ -f "${FILESDIR}/${base}.pro" ]; then
+		# A specific *.pro file is available, use it.
+		cp ${FILESDIR}/${base}.pro ${base}.pro
+	else
+		# Otherwise strip the option(host_build)
+		vsed -i ${base}.pro -e "/option(host_build)/d"
+	fi
+	# Create the Makefile
+	[ -f Makefile ] && mv -v Makefile{,.orig}
+	${wrksrc}/bin/qmake -o Makefile ${base}.pro
+
+	# Now patch the Makefile(s) to not use the bootstrap libs and
+	# use the compiler, linker, flags, etc. for the target arch
+	find . -name "Makefile*" -exec sed -i "{}" \
+		-e "s; force_bootstrap;;" \
+		-e "s;^\(CC\\s*=\).*;\1 $CC;" \
+		-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
+		-e "s;^\(LINK\\s*=\).*;\1 $CXX;" \
+		-e "s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
+		-e "s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
+		-e "s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
+		-e "s;^\(AR\\s*=\).*;\1 $AR cqs;" \
+		-e "s;^\(RANLIB\\s*=\).*;\1 $RANLIB;" \
+		\;
+	# Set a different destination directory and target name
+	vsed -i Makefile \
+		-e "s;^\(DESTDIR\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/;" \
+		-e "s;^\(TARGET\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/${base}-target;"
+	make ${makejobs}
+	# Restore profile, if any
+	[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
+	[ -f Makefile.orig ] && mv -v Makefile{.orig,}
+	# Avoid rebuilding the Makefile by changing the rule
+	vsed -i Makefile -e 's;^all:.*;all:;'
+	vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
+	if [ -x "${wrksrc}/${dir}/bin/${base}-host" ]; then
+		mv -v ${wrksrc}/${dir}/bin/${base}{-host,}
+		touch ${wrksrc}/${dir}/bin/${base}
+	fi
+}
diff --git a/srcpkgs/qt5/files/uic.pro b/srcpkgs/qt5/files/uic.pro
index dc08efcff19..adf53a2939f 100644
--- a/srcpkgs/qt5/files/uic.pro
+++ b/srcpkgs/qt5/files/uic.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += QT_UIC QT_NO_CAST_FROM_ASCII QT_NO_FOREACH
 
 include(uic.pri)
diff --git a/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch b/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
deleted file mode 100644
index d7fa4fd4127..00000000000
--- a/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2017-11-14 18:03:52.000000000 +0100
-+++ qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2018-01-27 19:49:19.691858141 +0100
-@@ -11,17 +11,21 @@
- 
- std::string getCurrentThreadName() {
-     char name[32] = "unknown";
-+#if defined(__GLIBC__)
-     pthread_getname_np(pthread_self(), name, sizeof(name));
-+#endif
- 
-     return name;
- }
- 
- void setCurrentThreadName(const std::string& name) {
-+#if defined(__GLIBC__)
-     if (name.size() > 15) { // Linux hard limit (see manpages).
-         pthread_setname_np(pthread_self(), name.substr(0, 15).c_str());
-     } else {
-         pthread_setname_np(pthread_self(), name.c_str());
-     }
-+#endif
- }
- 
- void makeThreadLowPriority() {
diff --git a/srcpkgs/qt5/patches/0016-musl-stackbottom.patch b/srcpkgs/qt5/patches/0016-musl-stackbottom.patch
deleted file mode 100644
index fdfc19298ae..00000000000
--- a/srcpkgs/qt5/patches/0016-musl-stackbottom.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-For musl libc the stackBottom for the main thread is recalculated
-just as it is for Android. See: https://bugreports.qt.io/browse/QTBUG-44268
-
---- qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-02-26 10:34:34.000000000 +0100
-+++ qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-04-04 21:52:43.780823136 +0200
-@@ -94,6 +94,11 @@
- #include <valgrind/memcheck.h>
- #endif
- 
-+#if defined(Q_OS_LINUX) && !defined(__GLIBC__)
-+#include <sys/syscall.h>
-+#define gettid() syscall(SYS_gettid)
-+#endif
-+
- QT_BEGIN_NAMESPACE
- 
- using namespace QV4;
diff --git a/srcpkgs/qt5/patches/0018-musl-timeval.patch b/srcpkgs/qt5/patches/0018-musl-timeval.patch
deleted file mode 100644
index 939fb58b265..00000000000
--- a/srcpkgs/qt5/patches/0018-musl-timeval.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2017-11-22 09:57:45.000000000 +0100
-+++ qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2018-01-27 19:17:31.333759690 +0100
-@@ -47,6 +47,7 @@
- 
- // The order of the following includes is mandatory, because some
- // distributions use sa_family_t in can.h without including socket.h
-+#include <sys/time.h>
- #include <sys/socket.h>
- #include <sys/uio.h>
- #include <linux/can.h>
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 53c279d91f6..b324d0dfecf 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -3,35 +3,36 @@ pkgname=qt5
 version=5.14.2
 revision=2
 build_style=meta
-wrksrc="qt-everywhere-src-${version}"
-hostmakedepends="cmake clang flex git glib-devel pkg-config
- python re2c ruby which"
-makedepends="SDL2-devel Vulkan-Headers alsa-lib-devel double-conversion-devel
- eudev-libudev-devel ffmpeg-devel freetds-devel glib-devel gst-plugins-base1-devel
- gtk+3-devel icu-devel libXv-devel libbluetooth-devel libcap-devel
- libinput-devel libmng-devel libmysqlclient-devel libproxy-devel
- libvpx-devel libwebp-devel libxslt-devel cups-devel
- opus-devel pciutils-devel pcre2-devel postgresql-libs-devel
- protobuf-devel pulseaudio-devel tslib-devel libressl-devel
- unixodbc-devel xcb-util-image-devel xcb-util-keysyms-devel
- xcb-util-renderutil-devel xcb-util-wm-devel libzstd-devel harfbuzz-devel"
+wrksrc="qtbase-everywhere-src-${version}"
+hostmakedepends="pkg-config which perl"
+makedepends="libmysqlclient-devel postgresql-libs-devel harfbuzz-devel
+ libressl-devel fontconfig-devel zlib-devel icu-devel sqlite-devel
+ libjpeg-turbo-devel gtk+3-devel Vulkan-Headers tslib-devel cups-devel
+ double-conversion-devel freetds-devel libzstd-devel pcre2-devel
+ libinput-devel mtdev-devel xcb-util-image-devel xcb-util-keysyms-devel
+ xcb-util-renderutil-devel xcb-util-wm-devel unixodbc-devel libproxy-devel"
 depends="qt5-dbus qt5-gui qt5-core qt5-widgets qt5-network qt5-xml
  qt5-test qt5-sql qt5-concurrent qt5-printsupport qt5-opengl"
 short_desc="Cross-platform application and UI framework (QT5)"
 maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="GPL-3.0-or-later, LGPL-3.0-or-later"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/single/qt-everywhere-src-${version}.tar.xz"
-checksum=c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz"
+checksum=48b9e79220941665a9dd827548c6428f7aa3052ccba8f4f7e039a94aa1d2b28a
 replaces="qt5-doc<5.6.0 qt5-quick1<5.6.0 qt5-quick1-devel<5.6.0 qt5-webkit<5.6.0 qt5-webkit-devel<5.6.0
  qt5-enginio<5.7.1 qt5-enginio-devel<5.7.1 qt5-plugin-gtk<5.7.1 qt5-canvas3d<5.13.0"
 lib32mode=full
+patch_args="-Np1"
 
 # Work around SSLv3_{client,server}_method missing in libressl-2.3.3
 CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG"
 CXXFLAGS="${CFLAGS} -Wno-deprecated-declarations -Wno-class-memaccess -Wno-packed-not-aligned"
-# Required for musl libc
-LDFLAGS="-pthread -ldl -fPIE -Wl,-z,stack-size=2097152"
+
+build_options="gles"
+
+case "$XBPS_TARGET_MACHINE" in
+	aarch64*|arm*) build_options_default="gles";;
+esac
 
 if [ "$CROSS_BUILD" ]; then
 	# Need some devel packages in the host to build qmake, moc, uic, rcc
@@ -40,75 +41,6 @@ if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" postgresql-libs-devel"
 fi
 
-_cleanup_wrksrc_leak() {
-	if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
-		# Replace references to ${wrksrc} in cmake files
-		vsed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
-			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
-			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
-	fi
-	if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
-		# Replace references to ${wrksrc} in pkgconfig files
-		vsed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
-			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
-			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
-	fi
-	# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
-	# and replace references to ${wrksrc}
-	find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
-		-e "/^QMAKE_PRL_BUILD_DIR/d" \
-		-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
-	# Replace ${wrksrc} in project include files
-	find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
-		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
-}
-
-_install_subpkg() {
-	local module=$1 f base
-	cd ${wrksrc}/${module}
-	make INSTALL_ROOT=${PKGDESTDIR} install
-	rm -rf ${PKGDESTDIR}/builddir
-	rm -rf ${PKGDESTDIR}/usr/include
-	rm -rf ${PKGDESTDIR}/usr/lib/cmake
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/mkspecs
-	rm -rf ${PKGDESTDIR}/usr/lib/pkgconfig
-	rm -f ${PKGDESTDIR}/usr/lib/*.a
-	rm -f ${PKGDESTDIR}/usr/lib/*.so
-	rm -f ${PKGDESTDIR}/usr/lib/*.prl
-	if [ -d ${PKGDESTDIR}/usr/lib/qt5/bin ]; then
-		if [ "$CROSS_BUILD" ]; then
-			for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -name "*-target" -type f); do
-				base=${f##*/}
-				mv -v ${f} ${f%-target}
-			done
-		fi
-		vmkdir usr/bin
-		for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
-			base=${f##*/}
-			ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
-		done
-	fi
-}
-
-_install_devel() {
-	local module=$1
-	cd ${wrksrc}/${module}
-	make INSTALL_ROOT=${PKGDESTDIR} install
-	vmkdir usr/lib/qt5/mkspecs/modules
-	if [ -d "${PKGDESTDIR}${wrksrc}/host/mkspecs/modules" ]; then
-		mv -nv ${PKGDESTDIR}${wrksrc}/host/mkspecs/modules/* \
-			${PKGDESTDIR}/usr/lib/qt5/mkspecs/modules/
-	fi
-	rm -rf ${PKGDESTDIR}/builddir
-	rm -rf ${PKGDESTDIR}/usr/share
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/bin
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/qml
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/libexec
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/plugins
-	rm -f ${PKGDESTDIR}/usr/lib/*.so.*
-	_cleanup_wrksrc_leak
-}
-
 _move_target_binaries() {
 	local f
 	[ -z "$CROSS_BUILD" ] && return 0
@@ -122,7 +54,7 @@ _move_target_binaries() {
 }
 
 _create_config() {
-	local specs=${wrksrc}/qtbase/mkspecs/devices device="$1"
+	local specs=${wrksrc}/mkspecs/devices device="$1"
 	local qmake_conf="${specs}/${device}/qmake.conf"
 
 	mkdir -p ${specs}/${device}
@@ -160,39 +92,34 @@ _create_config() {
 	echo '#include "../../linux-g++/qplatformdefs.h"' > ${specs}/${device}/qplatformdefs.h
 }
 
-_msg_cross() {
-	msg_normal "***************************************************\n"
-	msg_normal "$1 for target ${CROSS_BUILD} ...\n"
-	msg_normal "***************************************************\n"
-}
-
 do_configure() {
+	source ${FILESDIR}/shared_functions.sh
 	local opts spec
 
 	# Cross build patches
 	if [ "$CROSS_BUILD" ]; then
 		# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
 		vsed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${XBPS_CFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
+			${wrksrc}/mkspecs/common/gcc-base.conf
 		vsed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${XBPS_LDFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
+			${wrksrc}/mkspecs/common/g++-unix.conf
 
 		# Create symbolic links for private include directories
-		for d in $(ls ${wrksrc}/qtbase/include); do
-			ln -sfv ${version}/${d}/private qtbase/include/${d}/private
+		for d in $(ls ${wrksrc}/include); do
+			ln -sfv ${version}/${d}/private include/${d}/private
 		done
 	else
 		# qmake {CXX,L}FLAGS patches
 		vsed -i -e "s|^\(CXXFLAGS =.*\)|\1 ${CXXFLAGS}|" \
 			-e "s|^\(LFLAGS =.*\)|\1 ${LDFLAGS}|" \
-			${wrksrc}/qtbase/qmake/Makefile.unix
+			${wrksrc}/qmake/Makefile.unix
 
 		# Build qmake using Void {C,LD}FLAGS
 		# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
 		vsed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
+			${wrksrc}/mkspecs/common/gcc-base.conf
 		vsed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
+			${wrksrc}/mkspecs/common/g++-unix.conf
 	fi
 
 	opts+=" -confirm-license"
@@ -220,7 +147,6 @@ do_configure() {
 	opts+=" -no-pch"
 	opts+=" -no-strip"
 	opts+=" -nomake examples"
-	opts+=" -optimized-qmake"
 	# opts+=" -opengl dynamic"
 	opts+=" -no-use-gold-linker"
 	opts+=" -system-libjpeg"
@@ -228,43 +154,13 @@ do_configure() {
 	opts+=" -system-zlib"
 	opts+=" -system-sqlite"
 	opts+=" -system-harfbuzz"
+	if [ "$build_option_gles" ]; then
+		opts+=" -opengl-es-2"
+		opts+=" -opengles3"
+	fi
 	opts+=" -no-feature-eglfs_brcm" # missing include path
 	opts+=" -silent"
 	# opts+=" -v"
-	opts+=" -skip qtwebengine"
-	opts+=" -skip qtwebview"
-	opts+=" -skip qtlottie"
-	opts+=" -skip qttranslations"
-	opts+=" -skip qt3d"
-	opts+=" -skip qtdatavis3d"
-	opts+=" -skip qtcharts"
-	opts+=" -skip qtconnectivity"
-	opts+=" -skip qtgamepad"
-	opts+=" -skip qtlocation"
-	opts+=" -skip qtx11extras"
-	opts+=" -skip qtpurchasing"
-	opts+=" -skip qtmultimedia"
-	opts+=" -skip qtxmlpatterns"
-	opts+=" -skip qtnetworkauth"
-	opts+=" -skip qtwebsockets"
-	opts+=" -skip qtwebglplugin"
-	opts+=" -skip qtwebchannel"
-	opts+=" -skip qtsensors"
-	opts+=" -skip qtwayland"
-	opts+=" -skip qtscript"
-	opts+=" -skip qtscxml"
-	opts+=" -skip qtquickcontrols2"
-	opts+=" -skip qtremoteobjects"
-	opts+=" -skip qtserialbus"
-	opts+=" -skip qtvirtualkeyboard"
-	opts+=" -skip qtgraphicaleffects"
-	opts+=" -skip qtserialport"
-	opts+=" -skip qtspeech"
-	opts+=" -skip qtsvg"
-	opts+=" -skip qtimageformats"
-	opts+=" -skip qtquicktimeline"
-	opts+=" -skip qtquickcontrols"
-	opts+=" -skip qtdeclarative"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -275,38 +171,30 @@ do_configure() {
 		opts+=" -hostprefix host"
 		opts+=" -extprefix /usr"
 
-		# Make sure libQt5Designer is built
-		cp -v ${FILESDIR}/qttools_src.pro qttools/src/src.pro
-		cp -v ${FILESDIR}/designer_src.pro qttools/src/designer/src/src.pro
-		cp -v ${FILESDIR}/assistant.pro qttools/src/assistant/assistant.pro
-		cp -v ${FILESDIR}/linguist.pro qttools/src/linguist/linguist.pro
-		cp -v ${FILESDIR}/uitools.pro qttools/src/designer/src/uitools/uitools.pro
 	fi
 
+	MAKEFLAGS="${makejobs}" \
 	CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
 	OBJDUMP="objdump" STRIP="strip" RANLIB="ranlib" \
 	CFLAGS="$XBPS_CFLAGS" CXXFLAGS="$XBPS_CXXFLAGS" \
 	CPPFLAGS="$XBPS_CPPFLAGS" LDFLAGS="$XBPS_LDFLAGS" \
 	LFLAGS="$XBPS_LDFLAGS" \
 		${wrksrc}/configure ${opts}
-	export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
+	export LD_LIBRARY_PATH="${wrksrc}/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
 }
 
 do_build() {
-	# Run make twice because sometimes a file "chrome/grit/generated_resources.h"
-	# is not yet ready when it is to be included. Repeating make works around that
-	# problem without having to resort to disable_parallel_build=yes
-	# or some other files
-	make ${makejobs} || make ${makejobs}
+	make ${makejobs}
 }
 
 do_install() {
+	source ${FILESDIR}/shared_functions.sh
 	local f base bin dir dirs
 
 	if [ -z "$CROSS_BUILD" ]; then
 		unset CC CXX LD CPP AR AS RANLIB
 	fi
-	cd ${wrksrc}/qtbase
+	cd ${wrksrc}/
 	make INSTALL_ROOT=${DESTDIR} install
 
 	_cleanup_wrksrc_leak
@@ -326,7 +214,7 @@ do_install() {
 		# Build qmake for the target
 		#
 		_msg_cross "Building qmake"
-		cd ${wrksrc}/qtbase/qmake
+		cd ${wrksrc}/qmake
 		sed Makefile \
 			-e"s;^\(CC\\s*=\).*;\1 $CC;" \
 			-e"s;^\(CXX\\s*=\).*;\1 $CXX;" \
@@ -339,80 +227,22 @@ do_install() {
 		make clean
 		make -f Makefile.target ${makejobs}
 		ln -sf ../lib/qt5/bin/qmake ${PKGDESTDIR}/usr/bin/qmake-qt5
-		cp -ar ${wrksrc}/qtbase/mkspecs ${PKGDESTDIR}/usr/lib/qt5
+		cp -ar ${wrksrc}/mkspecs ${PKGDESTDIR}/usr/lib/qt5
 
 		#
 		# Build various tools for the target
 		#
-		dirs+=" qtbase/src/tools/moc"
-		dirs+=" qtbase/src/tools/rcc"
-		dirs+=" qtbase/src/tools/uic"
-		dirs+=" qtbase/src/tools/qdbuscpp2xml"
-		dirs+=" qtbase/src/tools/qdbusxml2cpp"
-		dirs+=" qtbase/src/tools/qvkgen"
-		dirs+=" qtbase/src/tools/tracegen"
-		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qttools/src/qtattributionsscanner"
-		dirs+=" qttools/src/linguist/lconvert"
-		dirs+=" qttools/src/linguist/lrelease"
-		dirs+=" qttools/src/linguist/lrelease-pro"
-		dirs+=" qttools/src/linguist/lprodump"
-		dirs+=" qttools/src/linguist/lupdate"
-		dirs+=" qttools/src/linguist/lupdate-pro"
-		# Cannot be cross compiled (target clang issue)
-		# dirs+=" qttools/src/qdoc"
+		dirs+=" src/tools/moc"
+		dirs+=" src/tools/rcc"
+		dirs+=" src/tools/uic"
+		dirs+=" src/tools/qdbuscpp2xml"
+		dirs+=" src/tools/qdbusxml2cpp"
+		dirs+=" src/tools/qvkgen"
+		dirs+=" src/tools/tracegen"
+		dirs+=" src/tools/qlalr"
 
 		for f in ${dirs}; do
-			base=${f##*/}
-			dir=${f%%/*}
-
-			_msg_cross " Building ${base}"
-
-			cd ${wrksrc}/${f}
-			if [ -x "${wrksrc}/${dir}/bin/${base}" ]; then
-				mv -v ${wrksrc}/${dir}/bin/${base}{,-host}
-			fi
-			[ -f Makefile ] && make clean
-			[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
-			if [ -f "${FILESDIR}/${base}.pro" ]; then
-				# A specific *.pro file is available, use it.
-				cp ${FILESDIR}/${base}.pro ${base}.pro
-			else
-				# Otherwise strip the option(host_build)
-				vsed -i ${base}.pro -e "/option(host_build)/d"
-			fi
-			# Create the Makefile
-			[ -f Makefile ] && mv -v Makefile{,.orig}
-			${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
-
-			# Now patch the Makefile(s) to not use the bootstrap libs and
-			# use the compiler, linker, flags, etc. for the target arch
-			find . -name "Makefile*" -exec sed -i "{}" \
-				-e "s; force_bootstrap;;" \
-				-e "s;^\(CC\\s*=\).*;\1 $CC;" \
-				-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
-				-e "s;^\(LINK\\s*=\).*;\1 $CXX;" \
-				-e "s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
-				-e "s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
-				-e "s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
-				-e "s;^\(AR\\s*=\).*;\1 $AR cqs;" \
-				-e "s;^\(RANLIB\\s*=\).*;\1 $RANLIB;" \
-				\;
-			# Set a different destination directory and target name
-			vsed -i Makefile \
-				-e "s;^\(DESTDIR\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/;" \
-				-e "s;^\(TARGET\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/${base}-target;"
-			make ${makejobs}
-			# Restore profile, if any
-			[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
-			[ -f Makefile.orig ] && mv -v Makefile{.orig,}
-			# Avoid rebuilding the Makefile by changing the rule
-			vsed -i Makefile -e 's;^all:.*;all:;'
-			vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
-			if [ -x "${wrksrc}/${dir}/bin/${base}-host" ]; then
-				mv -v ${wrksrc}/${dir}/bin/${base}{-host,}
-				touch ${wrksrc}/${dir}/bin/${base}
-			fi
+			_host_tooling_for_target $f
 		done
 	fi
 	# Remove builddir from installation
@@ -522,7 +352,7 @@ qt5-examples_package() {
 	pkg_install() {
 		local dir mod base=usr/share/qt5/examples
 		vmkdir ${base}
-		vcopy qtbase/examples/examples.pro ${base}/
+		vcopy examples/examples.pro ${base}/
 		# Copy examples source
 		for dir in $(find ${wrksrc} -maxdepth 2 -type d -name examples); do
 			mod=${dir%/examples}
@@ -535,81 +365,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-host-tools_package() {
-	short_desc+=" - Tools required when cross compiling"
-	depends="qtchooser"
-	pkg_install() {
-		local dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-tools-${version}
-		vmkdir usr/lib/qt5/bin
-		vmkdir usr/bin
-		for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp qvkgen fixqt4headers.pl tracegen \
-			syncqt.pl lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
-			if [ -r ${dest}/usr/lib/qt5/bin/${f} ]; then
-				mv -v ${dest}/usr/lib/qt5/bin/${f} ${PKGDESTDIR}/usr/lib/qt5/bin/
-			fi
-			if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f}-target ]; then
-				mv -v ${DESTDIR}/usr/lib/qt5/bin/${f}{-target,}
-			fi
-			if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f} ]; then
-				vmove usr/lib/qt5/bin/${f}
-			fi
-			if [ -f ${DESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${DESTDIR}/usr/bin/${f}-qt5 ]; then
-				vmove usr/bin/${f}-qt5
-			else
-				ln -sf ../lib/qt5/bin/${f} ${PKGDESTDIR}/usr/bin/${f}-qt5
-			fi
-		done
-	}
-}
-
-qt5-tools-devel_package() {
-	short_desc+=" - Development tools (development)"
-	depends="qt5-tools-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qttools
-	}
-}
-
-qt5-tools_package() {
-	short_desc+=" - Development tools"
-	depends="qtchooser qt5-translations desktop-file-utils hicolor-icon-theme"
-	pkg_install() {
-		local f dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-host-tools-${version}
-		_install_subpkg qttools
-		# install missing icons and desktop files
-		for icon in ${wrksrc}/qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
-			size=$(echo $(basename ${icon}) | cut -d- -f2)
-			install -p -D -m644 ${icon} \
-				${PKGDESTDIR}/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt5.png
-		done
-		install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant-128.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/designer/src/designer/images/designer.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/designer-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/qdbusviewer-qt5.png
-		# install desktop files
-		vmkdir usr/share/applications
-		install -m644 ${FILESDIR}/*.desktop ${PKGDESTDIR}/usr/share/applications
-		_move_target_binaries qtattributionsscanner qdoc
-		# Move some binaries to qt5-host-tools
-		for f in lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
-			if [ -f ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ]; then
-				mkdir -p ${dest}/usr/lib/qt5/bin
-				mv -v ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ${dest}/usr/lib/qt5/bin/
-			fi
-			if [ -f ${PKGDESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${PKGDESTDIR}/usr/bin/${f}-qt5 ]; then
-				mkdir -p ${dest}/usr/bin
-				mv -v ${PKGDESTDIR}/usr/bin/${f}-qt5 ${dest}/usr/bin/
-			fi
-		done
-	}
-}
-
 qt5-devel_package() {
 	depends="zlib-devel libressl-devel>=2.1.4 libXext-devel libXrender-devel
 		fontconfig-devel libglib-devel MesaLib-devel mtdev-devel
@@ -630,6 +385,7 @@ qt5-devel_package() {
 	short_desc+=" - Development files"
 	# qt5-enginio-devel is gone
 	pkg_install() {
+		source ${FILESDIR}/shared_functions.sh
 		vmove usr/include
 		vmove usr/lib/*.a
 		vmove usr/lib/*.prl
@@ -674,6 +430,17 @@ qt5-plugin-tds_package() {
 	}
 }
 
+qt5-base-tools_package() {
+	short_desc+=" - Tools"
+	pkg_install() {
+		for f in uic tracegen syncqt.pl rcc qvkgen qlalr qdbusxml2cpp \
+			qdbuscpp2xml moc fixqt4headers.pl; do
+			vmove usr/bin/$f-qt5
+			vmove usr/lib/qt5/bin/$f
+		done
+	}
+}
+
 qt5-qmake_package() {
 	short_desc+=" - Qmake Makefile generator tool"
 	depends="qtchooser"
@@ -709,7 +476,7 @@ qt5-xcb-private-headers_package() {
 	short_desc+=" - Private headers for Qt5 Xcb"
 	depends="qt5-devel"
 	pkg_install() {
-		for f in ${wrksrc}/qtbase/src/plugins/platforms/xcb/*.h; do
+		for f in ${wrksrc}/src/plugins/platforms/xcb/*.h; do
 			vinstall $f 644 usr/include/qt5xcb-private
 		done
 	}

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

* Re: [PR PATCH] [Updated] [WIP] qt5: split every submodule into it's own template
  2020-04-11 20:58 [PR PATCH] [WIP] qt5: split every submodule into it's own template Johnnynator
@ 2020-05-29 16:46 ` Johnnynator
  2021-11-01 13:07 ` [PR PATCH] [Closed]: " Johnnynator
  1 sibling, 0 replies; 3+ messages in thread
From: Johnnynator @ 2020-05-29 16:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 866 bytes --]

There is an updated pull request by Johnnynator against master on the void-packages repository

https://github.com/Johnnynator/void-packages qt5-split
https://github.com/void-linux/void-packages/pull/20893

[WIP] qt5: split every submodule into it's own template
This should make it less likely to constantly blow up the build servers. Also make it less annoying when updating and something fails in do_install and everything needs to be cleaned up.

Broken stuff:

- [ ] `qt5-wayland` cross
- [ ] qmake cross as wonky as ever (e.g. `host_build` in `.pro` has no effect, and modules do never get found on target arch). Ironically this whole PR only works because of that :)
- [ ] some deps are not detected when cross building (e.g. libdrm, tries to include from host)

A patch file from https://github.com/void-linux/void-packages/pull/20893.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-qt5-split-20893.patch --]
[-- Type: text/x-diff, Size: 135040 bytes --]

From ff78c750ddea12ab251a98211d16cf344302845a Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 17:36:35 +0200
Subject: [PATCH 01/34] qt5: split qt5-lottie into own template

---
 srcpkgs/qt5-lottie                    |  1 -
 srcpkgs/qt5-lottie-devel              |  2 +-
 srcpkgs/qt5-lottie/template           | 32 +++++++++++++++++++++++++++
 srcpkgs/qt5/files/shared_functions.sh | 23 +++++++++++++++++++
 srcpkgs/qt5/template                  | 13 +----------
 5 files changed, 57 insertions(+), 14 deletions(-)
 delete mode 120000 srcpkgs/qt5-lottie
 create mode 100644 srcpkgs/qt5-lottie/template
 create mode 100644 srcpkgs/qt5/files/shared_functions.sh

diff --git a/srcpkgs/qt5-lottie b/srcpkgs/qt5-lottie
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-lottie
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-lottie-devel b/srcpkgs/qt5-lottie-devel
index 75793eb6664..21f7f526002 120000
--- a/srcpkgs/qt5-lottie-devel
+++ b/srcpkgs/qt5-lottie-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-lottie
\ No newline at end of file
diff --git a/srcpkgs/qt5-lottie/template b/srcpkgs/qt5-lottie/template
new file mode 100644
index 00000000000..e7a914ad86c
--- /dev/null
+++ b/srcpkgs/qt5-lottie/template
@@ -0,0 +1,32 @@
+# Template file for 'qt5-lottie'
+pkgname=qt5-lottie
+version=5.14.2
+revision=1
+wrksrc="qtlottie-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-lottie component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlottie-everywhere-src-${version}.tar.xz"
+checksum=55d1392dc92cbec11263084360075dc5fc3fdc25c1969adfbdec84299b285978
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-lottie-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/files/shared_functions.sh b/srcpkgs/qt5/files/shared_functions.sh
new file mode 100644
index 00000000000..d07596e09f5
--- /dev/null
+++ b/srcpkgs/qt5/files/shared_functions.sh
@@ -0,0 +1,23 @@
+_cleanup_wrksrc_leak() {
+	if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
+		# Replace references to ${wrksrc} in cmake files
+		vsed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
+			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
+			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
+	fi
+	if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
+		# Replace references to ${wrksrc} in pkgconfig files
+		vsed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
+			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
+			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
+	fi
+	# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
+	# and replace references to ${wrksrc}
+	find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
+		-e "/^QMAKE_PRL_BUILD_DIR/d" \
+		-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
+	# Replace ${wrksrc} in project include files
+	find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
+		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
+}
+
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 9b6bbf6bd9c..f866d6b3b95 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -238,6 +238,7 @@ do_configure() {
 	# opts+=" -v"
 	opts+=" -skip qtwebengine"
 	opts+=" -skip qtwebview"
+	opts+=" -skip qtlottie"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -614,18 +615,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-lottie-devel_package() {
-	pkg_install() {
-		_install_devel qtlottie
-	}
-}
-
-qt5-lottie_package() {
-	pkg_install() {
-		_install_subpkg qtlottie
-	}
-}
-
 qt5-gamepad-devel_package() {
 	short_desc+=" - Gamepad component (development)"
 	depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From 5cb84291708b3ca437e40f184568831cc0b13278 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 17:55:53 +0200
Subject: [PATCH 02/34] qt5: split qt5-translations into own template

---
 srcpkgs/qt5-translations          |  1 -
 srcpkgs/qt5-translations/template | 13 +++++++++++++
 srcpkgs/qt5/template              |  7 -------
 3 files changed, 13 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-translations
 create mode 100644 srcpkgs/qt5-translations/template

diff --git a/srcpkgs/qt5-translations b/srcpkgs/qt5-translations
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-translations
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-translations/template b/srcpkgs/qt5-translations/template
new file mode 100644
index 00000000000..d1c3e4873d6
--- /dev/null
+++ b/srcpkgs/qt5-translations/template
@@ -0,0 +1,13 @@
+# Template file for 'qt5-translations'
+pkgname=qt5-translations
+version=5.14.2
+revision=2
+wrksrc="qttranslations-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools"
+short_desc="Cross-platform application and UI framework (QT5) - Translations"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttranslations-everywhere-src-${version}.tar.xz"
+checksum=2088ebee9f5dd0336c9fd11436899a95b7ce0141ce072290de1e8f315d82d1a6
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f866d6b3b95..5af41da6622 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -962,13 +962,6 @@ qt5-xmlpatterns_package() {
 	}
 }
 
-qt5-translations_package() {
-	short_desc+=" - Translations"
-	pkg_install() {
-		_install_subpkg qttranslations
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From baebf6d56f13660907eb26b1c5858604ebc81e6d Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:20:02 +0200
Subject: [PATCH 03/34] qt5: split qt5-3d into own template

---
 srcpkgs/qt5-3d          |  1 -
 srcpkgs/qt5-3d-devel    |  2 +-
 srcpkgs/qt5-3d/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template    | 19 ++-----------------
 4 files changed, 32 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-3d
 create mode 100644 srcpkgs/qt5-3d/template

diff --git a/srcpkgs/qt5-3d b/srcpkgs/qt5-3d
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-3d
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-3d-devel b/srcpkgs/qt5-3d-devel
index 75793eb6664..ff8473cf898 120000
--- a/srcpkgs/qt5-3d-devel
+++ b/srcpkgs/qt5-3d-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-3d
\ No newline at end of file
diff --git a/srcpkgs/qt5-3d/template b/srcpkgs/qt5-3d/template
new file mode 100644
index 00000000000..3752899a6ea
--- /dev/null
+++ b/srcpkgs/qt5-3d/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-3d'
+pkgname=qt5-3d
+version=5.14.2
+revision=2
+wrksrc="qt3d-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake perl qt5-host-tools"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - C++ and QML APIs for 3D graphics"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt3d-everywhere-src-${version}.tar.xz"
+checksum=9da82f1cc4b7d416d31ec96224c59d221473a48f6e579eef978f7d2e3932c674
+
+qt5-3d-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 5af41da6622..c55f50aef8d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -239,6 +239,8 @@ do_configure() {
 	opts+=" -skip qtwebengine"
 	opts+=" -skip qtwebview"
 	opts+=" -skip qtlottie"
+	opts+=" -skip qttranslations"
+	opts+=" -skip qt3d"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -352,7 +354,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/qvkgen"
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qt3d/tools/qgltf"
 		dirs+=" qtremoteobjects/tools/repc"
 		dirs+=" qtscxml/tools/qscxmlc"
 		dirs+=" qttools/src/qtattributionsscanner"
@@ -518,22 +519,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-3d-devel_package() {
-	short_desc+=" - C++ and QML APIs for 3D graphics (development)"
-	depends="qt5-3d-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qt3d
-		_move_target_binaries qgltf
-	}
-}
-
-qt5-3d_package() {
-	short_desc+=" - C++ and QML APIs for 3D graphics"
-	pkg_install() {
-		_install_subpkg qt3d
-	}
-}
-
 qt5-charts-devel_package() {
 	short_desc+=" - Charts component (development)"
 	depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From e3c1f989f0a6cd35b53e5e42ff278d516419596c Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:27:04 +0200
Subject: [PATCH 04/34] qt5: split qt5-davis3d into own template

---
 srcpkgs/qt5-datavis3d          |  1 -
 srcpkgs/qt5-datavis3d-devel    |  2 +-
 srcpkgs/qt5-datavis3d/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template           | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-datavis3d
 create mode 100644 srcpkgs/qt5-datavis3d/template

diff --git a/srcpkgs/qt5-datavis3d b/srcpkgs/qt5-datavis3d
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-datavis3d
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-datavis3d-devel b/srcpkgs/qt5-datavis3d-devel
index 75793eb6664..d17727e5421 120000
--- a/srcpkgs/qt5-datavis3d-devel
+++ b/srcpkgs/qt5-datavis3d-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-datavis3d
\ No newline at end of file
diff --git a/srcpkgs/qt5-datavis3d/template b/srcpkgs/qt5-datavis3d/template
new file mode 100644
index 00000000000..6c44fec77f4
--- /dev/null
+++ b/srcpkgs/qt5-datavis3d/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-datavis3d'
+pkgname=qt5-datavis3d
+version=5.14.2
+revision=1
+wrksrc="qtdatavis3d-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - 3D data visualization"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdatavis3d-everywhere-src-${version}.tar.xz"
+checksum=723c03db2d2805b1be4ca534ac7bc867a1a21894d33a7e9261a382f3fa9d0e20
+
+qt5-datavis3d-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index c55f50aef8d..837c578da31 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -241,6 +241,7 @@ do_configure() {
 	opts+=" -skip qtlottie"
 	opts+=" -skip qttranslations"
 	opts+=" -skip qt3d"
+	opts+=" -skip qtdatavis3d"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -549,21 +550,6 @@ qt5-connectivity_package() {
 	}
 }
 
-qt5-datavis3d-devel_package() {
-	short_desc+=" - 3D data visualization (development)"
-	depends="qt5-datavis3d-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtdatavis3d
-	}
-}
-
-qt5-datavis3d_package() {
-	short_desc+=" - 3D data visualization"
-	pkg_install() {
-		_install_subpkg qtdatavis3d
-	}
-}
-
 qt5-declarative-devel_package() {
 	short_desc+=" - Declarative component (development)"
 	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"

From 080d31c567d91762dd8aa93afcc0c3cdd0376da9 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:35:49 +0200
Subject: [PATCH 05/34] qt5: split qt5-charts into own template

---
 srcpkgs/qt5-charts          |  1 -
 srcpkgs/qt5-charts-devel    |  2 +-
 srcpkgs/qt5-charts/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-charts
 create mode 100644 srcpkgs/qt5-charts/template

diff --git a/srcpkgs/qt5-charts b/srcpkgs/qt5-charts
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-charts
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-charts-devel b/srcpkgs/qt5-charts-devel
index 75793eb6664..bd8c73cf5cb 120000
--- a/srcpkgs/qt5-charts-devel
+++ b/srcpkgs/qt5-charts-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-charts
\ No newline at end of file
diff --git a/srcpkgs/qt5-charts/template b/srcpkgs/qt5-charts/template
new file mode 100644
index 00000000000..69f2bd26f5e
--- /dev/null
+++ b/srcpkgs/qt5-charts/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-charts'
+pkgname=qt5-charts
+version=5.14.2
+revision=1
+wrksrc="qtcharts-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Charts component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtcharts-everywhere-src-${version}.tar.xz"
+checksum=adb25203ea748d886cc3d8993c20def702115eccea311594592058134ba83bb7
+
+qt5-charts-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 837c578da31..077e0138d1a 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -242,6 +242,7 @@ do_configure() {
 	opts+=" -skip qttranslations"
 	opts+=" -skip qt3d"
 	opts+=" -skip qtdatavis3d"
+	opts+=" -skip qtcharts"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -520,21 +521,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-charts-devel_package() {
-	short_desc+=" - Charts component (development)"
-	depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtcharts
-	}
-}
-
-qt5-charts_package() {
-	short_desc+=" - Charts component"
-	pkg_install() {
-		_install_subpkg qtcharts
-	}
-}
-
 qt5-connectivity-devel_package() {
 	short_desc+=" - Connectivity component (development)"
 	depends="qt5-connectivity-${version}_${revision} qt5-declarative-devel-${version}_${revision}"

From 606d92f746c6b7d4bcf1b3d5f95ae35457e849bb Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:43:43 +0200
Subject: [PATCH 06/34] qt5: split qt5-connectivity into own template

---
 srcpkgs/qt5-connectivity          |  1 -
 srcpkgs/qt5-connectivity-devel    |  2 +-
 srcpkgs/qt5-connectivity/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template              | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-connectivity
 create mode 100644 srcpkgs/qt5-connectivity/template

diff --git a/srcpkgs/qt5-connectivity b/srcpkgs/qt5-connectivity
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-connectivity
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-connectivity-devel b/srcpkgs/qt5-connectivity-devel
index 75793eb6664..3015c508548 120000
--- a/srcpkgs/qt5-connectivity-devel
+++ b/srcpkgs/qt5-connectivity-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-connectivity
\ No newline at end of file
diff --git a/srcpkgs/qt5-connectivity/template b/srcpkgs/qt5-connectivity/template
new file mode 100644
index 00000000000..b8ef4838ac8
--- /dev/null
+++ b/srcpkgs/qt5-connectivity/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-connectivity'
+pkgname=qt5-connectivity
+version=5.14.2
+revision=2
+wrksrc="qtconnectivity-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel libbluetooth-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Connectivity component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz"
+checksum=abe67b3e3a775e2a2e27c62a5391f37007ffbe72bce58b96116995616cfcbc28
+
+qt5-connectivity-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 077e0138d1a..86b95911c73 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -243,6 +243,7 @@ do_configure() {
 	opts+=" -skip qt3d"
 	opts+=" -skip qtdatavis3d"
 	opts+=" -skip qtcharts"
+	opts+=" -skip qtconnectivity"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -521,21 +522,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-connectivity-devel_package() {
-	short_desc+=" - Connectivity component (development)"
-	depends="qt5-connectivity-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtconnectivity
-	}
-}
-
-qt5-connectivity_package() {
-	short_desc+=" - Connectivity component"
-	pkg_install() {
-		_install_subpkg qtconnectivity
-	}
-}
-
 qt5-declarative-devel_package() {
 	short_desc+=" - Declarative component (development)"
 	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"

From 531715fb18a443e77dde9f0dcb812fd04207819f Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:48:51 +0200
Subject: [PATCH 07/34] qt5: split qt5-gamepad into own template

---
 srcpkgs/qt5-gamepad          |  1 -
 srcpkgs/qt5-gamepad-devel    |  2 +-
 srcpkgs/qt5-gamepad/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-gamepad
 create mode 100644 srcpkgs/qt5-gamepad/template

diff --git a/srcpkgs/qt5-gamepad b/srcpkgs/qt5-gamepad
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-gamepad
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-gamepad-devel b/srcpkgs/qt5-gamepad-devel
index 75793eb6664..4ec1b338bd6 120000
--- a/srcpkgs/qt5-gamepad-devel
+++ b/srcpkgs/qt5-gamepad-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-gamepad
\ No newline at end of file
diff --git a/srcpkgs/qt5-gamepad/template b/srcpkgs/qt5-gamepad/template
new file mode 100644
index 00000000000..af619a59857
--- /dev/null
+++ b/srcpkgs/qt5-gamepad/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-gamepad'
+pkgname=qt5-gamepad
+version=5.14.2
+revision=2
+wrksrc="qtgamepad-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config"
+makedepends="qt5-devel SDL2-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Gamepad component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtgamepad-everywhere-src-${version}.tar.xz"
+checksum=f77daadb4755cf760e11812264259fb103396fd1b06df1e06b5df162081c8d03
+
+qt5-gamepad-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 86b95911c73..bf0a1494ddd 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -244,6 +244,7 @@ do_configure() {
 	opts+=" -skip qtdatavis3d"
 	opts+=" -skip qtcharts"
 	opts+=" -skip qtconnectivity"
+	opts+=" -skip qtgamepad"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -558,21 +559,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-gamepad-devel_package() {
-	short_desc+=" - Gamepad component (development)"
-	depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtgamepad
-	}
-}
-
-qt5-gamepad_package() {
-	short_desc+=" - Gamepad component"
-	pkg_install() {
-		_install_subpkg qtgamepad
-	}
-}
-
 qt5-graphicaleffects_package() {
 	short_desc+=" - Graphicaleffects component"
 	pkg_install() {

From 5fe5f5f77b7ba744c6289c531dcc520d22e80c5d Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 18:53:43 +0200
Subject: [PATCH 08/34] qt5: split qt5-location into own template

---
 srcpkgs/qt5-location                          |  1 -
 srcpkgs/qt5-location-devel                    |  2 +-
 .../0014-musl-set_thread_name_np.patch        | 24 +++++++++++++++
 srcpkgs/qt5-location/template                 | 30 +++++++++++++++++++
 srcpkgs/qt5/template                          | 16 +---------
 5 files changed, 56 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-location
 create mode 100644 srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
 create mode 100644 srcpkgs/qt5-location/template

diff --git a/srcpkgs/qt5-location b/srcpkgs/qt5-location
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-location
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-location-devel b/srcpkgs/qt5-location-devel
index 75793eb6664..6a3acc8712c 120000
--- a/srcpkgs/qt5-location-devel
+++ b/srcpkgs/qt5-location-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-location
\ No newline at end of file
diff --git a/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch b/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
new file mode 100644
index 00000000000..d7fa4fd4127
--- /dev/null
+++ b/srcpkgs/qt5-location/patches/0014-musl-set_thread_name_np.patch
@@ -0,0 +1,24 @@
+--- qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2017-11-14 18:03:52.000000000 +0100
++++ qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2018-01-27 19:49:19.691858141 +0100
+@@ -11,17 +11,21 @@
+ 
+ std::string getCurrentThreadName() {
+     char name[32] = "unknown";
++#if defined(__GLIBC__)
+     pthread_getname_np(pthread_self(), name, sizeof(name));
++#endif
+ 
+     return name;
+ }
+ 
+ void setCurrentThreadName(const std::string& name) {
++#if defined(__GLIBC__)
+     if (name.size() > 15) { // Linux hard limit (see manpages).
+         pthread_setname_np(pthread_self(), name.substr(0, 15).c_str());
+     } else {
+         pthread_setname_np(pthread_self(), name.c_str());
+     }
++#endif
+ }
+ 
+ void makeThreadLowPriority() {
diff --git a/srcpkgs/qt5-location/template b/srcpkgs/qt5-location/template
new file mode 100644
index 00000000000..15f484288dd
--- /dev/null
+++ b/srcpkgs/qt5-location/template
@@ -0,0 +1,30 @@
+# Template file for 'qt5-location'
+pkgname=qt5-location
+version=5.14.2
+revision=2
+wrksrc="qtlocation-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Location and Positioning components"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlocation-everywhere-src-${version}.tar.xz"
+checksum=c37708bc396f6dac397b49a6a268d5edb39e1c8296ca2337ce9e80bde04775cc
+patch_args="-Np1"
+
+qt5-location-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index bf0a1494ddd..09aaba718a0 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -245,6 +245,7 @@ do_configure() {
 	opts+=" -skip qtcharts"
 	opts+=" -skip qtconnectivity"
 	opts+=" -skip qtgamepad"
+	opts+=" -skip qtlocation"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -573,21 +574,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-location-devel_package() {
-	short_desc+=" - Location and Positioning components (development)"
-	depends="qt5-location-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtlocation
-	}
-}
-
-qt5-location_package() {
-	short_desc+=" - Location and Positioning components"
-	pkg_install() {
-		_install_subpkg qtlocation
-	}
-}
-
 qt5-multimedia-devel_package() {
 	short_desc+=" - Multimedia component (development)"
 	depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"

From bf20878984d338afdc8c73d4631756ffee366f98 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:27:47 +0200
Subject: [PATCH 09/34] qt5: split qt5-x11extras into own template

---
 srcpkgs/qt5-x11extras          |  1 -
 srcpkgs/qt5-x11extras-devel    |  2 +-
 srcpkgs/qt5-x11extras/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template           | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-x11extras
 create mode 100644 srcpkgs/qt5-x11extras/template

diff --git a/srcpkgs/qt5-x11extras b/srcpkgs/qt5-x11extras
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-x11extras
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-x11extras-devel b/srcpkgs/qt5-x11extras-devel
index 75793eb6664..4e1951edec7 120000
--- a/srcpkgs/qt5-x11extras-devel
+++ b/srcpkgs/qt5-x11extras-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-x11extras
\ No newline at end of file
diff --git a/srcpkgs/qt5-x11extras/template b/srcpkgs/qt5-x11extras/template
new file mode 100644
index 00000000000..30e55bc9cc7
--- /dev/null
+++ b/srcpkgs/qt5-x11extras/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-x11extras'
+pkgname=qt5-x11extras
+version=5.14.2
+revision=2
+wrksrc="qtx11extras-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - X11 extras"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtx11extras-everywhere-src-${version}.tar.xz"
+checksum=be9a84a03a2ee81771215264e5dff7a996d04be6192b8cdaa1d41e319a81545a
+
+qt5-x11extras-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 09aaba718a0..5e54b64b1cb 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -246,6 +246,7 @@ do_configure() {
 	opts+=" -skip qtconnectivity"
 	opts+=" -skip qtgamepad"
 	opts+=" -skip qtlocation"
+	opts+=" -skip qtx11extras"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -846,21 +847,6 @@ qt5-websockets_package() {
 	}
 }
 
-qt5-x11extras-devel_package() {
-	short_desc+=" - X11 extras (development)"
-	depends="qt5-x11extras-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtx11extras
-	}
-}
-
-qt5-x11extras_package() {
-	short_desc+=" - X11 extras"
-	pkg_install() {
-		_install_subpkg qtx11extras
-	}
-}
-
 qt5-xmlpatterns-devel_package() {
 	short_desc+=" - XML components (development)"
 	depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"

From 3893430c8c4756502100d2b3fb48c8d23db9384f Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:32:39 +0200
Subject: [PATCH 10/34] qt5: split qt5-purchasing into own template

---
 srcpkgs/qt5-purchasing          |  1 -
 srcpkgs/qt5-purchasing-devel    |  2 +-
 srcpkgs/qt5-purchasing/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-purchasing
 create mode 100644 srcpkgs/qt5-purchasing/template

diff --git a/srcpkgs/qt5-purchasing b/srcpkgs/qt5-purchasing
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-purchasing
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-purchasing-devel b/srcpkgs/qt5-purchasing-devel
index 75793eb6664..bcdea5b6e40 120000
--- a/srcpkgs/qt5-purchasing-devel
+++ b/srcpkgs/qt5-purchasing-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-purchasing
\ No newline at end of file
diff --git a/srcpkgs/qt5-purchasing/template b/srcpkgs/qt5-purchasing/template
new file mode 100644
index 00000000000..db1f2e22601
--- /dev/null
+++ b/srcpkgs/qt5-purchasing/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-purchasing'
+pkgname=qt5-purchasing
+version=5.14.2
+revision=1
+wrksrc="qtpurchasing-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Purchasing component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtpurchasing-everywhere-src-${version}.tar.xz"
+checksum=69b087001e8fcec5bb49ca333d5f44e6b7eb09f76421dc792fc9cd76dee9e851
+
+qt5-purchasing-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 5e54b64b1cb..854d22215f1 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -247,6 +247,7 @@ do_configure() {
 	opts+=" -skip qtgamepad"
 	opts+=" -skip qtlocation"
 	opts+=" -skip qtx11extras"
+	opts+=" -skip qtpurchasing"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -605,21 +606,6 @@ qt5-networkauth_package() {
 	}
 }
 
-qt5-purchasing-devel_package() {
-	short_desc+=" - Purchasing component (development)"
-	depends="qt5-purchasing-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtpurchasing
-	}
-}
-
-qt5-purchasing_package() {
-	short_desc+=" - Purchasing component"
-	pkg_install() {
-		_install_subpkg qtpurchasing
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From 0cbe6e6fbae85fe66bc7ac2697896bff16b8c699 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:45:18 +0200
Subject: [PATCH 11/34] qt5: split qt5-multimedia into own template

---
 srcpkgs/qt5-multimedia          |  1 -
 srcpkgs/qt5-multimedia-devel    |  2 +-
 srcpkgs/qt5-multimedia/template | 30 ++++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 32 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-multimedia
 create mode 100644 srcpkgs/qt5-multimedia/template

diff --git a/srcpkgs/qt5-multimedia b/srcpkgs/qt5-multimedia
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-multimedia
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-multimedia-devel b/srcpkgs/qt5-multimedia-devel
index 75793eb6664..e3476fd7c92 120000
--- a/srcpkgs/qt5-multimedia-devel
+++ b/srcpkgs/qt5-multimedia-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt5-multimedia/template b/srcpkgs/qt5-multimedia/template
new file mode 100644
index 00000000000..784b3295d79
--- /dev/null
+++ b/srcpkgs/qt5-multimedia/template
@@ -0,0 +1,30 @@
+# Template file for 'qt5-multimedia'
+pkgname=qt5-multimedia
+version=5.14.2
+revision=2
+wrksrc="qtmultimedia-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config"
+makedepends="qt5-devel pulseaudio-devel alsa-lib-devel
+ gst-plugins-base1-devel libopenal-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Multimedia component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz"
+checksum=7acd8ede6835314206e407b35b668f0add67544577fb51fe67afb03137fb9fe9
+
+qt5-multimedia-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 854d22215f1..b2d9688483c 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -248,6 +248,7 @@ do_configure() {
 	opts+=" -skip qtlocation"
 	opts+=" -skip qtx11extras"
 	opts+=" -skip qtpurchasing"
+	opts+=" -skip qtmultimedia"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -576,21 +577,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-multimedia-devel_package() {
-	short_desc+=" - Multimedia component (development)"
-	depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtmultimedia
-	}
-}
-
-qt5-multimedia_package() {
-	short_desc+=" - Multimedia component"
-	pkg_install() {
-		_install_subpkg qtmultimedia
-	}
-}
-
 qt5-networkauth-devel_package() {
 	short_desc+=" - NetworkAuth component (development)"
 	depends="qt5-networkauth-${version}_${revision} qt5-devel-${version}_${revision}"

From ff7f803e3b8bdb1ece874ba7794d95bf314ae4ed Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 19:55:18 +0200
Subject: [PATCH 12/34] qt5: split qt5-xmlpatterns into own template

---
 srcpkgs/qt5-xmlpatterns          |  1 -
 srcpkgs/qt5-xmlpatterns-devel    |  2 +-
 srcpkgs/qt5-xmlpatterns/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 17 +----------------
 4 files changed, 31 insertions(+), 18 deletions(-)
 delete mode 120000 srcpkgs/qt5-xmlpatterns
 create mode 100644 srcpkgs/qt5-xmlpatterns/template

diff --git a/srcpkgs/qt5-xmlpatterns b/srcpkgs/qt5-xmlpatterns
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-xmlpatterns
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-xmlpatterns-devel b/srcpkgs/qt5-xmlpatterns-devel
index 75793eb6664..21beb169101 120000
--- a/srcpkgs/qt5-xmlpatterns-devel
+++ b/srcpkgs/qt5-xmlpatterns-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-xmlpatterns
\ No newline at end of file
diff --git a/srcpkgs/qt5-xmlpatterns/template b/srcpkgs/qt5-xmlpatterns/template
new file mode 100644
index 00000000000..36c20f94e93
--- /dev/null
+++ b/srcpkgs/qt5-xmlpatterns/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-xmlpatterns'
+pkgname=qt5-xmlpatterns
+version=5.14.2
+revision=2
+wrksrc="qtxmlpatterns-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - XML component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtxmlpatterns-everywhere-src-${version}.tar.xz"
+checksum=219a876665345e3801baff71f31f30f5495c1cb9ab23fbbd27602632c80fcfb7
+
+qt5-xmlpatterns-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index b2d9688483c..5500cd4d206 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -249,6 +249,7 @@ do_configure() {
 	opts+=" -skip qtx11extras"
 	opts+=" -skip qtpurchasing"
 	opts+=" -skip qtmultimedia"
+	opts+=" -skip qtxmlpatterns"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -819,22 +820,6 @@ qt5-websockets_package() {
 	}
 }
 
-qt5-xmlpatterns-devel_package() {
-	short_desc+=" - XML components (development)"
-	depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtxmlpatterns
-	}
-}
-
-qt5-xmlpatterns_package() {
-	short_desc+=" - XML components"
-	depends="qtchooser"
-	pkg_install() {
-		_install_subpkg qtxmlpatterns
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 252a619582767e638b4ab16239590d944af0fa53 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 20:05:53 +0200
Subject: [PATCH 13/34] qt5: split qt5-networkauth into own template

---
 srcpkgs/qt5-networkauth          |  1 -
 srcpkgs/qt5-networkauth-devel    |  2 +-
 srcpkgs/qt5-networkauth/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-networkauth
 create mode 100644 srcpkgs/qt5-networkauth/template

diff --git a/srcpkgs/qt5-networkauth b/srcpkgs/qt5-networkauth
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-networkauth
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-networkauth-devel b/srcpkgs/qt5-networkauth-devel
index 75793eb6664..ba9f3d57668 120000
--- a/srcpkgs/qt5-networkauth-devel
+++ b/srcpkgs/qt5-networkauth-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-networkauth
\ No newline at end of file
diff --git a/srcpkgs/qt5-networkauth/template b/srcpkgs/qt5-networkauth/template
new file mode 100644
index 00000000000..6be92a6fdd8
--- /dev/null
+++ b/srcpkgs/qt5-networkauth/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-networkauth'
+pkgname=qt5-networkauth
+version=5.14.2
+revision=2
+wrksrc="qtnetworkauth-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - NetworkAuth component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtnetworkauth-everywhere-src-${version}.tar.xz"
+checksum=4f00513dd18598487d02187b80b54c669662cf8a8f2573858c7f9282d7b9265e
+
+qt5-networkauth-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 5500cd4d206..76b7159d49e 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -250,6 +250,7 @@ do_configure() {
 	opts+=" -skip qtpurchasing"
 	opts+=" -skip qtmultimedia"
 	opts+=" -skip qtxmlpatterns"
+	opts+=" -skip qtnetworkauth"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -578,21 +579,6 @@ qt5-imageformats_package() {
 	}
 }
 
-qt5-networkauth-devel_package() {
-	short_desc+=" - NetworkAuth component (development)"
-	depends="qt5-networkauth-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtnetworkauth
-	}
-}
-
-qt5-networkauth_package() {
-	short_desc+=" - NetworkAuth component"
-	pkg_install() {
-		_install_subpkg qtnetworkauth
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From cdbd69e07d75eb64b7123b37bdbad777cda4a4bd Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 21:17:11 +0200
Subject: [PATCH 14/34] qt5: split qt5-websockets into own template

---
 srcpkgs/qt5-websockets          |  1 -
 srcpkgs/qt5-websockets-devel    |  2 +-
 srcpkgs/qt5-websockets/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-websockets
 create mode 100644 srcpkgs/qt5-websockets/template

diff --git a/srcpkgs/qt5-websockets b/srcpkgs/qt5-websockets
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-websockets
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-websockets-devel b/srcpkgs/qt5-websockets-devel
index 75793eb6664..da376a60e2d 120000
--- a/srcpkgs/qt5-websockets-devel
+++ b/srcpkgs/qt5-websockets-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-websockets
\ No newline at end of file
diff --git a/srcpkgs/qt5-websockets/template b/srcpkgs/qt5-websockets/template
new file mode 100644
index 00000000000..4e4e93dbabf
--- /dev/null
+++ b/srcpkgs/qt5-websockets/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-websockets'
+pkgname=qt5-websockets
+version=5.14.2
+revision=2
+wrksrc="qtwebsockets-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebSockets component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebsockets-everywhere-src-${version}.tar.xz"
+checksum=f06e62b18313fe1b40a35566e79645de4a8e7ac9f7717d1d98a06c5b49afca84
+
+qt5-websockets-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 76b7159d49e..f398aa864a2 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -251,6 +251,7 @@ do_configure() {
 	opts+=" -skip qtmultimedia"
 	opts+=" -skip qtxmlpatterns"
 	opts+=" -skip qtnetworkauth"
+	opts+=" -skip qtwebsockets"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -791,21 +792,6 @@ qt5-webglplugin_package() {
 	}
 }
 
-qt5-websockets-devel_package() {
-	short_desc+=" - WebSockets component (development)"
-	depends="qt5-websockets-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebsockets
-	}
-}
-
-qt5-websockets_package() {
-	short_desc+=" - WebSockets component"
-	pkg_install() {
-		_install_subpkg qtwebsockets
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 30ec60aec361946b0b6e3edc782b09b1eafc83d9 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 21:33:06 +0200
Subject: [PATCH 15/34] qt5: split qt5-webglplugin into own template

---
 srcpkgs/qt5-webglplugin          |  1 -
 srcpkgs/qt5-webglplugin-devel    |  2 +-
 srcpkgs/qt5-webglplugin/template | 28 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template             | 16 +---------------
 4 files changed, 30 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-webglplugin
 create mode 100644 srcpkgs/qt5-webglplugin/template

diff --git a/srcpkgs/qt5-webglplugin b/srcpkgs/qt5-webglplugin
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-webglplugin
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-webglplugin-devel b/srcpkgs/qt5-webglplugin-devel
index 75793eb6664..c69000d1cb4 120000
--- a/srcpkgs/qt5-webglplugin-devel
+++ b/srcpkgs/qt5-webglplugin-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-webglplugin
\ No newline at end of file
diff --git a/srcpkgs/qt5-webglplugin/template b/srcpkgs/qt5-webglplugin/template
new file mode 100644
index 00000000000..e6d330f4a70
--- /dev/null
+++ b/srcpkgs/qt5-webglplugin/template
@@ -0,0 +1,28 @@
+# Template file for 'qt5-webglplugin'
+pkgname=qt5-webglplugin
+version=5.14.2
+revision=2
+wrksrc="qtwebglplugin-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-websockets-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebGL plugin"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebglplugin-everywhere-src-${version}.tar.xz"
+checksum=eb4118910b65d03d8448658ac1646e860d337e59b82d6575beda21824e313417
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-websockets-devel"
+fi
+
+qt5-webglplugin-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/lib/cmake
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f398aa864a2..c63364fd81a 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -252,6 +252,7 @@ do_configure() {
 	opts+=" -skip qtxmlpatterns"
 	opts+=" -skip qtnetworkauth"
 	opts+=" -skip qtwebsockets"
+	opts+=" -skip qtwebglplugin"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -777,21 +778,6 @@ qt5-webchannel_package() {
 	}
 }
 
-qt5-webglplugin-devel_package() {
-	short_desc+=" - WebGL plugin (development)"
-	depends="qt5-webglplugin-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebglplugin
-	}
-}
-
-qt5-webglplugin_package() {
-	short_desc+=" - WebGL plugin"
-	pkg_install() {
-		_install_subpkg qtwebglplugin
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 008f307f3ab810f25042eddb4737141a94624421 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 23:27:35 +0200
Subject: [PATCH 16/34] qt5: split qt5-webchannel into own template

---
 srcpkgs/qt5-webchannel          |  1 -
 srcpkgs/qt5-webchannel-devel    |  2 +-
 srcpkgs/qt5-webchannel/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-webchannel
 create mode 100644 srcpkgs/qt5-webchannel/template

diff --git a/srcpkgs/qt5-webchannel b/srcpkgs/qt5-webchannel
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-webchannel
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-webchannel-devel b/srcpkgs/qt5-webchannel-devel
index 75793eb6664..b829eeb8644 120000
--- a/srcpkgs/qt5-webchannel-devel
+++ b/srcpkgs/qt5-webchannel-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-webchannel
\ No newline at end of file
diff --git a/srcpkgs/qt5-webchannel/template b/srcpkgs/qt5-webchannel/template
new file mode 100644
index 00000000000..af771c4f8b5
--- /dev/null
+++ b/srcpkgs/qt5-webchannel/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-webchannel'
+pkgname=qt5-webchannel
+version=5.14.2
+revision=2
+wrksrc="qtwebchannel-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - WebChannel component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz"
+checksum=7d1dc8441523638c3d455c7d408ec65aebc073acab80e24063865f929231f874
+
+qt5-webchannel-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index c63364fd81a..d51a08c6ee3 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -253,6 +253,7 @@ do_configure() {
 	opts+=" -skip qtnetworkauth"
 	opts+=" -skip qtwebsockets"
 	opts+=" -skip qtwebglplugin"
+	opts+=" -skip qtwebchannel"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -763,21 +764,6 @@ qt5-wayland_package() {
 	}
 }
 
-qt5-webchannel-devel_package() {
-	short_desc+=" - WebChannel component (development)"
-	depends="qt5-webchannel-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwebchannel
-	}
-}
-
-qt5-webchannel_package() {
-	short_desc+=" - WebChannel component"
-	pkg_install() {
-		_install_subpkg qtwebchannel
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 7c3d914e4b5df716f4bb3fc254a610a4effdfff4 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Wed, 8 Apr 2020 23:32:52 +0200
Subject: [PATCH 17/34] qt5: split qt5-sensors into own template

---
 srcpkgs/qt5-sensors          |  1 -
 srcpkgs/qt5-sensors-devel    |  2 +-
 srcpkgs/qt5-sensors/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-sensors
 create mode 100644 srcpkgs/qt5-sensors/template

diff --git a/srcpkgs/qt5-sensors b/srcpkgs/qt5-sensors
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-sensors
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-sensors-devel b/srcpkgs/qt5-sensors-devel
index 75793eb6664..2c6043169ae 120000
--- a/srcpkgs/qt5-sensors-devel
+++ b/srcpkgs/qt5-sensors-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-sensors
\ No newline at end of file
diff --git a/srcpkgs/qt5-sensors/template b/srcpkgs/qt5-sensors/template
new file mode 100644
index 00000000000..318685deb35
--- /dev/null
+++ b/srcpkgs/qt5-sensors/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-sensors'
+pkgname=qt5-sensors
+version=5.14.2
+revision=2
+wrksrc="qtsensors-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Sensors component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsensors-everywhere-src-${version}.tar.xz"
+checksum=bccfca6910b0383d8f65823496ff5011abed2fa8fd446b4b27333d0fd7bb8c61
+
+qt5-sensors-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index d51a08c6ee3..59762d56ff1 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -254,6 +254,7 @@ do_configure() {
 	opts+=" -skip qtwebsockets"
 	opts+=" -skip qtwebglplugin"
 	opts+=" -skip qtwebchannel"
+	opts+=" -skip qtsensors"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -658,21 +659,6 @@ qt5-scxml_package() {
 	}
 }
 
-qt5-sensors-devel_package() {
-	short_desc+=" - Sensors component (development)"
-	depends="qt5-sensors-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtsensors
-	}
-}
-
-qt5-sensors_package() {
-	short_desc+=" - Sensors component"
-	pkg_install() {
-		_install_subpkg qtsensors
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From 450112e2c2e1513a7f12255a96834f9bf7ef7ec7 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:33:58 +0200
Subject: [PATCH 18/34] qt5: split qt5-wayland into own template

---
 srcpkgs/qt5-wayland          |  1 -
 srcpkgs/qt5-wayland-devel    |  2 +-
 srcpkgs/qt5-wayland/template | 31 +++++++++++++++++++++++++++++++
 srcpkgs/qt5/template         | 16 +---------------
 4 files changed, 33 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-wayland
 create mode 100644 srcpkgs/qt5-wayland/template

diff --git a/srcpkgs/qt5-wayland b/srcpkgs/qt5-wayland
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-wayland
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-wayland-devel b/srcpkgs/qt5-wayland-devel
index 75793eb6664..fa1044621bc 120000
--- a/srcpkgs/qt5-wayland-devel
+++ b/srcpkgs/qt5-wayland-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-wayland
\ No newline at end of file
diff --git a/srcpkgs/qt5-wayland/template b/srcpkgs/qt5-wayland/template
new file mode 100644
index 00000000000..0dd7065e592
--- /dev/null
+++ b/srcpkgs/qt5-wayland/template
@@ -0,0 +1,31 @@
+# Template file for 'qt5-wayland'
+pkgname=qt5-wayland
+version=5.14.2
+revision=2
+wrksrc="qtwayland-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl pkg-config wayland-devel"
+makedepends="qt5-devel wayland-devel libxkbcommon-devel
+ libXcomposite-devel MesaLib-devel Vulkan-Headers libdrm-devel"
+#XXX: the libdrm detection is broken, and tries to include form /usr/share/libdrm
+short_desc="Cross-platform application and UI framework (QT5) - Wayland component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwayland-everywhere-src-${version}.tar.xz"
+checksum=d31633ca718fb407cf70870613d45d0ed80aa04c058586ac3036bae1aff7832a
+
+qt5-wayland-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt5-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 59762d56ff1..75d748bf39a 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -255,6 +255,7 @@ do_configure() {
 	opts+=" -skip qtwebglplugin"
 	opts+=" -skip qtwebchannel"
 	opts+=" -skip qtsensors"
+	opts+=" -skip qtwayland"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -735,21 +736,6 @@ qt5-virtualkeyboard_package() {
 	}
 }
 
-qt5-wayland-devel_package() {
-	short_desc+=" - Wayland component (development)"
-	depends="qt5-wayland-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtwayland
-	}
-}
-
-qt5-wayland_package() {
-	short_desc+=" - Wayland component"
-	pkg_install() {
-		_install_subpkg qtwayland
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 2470014f0934331433d7bb92b15d4d046d47bd2a Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:37:24 +0200
Subject: [PATCH 19/34] qt5: split qt5-script into own template

---
 srcpkgs/qt5-script          |  1 -
 srcpkgs/qt5-script-devel    |  2 +-
 srcpkgs/qt5-script/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-script
 create mode 100644 srcpkgs/qt5-script/template

diff --git a/srcpkgs/qt5-script b/srcpkgs/qt5-script
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-script
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-script-devel b/srcpkgs/qt5-script-devel
index 75793eb6664..b75ecb21d15 120000
--- a/srcpkgs/qt5-script-devel
+++ b/srcpkgs/qt5-script-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-script
\ No newline at end of file
diff --git a/srcpkgs/qt5-script/template b/srcpkgs/qt5-script/template
new file mode 100644
index 00000000000..c7b8c6abea8
--- /dev/null
+++ b/srcpkgs/qt5-script/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-script'
+pkgname=qt5-script
+version=5.14.2
+revision=2
+wrksrc="qtscript-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Scriptable classes"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscript-everywhere-src-${version}.tar.xz"
+checksum=e9fd487ccb3cbf00e86b0b803aa79e9f6bbe7a337b8e97d069e040c3e0789bfe
+
+qt5-script-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 75d748bf39a..166a52e7b80 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -256,6 +256,7 @@ do_configure() {
 	opts+=" -skip qtwebchannel"
 	opts+=" -skip qtsensors"
 	opts+=" -skip qtwayland"
+	opts+=" -skip qtscript"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -629,21 +630,6 @@ qt5-remoteobjects_package() {
 	}
 }
 
-qt5-script-devel_package() {
-	short_desc+=" - Scriptable classes (development)"
-	depends="qt5-script-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtscript
-	}
-}
-
-qt5-script_package() {
-	short_desc+=" - Scriptable classes"
-	pkg_install() {
-		_install_subpkg qtscript
-	}
-}
-
 qt5-scxml-devel_package() {
 	short_desc+=" - SCXML model integration (development)"
 	depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"

From 3b142dbd02b8b66f0273d53d2b6898cc6883144a Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:42:41 +0200
Subject: [PATCH 20/34] qt5: split qt5-scxml into own template

---
 srcpkgs/qt5-scxml          |  1 -
 srcpkgs/qt5-scxml-devel    |  2 +-
 srcpkgs/qt5-scxml/template | 33 +++++++++++++++++++++++++++++++++
 srcpkgs/qt5/template       | 18 +-----------------
 4 files changed, 35 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-scxml
 create mode 100644 srcpkgs/qt5-scxml/template

diff --git a/srcpkgs/qt5-scxml b/srcpkgs/qt5-scxml
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-scxml
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-scxml-devel b/srcpkgs/qt5-scxml-devel
index 75793eb6664..5e24ab969e3 120000
--- a/srcpkgs/qt5-scxml-devel
+++ b/srcpkgs/qt5-scxml-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-scxml
\ No newline at end of file
diff --git a/srcpkgs/qt5-scxml/template b/srcpkgs/qt5-scxml/template
new file mode 100644
index 00000000000..27ee2f90df7
--- /dev/null
+++ b/srcpkgs/qt5-scxml/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-scxml'
+pkgname=qt5-scxml
+version=5.14.2
+revision=2
+wrksrc="qtscxml-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - SCXML model integration"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscxml-everywhere-src-${version}.tar.xz"
+checksum=030cea352a56074f577200f967ef37c959b2767127de61f766f59b0d99763790
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-scxml-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 166a52e7b80..ec3ab3f87ea 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -257,6 +257,7 @@ do_configure() {
 	opts+=" -skip qtsensors"
 	opts+=" -skip qtwayland"
 	opts+=" -skip qtscript"
+	opts+=" -skip qtscxml"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -371,7 +372,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
 		dirs+=" qtremoteobjects/tools/repc"
-		dirs+=" qtscxml/tools/qscxmlc"
 		dirs+=" qttools/src/qtattributionsscanner"
 		dirs+=" qttools/src/linguist/lconvert"
 		dirs+=" qttools/src/linguist/lrelease"
@@ -630,22 +630,6 @@ qt5-remoteobjects_package() {
 	}
 }
 
-qt5-scxml-devel_package() {
-	short_desc+=" - SCXML model integration (development)"
-	depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtscxml
-	}
-}
-
-qt5-scxml_package() {
-	short_desc+=" - SCXML model integration"
-	pkg_install() {
-		_install_subpkg qtscxml
-		_move_target_binaries qscxmlc
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From adb7b935fdd78e44bf1cc3892b030ca9bf6ef781 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:47:58 +0200
Subject: [PATCH 21/34] qt5: split qt5-quickcontrols2 into own template

---
 srcpkgs/qt5-quickcontrols2          |  1 -
 srcpkgs/qt5-quickcontrols2-devel    |  2 +-
 srcpkgs/qt5-quickcontrols2/template | 33 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template                | 16 +-------------
 4 files changed, 35 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-quickcontrols2
 create mode 100644 srcpkgs/qt5-quickcontrols2/template

diff --git a/srcpkgs/qt5-quickcontrols2 b/srcpkgs/qt5-quickcontrols2
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quickcontrols2
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols2-devel b/srcpkgs/qt5-quickcontrols2-devel
index 75793eb6664..31080a8bc10 120000
--- a/srcpkgs/qt5-quickcontrols2-devel
+++ b/srcpkgs/qt5-quickcontrols2-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-quickcontrols2
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols2/template b/srcpkgs/qt5-quickcontrols2/template
new file mode 100644
index 00000000000..a5d18c431b5
--- /dev/null
+++ b/srcpkgs/qt5-quickcontrols2/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-quickcontrols2'
+pkgname=qt5-quickcontrols2
+version=5.14.2
+revision=2
+wrksrc="qtquickcontrols2-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Quick2 UI control"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquickcontrols2-everywhere-src-${version}.tar.xz"
+checksum=faf7d349d8f4a8db36cd3c62a5724bcf689300f2fdb7dc1ea034392aab981560
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
+
+qt5-quickcontrols2-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index ec3ab3f87ea..bf880d62cee 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -258,6 +258,7 @@ do_configure() {
 	opts+=" -skip qtwayland"
 	opts+=" -skip qtscript"
 	opts+=" -skip qtscxml"
+	opts+=" -skip qtquickcontrols2"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -592,21 +593,6 @@ qt5-quickcontrols_package() {
 	}
 }
 
-qt5-quickcontrols2-devel_package() {
-	short_desc+=" - Quick2 UI controls (development)"
-	depends="qt5-quickcontrols2-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtquickcontrols2
-	}
-}
-
-qt5-quickcontrols2_package() {
-	short_desc+=" - Quick2 UI controls"
-	pkg_install() {
-		_install_subpkg qtquickcontrols2
-	}
-}
-
 qt5-quicktimeline_package() {
 	short_desc+=" - Keyframe-based animations"
 	pkg_install() {

From de67e331fc9ab2f445275b6526607e00de161a0b Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:50:32 +0200
Subject: [PATCH 22/34] qt5: split qt5-remoteobjects into own template

---
 srcpkgs/qt5-remoteobjects          |  1 -
 srcpkgs/qt5-remoteobjects-devel    |  2 +-
 srcpkgs/qt5-remoteobjects/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template               | 18 +-----------------
 4 files changed, 31 insertions(+), 19 deletions(-)
 delete mode 120000 srcpkgs/qt5-remoteobjects
 create mode 100644 srcpkgs/qt5-remoteobjects/template

diff --git a/srcpkgs/qt5-remoteobjects b/srcpkgs/qt5-remoteobjects
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-remoteobjects
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-remoteobjects-devel b/srcpkgs/qt5-remoteobjects-devel
index 75793eb6664..eef0300d9cc 120000
--- a/srcpkgs/qt5-remoteobjects-devel
+++ b/srcpkgs/qt5-remoteobjects-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-remoteobjects
\ No newline at end of file
diff --git a/srcpkgs/qt5-remoteobjects/template b/srcpkgs/qt5-remoteobjects/template
new file mode 100644
index 00000000000..4101f12ec98
--- /dev/null
+++ b/srcpkgs/qt5-remoteobjects/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-remoteobjects'
+pkgname=qt5-remoteobjects
+version=5.14.2
+revision=2
+wrksrc="qtremoteobjects-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Remote Objects"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtremoteobjects-everywhere-src-${version}.tar.xz"
+checksum=a6a601c4f4aab6fe41a462dae57033819f697e3317240a382cee45c08be614d6
+
+qt5-remoteobjects-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index bf880d62cee..f84b47d7e57 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -259,6 +259,7 @@ do_configure() {
 	opts+=" -skip qtscript"
 	opts+=" -skip qtscxml"
 	opts+=" -skip qtquickcontrols2"
+	opts+=" -skip qtremoteobjects"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -372,7 +373,6 @@ do_install() {
 		dirs+=" qtbase/src/tools/qvkgen"
 		dirs+=" qtbase/src/tools/tracegen"
 		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qtremoteobjects/tools/repc"
 		dirs+=" qttools/src/qtattributionsscanner"
 		dirs+=" qttools/src/linguist/lconvert"
 		dirs+=" qttools/src/linguist/lrelease"
@@ -600,22 +600,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-remoteobjects-devel_package() {
-	short_desc+=" - Remote Objects (development)"
-	depends="qt5-remoteobjects-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtremoteobjects
-	}
-}
-
-qt5-remoteobjects_package() {
-	short_desc+=" - Remote Objects"
-	pkg_install() {
-		_install_subpkg qtremoteobjects
-		_move_target_binaries repc
-	}
-}
-
 qt5-serialbus-devel_package() {
 	short_desc+=" - Serial bus component (development)"
 	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}

From 549dd00da71ab54d97d0c1e2b391505ce2f4deac Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 22:56:44 +0200
Subject: [PATCH 23/34] qt5: split qt5-serialbus into own template

---
 srcpkgs/qt5-serialbus                         |  1 -
 srcpkgs/qt5-serialbus-devel                   |  2 +-
 .../patches/0018-musl-timeval.patch           | 10 ++++++
 srcpkgs/qt5-serialbus/template                | 31 +++++++++++++++++++
 srcpkgs/qt5/template                          | 17 +---------
 5 files changed, 43 insertions(+), 18 deletions(-)
 delete mode 120000 srcpkgs/qt5-serialbus
 create mode 100644 srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
 create mode 100644 srcpkgs/qt5-serialbus/template

diff --git a/srcpkgs/qt5-serialbus b/srcpkgs/qt5-serialbus
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-serialbus
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialbus-devel b/srcpkgs/qt5-serialbus-devel
index 75793eb6664..908c26df6e1 120000
--- a/srcpkgs/qt5-serialbus-devel
+++ b/srcpkgs/qt5-serialbus-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-serialbus
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch b/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
new file mode 100644
index 00000000000..939fb58b265
--- /dev/null
+++ b/srcpkgs/qt5-serialbus/patches/0018-musl-timeval.patch
@@ -0,0 +1,10 @@
+--- qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2017-11-22 09:57:45.000000000 +0100
++++ qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2018-01-27 19:17:31.333759690 +0100
+@@ -47,6 +47,7 @@
+ 
+ // The order of the following includes is mandatory, because some
+ // distributions use sa_family_t in can.h without including socket.h
++#include <sys/time.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
+ #include <linux/can.h>
diff --git a/srcpkgs/qt5-serialbus/template b/srcpkgs/qt5-serialbus/template
new file mode 100644
index 00000000000..9301abe3d53
--- /dev/null
+++ b/srcpkgs/qt5-serialbus/template
@@ -0,0 +1,31 @@
+# Template file for 'qt5-serialbus'
+pkgname=qt5-serialbus
+version=5.14.2
+revision=2
+wrksrc="qtserialbus-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-serialport-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Serial bus component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtserialbus-everywhere-src-${version}.tar.xz"
+checksum=0b7762175a649a40c4dd619c5de61d772235dc86099343278e2c3229d0836a91
+patch_args="-Np1"
+
+qt5-serialbus-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
+
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f84b47d7e57..5653cee70c7 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -260,6 +260,7 @@ do_configure() {
 	opts+=" -skip qtscxml"
 	opts+=" -skip qtquickcontrols2"
 	opts+=" -skip qtremoteobjects"
+	opts+=" -skip qtserialbus"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -600,22 +601,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-serialbus-devel_package() {
-	short_desc+=" - Serial bus component (development)"
-	depends="qt5-serialbus-${version}_${revision} qt5-serialport-devel-${version}_${revision}
-		qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtserialbus
-	}
-}
-
-qt5-serialbus_package() {
-	short_desc+=" - Serial bus component"
-	pkg_install() {
-		_install_subpkg qtserialbus
-	}
-}
-
 qt5-serialport-devel_package() {
 	short_desc+=" - Serial port component (development)"
 	depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"

From e475e24d988e9d54fb6b87c8601208899203e35c Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:00:31 +0200
Subject: [PATCH 24/34] qt5: split qt5-virtualkeyboard into own template

---
 srcpkgs/qt5-virtualkeyboard          |  1 -
 srcpkgs/qt5-virtualkeyboard-devel    |  2 +-
 srcpkgs/qt5-virtualkeyboard/template | 33 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template                 | 16 +-------------
 4 files changed, 35 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-virtualkeyboard
 create mode 100644 srcpkgs/qt5-virtualkeyboard/template

diff --git a/srcpkgs/qt5-virtualkeyboard b/srcpkgs/qt5-virtualkeyboard
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-virtualkeyboard
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-virtualkeyboard-devel b/srcpkgs/qt5-virtualkeyboard-devel
index 75793eb6664..ab1bea3c245 120000
--- a/srcpkgs/qt5-virtualkeyboard-devel
+++ b/srcpkgs/qt5-virtualkeyboard-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-virtualkeyboard
\ No newline at end of file
diff --git a/srcpkgs/qt5-virtualkeyboard/template b/srcpkgs/qt5-virtualkeyboard/template
new file mode 100644
index 00000000000..ea57ef4803d
--- /dev/null
+++ b/srcpkgs/qt5-virtualkeyboard/template
@@ -0,0 +1,33 @@
+# Template file for 'qt5-virtualkeyboard'
+pkgname=qt5-virtualkeyboard
+version=5.14.2
+revision=2
+wrksrc="qtvirtualkeyboard-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-svg-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Virtual keyboard"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtvirtualkeyboard-everywhere-src-${version}.tar.xz"
+checksum=364f3338563e617e7c964a37170b415b546c5f82965e781271f9dada3e3868d7
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-svg-devel qt5-declarative-devel"
+fi
+
+qt5-virtualkeyboard-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 5653cee70c7..555f07d3456 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -261,6 +261,7 @@ do_configure() {
 	opts+=" -skip qtquickcontrols2"
 	opts+=" -skip qtremoteobjects"
 	opts+=" -skip qtserialbus"
+	opts+=" -skip qtvirtualkeyboard"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -646,21 +647,6 @@ qt5-svg_package() {
 	}
 }
 
-qt5-virtualkeyboard-devel_package() {
-	short_desc+=" - Virtual keyboard (development)"
-	depends="qt5-virtualkeyboard-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtvirtualkeyboard
-	}
-}
-
-qt5-virtualkeyboard_package() {
-	short_desc+=" - Virtual keyboard"
-	pkg_install() {
-		_install_subpkg qtvirtualkeyboard
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From cab0cf9ab89446c4e3747c088c1ae136032cd2a6 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:07:49 +0200
Subject: [PATCH 25/34] qt5: split qt5-graphicaleffects into own template

---
 srcpkgs/qt5-graphicaleffects          |  1 -
 srcpkgs/qt5-graphicaleffects/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template                  |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-graphicaleffects
 create mode 100644 srcpkgs/qt5-graphicaleffects/template

diff --git a/srcpkgs/qt5-graphicaleffects b/srcpkgs/qt5-graphicaleffects
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-graphicaleffects
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-graphicaleffects/template b/srcpkgs/qt5-graphicaleffects/template
new file mode 100644
index 00000000000..ba4ccdd6e57
--- /dev/null
+++ b/srcpkgs/qt5-graphicaleffects/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-graphicaleffects'
+pkgname=qt5-graphicaleffects
+version=5.14.2
+revision=2
+wrksrc="qtgraphicaleffects-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Graphicaleffects component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtgraphicaleffects-everywhere-src-${version}.tar.xz"
+checksum=487a7f858244a08264363733055a8cf8b00e77c658c5608cc462817d15e4b50f
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 555f07d3456..8fb4f1b9581 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -262,6 +262,7 @@ do_configure() {
 	opts+=" -skip qtremoteobjects"
 	opts+=" -skip qtserialbus"
 	opts+=" -skip qtvirtualkeyboard"
+	opts+=" -skip qtgraphicaleffects"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -574,13 +575,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-graphicaleffects_package() {
-	short_desc+=" - Graphicaleffects component"
-	pkg_install() {
-		_install_subpkg qtgraphicaleffects
-	}
-}
-
 qt5-imageformats_package() {
 	short_desc+=" - Plugins for additional image formats"
 	pkg_install() {

From 2ee45232eec4a84017108ac2abf9a994b9650bbb Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:14:20 +0200
Subject: [PATCH 26/34] qt5: split qt5-serialport into own template

---
 srcpkgs/qt5-serialport          |  1 -
 srcpkgs/qt5-serialport-devel    |  2 +-
 srcpkgs/qt5-serialport/template | 28 ++++++++++++++++++++++++++++
 srcpkgs/qt5/template            | 16 +---------------
 4 files changed, 30 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-serialport
 create mode 100644 srcpkgs/qt5-serialport/template

diff --git a/srcpkgs/qt5-serialport b/srcpkgs/qt5-serialport
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-serialport
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialport-devel b/srcpkgs/qt5-serialport-devel
index 75793eb6664..d159dc6602b 120000
--- a/srcpkgs/qt5-serialport-devel
+++ b/srcpkgs/qt5-serialport-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-serialport
\ No newline at end of file
diff --git a/srcpkgs/qt5-serialport/template b/srcpkgs/qt5-serialport/template
new file mode 100644
index 00000000000..dd96bbbd9a6
--- /dev/null
+++ b/srcpkgs/qt5-serialport/template
@@ -0,0 +1,28 @@
+# Template file for 'qt5-serialport'
+pkgname=qt5-serialport
+version=5.14.2
+revision=2
+wrksrc="qtserialport-everywhere-src-${version}"
+build_style=qmake
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-serialport component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz"
+checksum=a6d977dd723ad4d3368b5163691405b8852f809974a96ec54103494e834aea21
+
+qt5-serialport-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8fb4f1b9581..252baffacee 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -263,6 +263,7 @@ do_configure() {
 	opts+=" -skip qtserialbus"
 	opts+=" -skip qtvirtualkeyboard"
 	opts+=" -skip qtgraphicaleffects"
+	opts+=" -skip qtserialport"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -596,21 +597,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-serialport-devel_package() {
-	short_desc+=" - Serial port component (development)"
-	depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtserialport
-	}
-}
-
-qt5-serialport_package() {
-	short_desc+=" - Serial port component"
-	pkg_install() {
-		_install_subpkg qtserialport
-	}
-}
-
 qt5-speech-devel_package() {
 	short_desc+=" - Speech component (development)"
 	depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"

From 65adff9363752a7be1b36d08fd9b1ee45d3ab725 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:24:08 +0200
Subject: [PATCH 27/34] qt5: split qt5-speech into own template

---
 srcpkgs/qt5-speech          |  1 -
 srcpkgs/qt5-speech-devel    |  2 +-
 srcpkgs/qt5-speech/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template        | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-speech
 create mode 100644 srcpkgs/qt5-speech/template

diff --git a/srcpkgs/qt5-speech b/srcpkgs/qt5-speech
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-speech
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-speech-devel b/srcpkgs/qt5-speech-devel
index 75793eb6664..4fdd2a9f49b 120000
--- a/srcpkgs/qt5-speech-devel
+++ b/srcpkgs/qt5-speech-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-speech
\ No newline at end of file
diff --git a/srcpkgs/qt5-speech/template b/srcpkgs/qt5-speech/template
new file mode 100644
index 00000000000..f936415dc06
--- /dev/null
+++ b/srcpkgs/qt5-speech/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-speech'
+pkgname=qt5-speech
+version=5.14.2
+revision=2
+wrksrc="qtspeech-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-speech component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtspeech-everywhere-src-${version}.tar.xz"
+checksum=5e9e8ea62f0207ba894df1e136df0af9fc5443c7817d28c39f0ea2bbae9ec6da
+
+qt5-speech-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 252baffacee..474ce0aa31d 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -264,6 +264,7 @@ do_configure() {
 	opts+=" -skip qtvirtualkeyboard"
 	opts+=" -skip qtgraphicaleffects"
 	opts+=" -skip qtserialport"
+	opts+=" -skip qtspeech"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -597,21 +598,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-speech-devel_package() {
-	short_desc+=" - Speech component (development)"
-	depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtspeech
-	}
-}
-
-qt5-speech_package() {
-	short_desc+=" - Speech component"
-	pkg_install() {
-		_install_subpkg qtspeech
-	}
-}
-
 qt5-svg-devel_package() {
 	short_desc+=" - Svg component (development)"
 	depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"

From 7c44fab910dbe817b80a18a5e9ddb0af789e86cd Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Thu, 9 Apr 2020 23:26:01 +0200
Subject: [PATCH 28/34] qt5: split qt5-svg into own template

---
 srcpkgs/qt5-svg          |  1 -
 srcpkgs/qt5-svg-devel    |  2 +-
 srcpkgs/qt5-svg/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/qt5/template     | 16 +---------------
 4 files changed, 31 insertions(+), 17 deletions(-)
 delete mode 120000 srcpkgs/qt5-svg
 create mode 100644 srcpkgs/qt5-svg/template

diff --git a/srcpkgs/qt5-svg b/srcpkgs/qt5-svg
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-svg
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-svg-devel b/srcpkgs/qt5-svg-devel
index 75793eb6664..c245257ab9b 120000
--- a/srcpkgs/qt5-svg-devel
+++ b/srcpkgs/qt5-svg-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-svg
\ No newline at end of file
diff --git a/srcpkgs/qt5-svg/template b/srcpkgs/qt5-svg/template
new file mode 100644
index 00000000000..81174d0e8c5
--- /dev/null
+++ b/srcpkgs/qt5-svg/template
@@ -0,0 +1,29 @@
+# Template file for 'qt5-svg'
+pkgname=qt5-svg
+version=5.14.2
+revision=2
+wrksrc="qtsvg-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Svg component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsvg-everywhere-src-${version}.tar.xz"
+checksum=c7d7faa01a3e7a6e4d38fafcec5529a488258218749779e6fa0e09a21173b5a1
+
+qt5-svg-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 474ce0aa31d..8490d05fea8 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -265,6 +265,7 @@ do_configure() {
 	opts+=" -skip qtgraphicaleffects"
 	opts+=" -skip qtserialport"
 	opts+=" -skip qtspeech"
+	opts+=" -skip qtsvg"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -598,21 +599,6 @@ qt5-quicktimeline_package() {
 	}
 }
 
-qt5-svg-devel_package() {
-	short_desc+=" - Svg component (development)"
-	depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtsvg
-	}
-}
-
-qt5-svg_package() {
-	short_desc+=" - Svg component"
-	pkg_install() {
-		_install_subpkg qtsvg
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From 2d7f4fdb58a705d962a38ab4e47aa9903d968146 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:21:23 +0200
Subject: [PATCH 29/34] qt5: split qt5-imageformats into own template

---
 srcpkgs/qt5-imageformats          |  1 -
 srcpkgs/qt5-imageformats/template | 14 ++++++++++++++
 srcpkgs/qt5/template              |  8 +-------
 3 files changed, 15 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-imageformats
 create mode 100644 srcpkgs/qt5-imageformats/template

diff --git a/srcpkgs/qt5-imageformats b/srcpkgs/qt5-imageformats
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-imageformats
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-imageformats/template b/srcpkgs/qt5-imageformats/template
new file mode 100644
index 00000000000..e9549ad0544
--- /dev/null
+++ b/srcpkgs/qt5-imageformats/template
@@ -0,0 +1,14 @@
+# Template file for 'qt5-imageformats'
+pkgname=qt5-imageformats
+version=5.14.2
+revision=2
+wrksrc="qtimageformats-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel libwebp-devel jasper-devel libmng-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Plugins for additional image formats"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtimageformats-everywhere-src-${version}.tar.xz"
+checksum=733eca0165c15e046b106039c989dac7f6bc2ecf215396d965ed065369264f8c
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 8490d05fea8..f8977f82370 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -266,6 +266,7 @@ do_configure() {
 	opts+=" -skip qtserialport"
 	opts+=" -skip qtspeech"
 	opts+=" -skip qtsvg"
+	opts+=" -skip qtimageformats"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -578,13 +579,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-imageformats_package() {
-	short_desc+=" - Plugins for additional image formats"
-	pkg_install() {
-		_install_subpkg qtimageformats
-	}
-}
-
 qt5-quickcontrols_package() {
 	short_desc+=" - Quick UI controls"
 	pkg_install() {

From 22966409ca0670be9f349dd4cce96bfd69e402de Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:24:04 +0200
Subject: [PATCH 30/34] qt5: split qt5-quicktimeline into own template

---
 srcpkgs/qt5-quicktimeline          |  1 -
 srcpkgs/qt5-quicktimeline/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template               |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-quicktimeline
 create mode 100644 srcpkgs/qt5-quicktimeline/template

diff --git a/srcpkgs/qt5-quicktimeline b/srcpkgs/qt5-quicktimeline
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quicktimeline
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quicktimeline/template b/srcpkgs/qt5-quicktimeline/template
new file mode 100644
index 00000000000..a945013e074
--- /dev/null
+++ b/srcpkgs/qt5-quicktimeline/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-quicktimeline'
+pkgname=qt5-quicktimeline
+version=5.14.2
+revision=2
+wrksrc="qtquicktimeline-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Keyframe-based animations"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquicktimeline-everywhere-src-${version}.tar.xz"
+checksum=83a45d0998cbc77f8094854a477ab1ac0838ae7fd822563d995df40149893a9e
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index f8977f82370..11c3cde96b5 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -267,6 +267,7 @@ do_configure() {
 	opts+=" -skip qtspeech"
 	opts+=" -skip qtsvg"
 	opts+=" -skip qtimageformats"
+	opts+=" -skip qtquicktimeline"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -586,13 +587,6 @@ qt5-quickcontrols_package() {
 	}
 }
 
-qt5-quicktimeline_package() {
-	short_desc+=" - Keyframe-based animations"
-	pkg_install() {
-		_install_subpkg qtquicktimeline
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From c2258c5b0050115aa50331696986894e07ded97c Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 11:26:42 +0200
Subject: [PATCH 31/34] qt5: split qt5-quickcontrols into own template

---
 srcpkgs/qt5-quickcontrols          |  1 -
 srcpkgs/qt5-quickcontrols/template | 18 ++++++++++++++++++
 srcpkgs/qt5/template               |  8 +-------
 3 files changed, 19 insertions(+), 8 deletions(-)
 delete mode 120000 srcpkgs/qt5-quickcontrols
 create mode 100644 srcpkgs/qt5-quickcontrols/template

diff --git a/srcpkgs/qt5-quickcontrols b/srcpkgs/qt5-quickcontrols
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-quickcontrols
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-quickcontrols/template b/srcpkgs/qt5-quickcontrols/template
new file mode 100644
index 00000000000..2121b0738e6
--- /dev/null
+++ b/srcpkgs/qt5-quickcontrols/template
@@ -0,0 +1,18 @@
+# Template file for 'qt5-quickcontrols'
+pkgname=qt5-quickcontrols
+version=5.14.2
+revision=2
+wrksrc="qtquickcontrols-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools perl"
+makedepends="qt5-devel qt5-declarative-devel"
+short_desc="Cross-platform application and UI framework (QT5) - Quick UI controls"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquickcontrols-everywhere-src-${version}.tar.xz"
+checksum=d55def1dd4ee1250bd6a4e76849f4e362368b6411c2216d5f669c761216d4461
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-declarative-devel"
+fi
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 11c3cde96b5..622287e6629 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -268,6 +268,7 @@ do_configure() {
 	opts+=" -skip qtsvg"
 	opts+=" -skip qtimageformats"
 	opts+=" -skip qtquicktimeline"
+	opts+=" -skip qtquickcontrols"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -580,13 +581,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-quickcontrols_package() {
-	short_desc+=" - Quick UI controls"
-	pkg_install() {
-		_install_subpkg qtquickcontrols
-	}
-}
-
 qt5-host-tools_package() {
 	short_desc+=" - Tools required when cross compiling"
 	depends="qtchooser"

From dcb33b0658cd08adfbc8c15501449752a06e4990 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Fri, 10 Apr 2020 13:45:42 +0200
Subject: [PATCH 32/34] qt5: split qt5-declarative into own template

---
 srcpkgs/qt5-declarative                       |  1 -
 srcpkgs/qt5-declarative-devel                 |  2 +-
 .../patches/0016-musl-stackbottom.patch       | 17 ++++++++
 srcpkgs/qt5-declarative/template              | 39 +++++++++++++++++
 srcpkgs/qt5/template                          | 43 +------------------
 5 files changed, 58 insertions(+), 44 deletions(-)
 delete mode 120000 srcpkgs/qt5-declarative
 create mode 100644 srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
 create mode 100644 srcpkgs/qt5-declarative/template

diff --git a/srcpkgs/qt5-declarative b/srcpkgs/qt5-declarative
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-declarative
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-declarative-devel b/srcpkgs/qt5-declarative-devel
index 75793eb6664..0ec1683a20e 120000
--- a/srcpkgs/qt5-declarative-devel
+++ b/srcpkgs/qt5-declarative-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-declarative
\ No newline at end of file
diff --git a/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch b/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
new file mode 100644
index 00000000000..fdfc19298ae
--- /dev/null
+++ b/srcpkgs/qt5-declarative/patches/0016-musl-stackbottom.patch
@@ -0,0 +1,17 @@
+For musl libc the stackBottom for the main thread is recalculated
+just as it is for Android. See: https://bugreports.qt.io/browse/QTBUG-44268
+
+--- qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-02-26 10:34:34.000000000 +0100
++++ qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-04-04 21:52:43.780823136 +0200
+@@ -94,6 +94,11 @@
+ #include <valgrind/memcheck.h>
+ #endif
+ 
++#if defined(Q_OS_LINUX) && !defined(__GLIBC__)
++#include <sys/syscall.h>
++#define gettid() syscall(SYS_gettid)
++#endif
++
+ QT_BEGIN_NAMESPACE
+ 
+ using namespace QV4;
diff --git a/srcpkgs/qt5-declarative/template b/srcpkgs/qt5-declarative/template
new file mode 100644
index 00000000000..5a5fb75bef3
--- /dev/null
+++ b/srcpkgs/qt5-declarative/template
@@ -0,0 +1,39 @@
+# Template file for 'qt5-declarative'
+pkgname=qt5-declarative
+version=5.14.2
+revision=2
+wrksrc="qtdeclarative-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-host-tools python3 perl"
+makedepends="qt5-devel Vulkan-Headers"
+short_desc="Cross-platform application and UI framework (QT5) - Declarative component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdeclarative-everywhere-src-${version}.tar.xz"
+checksum=a3c4617adc9760347c93d2eb6c25d22f620cd22f44afa0494eb499a805831650
+patch_args="-Np1"
+
+post_install() {
+	vmkdir usr/bin
+	for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
+		base=${f##*/}
+		ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
+	done
+}
+
+qt5-declarative-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 622287e6629..4ade7a7b01c 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -269,6 +269,7 @@ do_configure() {
 	opts+=" -skip qtimageformats"
 	opts+=" -skip qtquicktimeline"
 	opts+=" -skip qtquickcontrols"
+	opts+=" -skip qtdeclarative"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -345,35 +346,9 @@ do_install() {
 		ln -sf ../lib/qt5/bin/qmake ${PKGDESTDIR}/usr/bin/qmake-qt5
 		cp -ar ${wrksrc}/qtbase/mkspecs ${PKGDESTDIR}/usr/lib/qt5
 
-		#
-		# Build qmldevtools for the target
-		#
-		base=qmldevtools
-		dir=qtdeclarative/src
-		_msg_cross " Building ${base}"
-		cd ${wrksrc}/${dir}/${base}
-		[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
-		vsed -i ${base}.pro \
-			-e "/option(host_build)/d" \
-			-e "/include(..\/3rdparty\/masm\/masm-defs.pri)/i include(../3rdparty/masm/masm.pri)"
-		make clean
-		# Create the Makefile
-		mv -v Makefile{,.orig}
-		${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
-		make ${makejobs}
-		# Restore profile, if any
-		[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
-		mv -v Makefile{.orig,}
-		# Avoid rebuilding the Makefile by changing the rule
-		vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
-
 		#
 		# Build various tools for the target
 		#
-		dirs+=" qtdeclarative/tools/qmlmin"
-		dirs+=" qtdeclarative/tools/qmllint"
-		dirs+=" qtdeclarative/tools/qmlcachegen"
-		dirs+=" qtdeclarative/tools/qmlimportscanner"
 		dirs+=" qtbase/src/tools/moc"
 		dirs+=" qtbase/src/tools/rcc"
 		dirs+=" qtbase/src/tools/uic"
@@ -545,22 +520,6 @@ qt5-base-docs_package() {
 	}
 }
 
-qt5-declarative-devel_package() {
-	short_desc+=" - Declarative component (development)"
-	depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qtdeclarative
-	}
-}
-
-qt5-declarative_package() {
-	short_desc+=" - Declarative component"
-	pkg_install() {
-		_install_subpkg qtdeclarative
-		_move_target_binaries qmlmin qmllint qmlimportscanner qmlcachegen
-	}
-}
-
 qt5-examples_package() {
 	short_desc+=" - Examples"
 	depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}

From 806be92ee1244ee0dac5ccd67c77c47c16176128 Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Sat, 11 Apr 2020 22:38:18 +0200
Subject: [PATCH 33/34] qt5: split qt5-tools into own template

---
 srcpkgs/qt5-host-tools     |  2 +-
 srcpkgs/qt5-tools          |  1 -
 srcpkgs/qt5-tools-devel    |  2 +-
 srcpkgs/qt5-tools/template | 48 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+), 3 deletions(-)
 delete mode 120000 srcpkgs/qt5-tools
 create mode 100644 srcpkgs/qt5-tools/template

diff --git a/srcpkgs/qt5-host-tools b/srcpkgs/qt5-host-tools
index 75793eb6664..46b61ce7e89 120000
--- a/srcpkgs/qt5-host-tools
+++ b/srcpkgs/qt5-host-tools
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-tools
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools b/srcpkgs/qt5-tools
deleted file mode 120000
index 75793eb6664..00000000000
--- a/srcpkgs/qt5-tools
+++ /dev/null
@@ -1 +0,0 @@
-qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools-devel b/srcpkgs/qt5-tools-devel
index 75793eb6664..46b61ce7e89 120000
--- a/srcpkgs/qt5-tools-devel
+++ b/srcpkgs/qt5-tools-devel
@@ -1 +1 @@
-qt5
\ No newline at end of file
+qt5-tools
\ No newline at end of file
diff --git a/srcpkgs/qt5-tools/template b/srcpkgs/qt5-tools/template
new file mode 100644
index 00000000000..b51ecf8e257
--- /dev/null
+++ b/srcpkgs/qt5-tools/template
@@ -0,0 +1,48 @@
+# Template file for 'qt5-tools'
+pkgname=qt5-tools
+version=5.14.2
+revision=2
+wrksrc="qttools-everywhere-src-${version}"
+build_style=qmake
+hostmakedepends="qt5-qmake qt5-base-tools perl"
+makedepends="qt5-devel Vulkan-Headers"
+short_desc="Cross-platform application and UI framework (QT5) - qt5-tools component"
+maintainer="John <johnz@posteo.net>"
+license="GPL-3.0-or-later"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttools-everywhere-src-${version}.tar.xz"
+checksum=5bb0cf7832b88eb6bc9d4289f98307eb14b16a453ad6cf42cca13c4fe1a053c5
+
+post_install() {
+	vmkdir usr/bin
+	for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
+		base=${f##*/}
+		ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
+	done
+}
+
+qt5-tools-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		source $XBPS_SRCPKGDIR/qt5/files/shared_functions.sh
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/qt5/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.prl"
+		_cleanup_wrksrc_leak
+	}
+}
+
+qt5-host-tools_package() {
+	depends="qt5-base-tools>=${version}_1"
+	pkg_install() {
+		for i in lupdate lupdate-pro lprodump lrelease lrelease-pro; do
+			vmove usr/lib/qt5/bin/$i
+			vmove usr/bin/$i-qt5
+		done
+	}
+}

From 4eef3dae98177962018734618a7ff80793c7360d Mon Sep 17 00:00:00 2001
From: John Zimmermann <me@johnnynator.dev>
Date: Sat, 11 Apr 2020 22:39:35 +0200
Subject: [PATCH 34/34] qt5: update template to only build qt5-base

also use gles by default on arm instead of Desktop OpenGL

[ci skip]
---
 srcpkgs/qt5-base-tools                        |   1 +
 srcpkgs/qt5/files/moc.pro                     |   2 +-
 srcpkgs/qt5/files/rcc.pro                     |   2 +-
 srcpkgs/qt5/files/shared_functions.sh         |  58 +++
 srcpkgs/qt5/files/uic.pro                     |   2 +-
 .../0014-musl-set_thread_name_np.patch        |  24 --
 .../qt5/patches/0016-musl-stackbottom.patch   |  17 -
 srcpkgs/qt5/patches/0018-musl-timeval.patch   |  10 -
 srcpkgs/qt5/template                          | 351 +++---------------
 9 files changed, 121 insertions(+), 346 deletions(-)
 create mode 120000 srcpkgs/qt5-base-tools
 delete mode 100644 srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
 delete mode 100644 srcpkgs/qt5/patches/0016-musl-stackbottom.patch
 delete mode 100644 srcpkgs/qt5/patches/0018-musl-timeval.patch

diff --git a/srcpkgs/qt5-base-tools b/srcpkgs/qt5-base-tools
new file mode 120000
index 00000000000..75793eb6664
--- /dev/null
+++ b/srcpkgs/qt5-base-tools
@@ -0,0 +1 @@
+qt5
\ No newline at end of file
diff --git a/srcpkgs/qt5/files/moc.pro b/srcpkgs/qt5/files/moc.pro
index 664c6d30b1c..3069121aac4 100644
--- a/srcpkgs/qt5/files/moc.pro
+++ b/srcpkgs/qt5/files/moc.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += \
     QT_MOC \
     QT_NO_CAST_FROM_ASCII \
diff --git a/srcpkgs/qt5/files/rcc.pro b/srcpkgs/qt5/files/rcc.pro
index 3296979769b..5555a716446 100644
--- a/srcpkgs/qt5/files/rcc.pro
+++ b/srcpkgs/qt5/files/rcc.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += QT_RCC QT_NO_CAST_FROM_ASCII QT_NO_FOREACH
 
 include(rcc.pri)
diff --git a/srcpkgs/qt5/files/shared_functions.sh b/srcpkgs/qt5/files/shared_functions.sh
index d07596e09f5..90a8fd3303a 100644
--- a/srcpkgs/qt5/files/shared_functions.sh
+++ b/srcpkgs/qt5/files/shared_functions.sh
@@ -21,3 +21,61 @@ _cleanup_wrksrc_leak() {
 		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
 }
 
+_msg_cross() {
+	msg_normal "***************************************************\n"
+	msg_normal "$1 for target ${CROSS_BUILD} ...\n"
+	msg_normal "***************************************************\n"
+}
+
+_host_tooling_for_target() {
+	base=${1##*/}
+	dir=${1%%/*}
+
+	_msg_cross " Building ${base}"
+
+	cd ${wrksrc}/${1}
+	if [ -x "${wrksrc}/${dir}/bin/${base}" ]; then
+		mv -v ${wrksrc}/${dir}/bin/${base}{,-host}
+	fi
+	[ -f Makefile ] && make clean
+	[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
+	if [ -f "${FILESDIR}/${base}.pro" ]; then
+		# A specific *.pro file is available, use it.
+		cp ${FILESDIR}/${base}.pro ${base}.pro
+	else
+		# Otherwise strip the option(host_build)
+		vsed -i ${base}.pro -e "/option(host_build)/d"
+	fi
+	# Create the Makefile
+	[ -f Makefile ] && mv -v Makefile{,.orig}
+	${wrksrc}/bin/qmake -o Makefile ${base}.pro
+
+	# Now patch the Makefile(s) to not use the bootstrap libs and
+	# use the compiler, linker, flags, etc. for the target arch
+	find . -name "Makefile*" -exec sed -i "{}" \
+		-e "s; force_bootstrap;;" \
+		-e "s;^\(CC\\s*=\).*;\1 $CC;" \
+		-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
+		-e "s;^\(LINK\\s*=\).*;\1 $CXX;" \
+		-e "s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
+		-e "s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
+		-e "s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
+		-e "s;^\(AR\\s*=\).*;\1 $AR cqs;" \
+		-e "s;^\(RANLIB\\s*=\).*;\1 $RANLIB;" \
+		\;
+	# Set a different destination directory and target name
+	vsed -i Makefile \
+		-e "s;^\(DESTDIR\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/;" \
+		-e "s;^\(TARGET\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/${base}-target;"
+	make ${makejobs}
+	# Restore profile, if any
+	[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
+	[ -f Makefile.orig ] && mv -v Makefile{.orig,}
+	# Avoid rebuilding the Makefile by changing the rule
+	vsed -i Makefile -e 's;^all:.*;all:;'
+	vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
+	if [ -x "${wrksrc}/${dir}/bin/${base}-host" ]; then
+		mv -v ${wrksrc}/${dir}/bin/${base}{-host,}
+		touch ${wrksrc}/${dir}/bin/${base}
+	fi
+}
diff --git a/srcpkgs/qt5/files/uic.pro b/srcpkgs/qt5/files/uic.pro
index dc08efcff19..adf53a2939f 100644
--- a/srcpkgs/qt5/files/uic.pro
+++ b/srcpkgs/qt5/files/uic.pro
@@ -1,4 +1,4 @@
-QT = core qml core-private qmldevtools-private
+QT = core core-private
 DEFINES += QT_UIC QT_NO_CAST_FROM_ASCII QT_NO_FOREACH
 
 include(uic.pri)
diff --git a/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch b/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
deleted file mode 100644
index d7fa4fd4127..00000000000
--- a/srcpkgs/qt5/patches/0014-musl-set_thread_name_np.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2017-11-14 18:03:52.000000000 +0100
-+++ qtlocation/src/3rdparty/mapbox-gl-native/platform/default/thread.cpp	2018-01-27 19:49:19.691858141 +0100
-@@ -11,17 +11,21 @@
- 
- std::string getCurrentThreadName() {
-     char name[32] = "unknown";
-+#if defined(__GLIBC__)
-     pthread_getname_np(pthread_self(), name, sizeof(name));
-+#endif
- 
-     return name;
- }
- 
- void setCurrentThreadName(const std::string& name) {
-+#if defined(__GLIBC__)
-     if (name.size() > 15) { // Linux hard limit (see manpages).
-         pthread_setname_np(pthread_self(), name.substr(0, 15).c_str());
-     } else {
-         pthread_setname_np(pthread_self(), name.c_str());
-     }
-+#endif
- }
- 
- void makeThreadLowPriority() {
diff --git a/srcpkgs/qt5/patches/0016-musl-stackbottom.patch b/srcpkgs/qt5/patches/0016-musl-stackbottom.patch
deleted file mode 100644
index fdfc19298ae..00000000000
--- a/srcpkgs/qt5/patches/0016-musl-stackbottom.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-For musl libc the stackBottom for the main thread is recalculated
-just as it is for Android. See: https://bugreports.qt.io/browse/QTBUG-44268
-
---- qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-02-26 10:34:34.000000000 +0100
-+++ qtdeclarative/src/qml/jsruntime/qv4engine.cpp	2016-04-04 21:52:43.780823136 +0200
-@@ -94,6 +94,11 @@
- #include <valgrind/memcheck.h>
- #endif
- 
-+#if defined(Q_OS_LINUX) && !defined(__GLIBC__)
-+#include <sys/syscall.h>
-+#define gettid() syscall(SYS_gettid)
-+#endif
-+
- QT_BEGIN_NAMESPACE
- 
- using namespace QV4;
diff --git a/srcpkgs/qt5/patches/0018-musl-timeval.patch b/srcpkgs/qt5/patches/0018-musl-timeval.patch
deleted file mode 100644
index 939fb58b265..00000000000
--- a/srcpkgs/qt5/patches/0018-musl-timeval.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2017-11-22 09:57:45.000000000 +0100
-+++ qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.h	2018-01-27 19:17:31.333759690 +0100
-@@ -47,6 +47,7 @@
- 
- // The order of the following includes is mandatory, because some
- // distributions use sa_family_t in can.h without including socket.h
-+#include <sys/time.h>
- #include <sys/socket.h>
- #include <sys/uio.h>
- #include <linux/can.h>
diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template
index 4ade7a7b01c..b667acb4884 100644
--- a/srcpkgs/qt5/template
+++ b/srcpkgs/qt5/template
@@ -1,20 +1,16 @@
 # Template file for 'qt5'
 pkgname=qt5
 version=5.14.2
-revision=3
-wrksrc="qt-everywhere-src-${version}"
+revision=2
 build_style=meta
-hostmakedepends="cmake clang flex perl glib-devel pkg-config
- python re2c ruby which"
-makedepends="SDL2-devel Vulkan-Headers alsa-lib-devel double-conversion-devel
- eudev-libudev-devel ffmpeg-devel freetds-devel glib-devel gst-plugins-base1-devel
- gtk+3-devel icu-devel libXv-devel libbluetooth-devel libcap-devel
- libinput-devel libmng-devel libmysqlclient-devel libproxy-devel
- libvpx-devel libwebp-devel libxslt-devel cups-devel
- opus-devel pciutils-devel pcre2-devel postgresql-libs-devel
- protobuf-devel pulseaudio-devel tslib-devel libressl-devel
- unixodbc-devel xcb-util-image-devel xcb-util-keysyms-devel
- xcb-util-renderutil-devel xcb-util-wm-devel libzstd-devel harfbuzz-devel"
+wrksrc="qtbase-everywhere-src-${version}"
+hostmakedepends="pkg-config which perl"
+makedepends="libmysqlclient-devel postgresql-libs-devel harfbuzz-devel
+ libressl-devel fontconfig-devel zlib-devel icu-devel sqlite-devel
+ libjpeg-turbo-devel gtk+3-devel Vulkan-Headers tslib-devel cups-devel
+ double-conversion-devel freetds-devel libzstd-devel pcre2-devel
+ libinput-devel mtdev-devel xcb-util-image-devel xcb-util-keysyms-devel
+ xcb-util-renderutil-devel xcb-util-wm-devel unixodbc-devel libproxy-devel"
 depends="qt5-dbus qt5-gui qt5-core qt5-widgets qt5-network qt5-xml
  qt5-test qt5-sql qt5-concurrent qt5-printsupport qt5-opengl"
 short_desc="Cross-platform application and UI framework (QT5)"
@@ -27,12 +23,17 @@ python_version=2 #unverified
 replaces="qt5-doc<5.6.0 qt5-quick1<5.6.0 qt5-quick1-devel<5.6.0 qt5-webkit<5.6.0 qt5-webkit-devel<5.6.0
  qt5-enginio<5.7.1 qt5-enginio-devel<5.7.1 qt5-plugin-gtk<5.7.1 qt5-canvas3d<5.13.0"
 lib32mode=full
+patch_args="-Np1"
 
 # Work around SSLv3_{client,server}_method missing in libressl-2.3.3
 CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG"
 CXXFLAGS="${CFLAGS} -Wno-deprecated-declarations -Wno-class-memaccess -Wno-packed-not-aligned"
-# Required for musl libc
-LDFLAGS="-pthread -ldl -fPIE -Wl,-z,stack-size=2097152"
+
+build_options="gles"
+
+case "$XBPS_TARGET_MACHINE" in
+	aarch64*|arm*) build_options_default="gles";;
+esac
 
 if [ "$CROSS_BUILD" ]; then
 	# Need some devel packages in the host to build qmake, moc, uic, rcc
@@ -41,75 +42,6 @@ if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" postgresql-libs-devel"
 fi
 
-_cleanup_wrksrc_leak() {
-	if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
-		# Replace references to ${wrksrc} in cmake files
-		vsed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
-			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
-			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
-	fi
-	if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
-		# Replace references to ${wrksrc} in pkgconfig files
-		vsed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
-			-e "s;${wrksrc}/host;/usr/lib/qt5;g" \
-			-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
-	fi
-	# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
-	# and replace references to ${wrksrc}
-	find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
-		-e "/^QMAKE_PRL_BUILD_DIR/d" \
-		-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
-	# Replace ${wrksrc} in project include files
-	find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
-		-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
-}
-
-_install_subpkg() {
-	local module=$1 f base
-	cd ${wrksrc}/${module}
-	make INSTALL_ROOT=${PKGDESTDIR} install
-	rm -rf ${PKGDESTDIR}/builddir
-	rm -rf ${PKGDESTDIR}/usr/include
-	rm -rf ${PKGDESTDIR}/usr/lib/cmake
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/mkspecs
-	rm -rf ${PKGDESTDIR}/usr/lib/pkgconfig
-	rm -f ${PKGDESTDIR}/usr/lib/*.a
-	rm -f ${PKGDESTDIR}/usr/lib/*.so
-	rm -f ${PKGDESTDIR}/usr/lib/*.prl
-	if [ -d ${PKGDESTDIR}/usr/lib/qt5/bin ]; then
-		if [ "$CROSS_BUILD" ]; then
-			for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -name "*-target" -type f); do
-				base=${f##*/}
-				mv -v ${f} ${f%-target}
-			done
-		fi
-		vmkdir usr/bin
-		for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); do
-			base=${f##*/}
-			ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
-		done
-	fi
-}
-
-_install_devel() {
-	local module=$1
-	cd ${wrksrc}/${module}
-	make INSTALL_ROOT=${PKGDESTDIR} install
-	vmkdir usr/lib/qt5/mkspecs/modules
-	if [ -d "${PKGDESTDIR}${wrksrc}/host/mkspecs/modules" ]; then
-		mv -nv ${PKGDESTDIR}${wrksrc}/host/mkspecs/modules/* \
-			${PKGDESTDIR}/usr/lib/qt5/mkspecs/modules/
-	fi
-	rm -rf ${PKGDESTDIR}/builddir
-	rm -rf ${PKGDESTDIR}/usr/share
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/bin
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/qml
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/libexec
-	rm -rf ${PKGDESTDIR}/usr/lib/qt5/plugins
-	rm -f ${PKGDESTDIR}/usr/lib/*.so.*
-	_cleanup_wrksrc_leak
-}
-
 _move_target_binaries() {
 	local f
 	[ -z "$CROSS_BUILD" ] && return 0
@@ -123,7 +55,7 @@ _move_target_binaries() {
 }
 
 _create_config() {
-	local specs=${wrksrc}/qtbase/mkspecs/devices device="$1"
+	local specs=${wrksrc}/mkspecs/devices device="$1"
 	local qmake_conf="${specs}/${device}/qmake.conf"
 
 	mkdir -p ${specs}/${device}
@@ -161,13 +93,8 @@ _create_config() {
 	echo '#include "../../linux-g++/qplatformdefs.h"' > ${specs}/${device}/qplatformdefs.h
 }
 
-_msg_cross() {
-	msg_normal "***************************************************\n"
-	msg_normal "$1 for target ${CROSS_BUILD} ...\n"
-	msg_normal "***************************************************\n"
-}
-
 do_configure() {
+	source ${FILESDIR}/shared_functions.sh
 	local opts spec
 
 	case "$XBPS_TARGET_MACHINE" in
@@ -178,26 +105,26 @@ do_configure() {
 	if [ "$CROSS_BUILD" ]; then
 		# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
 		vsed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${XBPS_CFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
+			${wrksrc}/mkspecs/common/gcc-base.conf
 		vsed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${XBPS_LDFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
+			${wrksrc}/mkspecs/common/g++-unix.conf
 
 		# Create symbolic links for private include directories
-		for d in $(ls ${wrksrc}/qtbase/include); do
-			ln -sfv ${version}/${d}/private qtbase/include/${d}/private
+		for d in $(ls ${wrksrc}/include); do
+			ln -sfv ${version}/${d}/private include/${d}/private
 		done
 	else
 		# qmake {CXX,L}FLAGS patches
 		vsed -i -e "s|^\(CXXFLAGS =.*\)|\1 ${CXXFLAGS}|" \
 			-e "s|^\(LFLAGS =.*\)|\1 ${LDFLAGS}|" \
-			${wrksrc}/qtbase/qmake/Makefile.unix
+			${wrksrc}/qmake/Makefile.unix
 
 		# Build qmake using Void {C,LD}FLAGS
 		# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
 		vsed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
+			${wrksrc}/mkspecs/common/gcc-base.conf
 		vsed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
-			${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
+			${wrksrc}/mkspecs/common/g++-unix.conf
 	fi
 
 	opts+=" -confirm-license"
@@ -225,7 +152,6 @@ do_configure() {
 	opts+=" -no-pch"
 	opts+=" -no-strip"
 	opts+=" -nomake examples"
-	opts+=" -optimized-qmake"
 	# opts+=" -opengl dynamic"
 	opts+=" -no-use-gold-linker"
 	opts+=" -system-libjpeg"
@@ -233,43 +159,13 @@ do_configure() {
 	opts+=" -system-zlib"
 	opts+=" -system-sqlite"
 	opts+=" -system-harfbuzz"
+	if [ "$build_option_gles" ]; then
+		opts+=" -opengl-es-2"
+		opts+=" -opengles3"
+	fi
 	opts+=" -no-feature-eglfs_brcm" # missing include path
 	opts+=" -silent"
 	# opts+=" -v"
-	opts+=" -skip qtwebengine"
-	opts+=" -skip qtwebview"
-	opts+=" -skip qtlottie"
-	opts+=" -skip qttranslations"
-	opts+=" -skip qt3d"
-	opts+=" -skip qtdatavis3d"
-	opts+=" -skip qtcharts"
-	opts+=" -skip qtconnectivity"
-	opts+=" -skip qtgamepad"
-	opts+=" -skip qtlocation"
-	opts+=" -skip qtx11extras"
-	opts+=" -skip qtpurchasing"
-	opts+=" -skip qtmultimedia"
-	opts+=" -skip qtxmlpatterns"
-	opts+=" -skip qtnetworkauth"
-	opts+=" -skip qtwebsockets"
-	opts+=" -skip qtwebglplugin"
-	opts+=" -skip qtwebchannel"
-	opts+=" -skip qtsensors"
-	opts+=" -skip qtwayland"
-	opts+=" -skip qtscript"
-	opts+=" -skip qtscxml"
-	opts+=" -skip qtquickcontrols2"
-	opts+=" -skip qtremoteobjects"
-	opts+=" -skip qtserialbus"
-	opts+=" -skip qtvirtualkeyboard"
-	opts+=" -skip qtgraphicaleffects"
-	opts+=" -skip qtserialport"
-	opts+=" -skip qtspeech"
-	opts+=" -skip qtsvg"
-	opts+=" -skip qtimageformats"
-	opts+=" -skip qtquicktimeline"
-	opts+=" -skip qtquickcontrols"
-	opts+=" -skip qtdeclarative"
 	LDFLAGS+=" -Wl,--no-keep-memory"  # needs more than 8GB RAM else
 	if [ "$CROSS_BUILD" ]; then
 		spec=void-${XBPS_CROSS_TRIPLET}-g++
@@ -280,38 +176,30 @@ do_configure() {
 		opts+=" -hostprefix host"
 		opts+=" -extprefix /usr"
 
-		# Make sure libQt5Designer is built
-		cp -v ${FILESDIR}/qttools_src.pro qttools/src/src.pro
-		cp -v ${FILESDIR}/designer_src.pro qttools/src/designer/src/src.pro
-		cp -v ${FILESDIR}/assistant.pro qttools/src/assistant/assistant.pro
-		cp -v ${FILESDIR}/linguist.pro qttools/src/linguist/linguist.pro
-		cp -v ${FILESDIR}/uitools.pro qttools/src/designer/src/uitools/uitools.pro
 	fi
 
+	MAKEFLAGS="${makejobs}" \
 	CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
 	OBJDUMP="objdump" STRIP="strip" RANLIB="ranlib" \
 	CFLAGS="$XBPS_CFLAGS" CXXFLAGS="$XBPS_CXXFLAGS" \
 	CPPFLAGS="$XBPS_CPPFLAGS" LDFLAGS="$XBPS_LDFLAGS" \
 	LFLAGS="$XBPS_LDFLAGS" \
 		${wrksrc}/configure ${opts}
-	export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
+	export LD_LIBRARY_PATH="${wrksrc}/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
 }
 
 do_build() {
-	# Run make twice because sometimes a file "chrome/grit/generated_resources.h"
-	# is not yet ready when it is to be included. Repeating make works around that
-	# problem without having to resort to disable_parallel_build=yes
-	# or some other files
-	make ${makejobs} || make ${makejobs}
+	make ${makejobs}
 }
 
 do_install() {
+	source ${FILESDIR}/shared_functions.sh
 	local f base bin dir dirs
 
 	if [ -z "$CROSS_BUILD" ]; then
 		unset CC CXX LD CPP AR AS RANLIB
 	fi
-	cd ${wrksrc}/qtbase
+	cd ${wrksrc}/
 	make INSTALL_ROOT=${DESTDIR} install
 
 	_cleanup_wrksrc_leak
@@ -331,7 +219,7 @@ do_install() {
 		# Build qmake for the target
 		#
 		_msg_cross "Building qmake"
-		cd ${wrksrc}/qtbase/qmake
+		cd ${wrksrc}/qmake
 		sed Makefile \
 			-e"s;^\(CC\\s*=\).*;\1 $CC;" \
 			-e"s;^\(CXX\\s*=\).*;\1 $CXX;" \
@@ -344,80 +232,22 @@ do_install() {
 		make clean
 		make -f Makefile.target ${makejobs}
 		ln -sf ../lib/qt5/bin/qmake ${PKGDESTDIR}/usr/bin/qmake-qt5
-		cp -ar ${wrksrc}/qtbase/mkspecs ${PKGDESTDIR}/usr/lib/qt5
+		cp -ar ${wrksrc}/mkspecs ${PKGDESTDIR}/usr/lib/qt5
 
 		#
 		# Build various tools for the target
 		#
-		dirs+=" qtbase/src/tools/moc"
-		dirs+=" qtbase/src/tools/rcc"
-		dirs+=" qtbase/src/tools/uic"
-		dirs+=" qtbase/src/tools/qdbuscpp2xml"
-		dirs+=" qtbase/src/tools/qdbusxml2cpp"
-		dirs+=" qtbase/src/tools/qvkgen"
-		dirs+=" qtbase/src/tools/tracegen"
-		dirs+=" qtbase/src/tools/qlalr"
-		dirs+=" qttools/src/qtattributionsscanner"
-		dirs+=" qttools/src/linguist/lconvert"
-		dirs+=" qttools/src/linguist/lrelease"
-		dirs+=" qttools/src/linguist/lrelease-pro"
-		dirs+=" qttools/src/linguist/lprodump"
-		dirs+=" qttools/src/linguist/lupdate"
-		dirs+=" qttools/src/linguist/lupdate-pro"
-		# Cannot be cross compiled (target clang issue)
-		# dirs+=" qttools/src/qdoc"
+		dirs+=" src/tools/moc"
+		dirs+=" src/tools/rcc"
+		dirs+=" src/tools/uic"
+		dirs+=" src/tools/qdbuscpp2xml"
+		dirs+=" src/tools/qdbusxml2cpp"
+		dirs+=" src/tools/qvkgen"
+		dirs+=" src/tools/tracegen"
+		dirs+=" src/tools/qlalr"
 
 		for f in ${dirs}; do
-			base=${f##*/}
-			dir=${f%%/*}
-
-			_msg_cross " Building ${base}"
-
-			cd ${wrksrc}/${f}
-			if [ -x "${wrksrc}/${dir}/bin/${base}" ]; then
-				mv -v ${wrksrc}/${dir}/bin/${base}{,-host}
-			fi
-			[ -f Makefile ] && make clean
-			[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
-			if [ -f "${FILESDIR}/${base}.pro" ]; then
-				# A specific *.pro file is available, use it.
-				cp ${FILESDIR}/${base}.pro ${base}.pro
-			else
-				# Otherwise strip the option(host_build)
-				vsed -i ${base}.pro -e "/option(host_build)/d"
-			fi
-			# Create the Makefile
-			[ -f Makefile ] && mv -v Makefile{,.orig}
-			${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
-
-			# Now patch the Makefile(s) to not use the bootstrap libs and
-			# use the compiler, linker, flags, etc. for the target arch
-			find . -name "Makefile*" -exec sed -i "{}" \
-				-e "s; force_bootstrap;;" \
-				-e "s;^\(CC\\s*=\).*;\1 $CC;" \
-				-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
-				-e "s;^\(LINK\\s*=\).*;\1 $CXX;" \
-				-e "s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
-				-e "s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
-				-e "s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
-				-e "s;^\(AR\\s*=\).*;\1 $AR cqs;" \
-				-e "s;^\(RANLIB\\s*=\).*;\1 $RANLIB;" \
-				\;
-			# Set a different destination directory and target name
-			vsed -i Makefile \
-				-e "s;^\(DESTDIR\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/;" \
-				-e "s;^\(TARGET\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/${base}-target;"
-			make ${makejobs}
-			# Restore profile, if any
-			[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
-			[ -f Makefile.orig ] && mv -v Makefile{.orig,}
-			# Avoid rebuilding the Makefile by changing the rule
-			vsed -i Makefile -e 's;^all:.*;all:;'
-			vsed -i Makefile -e "s;^Makefile:;Makefile.host:;"
-			if [ -x "${wrksrc}/${dir}/bin/${base}-host" ]; then
-				mv -v ${wrksrc}/${dir}/bin/${base}{-host,}
-				touch ${wrksrc}/${dir}/bin/${base}
-			fi
+			_host_tooling_for_target $f
 		done
 	fi
 	# Remove builddir from installation
@@ -527,7 +357,7 @@ qt5-examples_package() {
 	pkg_install() {
 		local dir mod base=usr/share/qt5/examples
 		vmkdir ${base}
-		vcopy qtbase/examples/examples.pro ${base}/
+		vcopy examples/examples.pro ${base}/
 		# Copy examples source
 		for dir in $(find ${wrksrc} -maxdepth 2 -type d -name examples); do
 			mod=${dir%/examples}
@@ -540,81 +370,6 @@ qt5-examples_package() {
 	}
 }
 
-qt5-host-tools_package() {
-	short_desc+=" - Tools required when cross compiling"
-	depends="qtchooser"
-	pkg_install() {
-		local dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-tools-${version}
-		vmkdir usr/lib/qt5/bin
-		vmkdir usr/bin
-		for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp qvkgen fixqt4headers.pl tracegen \
-			syncqt.pl lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
-			if [ -r ${dest}/usr/lib/qt5/bin/${f} ]; then
-				mv -v ${dest}/usr/lib/qt5/bin/${f} ${PKGDESTDIR}/usr/lib/qt5/bin/
-			fi
-			if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f}-target ]; then
-				mv -v ${DESTDIR}/usr/lib/qt5/bin/${f}{-target,}
-			fi
-			if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f} ]; then
-				vmove usr/lib/qt5/bin/${f}
-			fi
-			if [ -f ${DESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${DESTDIR}/usr/bin/${f}-qt5 ]; then
-				vmove usr/bin/${f}-qt5
-			else
-				ln -sf ../lib/qt5/bin/${f} ${PKGDESTDIR}/usr/bin/${f}-qt5
-			fi
-		done
-	}
-}
-
-qt5-tools-devel_package() {
-	short_desc+=" - Development tools (development)"
-	depends="qt5-tools-${version}_${revision} qt5-devel-${version}_${revision}"
-	pkg_install() {
-		_install_devel qttools
-	}
-}
-
-qt5-tools_package() {
-	short_desc+=" - Development tools"
-	depends="qtchooser qt5-translations desktop-file-utils hicolor-icon-theme"
-	pkg_install() {
-		local f dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-host-tools-${version}
-		_install_subpkg qttools
-		# install missing icons and desktop files
-		for icon in ${wrksrc}/qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
-			size=$(echo $(basename ${icon}) | cut -d- -f2)
-			install -p -D -m644 ${icon} \
-				${PKGDESTDIR}/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt5.png
-		done
-		install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant-128.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/designer/src/designer/images/designer.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/designer-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png
-		install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
-			${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/qdbusviewer-qt5.png
-		# install desktop files
-		vmkdir usr/share/applications
-		install -m644 ${FILESDIR}/*.desktop ${PKGDESTDIR}/usr/share/applications
-		_move_target_binaries qtattributionsscanner qdoc
-		# Move some binaries to qt5-host-tools
-		for f in lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
-			if [ -f ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ]; then
-				mkdir -p ${dest}/usr/lib/qt5/bin
-				mv -v ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ${dest}/usr/lib/qt5/bin/
-			fi
-			if [ -f ${PKGDESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${PKGDESTDIR}/usr/bin/${f}-qt5 ]; then
-				mkdir -p ${dest}/usr/bin
-				mv -v ${PKGDESTDIR}/usr/bin/${f}-qt5 ${dest}/usr/bin/
-			fi
-		done
-	}
-}
-
 qt5-devel_package() {
 	depends="zlib-devel libressl-devel>=2.1.4 libXext-devel libXrender-devel
 		fontconfig-devel libglib-devel MesaLib-devel mtdev-devel
@@ -635,6 +390,7 @@ qt5-devel_package() {
 	short_desc+=" - Development files"
 	# qt5-enginio-devel is gone
 	pkg_install() {
+		source ${FILESDIR}/shared_functions.sh
 		vmove usr/include
 		vmove usr/lib/*.a
 		vmove usr/lib/*.prl
@@ -679,6 +435,17 @@ qt5-plugin-tds_package() {
 	}
 }
 
+qt5-base-tools_package() {
+	short_desc+=" - Tools"
+	pkg_install() {
+		for f in uic tracegen syncqt.pl rcc qvkgen qlalr qdbusxml2cpp \
+			qdbuscpp2xml moc fixqt4headers.pl; do
+			vmove usr/bin/$f-qt5
+			vmove usr/lib/qt5/bin/$f
+		done
+	}
+}
+
 qt5-qmake_package() {
 	short_desc+=" - Qmake Makefile generator tool"
 	depends="qtchooser"
@@ -714,7 +481,7 @@ qt5-xcb-private-headers_package() {
 	short_desc+=" - Private headers for Qt5 Xcb"
 	depends="qt5-devel"
 	pkg_install() {
-		for f in ${wrksrc}/qtbase/src/plugins/platforms/xcb/*.h; do
+		for f in ${wrksrc}/src/plugins/platforms/xcb/*.h; do
 			vinstall $f 644 usr/include/qt5xcb-private
 		done
 	}

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

* Re: [PR PATCH] [Closed]: [WIP] qt5: split every submodule into it's own template
  2020-04-11 20:58 [PR PATCH] [WIP] qt5: split every submodule into it's own template Johnnynator
  2020-05-29 16:46 ` [PR PATCH] [Updated] " Johnnynator
@ 2021-11-01 13:07 ` Johnnynator
  1 sibling, 0 replies; 3+ messages in thread
From: Johnnynator @ 2021-11-01 13:07 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 700 bytes --]

There's a closed pull request on the void-packages repository

[WIP] qt5: split every submodule into it's own template
https://github.com/void-linux/void-packages/pull/20893

Description:
This should make it less likely to constantly blow up the build servers. Also make it less annoying when updating and something fails in do_install and everything needs to be cleaned up.

Broken stuff:

- [ ] `qt5-wayland` cross
- [ ] qmake cross as wonky as ever (e.g. `host_build` in `.pro` has no effect, and modules do never get found on target arch). Ironically this whole PR only works because of that :)
- [ ] some deps are not detected when cross building (e.g. libdrm, tries to include from host)

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

end of thread, other threads:[~2021-11-01 13:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-11 20:58 [PR PATCH] [WIP] qt5: split every submodule into it's own template Johnnynator
2020-05-29 16:46 ` [PR PATCH] [Updated] " Johnnynator
2021-11-01 13:07 ` [PR PATCH] [Closed]: " Johnnynator

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).