Github messages for voidlinux
 help / color / mirror / Atom feed
From: Johnnynator <Johnnynator@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [WIP] qt5: split every submodule into it's own template
Date: Fri, 29 May 2020 18:46:21 +0200	[thread overview]
Message-ID: <20200529164621.Y0Ru-BSjz0IEksa_ep3YqJuerYlcpLNJdy6Ic1MQ3f0@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-20893@inbox.vuxu.org>

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

  reply	other threads:[~2020-05-29 16:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-11 20:58 [PR PATCH] " Johnnynator
2020-05-29 16:46 ` Johnnynator [this message]
2021-11-01 13:07 ` [PR PATCH] [Closed]: " Johnnynator

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200529164621.Y0Ru-BSjz0IEksa_ep3YqJuerYlcpLNJdy6Ic1MQ3f0@z \
    --to=johnnynator@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).