Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [wip] qt6: update to 6.2 (alpha)
@ 2021-06-27 19:18 Johnnynator
  2021-06-27 19:20 ` [PR PATCH] [Updated] " Johnnynator
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Johnnynator @ 2021-06-27 19:18 UTC (permalink / raw)
  To: ml

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

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

https://github.com/Johnnynator/void-packages qt6.2
https://github.com/void-linux/void-packages/pull/31686

[wip] qt6: update to 6.2 (alpha)
- qt6-3d: update to 6.2.0alpha.
- qt6-base: update to 6.2.0alpha.
- qt6-charts: update to 6.2.0alpha.
- qt6-declarative: update to 6.2.0alpha.
- qt6-imageformats: update to 6.2.0alpha.
- qt6-lottie: update to 6.2.0alpha.
- qt6-networkauth: update to 6.2.0alpha.
- qt6-qt5compat: update to 6.2.0alpha.
- qt6-quick3d: update to 6.2.0alpha.
- qt6-quickcontrols2: update to 6.2.0alpha.
- qt6-quicktimeline: update to 6.2.0alpha.
- qt6-scxml: update to 6.2.0alpha.
- qt6-shadertools: update to 6.2.0alpha.
- qt6-svg: update to 6.2.0alpha.
- qt6-tools: update to 6.2.0alpha.
- qt6-translations: update to 6.2.0alpha.
- qt6-virtualkeyboard: update to 6.2.0alpha.
- qt6-wayland: update to 6.2.0alpha.
- New package: qt6-serialport-6.2.0alpha
- New package: qt6-websockets-6.2.0alpha
- New package: qt6-webchannel-6.2.0alpha
- New package: qt6-multimedia-6.2.0alpha
- New package: qt6-webengine-6.2.0alpha
- New package: qt6-location-6.2.0alpha

<!-- Mark items with [x] where applicable -->

#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [x] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
--> 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [x] I built this PR locally for my native architecture, (ARCH-LIBC)
- [x] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [x] aarch64-musl
  - [x] armv7l
  - [x] armv6l-musl
[ci skip]


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

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

From a169ab9c53d284c7389a64c1369661fca5661838 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20N=C3=A9ri?= <dne+github@mayonnaise.net>
Date: Sun, 27 Jun 2021 00:05:14 +0000
Subject: [PATCH 01/25] tailscale: update to 1.10.0.

---
 srcpkgs/tailscale/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/tailscale/template b/srcpkgs/tailscale/template
index 27fb51011812..598429ea085e 100644
--- a/srcpkgs/tailscale/template
+++ b/srcpkgs/tailscale/template
@@ -1,6 +1,6 @@
 # Template file for 'tailscale'
 pkgname=tailscale
-version=1.8.5
+version=1.10.0
 revision=1
 build_style=go
 go_import_path="tailscale.com"
@@ -14,7 +14,7 @@ maintainer="Noel Cower <ncower@nil.dev>"
 license="BSD-3-Clause"
 homepage="https://tailscale.com"
 distfiles="https://github.com/tailscale/tailscale/archive/v${version}.tar.gz"
-checksum=f3a558f3006f0182dc12bd3f346a2f66e6f8389fcfa3e42f2b78e496bfc331ad
+checksum=8345fc01fd07d3fa325817104b373bbdd54568ef807135e9d5eafa5321fa7f87
 
 post_install() {
 	vlicense LICENSE

From 945a006369c7c4f2b431f5347aa78249e9e2591c Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:32 +0200
Subject: [PATCH 02/25] qt6-3d: update to 6.2.0alpha.

---
 srcpkgs/qt6-3d/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-3d/template b/srcpkgs/qt6-3d/template
index dec8bdebf98f..9a45c8c011ef 100644
--- a/srcpkgs/qt6-3d/template
+++ b/srcpkgs/qt6-3d/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-3d'
 pkgname=qt6-3d
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qt3d-everywhere-src-${version}"
+wrksrc="qt3d-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-declarative-devel"
@@ -12,8 +12,8 @@ short_desc="Cross-platform application and UI framework - 3d"
 maintainer="John <me@johnnynator.dev>"
 license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt3d-everywhere-src-${version}.tar.xz"
-checksum=66e25fcf0bd965374f9814ef8fb960ff7c0414ec9480dcdc57caad17f23ede08
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qt3d-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=8fff7ac79b3f508df00bfc4e14e401b1dde0a5bc1d67d3cb88c05b04ac12aa1b
 
 qt6-3d-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 782625d45ea9ff1cff4a696c216329ec91ca8540 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:41 +0200
Subject: [PATCH 03/25] qt6-base: update to 6.2.0alpha.

---
 .../qt6-base/patches/musl-usr-path-hack.patch | 25 +++++++++++++++++++
 srcpkgs/qt6-base/template                     | 16 ++++++------
 2 files changed, 33 insertions(+), 8 deletions(-)
 create mode 100644 srcpkgs/qt6-base/patches/musl-usr-path-hack.patch

diff --git a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
new file mode 100644
index 000000000000..a2ec7550e7bb
--- /dev/null
+++ b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
@@ -0,0 +1,25 @@
+Source: @Johnnynator
+Upsteam: No
+Subject: Musl always returns /lib/libQt6Core.so.6 for Dl_info.dli_fname. 
+This also happens sometimes with qtwebengine on glibc.
+This breaks qt6-webengine's search path for translations.
+Using realpath instead would probably be a more correct solution.
+
+---
+diff --git qtbasesrc/corelib/global/qlibraryinfo.cpp qtbasesrc/corelib/global/qlibraryinfo.cpp
+index 8bcf67e73d..28d7355310 100644
+--- a/src/corelib/global/qlibraryinfo.cpp
++++ b/src/corelib/global/qlibraryinfo.cpp
+@@ -558,6 +558,12 @@ static QString getRelocatablePrefix()
+     int result = dladdr(reinterpret_cast<void *>(&QLibraryInfo::isDebugBuild), &info);
+     if (result > 0 && info.dli_fname)
+         prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLocal8Bit(info.dli_fname));
++#if 1
++    QDir preDir(prefixPath);
++    if (preDir.isRoot()) {
++        prefixPath = QStringLiteral("/usr");
++    }
++#endif
+ #elif defined(Q_OS_WIN)
+     HMODULE hModule = getWindowsModuleHandle();
+     const int kBufferSize = 4096;
diff --git a/srcpkgs/qt6-base/template b/srcpkgs/qt6-base/template
index bb043213a360..fad36fe8bc70 100644
--- a/srcpkgs/qt6-base/template
+++ b/srcpkgs/qt6-base/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-base'
 pkgname=qt6-base
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtbase-everywhere-src-${version}"
+wrksrc="qtbase-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_ARCHDATADIR=lib/qt6
@@ -27,8 +27,8 @@ short_desc="Cross-platform application and UI framework (QT6)"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
 homepage="https://www.qt.io"
-distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz"
-checksum=21a8aa9f07170e047270c668c8b037536f40226db7adbc529a0b41c3a3cb3ff2
+distfiles="https://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtbase-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=eb18d8fc5b5136ab0d177d89c54ec197363904fedb2aecb0d87033ce78ddffcc
 python_version=3
 
 if [ "$CROSS_BUILD" ]; then
@@ -84,10 +84,10 @@ qt6-gui_package() {
 	short_desc+=" - Gui"
 	pkg_install() {
 		vmove "usr/lib/libQt6Gui.so.*"
-		vmove "usr/lib/libQt6XcbQpa.so.*"
-		vmove "usr/lib/libQt6EglFSDeviceIntegration.so.*"
-		vmove "usr/lib/libQt6EglFsKmsGbmSupport.so.*"
-		vmove "usr/lib/libQt6EglFsKmsSupport.so.*"
+		vmove "usr/lib/libQt6XcbQpaPrivate.so.*"
+		vmove "usr/lib/libQt6EglFSDeviceIntegrationPrivate.so.*"
+		vmove "usr/lib/libQt6EglFsKmsGbmSupportPrivate.so.*"
+		vmove "usr/lib/libQt6EglFsKmsSupportPrivate.so.*"
 		vmove "usr/lib/libQt6OpenGL.so.*"
 		vmove usr/lib/qt6/plugins/generic
 		vmove usr/lib/qt6/plugins/platforms

From fcfa7c78e478144ad8008e5c83b1cceae844477b Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:45 +0200
Subject: [PATCH 04/25] qt6-charts: update to 6.2.0alpha.

---
 srcpkgs/qt6-charts/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-charts/template b/srcpkgs/qt6-charts/template
index 1645fe5b4507..1beaf0dbecfd 100644
--- a/srcpkgs/qt6-charts/template
+++ b/srcpkgs/qt6-charts/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-charts'
 pkgname=qt6-charts
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtcharts-everywhere-src-${version}"
+wrksrc="qtcharts-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-declarative-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - charts"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtcharts-everywhere-src-${version}.tar.xz"
-checksum=a245b8e1b3edd22c5319d8cf0ee18f95901cfc39e4f94b34b59befffc17af60a
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtcharts-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=294205bc1e855bb44a0e17c707b981c617fc08d55d071e1d02441ff5a4e7e676
 
 qt6-charts-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 0028f19ff4ea75b0c68e505bed2ac3a3119d04c1 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:51 +0200
Subject: [PATCH 05/25] qt6-declarative: update to 6.2.0alpha.

---
 srcpkgs/qt6-declarative/template | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/qt6-declarative/template b/srcpkgs/qt6-declarative/template
index a61861576499..bef006df96f0 100644
--- a/srcpkgs/qt6-declarative/template
+++ b/srcpkgs/qt6-declarative/template
@@ -1,20 +1,23 @@
 # Template file for 'qt6-declarative'
 pkgname=qt6-declarative
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtdeclarative-everywhere-src-${version}"
+wrksrc="qtdeclarative-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
-configure_args=" -DQT_HOST_PATH=/usr
- -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=true"
+configure_args=" -DQT_HOST_PATH=/usr"
 hostmakedepends="qt6-base-devel perl pkg-config wayland-devel
- qt6-declarative-devel"
+ qt6-shadertools-devel qt6-declarative-devel"
 makedepends="qt6-base-devel Vulkan-Headers"
 short_desc="Cross-platform application and UI framework - Declarative"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
 homepage="https://www.qt.io"
-distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtdeclarative-everywhere-src-${version}.tar.xz"
-checksum=805394307479ebca9899996af8357037c4f1ff8b783162ade0c5a05cea7ee2d2
+distfiles="https://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtdeclarative-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=4fd2d9448620586862e56149c43ef93b6dddcb60d6f211ab933bed984d1f1d8a
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=true"
+fi
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
@@ -34,9 +37,10 @@ qt6-declarative-tools_package() {
 	short_desc+=" - tools"
 	pkg_install() {
 		vmove usr/lib/qt6/plugins/qmltooling
-		for bin in qmlcachegen qmleasing qmlformat qmlimportscanner \
-			qmllint qmlplugindump qmlpreview qmlprofiler qmlscene \
-			qmltestrunner qmltime qmltyperegistrar; do
+		for bin in qmlcachegen qmlimportscanner qmltyperegistrar; do
+			vmove usr/lib/qt6/libexec/$bin
+		done
+		for bin in qmlformat qmllint qmlpreview qmlprofiler; do
 			vmove usr/lib/qt6/bin/$bin
 		done
 	}

From 7b311a0017ce60f4bfd8914e51049e9befc776b5 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:53 +0200
Subject: [PATCH 06/25] qt6-imageformats: update to 6.2.0alpha.

---
 srcpkgs/qt6-imageformats/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-imageformats/template b/srcpkgs/qt6-imageformats/template
index 45c34a253e53..8207913c89f9 100644
--- a/srcpkgs/qt6-imageformats/template
+++ b/srcpkgs/qt6-imageformats/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-imageformats'
 pkgname=qt6-imageformats
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtimageformats-everywhere-src-${version}"
+wrksrc="qtimageformats-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-base-devel"
@@ -11,5 +11,5 @@ short_desc="Cross-platform application and UI framework - imageformats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtimageformats-everywhere-src-${version}.tar.xz"
-checksum=d7ee9d96ed6958241acde2b5d505f89d7dcfd710d0944b100ac6de203b0e107d
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtimageformats-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=6e4a3690b5de83733f9a4ad492784b33748684cd99e98aa7cd3c30c97faa2bae

From 34d09a16564ded75f1bb51e7cc3869b54afe7cbb Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:56 +0200
Subject: [PATCH 07/25] qt6-lottie: update to 6.2.0alpha.

---
 srcpkgs/qt6-lottie/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-lottie/template b/srcpkgs/qt6-lottie/template
index 775396bcac64..0a55513d0cb8 100644
--- a/srcpkgs/qt6-lottie/template
+++ b/srcpkgs/qt6-lottie/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-lottie'
 pkgname=qt6-lottie
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtlottie-everywhere-src-${version}"
+wrksrc="qtlottie-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-base-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - lottie"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtlottie-everywhere-src-${version}.tar.xz"
-checksum=df8ee26ea3aa4524f82703f602449d990724ca232cb98498746e8f49e23037ed
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtlottie-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=07e01a8993866abcb372cc8569d299f79cc6a91ebf66a5a85a5abe722527eadc
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 6073498f41816f1a870e018f8f51b94949bf7460 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:58:58 +0200
Subject: [PATCH 08/25] qt6-networkauth: update to 6.2.0alpha.

---
 srcpkgs/qt6-networkauth/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-networkauth/template b/srcpkgs/qt6-networkauth/template
index 8ffb44cad94a..654a2bb0fd69 100644
--- a/srcpkgs/qt6-networkauth/template
+++ b/srcpkgs/qt6-networkauth/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-networkauth'
 pkgname=qt6-networkauth
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtnetworkauth-everywhere-src-${version}"
+wrksrc="qtnetworkauth-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-base-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - networkauth"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtnetworkauth-everywhere-src-${version}.tar.xz"
-checksum=4e1b7f6584fe21e8a04ee6d9c5761e5858587e8bab01a522ee53f82dfd1efdd7
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtnetworkauth-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=75784d38da1d476b209c3151dbd9afda0708fdcfbfd48d09a520754a442ccda6
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 08e90f20b9c6a9144bdfd0838370851ede390838 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:02 +0200
Subject: [PATCH 09/25] qt6-qt5compat: update to 6.2.0alpha.

---
 srcpkgs/qt6-qt5compat/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-qt5compat/template b/srcpkgs/qt6-qt5compat/template
index d64b37bff575..0567c1b374e5 100644
--- a/srcpkgs/qt6-qt5compat/template
+++ b/srcpkgs/qt6-qt5compat/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-qt5compat'
 pkgname=qt6-qt5compat
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qt5compat-everywhere-src-${version}"
+wrksrc="qt5compat-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="qt6-base-devel perl"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - Qt5 Compatibilty Compo
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qt5compat-everywhere-src-${version}.tar.xz"
-checksum=7d08f1044cb09f8b3ee31af0de25771bae72936a6f9a699134d9b8d29dfaa5a7
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qt5compat-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=210dbe079b51ba47841219fde59ad11a8e77a4a851a73b77121153ed03afb473
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 6f67688b5c75a273ccec942a7fb45a82e7824d9c Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:12 +0200
Subject: [PATCH 10/25] qt6-quick3d: update to 6.2.0alpha.

---
 srcpkgs/qt6-quick3d/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-quick3d/template b/srcpkgs/qt6-quick3d/template
index d75bd8c086ca..673ec342450f 100644
--- a/srcpkgs/qt6-quick3d/template
+++ b/srcpkgs/qt6-quick3d/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-quick3d'
 pkgname=qt6-quick3d
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtquick3d-everywhere-src-${version}"
+wrksrc="qtquick3d-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="perl qt6-base-devel qt6-declarative-devel qt6-shadertools-devel"
@@ -12,8 +12,8 @@ short_desc="Cross-platform application and UI framework - Quick3d"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-or-later"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtquick3d-everywhere-src-${version}.tar.xz"
-checksum=94b45ae9d08495d701cfb586f1f85b12a1a10f8c29865de0d427a2366ae4507c
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtquick3d-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=b60012e2d3d4b9d62cbddd84b56dcae985bc7b111b551d0eadd06551772db806
 
 if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
 	# possibly a qt6-shadertools bug, actually

From d7ebf34d78a5eb5bbdf0ef7671e609382468cb55 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:16 +0200
Subject: [PATCH 11/25] qt6-quickcontrols2: update to 6.2.0alpha.

---
 srcpkgs/qt6-quickcontrols2/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-quickcontrols2/template b/srcpkgs/qt6-quickcontrols2/template
index ab57102a19cf..efd4972c669c 100644
--- a/srcpkgs/qt6-quickcontrols2/template
+++ b/srcpkgs/qt6-quickcontrols2/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-quickcontrols2'
 pkgname=qt6-quickcontrols2
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtquickcontrols2-everywhere-src-${version}"
+wrksrc="qtquickcontrols2-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="perl qt6-base-devel qt6-declarative-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - quickcontrols2"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-2.0-or-later, LGPL-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=7ebc99724bedd97a2c6a606ba2726feb66bb76eb9f30262ae13cd246f5665ea4
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtquickcontrols2-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=40c8af99adb342c45809bfe06c73ac7d923433518cb7bc7997f6fc40e169c4c5
 
 qt6-quickcontrols2-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel"

From bd636b7a59adad7671b098a74b46a96fc643ef5d Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:18 +0200
Subject: [PATCH 12/25] qt6-quicktimeline: update to 6.2.0alpha.

---
 srcpkgs/qt6-quicktimeline/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-quicktimeline/template b/srcpkgs/qt6-quicktimeline/template
index e9c02e2440c2..bc0225e767bc 100644
--- a/srcpkgs/qt6-quicktimeline/template
+++ b/srcpkgs/qt6-quicktimeline/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-quicktimeline'
 pkgname=qt6-quicktimeline
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtquicktimeline-everywhere-src-${version}"
+wrksrc="qtquicktimeline-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="perl qt6-base-devel qt6-declarative-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - quicktimeline"
 maintainer="John <me@johnnynator.dev>"
 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=40fb664eadf295001d2c49c333032406b6f45f14acddee7e72b8d6c5ea26a6a2
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtquicktimeline-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=e5b024adf9ae291004b5273465757583796c989f317e3bc62366953f02c7a89a
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 98e438415f6e17803a530d079d67f1f7551dff1c Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:21 +0200
Subject: [PATCH 13/25] qt6-scxml: update to 6.2.0alpha.

---
 srcpkgs/qt6-scxml/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-scxml/template b/srcpkgs/qt6-scxml/template
index e3a594de99e3..f8324f91a3d7 100644
--- a/srcpkgs/qt6-scxml/template
+++ b/srcpkgs/qt6-scxml/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-scxml'
 pkgname=qt6-scxml
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtscxml-everywhere-src-${version}"
+wrksrc="qtscxml-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl qt6-declarative-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - scxml"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtscxml-everywhere-src-${version}.tar.xz"
-checksum=ffeb650458bb60bb076ac3460588f77f7c841b4f4b1de706960b9b34984dc528
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtscxml-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=e29a333477e84d407421096fd2d90bccfb95ae4b8d0ed0d0785586e56cfa9d0c
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 583e2350be1253b38877afb8a1254284e5ec2359 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:23 +0200
Subject: [PATCH 14/25] qt6-shadertools: update to 6.2.0alpha.

---
 srcpkgs/qt6-shadertools/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-shadertools/template b/srcpkgs/qt6-shadertools/template
index 9b55463602b7..42fa436708a6 100644
--- a/srcpkgs/qt6-shadertools/template
+++ b/srcpkgs/qt6-shadertools/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-shadertools'
 pkgname=qt6-shadertools
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtshadertools-everywhere-src-${version}"
+wrksrc="qtshadertools-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="perl qt6-base-devel"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework - shadertools"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-or-later"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtshadertools-everywhere-src-${version}.tar.xz"
-checksum=324a9f6f87d4e82c0b5f80e6301c7dbc47617dbe752f3e3726c141bd85855512
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtshadertools-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=08144fa6d96c4382e47b3203d27f999b86d4ed1f1b828e09a48614f32b12ee59
 
 qt6-shadertools-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"

From 41fa91fdc3a1bca9120cf848e6afdfd0e2f803a5 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:26 +0200
Subject: [PATCH 15/25] qt6-svg: update to 6.2.0alpha.

---
 srcpkgs/qt6-svg/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-svg/template b/srcpkgs/qt6-svg/template
index 9042cc483ff9..c37793e0613b 100644
--- a/srcpkgs/qt6-svg/template
+++ b/srcpkgs/qt6-svg/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-svg'
 pkgname=qt6-svg
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtsvg-everywhere-src-${version}"
+wrksrc="qtsvg-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="qt6-base-devel perl"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework (QT6) - qt6-svg componen
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0, GPL-2.0-or-later, LGPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtsvg-everywhere-src-${version}.tar.xz"
-checksum=e2f62385c940de76dea480a2615c9b11dd2bf0cec2cc778096c0bebfa1ef15ec
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtsvg-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=dd7c5312b8430130103d91908bd5f19fa2c6bf01c76acb757e5974603b3769c8
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From 95b0f9af9ad7f5c8dc9f9495e014fa7c1f4e0607 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:30 +0200
Subject: [PATCH 16/25] qt6-tools: update to 6.2.0alpha.

---
 srcpkgs/qt6-tools/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-tools/template b/srcpkgs/qt6-tools/template
index 16b20c72d05a..0e7a9126bcf7 100644
--- a/srcpkgs/qt6-tools/template
+++ b/srcpkgs/qt6-tools/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-tools'
 pkgname=qt6-tools
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qttools-everywhere-src-${version}"
+wrksrc="qttools-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="qt6-base-devel perl"
@@ -11,8 +11,8 @@ short_desc="Cross-platform application and UI framework (QT6) - qt6-tools compon
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.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=cba8d9a836e83b7a5e6d068239635b261f7ca4a059992b2b66cd546380091273
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qttools-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=32596431f71f7b4bbcd05e86c0490f97bf68b66e560337e5418a7faee5d86e84
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From c8784540312c4ab6c946b9e623571f4db7dc0c77 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:32 +0200
Subject: [PATCH 17/25] qt6-translations: update to 6.2.0alpha.

---
 srcpkgs/qt6-translations/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-translations/template b/srcpkgs/qt6-translations/template
index 088d21f4bdc8..c8be8fe68426 100644
--- a/srcpkgs/qt6-translations/template
+++ b/srcpkgs/qt6-translations/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-translations'
 pkgname=qt6-translations
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qttranslations-everywhere-src-${version}"
+wrksrc="qttranslations-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr "
 hostmakedepends="qt6-base-devel qt6-tools-devel perl"
@@ -11,5 +11,5 @@ short_desc="Cross-platform application and UI framework - translations"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qttranslations-everywhere-src-${version}.tar.xz"
-checksum=6cf3d191335a6b3a64864e7ba41819e7be461d1d2861d643babe836f81d4c393
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qttranslations-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=0fecd5d3e8f8823d1c77e95fbbac80c084b08df5a02f06fe71b2af6ceceb87ad

From f61a7493a0ed503ddeee391a47353376cb3854dc Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:35 +0200
Subject: [PATCH 18/25] qt6-virtualkeyboard: update to 6.2.0alpha.

---
 srcpkgs/qt6-virtualkeyboard/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/qt6-virtualkeyboard/template b/srcpkgs/qt6-virtualkeyboard/template
index 07c4a4475f2e..c5034fa3e95d 100644
--- a/srcpkgs/qt6-virtualkeyboard/template
+++ b/srcpkgs/qt6-virtualkeyboard/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-virtualkeyboard'
 pkgname=qt6-virtualkeyboard
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtvirtualkeyboard-everywhere-src-${version}"
+wrksrc="qtvirtualkeyboard-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr"
 hostmakedepends="perl pkg-config qt6-declarative-devel"
@@ -13,8 +13,8 @@ short_desc="Cross-platform application and UI framework - virtualkeyboard"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
-distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtvirtualkeyboard-everywhere-src-${version}.tar.xz"
-checksum=246d1acdcd953819b09b1da22bd359335d145d8a3550d9e827dc1fd27b6bd3ff
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtvirtualkeyboard-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=1675dad7cd41fddb593d1fcf0a6d2a7c0f27ae9962232cba8a0a94dd38044320
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"

From e2f270803e509a6f4ad715dbd44d72d4080358c8 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Thu, 24 Jun 2021 20:59:37 +0200
Subject: [PATCH 19/25] qt6-wayland: update to 6.2.0alpha.

---
 srcpkgs/qt6-wayland/template | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/qt6-wayland/template b/srcpkgs/qt6-wayland/template
index fff2a9b1e8e4..77c5eecd2551 100644
--- a/srcpkgs/qt6-wayland/template
+++ b/srcpkgs/qt6-wayland/template
@@ -1,8 +1,8 @@
 # Template file for 'qt6-wayland'
 pkgname=qt6-wayland
-version=6.1.1
+version=6.2.0alpha
 revision=1
-wrksrc="qtwayland-everywhere-src-${version}"
+wrksrc="qtwayland-everywhere-src-${version/alpha/-alpha}"
 build_style=cmake
 configure_args="-DQT_HOST_PATH=/usr -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=true"
 hostmakedepends="qt6-base-devel perl pkg-config wayland-devel qt6-wayland-devel"
@@ -14,8 +14,8 @@ short_desc="Cross-platform application and UI framework - Wayland"
 maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-only with Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
 homepage="https://www.qt.io"
-distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwayland-everywhere-src-${version}.tar.xz"
-checksum=2cfb2b5403eb2037670549dd2d3968eaa30a9ce523dd08314c5bc677fdf27db6
+distfiles="https://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtwayland-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=71209da169478c6ea3555f8e55edd9fe9d758ac9826c404af2a5e912a8fcfa5d
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
@@ -33,7 +33,7 @@ qt6-wayland-devel_package() {
 		vmove usr/include
 		vmove usr/lib/cmake
 		vmove usr/lib/qt6/mkspecs
-		vmove usr/lib/qt6/bin/qtwaylandscanner
+		vmove usr/lib/qt6/libexec/qtwaylandscanner
 		vmove "usr/lib/*.so"
 		vmove "usr/lib/*.prl"
 	}

From b322227f06e9774a872f2d98040d705cf1365b41 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 26 Jun 2021 12:16:54 +0200
Subject: [PATCH 20/25] New package: qt6-serialport-6.2.0alpha

---
 common/shlibs                   |  1 +
 srcpkgs/qt6-serialport-devel    |  1 +
 srcpkgs/qt6-serialport/template | 27 +++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 120000 srcpkgs/qt6-serialport-devel
 create mode 100644 srcpkgs/qt6-serialport/template

diff --git a/common/shlibs b/common/shlibs
index 8a7eef8df8c3..eb023b6275aa 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2060,6 +2060,7 @@ libQt6Help.so.6 qt6-tools-6.1.0_1
 libQt6UiTools.so.6 qt6-tools-6.1.0_1
 libQt6HunspellInputMethod.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6VirtualKeyboard.so.6 qt6-virtualkeyboard-6.1.0_1
+libQt6SerialPort.so.6 qt6-serialport-6.2.0alpha_1
 libnpth.so.0 npth-1.1_1
 libnpupnp.so.4 libnpupnp-4.0.2_1
 libglfw.so.3 glfw-3.0.4_1
diff --git a/srcpkgs/qt6-serialport-devel b/srcpkgs/qt6-serialport-devel
new file mode 120000
index 000000000000..f6a498cf2653
--- /dev/null
+++ b/srcpkgs/qt6-serialport-devel
@@ -0,0 +1 @@
+qt6-serialport
\ No newline at end of file
diff --git a/srcpkgs/qt6-serialport/template b/srcpkgs/qt6-serialport/template
new file mode 100644
index 000000000000..45e5915979cc
--- /dev/null
+++ b/srcpkgs/qt6-serialport/template
@@ -0,0 +1,27 @@
+# Template file for 'qt6-serialport'
+pkgname=qt6-serialport
+version=6.2.0alpha
+revision=1
+wrksrc="qtserialport-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr"
+hostmakedepends="perl qt6-base-devel pkg-config"
+makedepends="qt6-base-devel"
+short_desc="Cross-platform application and UI framework - serialport"
+maintainer="John <me@johnnynator.dev>"
+license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtserialport-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=51129c6964c42668e2ea205f1fcb0e0ea099aaeae74607112957343afb531863
+
+qt6-serialport-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+	}
+}

From cd74e1273d5b658e7e46bfc6654c55e55a0d213f Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 26 Jun 2021 12:23:48 +0200
Subject: [PATCH 21/25] New package: qt6-websockets-6.2.0alpha

---
 common/shlibs                   |  1 +
 srcpkgs/qt6-websockets-devel    |  1 +
 srcpkgs/qt6-websockets/template | 27 +++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 120000 srcpkgs/qt6-websockets-devel
 create mode 100644 srcpkgs/qt6-websockets/template

diff --git a/common/shlibs b/common/shlibs
index eb023b6275aa..69227af2267f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2061,6 +2061,7 @@ libQt6UiTools.so.6 qt6-tools-6.1.0_1
 libQt6HunspellInputMethod.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6VirtualKeyboard.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6SerialPort.so.6 qt6-serialport-6.2.0alpha_1
+libQt6WebSockets.so.6 qt6-websockets-6.2.0alpha_1
 libnpth.so.0 npth-1.1_1
 libnpupnp.so.4 libnpupnp-4.0.2_1
 libglfw.so.3 glfw-3.0.4_1
diff --git a/srcpkgs/qt6-websockets-devel b/srcpkgs/qt6-websockets-devel
new file mode 120000
index 000000000000..a3c674e42954
--- /dev/null
+++ b/srcpkgs/qt6-websockets-devel
@@ -0,0 +1 @@
+qt6-websockets
\ No newline at end of file
diff --git a/srcpkgs/qt6-websockets/template b/srcpkgs/qt6-websockets/template
new file mode 100644
index 000000000000..6177426904ae
--- /dev/null
+++ b/srcpkgs/qt6-websockets/template
@@ -0,0 +1,27 @@
+# Template file for 'qt6-websockets'
+pkgname=qt6-websockets
+version=6.2.0alpha
+revision=1
+wrksrc="qtwebsockets-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr"
+hostmakedepends="perl qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-devel qt6-declarative-devel"
+short_desc="Cross-platform application and UI framework - websockets"
+maintainer="John <me@johnnynator.dev>"
+license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtwebsockets-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=f8277d05192ee5f823356a6c6b72ea816a0187f6a0915b783605bee9549a8761
+
+qt6-websockets-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+	}
+}

From 157a42de6ef78b662b4ae568e2b9440a7bc194c1 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 26 Jun 2021 12:25:04 +0200
Subject: [PATCH 22/25] New package: qt6-webchannel-6.2.0alpha

---
 common/shlibs                   |  1 +
 srcpkgs/qt6-webchannel-devel    |  1 +
 srcpkgs/qt6-webchannel/template | 28 ++++++++++++++++++++++++++++
 3 files changed, 30 insertions(+)
 create mode 120000 srcpkgs/qt6-webchannel-devel
 create mode 100644 srcpkgs/qt6-webchannel/template

diff --git a/common/shlibs b/common/shlibs
index 69227af2267f..e6d1ef7157b4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2062,6 +2062,7 @@ libQt6HunspellInputMethod.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6VirtualKeyboard.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6SerialPort.so.6 qt6-serialport-6.2.0alpha_1
 libQt6WebSockets.so.6 qt6-websockets-6.2.0alpha_1
+libQt6WebChannel.so.6 qt6-webchannel-6.2.0alpha_1
 libnpth.so.0 npth-1.1_1
 libnpupnp.so.4 libnpupnp-4.0.2_1
 libglfw.so.3 glfw-3.0.4_1
diff --git a/srcpkgs/qt6-webchannel-devel b/srcpkgs/qt6-webchannel-devel
new file mode 120000
index 000000000000..03e8b23d785d
--- /dev/null
+++ b/srcpkgs/qt6-webchannel-devel
@@ -0,0 +1 @@
+qt6-webchannel
\ No newline at end of file
diff --git a/srcpkgs/qt6-webchannel/template b/srcpkgs/qt6-webchannel/template
new file mode 100644
index 000000000000..a1d217810c90
--- /dev/null
+++ b/srcpkgs/qt6-webchannel/template
@@ -0,0 +1,28 @@
+# Template file for 'qt6-webchannel'
+pkgname=qt6-webchannel
+version=6.2.0alpha
+revision=1
+wrksrc="qtwebchannel-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr"
+hostmakedepends="perl qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-devel qt6-declarative-devel qt6-websockets-devel"
+short_desc="Cross-platform application and UI framework - webchannel"
+maintainer="John <me@johnnynator.dev>"
+license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtwebchannel-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=68fd3f0508b6df69b5736d7e142509131f3728630abdcd432a06430e5ca8920c
+
+qt6-webchannel-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1
+	 qt6-websockets-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+	}
+}

From 0dd36f8635e032ca87f03eab1cc64831b791fb01 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 26 Jun 2021 21:08:25 +0200
Subject: [PATCH 23/25] New package: qt6-multimedia-6.2.0alpha

---
 srcpkgs/qt6-multimedia-devel    |  1 +
 srcpkgs/qt6-multimedia/template | 29 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 120000 srcpkgs/qt6-multimedia-devel
 create mode 100644 srcpkgs/qt6-multimedia/template

diff --git a/srcpkgs/qt6-multimedia-devel b/srcpkgs/qt6-multimedia-devel
new file mode 120000
index 000000000000..9343446502d0
--- /dev/null
+++ b/srcpkgs/qt6-multimedia-devel
@@ -0,0 +1 @@
+qt6-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt6-multimedia/template b/srcpkgs/qt6-multimedia/template
new file mode 100644
index 000000000000..41a25959361e
--- /dev/null
+++ b/srcpkgs/qt6-multimedia/template
@@ -0,0 +1,29 @@
+# Template file for 'qt6-multimedia'
+pkgname=qt6-multimedia
+version=6.2.0alpha
+revision=1
+wrksrc="qtmultimedia-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr -DQT_FEATURE_gstreamer=ON"
+hostmakedepends="perl qt6-declarative-devel pkg-config
+ qt6-shadertools-devel"
+makedepends="qt6-declarative-devel qt6-quickcontrols2-devel
+ qt6-shadertools-devel libglib-devel gst-plugins-base1-devel"
+short_desc="Cross-platform application and UI framework - multimedia"
+maintainer="John <me@johnnynator.dev>"
+license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtmultimedia-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=9241fe9456c04ba1feaffd74883d37155c0218baf8aa9fc3dd54642791f378cd
+
+qt6-multimedia-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+	}
+}

From c58ed734db40dc0aa08b551c0b53be44c517f2ce Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sun, 27 Jun 2021 00:35:33 +0200
Subject: [PATCH 24/25] New package: qt6-webengine-6.2.0alpha

---
 srcpkgs/qt6-webengine-devel                   |   1 +
 srcpkgs/qt6-webengine/files/resolv_compat.h   |  29 ++
 ...-compilation-support-to-cmake-builds.patch | 474 ++++++++++++++++++
 .../patches/0001-mus-cstring.patch            |  10 +
 ...use-target-C-XX-FLAGS-for-host-cmake.patch |  26 +
 .../patches/0002-None-no-debug.patch          |  11 +
 ...reg.h-to-get-__WORDSIZE-on-musl-libc.patch |  26 +
 .../patches/0003-musl-dispatch-to-musl.patch  | 103 ++++
 .../patches/0004-musl-no-mallinfo.patch       |  39 ++
 .../patches/0005-musl-off_t.patch             |  10 +
 .../patches/0006-musl-pread-pwrite.patch      |  18 +
 .../patches/0008-musl-resolve.patch           |  26 +
 .../patches/0009-musl-siginfo_t.patch         |  18 +
 .../patches/0010-musl-stackstart.patch        |  20 +
 .../patches/0011-musl-sandbox.patch           |  71 +++
 ...0012-musl-chromium-default-stacksize.patch |  15 +
 .../0014-musl-cross-no-asm_ptrace_h.patch     |  30 ++
 .../patches/0015-no-glibc-cmake-check.patch   |  14 +
 .../patches/0016-qt-musl-execinfo.patch       | 106 ++++
 .../0017-qt-musl-thread-stacksize.patch       |  26 +
 .../patches/0018-sandbox-membarrier.patch     |  60 +++
 .../patches/0020-msgvec-push_back.patch       |  14 +
 .../patches/0021-sandbox-sched_getparam.patch |  26 +
 .../0022-canonicalize-file-name-musl.patch    |  11 +
 .../patches/0089-enable-ppc64.patch           |  37 ++
 .../qt6-webengine/patches/0110-size_t.patch   |  16 +
 .../patches/0111-armv7l-neon.patch            |  10 +
 .../patches/0112-arm-user_vfp.patch           |  20 +
 .../patches/0113-arm-elf_auxv_t.patch         |  18 +
 .../qt6-webengine/patches/0114-time64.patch   |  89 ++++
 .../patches/0121-glibc-2.33.patch             | 144 ++++++
 srcpkgs/qt6-webengine/template                |  93 ++++
 32 files changed, 1611 insertions(+)
 create mode 120000 srcpkgs/qt6-webengine-devel
 create mode 100644 srcpkgs/qt6-webengine/files/resolv_compat.h
 create mode 100644 srcpkgs/qt6-webengine/patches/0001-Add-cross-compilation-support-to-cmake-builds.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0001-mus-cstring.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0002-Do-not-use-target-C-XX-FLAGS-for-host-cmake.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0002-None-no-debug.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0002-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0003-musl-dispatch-to-musl.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0004-musl-no-mallinfo.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0005-musl-off_t.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0006-musl-pread-pwrite.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0008-musl-resolve.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0009-musl-siginfo_t.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0010-musl-stackstart.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0011-musl-sandbox.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0012-musl-chromium-default-stacksize.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0014-musl-cross-no-asm_ptrace_h.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0015-no-glibc-cmake-check.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0016-qt-musl-execinfo.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0017-qt-musl-thread-stacksize.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0018-sandbox-membarrier.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0020-msgvec-push_back.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0021-sandbox-sched_getparam.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0022-canonicalize-file-name-musl.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0089-enable-ppc64.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0110-size_t.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0111-armv7l-neon.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0112-arm-user_vfp.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0113-arm-elf_auxv_t.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0114-time64.patch
 create mode 100644 srcpkgs/qt6-webengine/patches/0121-glibc-2.33.patch
 create mode 100644 srcpkgs/qt6-webengine/template

diff --git a/srcpkgs/qt6-webengine-devel b/srcpkgs/qt6-webengine-devel
new file mode 120000
index 000000000000..8e4d1b99c587
--- /dev/null
+++ b/srcpkgs/qt6-webengine-devel
@@ -0,0 +1 @@
+qt6-webengine
\ No newline at end of file
diff --git a/srcpkgs/qt6-webengine/files/resolv_compat.h b/srcpkgs/qt6-webengine/files/resolv_compat.h
new file mode 100644
index 000000000000..4f0e852a19d0
--- /dev/null
+++ b/srcpkgs/qt6-webengine/files/resolv_compat.h
@@ -0,0 +1,29 @@
+#if !defined(__GLIBC__)
+/***************************************************************************
+ * resolv_compat.h
+ *
+ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc
+ * Note: res_init() is actually deprecated according to
+ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
+ **************************************************************************/
+#include <string.h>
+
+static inline int res_ninit(res_state statp)
+{
+	int rc = res_init();
+	if (statp != &_res) {
+		memcpy(statp, &_res, sizeof(*statp));
+	}
+	return rc;
+}
+
+static inline int res_nclose(res_state statp)
+{
+	if (!statp)
+		return -1;
+	if (statp != &_res) {
+		memset(statp, 0, sizeof(*statp));
+	}
+	return 0;
+}
+#endif
diff --git a/srcpkgs/qt6-webengine/patches/0001-Add-cross-compilation-support-to-cmake-builds.patch b/srcpkgs/qt6-webengine/patches/0001-Add-cross-compilation-support-to-cmake-builds.patch
new file mode 100644
index 000000000000..c70f219e5f4d
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0001-Add-cross-compilation-support-to-cmake-builds.patch
@@ -0,0 +1,474 @@
+From 7a22a424ff2997f644d930050635db214c068d10 Mon Sep 17 00:00:00 2001
+From: Michal Klocek <michal.klocek@qt.io>
+Date: Sun, 23 May 2021 17:39:28 +0200
+Subject: [PATCH 1/2] Add cross compilation support to cmake builds
+
+Add arm cross-compile basic support. CMake does not
+support host builds. However we do host build with gn and
+changing that would require an extra effort to keep all necessary
+changes with Chromium upstream. Therefore let gn to perform
+the host build for required tools and just feed gn with all the
+build data.
+
+Add new build steps:
+
+* install gn into QT_HOST_PATH/libexec.
+* run hostBuild project to get native architecture and compiler
+* call PkgConfigHost to pass pkg-config paths to gn
+* create wrapper script for host pkg-config to escape
+  yocto shell pkg config exports
+
+This change also splits gn toolchain into 3 toolchains host,target,v8
+Now hostBuild provides host and v8 toolchain in case of cross compile.
+
+The build optimizations will follow in another patch.
+
+Note this is tested only with yocto based images.
+
+Pick-to: dev
+Task-number: QTBUG-91760
+Change-Id: Ic2bea12229acc71fbd36a848e9ed4fed7e14b485
+---
+ CMakeLists.txt                           | 37 ++++++++++++++++--
+ cmake/FindGn.cmake                       |  9 +++--
+ cmake/FindNinja.cmake                    |  4 +-
+ cmake/FindPkgConfigHost.cmake            | 40 ++++++++++++++++++++
+ cmake/Functions.cmake                    | 45 ++++++++++++++++++++++
+ configure.cmake                          | 10 ++++-
+ src/core/CMakeLists.txt                  | 48 ++++++++++++++++++------
+ src/core/api/configure.cmake             | 10 ++---
+ src/core/configure/BUILD.toolchain.gn.in | 32 ++--------------
+ src/core/configure/CMakeLists.txt        | 35 +++++++++++++++++
+ 10 files changed, 215 insertions(+), 55 deletions(-)
+ create mode 100644 cmake/FindPkgConfigHost.cmake
+ create mode 100644 src/core/configure/CMakeLists.txt
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8a3ff75c..2a93dca5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,6 +63,7 @@ add_subdirectory(src/process)
+ add_subdirectory(src/webenginewidgets)
+ add_subdirectory(src/webenginequick)
+ qt_build_repo_end()
++get_install_config(installConfig)
+ 
+ ### NINJA
+ 
+@@ -94,9 +95,10 @@ if(NOT Gn_FOUND)
+                    -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+                    -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
+                    -DWEBENGINE_ROOT_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}
+-)
++    )
+ endif()
+ 
++
+ ### LIBS
+ 
+ # on windows source path can be specified without hard drive letter,
+@@ -115,12 +117,14 @@ endif()
+ list(TRANSFORM featureList PREPEND "-D")
+ list(APPEND libsCmakeArgs
+         "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
+-        "-DWEBENGINE_ROOT_BUILD_PATH=${CMAKE_CURRENT_BINARY_DIR}"
++        "-DWEBENGINE_ROOT_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}"
+         "-DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}"
+         "-DWEBENGINE_REPO_BUILD=TRUE"
+         "${featureList}"
+ )
+-
++if(QT_HOST_PATH)
++    list(APPEND libsCmakeArgs "-DQT_HOST_PATH=${QT_HOST_PATH}")
++endif()
+ if(LINUX)
+     set(cmd "${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/src")
+     file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/build.sh CONTENT "ulimit -n 4096 && ${cmd}\n")
+@@ -210,3 +214,30 @@ if(NOT QT_FEATURE_framework)
+         DESTINATION ${CMAKE_INSTALL_PREFIX}
+     )
+ endif()
++
++### CROSS BUILD SETUP
++
++# install gn for cross build
++# TODO: is this really needed, should we skip it and just build gn as host build ?
++if(LINUX AND NOT Gn_FOUND OR INSTALL_GN)
++    set(INSTALL_GN 1 CACHE INTERNAL "")
++    install(
++        PROGRAMS ${installDir}/bin/gn
++        CONFIGURATIONS ${installConfig}
++        RUNTIME DESTINATION "${INSTALL_LIBEXECDIR}"
++    )
++endif()
++
++if(CMAKE_CROSSCOMPILING)
++    externalproject_add(hostBuild
++        SOURCE_DIR  ${CMAKE_CURRENT_LIST_DIR}/src/core/configure
++        BINARY_DIR  ${CMAKE_CURRENT_BINARY_DIR}/configure
++        PREFIX      cross
++        USES_TERMINAL_BUILD ON
++        CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${QT_HOST_PATH}/lib/cmake/Qt6/qt.toolchain.cmake
++                   -DWEBENGINE_ROOT_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}
++                   -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}
++                   -DGN_TARGET_CPU=${TEST_architecture_arch}
++    )
++    externalproject_add_stepdependencies(libs install hostBuild)
++endif()
+diff --git a/cmake/FindGn.cmake b/cmake/FindGn.cmake
+index 12a90778..abfa0fe2 100644
+--- a/cmake/FindGn.cmake
++++ b/cmake/FindGn.cmake
+@@ -1,9 +1,10 @@
+ if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
+-    set(WEBENGINE_ROOT_BUILD_DIR  ${CMAKE_CURRENT_BINARY_DIR}/../..)
++    set(WEBENGINE_ROOT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
++endif()
++find_program(Gn_EXECUTABLE NAMES gn PATHS "${WEBENGINE_ROOT_BUILD_DIR}/install/bin" NO_DEFAULT_PATH)
++if(NOT QT_HOST_PATH STREQUAL "")
++   find_program(Gn_EXECUTABLE NAMES gn PATHS ${QT_HOST_PATH}/${INSTALL_LIBEXECDIR} NO_DEFAULT_PATH)
+ endif()
+-
+-set(CMAKE_PROGRAM_PATH ${WEBENGINE_ROOT_BUILD_DIR}/install/bin)
+-
+ find_program(Gn_EXECUTABLE NAMES gn)
+ 
+ if(Gn_EXECUTABLE)
+diff --git a/cmake/FindNinja.cmake b/cmake/FindNinja.cmake
+index 3615d58b..720e7326 100644
+--- a/cmake/FindNinja.cmake
++++ b/cmake/FindNinja.cmake
+@@ -1,8 +1,8 @@
+ if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
+-    set(WEBENGINE_ROOT_BUILD_DIR  ${CMAKE_CURRENT_BINARY_DIR}/..)
++    set(WEBENGINE_ROOT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+ 
+-set(CMAKE_PROGRAM_PATH ${WEBENGINE_ROOT_BUILD_DIR}/install/bin)
++find_program(Ninja_EXECUTABLE NAMES ninja ninja-build PATHS "${WEBENGINE_ROOT_BUILD_DIR}/install/bin" NO_DEFAULT_PATH)
+ find_program(Ninja_EXECUTABLE NAMES ninja ninja-build)
+ 
+ if(Ninja_EXECUTABLE)
+diff --git a/cmake/FindPkgConfigHost.cmake b/cmake/FindPkgConfigHost.cmake
+new file mode 100644
+index 00000000..de021638
+--- /dev/null
++++ b/cmake/FindPkgConfigHost.cmake
+@@ -0,0 +1,40 @@
++# this is just simply pkg config wrapper to pass executable path to gn
++
++if(CMAKE_CROSSCOMPILING)
++   # find pkg-config, use PKG_CONFIG_HOST if set
++   if((NOT PKG_CONFIG_HOST_EXECUTABLE) AND (NOT "$ENV{PKG_CONFIG_HOST}" STREQUAL ""))
++       set(PKG_CONFIG_HOST_EXECUTABLE "$ENV{PKG_CONFIG_HOST}" CACHE FILEPATH "pkg-config host executable")
++   endif()
++
++   find_program(PKG_CONFIG_HOST_EXECUTABLE NAMES "pkg-config" DOC "pkg-config executable"
++       NO_SYSTEM_ENVIRONMENT_PATH
++       NO_CMAKE_FIND_ROOT_PATH
++   )
++
++   if(PKG_CONFIG_HOST_EXECUTABLE)
++       mark_as_advanced(PKG_CONFIG_HOST_EXECUTABLE)
++       execute_process(COMMAND ${PKG_CONFIG_HOST_EXECUTABLE} --version
++           OUTPUT_VARIABLE PKG_CONFIG_HOST_VERSION_STRING
++           OUTPUT_STRIP_TRAILING_WHITESPACE
++           ERROR_QUIET)
++   endif ()
++
++   include(FindPackageHandleStandardArgs)
++   find_package_handle_standard_args(PkgConfigHost
++       FOUND_VAR PkgConfigHost_FOUND
++       VERSION_VAR PKG_CONFIG_HOST_VERSION_STRING
++       REQUIRED_VARS PKG_CONFIG_HOST_EXECUTABLE
++   )
++else() # if not corss build simply wrap FindPkgConfig
++   find_package(PkgConfig)
++   if(PKG_CONFIG_FOUND)
++       include(FindPackageHandleStandardArgs)
++       set(PKG_CONFIG_HOST_VERSION ${PKG_CONFIG_VERSION})
++       set(PKG_CONFIG_HOST_EXECUTABLE ${PKG_CONFIG_EXECUTABLE})
++       find_package_handle_standard_args(PkgConfigHost
++           FOUND_VAR PkgConfigHost_FOUND
++           VERSION_VAR PKG_CONFIG_HOST_VERSION_STRING
++           REQUIRED_VARS PKG_CONFIG_HOST_EXECUTABLE
++       )
++  endif()
++endif()
+diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
+index d29ed7a4..3cdfdee9 100644
+--- a/cmake/Functions.cmake
++++ b/cmake/Functions.cmake
+@@ -348,3 +348,48 @@ function(qt_internal_add_external_project_dependency_to_root_project name)
+ 
+     cmake_policy(POP)
+ endfunction()
++
++function(get_gn_arch result arch)
++   if("${arch}" STREQUAL "i386")
++      set(${result} "x86" PARENT_SCOPE)
++   elseif("${arch}" STREQUAL "x86_64")
++      set(${result} "x64" PARENT_SCOPE)
++   elseif("${arch}" STREQUAL "arm")
++      set(${result} "arm" PARENT_SCOPE)
++   elseif("${arch}" STREQUAL "arm64")
++      set(${result} "arm64" PARENT_SCOPE)
++   elseif("${arch}" STREQUAL "mipsel")
++      set(${result} "mipsel" PARENT_SCOPE)
++   elseif("${arch}" STREQUAL "mipsel64")
++      set(${result} "mips64el" PARENT_SCOPE)
++   else()
++      message(DEBUG "Unsupported achitecture: ${arch}")
++   endif()
++endfunction()
++
++function(get_v8_arch result targetArch)
++   set(list32 i386 arm mipsel)
++   if("${targetArch}" IN_LIST list32)
++       set(${result} "i386" PARENT_SCOPE)
++   else()
++       set(${result} "x86_64" PARENT_SCOPE)
++   endif()
++endfunction()
++
++function(configure_gn_toolchain name cpuType v8CpuType toolchainIn toolchainOut)
++    set(GN_TOOLCHAIN ${name})
++    get_gn_arch(GN_CPU ${cpuType})
++    get_gn_arch(GN_V8_CPU ${v8CpuType})
++    configure_file(${toolchainIn} ${toolchainOut}/BUILD.gn @ONLY)
++endfunction()
++
++function(create_pkg_config_host_wrapper wrapperName wrapperCmd)
++    file(WRITE ${wrapperName}
++        "#!/bin/sh\n"
++        "unset PKG_CONFIG_LIBDIR\n"
++        "unset PKG_CONFIG_PATH\n"
++        "unset PKG_CONFIG_SYSROOT_DIR\n"
++        "exec ${wrapperCmd} \"$@\""
++    )
++    file(CHMOD ${wrapperName} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE)
++endfunction()
+diff --git a/configure.cmake b/configure.cmake
+index 53392313..2a8552d7 100644
+--- a/configure.cmake
++++ b/configure.cmake
+@@ -333,9 +333,17 @@ endif()
+ assertTargets(webEngineError webEngineSupport Gui Widgets OpenGL OpenGLWidgets Quick Qml)
+ add_check_for_support(webEngineError webEngineSupport
+    MODULE QtWebEngine
+-   CONDITION (LINUX AND NOT CMAKE_CROSSCOMPILING) OR (WIN32 AND NOT WIN_ARM_64) OR (MACOS AND NOT MAC_UNIVERSAL)
++   CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR (MACOS AND NOT MAC_UNIVERSAL)
+    MESSAGE "Build can be done only on Linux, Windows or macOS."
+ )
++if(LINUX AND CMAKE_CROSSCOMPILING)
++   get_gn_arch(testArch ${TEST_architecture_arch})
++   add_check_for_support(webEngineError webEngineSupport
++       MODULE QtWebEngine
++       CONDITION testArch
++       MESSAGE "Cross compiling is not supported for ${TEST_architecture_arch}."
++   )
++endif()
+ add_check_for_support(webEngineError webEngineSupport
+    MODULE QtWebEngine
+    CONDITION NOT QT_FEATURE_static
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index fd935fe1..40d7fd8e 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -24,6 +24,11 @@ find_package(Nodejs 12.0)
+ find_package(PkgConfig)
+ if(PkgConfig_FOUND)
+     pkg_check_modules(XSCRNSAVER xscrnsaver)
++    find_package(PkgConfigHost)
++    if(CMAKE_CROSSCOMPILING)
++        create_pkg_config_host_wrapper("${buildDir}/pkg-config-host_wrapper.sh" "${PKG_CONFIG_HOST_EXECUTABLE}")
++        set(PKG_CONFIG_HOST_EXECUTABLE "${buildDir}/pkg-config-host_wrapper.sh")
++    endif()
+ endif()
+ 
+ get_target_property(qtWebEngineProcessName WebEngineCore QTWEBENGINEPROCESS_NAME)
+@@ -36,6 +41,24 @@ else()
+     set(configs ${CMAKE_BUILD_TYPE})
+ endif()
+ 
++##
++#   TOOLCHAIN SETUP
++##
++
++if(LINUX)
++    if(NOT CMAKE_CROSSCOMPILING) # delivered by hostBuild project
++        configure_gn_toolchain(host ${TEST_architecture_arch} ${TEST_architecture_arch}
++            ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
++            ${buildDir}/host_toolchain)
++        configure_gn_toolchain(v8 ${TEST_architecture_arch} ${TEST_architecture_arch}
++            ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
++            ${buildDir}/v8_toolchain)
++    endif()
++    configure_gn_toolchain(target ${TEST_architecture_arch} ${TEST_architecture_arch}
++        ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
++        ${buildDir}/target_toolchain)
++endif()
++
+ foreach(config ${configs})
+ 
+ ##
+@@ -250,12 +273,6 @@ foreach(config ${configs})
+     configure_gn_target(${buildGn} ${config}
+         ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.root.gn.in ${buildDir}/${config}/BUILD.gn)
+ 
+-##
+-#   TOOLCHAIN SETUP
+-##
+-
+-    configure_file(${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
+-        ${buildDir}/${config}/toolchain/BUILD.gn @ONLY)
+ 
+ ##
+ #   GN CALL PARAMETERS SETUP
+@@ -419,6 +436,15 @@ foreach(config ${configs})
+         )
+     endif()
+     if(LINUX)
++        get_gn_arch(cpu ${TEST_architecture_arch})
++        if(CMAKE_CROSSCOMPILING)
++            list(APPEND gnArgArg target_cpu="${cpu}")
++        else()
++            list(APPEND gnArgArg host_cpu="${cpu}")
++        endif()
++        if(CMAKE_SYSROOT)
++            list(APPEND gnArgArg target_sysroot="${CMAKE_SYSROOT}")
++        endif()
+         list(APPEND gnArgArg
+             use_cups=false
+             use_gio=false
+@@ -435,11 +461,11 @@ foreach(config ${configs})
+             ozone_platform_external=true
+             ozone_platform="qt"
+             ozone_extra_path="${CMAKE_CURRENT_LIST_DIR}/ozone/ozone_extra.gni"
+-            custom_toolchain="${buildDir}/${config}/toolchain:target"
+-            host_toolchain="${buildDir}/${config}/toolchain:host"
+-            host_cpu="x64"
+-            pkg_config="pkg-config"
+-            host_pkg_config="/usr/bin/pkg-config"
++            custom_toolchain="${buildDir}/target_toolchain:target"
++            host_toolchain="${buildDir}/host_toolchain:host"
++            v8_snapshot_toolchain="${buildDir}/v8_toolchain:v8"
++            pkg_config="${PKG_CONFIG_EXECUTABLE}"
++            host_pkg_config="${PKG_CONFIG_HOST_EXECUTABLE}"
+             use_glib=false
+         )
+         set(systemLibs libjpeg libpng freetype harfbuzz libevent libwebp libxml
+diff --git a/src/core/api/configure.cmake b/src/core/api/configure.cmake
+index 35d28e87..0cf46bf0 100644
+--- a/src/core/api/configure.cmake
++++ b/src/core/api/configure.cmake
+@@ -143,11 +143,11 @@ qt_configure_add_summary_entry(
+     CONDITION UNIX
+ )
+ qt_configure_end_summary_section() # end of "Qt WebEngineCore" section
+-qt_configure_add_report_entry(
+-    TYPE WARNING
+-    MESSAGE "Thumb instruction set is required to build ffmpeg for QtWebEngine."
+-    CONDITION LINUX AND QT_FEATURE_webengine_embedded_build AND NOT QT_FEATURE_webengine_system_ffmpeg AND ( TEST_architecture_arch STREQUAL arm ) AND NOT QT_FEATURE_webengine_arm_thumb
+-)
++#qt_configure_add_report_entry(
++#    TYPE WARNING
++#    MESSAGE "Thumb instruction set is required to build ffmpeg for QtWebEngine."
++#    CONDITION LINUX AND QT_FEATURE_webengine_embedded_build AND NOT QT_FEATURE_webengine_system_ffmpeg AND ( TEST_architecture_arch STREQUAL arm ) AND NOT QT_FEATURE_webengine_arm_thumb
++#)
+ qt_configure_add_report_entry(
+     TYPE WARNING
+     MESSAGE "V8 snapshot cannot be built. Most likely, the 32-bit host compiler does not work. Please make sure you have 32-bit devel environment installed."
+diff --git a/src/core/configure/BUILD.toolchain.gn.in b/src/core/configure/BUILD.toolchain.gn.in
+index e44fa42d..c1bf3845 100644
+--- a/src/core/configure/BUILD.toolchain.gn.in
++++ b/src/core/configure/BUILD.toolchain.gn.in
+@@ -1,6 +1,6 @@
+ import("//build/config/sysroot.gni")
+ import("//build/toolchain/gcc_toolchain.gni")
+-gcc_toolchain("host") {
++gcc_toolchain("@GN_TOOLCHAIN@") {
+   cc = "@CMAKE_C_COMPILER@"
+   cxx = "@CMAKE_CXX_COMPILER@"
+   ld = "@CMAKE_CXX_COMPILER@"
+@@ -9,34 +9,8 @@ gcc_toolchain("host") {
+   extra_cppflags = ""
+   toolchain_args = {
+     current_os = "linux"
+-    current_cpu = "x64"
+-    is_clang = false
+-    use_gold = false
+-  }
+-}
+-gcc_toolchain("v8_snapshot") {
+-  cc = "@CMAKE_C_COMPILER@"
+-  cxx = "@CMAKE_CXX_COMPILER@"
+-  ld = "@CMAKE_CXX_COMPILER@"
+-  ar = "@CMAKE_AR@"
+-  nm = "@CMAKE_NM@"
+-  toolchain_args = {
+-    current_os = "linux"
+-    current_cpu = "x64"
+-    v8_current_cpu = "x64"
+-    is_clang = false
+-    use_gold = false
+-  }
+- }
+-gcc_toolchain("target") {
+-  cc = "@CMAKE_C_COMPILER@"
+-  cxx = "@CMAKE_CXX_COMPILER@"
+-  ld = "@CMAKE_CXX_COMPILER@"
+-  ar = "@CMAKE_AR@"
+-  nm = "@CMAKE_NM@"
+-  toolchain_args = {
+-    current_os = "linux"
+-    current_cpu = "x64"
++    current_cpu = "@GN_CPU@"
++    v8_current_cpu = "@GN_V8_CPU@"
+     is_clang = false
+     use_gold = false
+   }
+diff --git a/src/core/configure/CMakeLists.txt b/src/core/configure/CMakeLists.txt
+new file mode 100644
+index 00000000..0ae4b4b4
+--- /dev/null
++++ b/src/core/configure/CMakeLists.txt
+@@ -0,0 +1,35 @@
++cmake_minimum_required(VERSION 3.19)
++
++if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
++    get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." REALPATH)
++endif()
++if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
++    get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../.." REALPATH)
++endif()
++
++include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
++include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
++
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
++
++project(QtWebEngineConfigure
++    VERSION "${QT_REPO_MODULE_VERSION}"
++    LANGUAGES CXX C)
++
++find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
++
++set(buildDir ${CMAKE_CURRENT_BINARY_DIR})
++configure_gn_toolchain(host ${TEST_architecture_arch} ${TEST_architecture_arch}
++    ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
++    ${buildDir}/host_toolchain
++)
++install(FILES ${buildDir}/host_toolchain/BUILD.gn
++    DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/host_toolchain
++    )
++get_v8_arch(GN_V8_HOST_CPU ${GN_TARGET_CPU})
++configure_gn_toolchain(v8 ${GN_V8_HOST_CPU} ${GN_TARGET_CPU}
++    ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in
++    ${buildDir}/v8_toolchain)
++install(FILES ${buildDir}/v8_toolchain/BUILD.gn
++    DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/core/v8_toolchain
++)
+-- 
+2.32.0
+
diff --git a/srcpkgs/qt6-webengine/patches/0001-mus-cstring.patch b/srcpkgs/qt6-webengine/patches/0001-mus-cstring.patch
new file mode 100644
index 000000000000..d4b22c77ce96
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0001-mus-cstring.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc	2021-03-08 10:30:42.504006604 +0100
++++ -	2021-03-08 10:31:27.415366585 +0100
+@@ -8,6 +8,7 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <unistd.h>
++#include <cstring>
+ 
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
diff --git a/srcpkgs/qt6-webengine/patches/0002-Do-not-use-target-C-XX-FLAGS-for-host-cmake.patch b/srcpkgs/qt6-webengine/patches/0002-Do-not-use-target-C-XX-FLAGS-for-host-cmake.patch
new file mode 100644
index 000000000000..de6d5abb4461
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0002-Do-not-use-target-C-XX-FLAGS-for-host-cmake.patch
@@ -0,0 +1,26 @@
+From 8eece1b0c72bef7319069703031543ddd0ca87ee Mon Sep 17 00:00:00 2001
+From: John Zimmermann <me@johnnynator.dev>
+Date: Sun, 27 Jun 2021 20:35:15 +0200
+Subject: [PATCH 2/2] Do not use target C{XX}FLAGS for host cmake
+
+Change-Id: Ia66d153fa9f1aff63491f6a1ec7380b8bda1e3c7
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2a93dca5..2a8e6cfb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -238,6 +238,8 @@ if(CMAKE_CROSSCOMPILING)
+                    -DWEBENGINE_ROOT_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}
+                    -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}
+                    -DGN_TARGET_CPU=${TEST_architecture_arch}
++                   -DCMAKE_CXX_FLAGS=$ENV{CXXFLAGS_FOR_BUILD}
++                   -DCMAKE_C_FLAGS=$ENV{CFLAGS_FOR_BUILD}
+     )
+     externalproject_add_stepdependencies(libs install hostBuild)
+ endif()
+-- 
+2.32.0
+
diff --git a/srcpkgs/qt6-webengine/patches/0002-None-no-debug.patch b/srcpkgs/qt6-webengine/patches/0002-None-no-debug.patch
new file mode 100644
index 000000000000..4a428fe03b37
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0002-None-no-debug.patch
@@ -0,0 +1,11 @@
+--- a/src/core/CMakeLists.txt	2021-06-27 14:24:18.812840134 +0200
++++ b/src/core/CMakeLists.txt	2021-06-27 14:51:46.825108637 +0200
+@@ -299,6 +299,8 @@
+         endif()
+     elseif(${config} STREQUAL "MinSizeRel")
+         list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true)
++    elseif(${config} STREQUAL "None")
++        list(APPEND gnArgArg is_debug=false symbol_level=0)
+     endif()
+ 
+     list(APPEND gnArgArg
diff --git a/srcpkgs/qt6-webengine/patches/0002-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch b/srcpkgs/qt6-webengine/patches/0002-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
new file mode 100644
index 000000000000..da4160b21bd3
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0002-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
@@ -0,0 +1,26 @@
+From 9001c54d6b974449174a8cee8f3f5d78a9bd6c9e Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 14:26:52 +0100
+Subject: [PATCH 3/6] include <sys/reg.h> to get __WORDSIZE on musl libc
+
+---
+ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/common/linux/elf_core_dump.h b/src/common/linux/elf_core_dump.h
+index d03c7a8..02eb391 100644
+--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
++++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+@@ -36,6 +36,9 @@
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
++#ifndef __GLIBC__
++#include <sys/reg.h>
++#endif
+ 
+ #include "common/memory_range.h"
+ 
+-- 
+2.0.5
+
diff --git a/srcpkgs/qt6-webengine/patches/0003-musl-dispatch-to-musl.patch b/srcpkgs/qt6-webengine/patches/0003-musl-dispatch-to-musl.patch
new file mode 100644
index 000000000000..de32a3dab95c
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0003-musl-dispatch-to-musl.patch
@@ -0,0 +1,103 @@
+--- qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
+--- qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
+@@ -6,6 +6,7 @@
+ 
+ #include <malloc.h>
+ 
++#if defined(__GLIBC__)
+ // This translation unit defines a default dispatch for the allocator shim which
+ // routes allocations to libc functions.
+ // The code here is strongly inspired from tcmalloc's libc_override_glibc.h.
+@@ -73,3 +74,92 @@ const AllocatorDispatch AllocatorDispatch::default_dispatch = {
+     nullptr,               /* free_definite_size_function */
+     nullptr,               /* next */
+ };
++
++#else // defined(__GLIBC__)
++
++#include <dlfcn.h>
++
++extern "C" {
++// Declare function pointers to the memory functions
++typedef void* (*t_libc_malloc)(size_t size);
++typedef void* (*t_libc_calloc)(size_t n, size_t size);
++typedef void* (*t_libc_realloc)(void* address, size_t size);
++typedef void* (*t_libc_memalign)(size_t alignment, size_t size);
++typedef void (*t_libc_free)(void* ptr);
++typedef size_t (*t_libc_malloc_usable_size)(void* ptr);
++
++// Static instances of pointers to libc.so dl symbols
++static t_libc_malloc libc_malloc = NULL;
++static t_libc_calloc libc_calloc = NULL;
++static t_libc_realloc libc_realloc = NULL;
++static t_libc_memalign libc_memalign = NULL;
++static t_libc_free libc_free = NULL;
++static t_libc_malloc_usable_size libc_malloc_usable_size = NULL;
++
++// resolve the symbols in libc.so
++void musl_libc_memory_init(void)
++{
++  libc_malloc = (t_libc_malloc) dlsym(RTLD_NEXT, "malloc");
++  libc_calloc = (t_libc_calloc) dlsym(RTLD_NEXT, "calloc");
++  libc_realloc = (t_libc_realloc) dlsym(RTLD_NEXT, "realloc");
++  libc_memalign = (t_libc_memalign) dlsym(RTLD_NEXT, "memalign");
++  libc_free = (t_libc_free) dlsym(RTLD_NEXT, "free");
++  libc_malloc_usable_size = (t_libc_malloc_usable_size) dlsym(RTLD_NEXT, "malloc_usable_size");
++}
++}  // extern "C"
++
++namespace {
++
++using base::allocator::AllocatorDispatch;
++
++void* MuslMalloc(const AllocatorDispatch*, size_t size, void* context) {
++  if (!libc_malloc)
++    musl_libc_memory_init();
++  return (*libc_malloc)(size);
++}
++
++void* MuslCalloc(const AllocatorDispatch*, size_t n, size_t size, void* context) {
++  if (!libc_calloc)
++    musl_libc_memory_init();
++  return (*libc_calloc)(n, size);
++}
++
++void* MuslRealloc(const AllocatorDispatch*, void* address, size_t size, void* context) {
++  if (!libc_realloc)
++    musl_libc_memory_init();
++  return (*libc_realloc)(address, size);
++}
++
++void* MuslMemalign(const AllocatorDispatch*, size_t alignment, size_t size, void* context) {
++  if (!libc_memalign)
++    musl_libc_memory_init();
++  return (*libc_memalign)(alignment, size);
++}
++
++void MuslFree(const AllocatorDispatch*, void* address, void* context) {
++  if (!libc_free)
++    musl_libc_memory_init();
++  (*libc_free)(address);
++}
++
++size_t MuslGetSizeEstimate(const AllocatorDispatch*, void* address, void* context) {
++  // TODO(siggi, primiano): malloc_usable_size may need redirection in the
++  //     presence of interposing shims that divert allocations.
++  if (!libc_malloc_usable_size)
++    musl_libc_memory_init();
++  return (*libc_malloc_usable_size)(address);
++}
++
++}  // namespace
++
++const AllocatorDispatch AllocatorDispatch::default_dispatch = {
++    &MuslMalloc,           /* alloc_function */
++    &MuslCalloc,           /* alloc_zero_initialized_function */
++    &MuslMemalign,         /* alloc_aligned_function */
++    &MuslRealloc,          /* realloc_function */
++    &MuslFree,             /* free_function */
++    &MuslGetSizeEstimate,  /* get_size_estimate_function */
++    nullptr,               /* next */
++};
++
++#endif
diff --git a/srcpkgs/qt6-webengine/patches/0004-musl-no-mallinfo.patch b/srcpkgs/qt6-webengine/patches/0004-musl-no-mallinfo.patch
new file mode 100644
index 000000000000..36900f907833
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0004-musl-no-mallinfo.patch
@@ -0,0 +1,39 @@
+--- qtwebengine/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc	2017-11-28 14:06:53.000000000 +0100
++++ qtwebengine/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc	2018-01-27 20:13:26.960932805 +0100
+@@ -243,7 +243,7 @@
+   allocated_objects_count = main_heap_info.block_count;
+ #elif defined(OS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+   struct mallinfo info = mallinfo();
+   DCHECK_GE(info.arena + info.hblkhd, info.uordblks);
+ 
+@@ -255,6 +255,8 @@
+ 
+   // Total allocated space is given by |uordblks|.
+   allocated_objects_size = info.uordblks;
++#else
++// musl libc does not support mallinfo()
+ #endif
+ 
+   MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("malloc");
+--- qtwebengine/src/3rdparty/chromium/base/process/process_metrics_posix.cc	2021-02-23 16:36:59.000000000 +0100
++++ -	2021-03-07 21:03:38.579424720 +0100
+@@ -119,14 +119,14 @@
+   malloc_statistics_t stats = {0};
+   malloc_zone_statistics(nullptr, &stats);
+   return stats.size_in_use;
+-#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
++#elif (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
+   struct mallinfo minfo = mallinfo();
+ #if BUILDFLAG(USE_TCMALLOC)
+   return minfo.uordblks;
+ #else
+   return minfo.hblkhd + minfo.arena;
+ #endif
+-#elif defined(OS_FUCHSIA)
++#else //if defined(OS_FUCHSIA) // also musl doesn't do this.
+   // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
+   return 0;
+ #endif
diff --git a/srcpkgs/qt6-webengine/patches/0005-musl-off_t.patch b/srcpkgs/qt6-webengine/patches/0005-musl-off_t.patch
new file mode 100644
index 000000000000..52db3b9ebf46
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0005-musl-off_t.patch
@@ -0,0 +1,10 @@
+--- qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h	2016-05-26 14:58:54.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h	2016-10-01 14:31:30.885000000 +0200
+@@ -21,6 +21,7 @@
+ #define htons(x) _byteswap_ushort (x)
+ #else
+ #include <arpa/inet.h>
++#include <sys/types.h>
+ #include <stdint.h>
+ #endif
+ 
diff --git a/srcpkgs/qt6-webengine/patches/0006-musl-pread-pwrite.patch b/srcpkgs/qt6-webengine/patches/0006-musl-pread-pwrite.patch
new file mode 100644
index 000000000000..00017bba0172
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0006-musl-pread-pwrite.patch
@@ -0,0 +1,18 @@
+--- qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h	2018-09-07 21:25:26.639964100 +0200
++++ qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h	2018-09-07 21:25:11.611964995 +0200
+@@ -1794,6 +1794,15 @@
+ /* End of s390/s390x definitions                                             */
+ #endif
+ 
++#ifndef __GLIBC__
++  /* For Musl libc pread/pread is the same as pread64/pwrite64 */
++#ifndef __NR_pread
++#define __NR_pread              __NR_pread64
++#endif
++#ifndef __NR_pwrite
++#define __NR_pwrite             __NR_pwrite64
++#endif
++#endif /* ifndef __GLIBC__ */
+ 
+ /* After forking, we must make sure to only call system calls.               */
+ #if defined(__BOUNDED_POINTERS__)
diff --git a/srcpkgs/qt6-webengine/patches/0008-musl-resolve.patch b/srcpkgs/qt6-webengine/patches/0008-musl-resolve.patch
new file mode 100644
index 000000000000..edfceb79f30a
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0008-musl-resolve.patch
@@ -0,0 +1,26 @@
+--- qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc	2016-11-07 15:46:18.000000000 +0100
++++ qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc	2016-12-20 03:33:11.749059656 +0100
+@@ -9,6 +9,10 @@
+ 
+ #include <resolv.h>
+ 
++#if !defined(__GLIBC__)
++#include "resolv_compat.h"
++#endif
++
+ #include "base/lazy_instance.h"
+ #include "base/logging.h"
+ #include "base/macros.h"
+--- qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc	2016-11-07 15:46:18.000000000 +0100
++++ qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc	2016-12-20 03:40:07.671953098 +0100
+@@ -6,6 +6,10 @@
+ 
+ #include <string>
+ 
++#if !defined(__GLIBC__)
++#include "resolv_compat.h"
++#endif
++
+ #include "base/bind.h"
+ #include "base/files/file.h"
+ #include "base/files/file_path.h"
diff --git a/srcpkgs/qt6-webengine/patches/0009-musl-siginfo_t.patch b/srcpkgs/qt6-webengine/patches/0009-musl-siginfo_t.patch
new file mode 100644
index 000000000000..fe760be16664
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0009-musl-siginfo_t.patch
@@ -0,0 +1,18 @@
+There's a subtle difference in the internal name of siginfo_t fields
+between glibc and musl. The structure itself is equivalent, so it
+should suffice to add a macro to rename the field.
+
+--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc	2015-02-17 05:57:43.000000000 +0100
++++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc	2015-06-03 08:20:25.032716427 +0200
+@@ -22,6 +22,11 @@
+ #include "sandbox/linux/services/android_ucontext.h"
+ #endif
+
++// musl libc defines siginfo_t __si_fields instead of _sifields
++#if !defined(__GLIBC__)
++#define _sifields __si_fields
++#endif
++
+ namespace {
+
+ const int kCapacityIncrement = 20;
diff --git a/srcpkgs/qt6-webengine/patches/0010-musl-stackstart.patch b/srcpkgs/qt6-webengine/patches/0010-musl-stackstart.patch
new file mode 100644
index 000000000000..a9f8ab6c252c
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0010-musl-stackstart.patch
@@ -0,0 +1,20 @@
+--- qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc	2018-01-27 23:08:43.586475349 +0100
++++ qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc	2018-01-27 23:18:22.274505203 +0100
+@@ -28,7 +28,7 @@
+ // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+ // correctly for the main thread.
+ 
+-#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
++#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+     defined(OS_FUCHSIA)
+   // pthread_getattr_np() can fail if the thread is not invoked by
+   // pthread_create() (e.g., the main thread of blink_unittests).
+@@ -96,7 +96,7 @@
+ }
+ 
+ void* GetStackStart() {
+-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+     defined(OS_FUCHSIA)
+   pthread_attr_t attr;
+   int error;
diff --git a/srcpkgs/qt6-webengine/patches/0011-musl-sandbox.patch b/srcpkgs/qt6-webengine/patches/0011-musl-sandbox.patch
new file mode 100644
index 000000000000..d3de1e41183d
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0011-musl-sandbox.patch
@@ -0,0 +1,71 @@
+--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc	2018-06-15 09:47:20.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc	2018-09-13 19:53:53.453780253 +0200
+@@ -129,7 +129,7 @@
+ // CLONE_VM, nor CLONE_THREAD, which includes all fork() implementations.
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+   const Arg<unsigned long> flags(0);
+-
++#if defined(__GLIBC__)
+   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+                                      CLONE_SIGHAND | CLONE_THREAD |
+@@ -148,6 +148,17 @@
+   return If(IsAndroid() ? android_test : glibc_test, Allow())
+       .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
+       .Else(CrashSIGSYSClone());
++#else
++  const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
++                       CLONE_THREAD | CLONE_SYSVSEM;
++  const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
++                   CLONE_DETACHED;
++  const BoolExpr thread_clone_ok = (flags&~safe)==required;
++
++  return If(thread_clone_ok, Allow())
++      .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
++      .Else(CrashSIGSYSClone());
++#endif
+ }
+ 
+ ResultExpr RestrictPrctl() {
+--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc	2018-06-15 09:47:20.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc	2018-09-13 19:56:31.779773940 +0200
+@@ -375,6 +375,9 @@
+ #if defined(__i386__)
+     case __NR_waitpid:
+ #endif
++#if !defined(__GLIBC__)
++    case __NR_set_tid_address:
++#endif
+       return true;
+     case __NR_clone:  // Should be parameter-restricted.
+     case __NR_setns:  // Privileged.
+@@ -387,7 +390,9 @@
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+     case __NR_set_thread_area:
+ #endif
++#if defined(__GLIBC__)
+     case __NR_set_tid_address:
++#endif
+     case __NR_unshare:
+ #if !defined(__mips__) && !defined(__aarch64__)
+     case __NR_vfork:
+@@ -496,6 +501,9 @@
+     case __NR_mlock:
+     case __NR_munlock:
+     case __NR_munmap:
++#if !defined(__GLIBC__)
++    case __NR_mremap:
++#endif
+       return true;
+     case __NR_madvise:
+     case __NR_mincore:
+@@ -511,7 +519,9 @@
+     case __NR_modify_ldt:
+ #endif
+     case __NR_mprotect:
++#if defined(__GLIBC__)
+     case __NR_mremap:
++#endif
+     case __NR_msync:
+     case __NR_munlockall:
+     case __NR_readahead:
diff --git a/srcpkgs/qt6-webengine/patches/0012-musl-chromium-default-stacksize.patch b/srcpkgs/qt6-webengine/patches/0012-musl-chromium-default-stacksize.patch
new file mode 100644
index 000000000000..7bf5a22fba71
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0012-musl-chromium-default-stacksize.patch
@@ -0,0 +1,15 @@
+--- qtwebengine/src/3rdparty/chromium/base/threading/platform_thread_linux.cc.orig	2018-09-19 18:05:15.523923703 +0200
++++ qtwebengine/src/3rdparty/chromium/base/threading/platform_thread_linux.cc	2018-09-19 18:08:05.150932454 +0200
+@@ -173,7 +173,12 @@
+ 
+ size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
+ #if !defined(THREAD_SANITIZER)
++#if defined(__GLIBC__)
+   return 0;
++#else // defined(__GLIBC__)
++  // For Musl libc try with a default stack size of 2 MiB
++  return 2 * 1024 * 1024;
++#endif // !defined(__GLIBC__)
+ #else
+   // ThreadSanitizer bloats the stack heavily. Evidence has been that the
+   // default stack size isn't enough for some browser tests.
diff --git a/srcpkgs/qt6-webengine/patches/0014-musl-cross-no-asm_ptrace_h.patch b/srcpkgs/qt6-webengine/patches/0014-musl-cross-no-asm_ptrace_h.patch
new file mode 100644
index 000000000000..140742f72c25
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0014-musl-cross-no-asm_ptrace_h.patch
@@ -0,0 +1,30 @@
+--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc	2018-08-27 10:21:31.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc	2018-11-22 00:41:58.522477559 +0100
+@@ -38,7 +38,12 @@
+ 
+ #include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+ 
++#if defined(__GLIBC__)
+ #include <asm/ptrace.h>
++#else
++/* For arm*-musl this definition is missing */
++#define ARM_sp uregs[13]
++#endif
+ #include <assert.h>
+ #include <errno.h>
+ #include <fcntl.h>
+--- qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc	2018-08-27 10:21:31.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc	2018-11-22 00:49:39.533492245 +0100
+@@ -32,7 +32,12 @@
+ 
+ #include "client/linux/minidump_writer/linux_core_dumper.h"
+ 
++#if defined(__GLIBC__)
+ #include <asm/ptrace.h>
++#else
++/* For arm*-musl this definition is missing */
++#define ARM_sp uregs[13]
++#endif
+ #include <assert.h>
+ #include <elf.h>
+ #include <stdio.h>
diff --git a/srcpkgs/qt6-webengine/patches/0015-no-glibc-cmake-check.patch b/srcpkgs/qt6-webengine/patches/0015-no-glibc-cmake-check.patch
new file mode 100644
index 000000000000..f6c3aadb8421
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0015-no-glibc-cmake-check.patch
@@ -0,0 +1,14 @@
+--- a/configure.cmake	2021-06-21 23:31:04.000000000 +0200
++++ -	2021-06-27 16:16:32.873528917 +0200
+@@ -373,11 +373,6 @@
+ )
+ add_check_for_support(webEngineError webEngineSupport
+    MODULE QtWebEngine
+-   CONDITION NOT LINUX OR TEST_glibc
+-   MESSAGE "A suitable version >= 2.17 of glibc is required."
+-)
+-add_check_for_support(webEngineError webEngineSupport
+-   MODULE QtWebEngine
+    CONDITION NOT LINUX OR TEST_khr
+    MESSAGE "Build requires Khronos development headers for build - see mesa/libegl1-mesa-dev"
+ )
diff --git a/srcpkgs/qt6-webengine/patches/0016-qt-musl-execinfo.patch b/srcpkgs/qt6-webengine/patches/0016-qt-musl-execinfo.patch
new file mode 100644
index 000000000000..608dd0b4e078
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0016-qt-musl-execinfo.patch
@@ -0,0 +1,106 @@
+--- qtwebengine/src/3rdparty/chromium//base/debug/stack_trace_posix.cc.orig	2019-04-09 09:31:16.000000000 +0200
++++ qtwebengine/src/3rdparty/chromium//base/debug/stack_trace_posix.cc	2019-05-06 23:16:13.245502467 +0200
+@@ -27,7 +27,7 @@
+ #if !defined(USE_SYMBOLIZE)
+ #include <cxxabi.h>
+ #endif
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ #include <execinfo.h>
+ #endif
+ 
+@@ -86,7 +86,7 @@
+   // Note: code in this function is NOT async-signal safe (std::string uses
+   // malloc internally).
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   std::string::size_type search_from = 0;
+   while (search_from < text->size()) {
+     // Look for the start of a mangled symbol, from search_from.
+@@ -121,7 +121,7 @@
+       search_from = mangled_start + 2;
+     }
+   }
+-#endif  // !defined(__UCLIBC__) && !defined(_AIX)
++#endif  // !defined(__GLIBC__) && !defined(_AIX)
+ }
+ #endif  // !defined(USE_SYMBOLIZE)
+ 
+@@ -133,7 +133,7 @@
+   virtual ~BacktraceOutputHandler() = default;
+ };
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
+   // This should be more than enough to store a 64-bit number in hex:
+   // 16 hex digits + 1 for null-terminator.
+@@ -216,7 +216,7 @@
+   }
+ #endif  // defined(USE_SYMBOLIZE)
+ }
+-#endif  // !defined(__UCLIBC__) && !defined(_AIX)
++#endif  // !defined(__GLIBC__) && !defined(_AIX)
+ 
+ void PrintToStderr(const char* output) {
+   // NOTE: This code MUST be async-signal safe (it's used by in-process
+@@ -812,7 +812,7 @@
+   // NOTE: This code MUST be async-signal safe (it's used by in-process
+   // stack dumping signal handler). NO malloc or stdio is allowed here.
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   // Though the backtrace API man page does not list any possible negative
+   // return values, we take no chance.
+   return base::saturated_cast<size_t>(backtrace(trace, count));
+@@ -825,13 +825,13 @@
+ // NOTE: This code MUST be async-signal safe (it's used by in-process
+ // stack dumping signal handler). NO malloc or stdio is allowed here.
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   PrintBacktraceOutputHandler handler;
+   ProcessBacktrace(trace_, count_, prefix_string, &handler);
+ #endif
+ }
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
+                                           const char* prefix_string) const {
+   StreamBacktraceOutputHandler handler(os);
+--- qtwebengine/src/3rdparty/chromium/base/debug/stack_trace.cc	2019-04-09 09:31:16.000000000 +0200
++++ -	2019-05-06 23:18:14.923566992 +0200
+@@ -233,7 +233,7 @@
+ }
+ std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
+   std::stringstream stream;
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(&stream, prefix_string);
+ #endif
+   return stream.str();
+--- qtwebengine/src/3rdparty/chromium//base/logging.cc	2017-11-28 14:06:53.000000000 +0100
+--- qtwebengine/src/3rdparty/chromium//base/logging.cc	2018-01-27 22:46:34.970406807 +0100
+@@ -546,7 +546,7 @@
+ 
+ LogMessage::~LogMessage() {
+   size_t stack_start = stream_.tellp();
+-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
++#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__) && \
+     !defined(OS_AIX)
+   if (severity_ == LOG_FATAL && !base::debug::BeingDebugged()) {
+     // Include a stack trace on a fatal, unless a debugger is attached.
+--- a/src/3rdparty/chromium/base/debug/stack_trace.cc	2021-06-27 18:17:06.834705848 +0200
++++ -	2021-06-27 18:27:53.014102803 +0200
+@@ -217,7 +217,9 @@
+ }
+ 
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+ 
+ std::string StackTrace::ToString() const {
diff --git a/srcpkgs/qt6-webengine/patches/0017-qt-musl-thread-stacksize.patch b/srcpkgs/qt6-webengine/patches/0017-qt-musl-thread-stacksize.patch
new file mode 100644
index 000000000000..496753bef30f
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0017-qt-musl-thread-stacksize.patch
@@ -0,0 +1,26 @@
+diff --git a/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc b/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
+index 02bf49b..05ee182 100644
+--- qtwebengine/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
++++ qtwebengine/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
+@@ -13,7 +13,7 @@ namespace pp {
+ namespace {
+ 
+ // Use 2MB default stack size for Native Client, otherwise use system default.
+-#if defined(__native_client__)
++#if defined(__native_client__) || !defined(__GLIBC__)
+ const size_t kDefaultStackSize = 2 * 1024 * 1024;
+ #else
+ const size_t kDefaultStackSize = 0;
+diff --git a/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc b/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
+index cf7f3ec..e06a5ce 100644
+--- qtwebengine/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
++++ qtwebengine/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
+@@ -761,7 +761,7 @@ void Thread::Start() {
+ #if V8_OS_MACOSX
+     // Default on Mac OS X is 512kB -- bump up to 1MB
+     stack_size = 1 * 1024 * 1024;
+-#elif V8_OS_AIX
++#elif V8_OS_AIX || !defined(__GLIBC__)
+     // Default on AIX is 96kB -- bump up to 2MB
+     stack_size = 2 * 1024 * 1024;
+ #endif
diff --git a/srcpkgs/qt6-webengine/patches/0018-sandbox-membarrier.patch b/srcpkgs/qt6-webengine/patches/0018-sandbox-membarrier.patch
new file mode 100644
index 000000000000..b73971f24324
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0018-sandbox-membarrier.patch
@@ -0,0 +1,60 @@
+--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm64_linux_syscalls.h
++++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm64_linux_syscalls.h
+@@ -1063,4 +1063,8 @@
+ #define __NR_memfd_create 279
+ #endif
+ 
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 283
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
+
+--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm_linux_syscalls.h
++++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/arm_linux_syscalls.h
+@@ -1385,6 +1385,10 @@
+ #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
+ #endif
+ 
++#if !defined(__NR_membarrier)
++#define __NR_membarrier (__NR_SYSCALL_BASE+389)
++#endif
++
+ // ARM private syscalls.
+ #if !defined(__ARM_NR_BASE)
+ #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
+
+--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_32_linux_syscalls.h
++++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_32_linux_syscalls.h
+@@ -1422,5 +1422,9 @@
+ #define __NR_memfd_create 356
+ #endif
+ 
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 375
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
+ 
+--- qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_64_linux_syscalls.h
++++ qtwebengine/src/3rdparty/chromium//sandbox/linux/system_headers/x86_64_linux_syscalls.h
+@@ -1290,5 +1290,9 @@
+ #define __NR_memfd_create 319
+ #endif
+ 
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 324
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
+ 
+--- qtwebengine/src/3rdparty/chromium//sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ qtwebengine/src/3rdparty/chromium//sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -370,6 +370,7 @@
+   switch (sysno) {
+     case __NR_exit:
+     case __NR_exit_group:
++    case __NR_membarrier:
+     case __NR_wait4:
+     case __NR_waitid:
+ #if defined(__i386__)
diff --git a/srcpkgs/qt6-webengine/patches/0020-msgvec-push_back.patch b/srcpkgs/qt6-webengine/patches/0020-msgvec-push_back.patch
new file mode 100644
index 000000000000..75481a2889f4
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0020-msgvec-push_back.patch
@@ -0,0 +1,14 @@
+--- qtwebengine-everywhere-src-5.14.0-beta2/src/3rdparty/chromium/net/socket/udp_socket_posix.cc	2019-10-08 08:27:43.000000000 +0200
++++ -	2019-11-11 22:41:46.699068889 +0100
+@@ -1191,7 +1191,11 @@
+     msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
+   msgvec->reserve(buffers.size());
+   for (size_t j = 0; j < buffers.size(); j++)
++#if defined(__GLIBC__)
+     msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
++#else
++    msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, 0, 0}, 0});
++#endif
+   int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
+   SendResult send_result(0, 0, std::move(buffers));
+   if (result < 0) {
diff --git a/srcpkgs/qt6-webengine/patches/0021-sandbox-sched_getparam.patch b/srcpkgs/qt6-webengine/patches/0021-sandbox-sched_getparam.patch
new file mode 100644
index 000000000000..d8c6aa15cf66
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0021-sandbox-sched_getparam.patch
@@ -0,0 +1,26 @@
+Allow SYS_sched_getparam and SYS_sched_getscheduler
+musl uses them for pthread_getschedparam()
+
+source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e
+
+--- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc	2021-02-23 16:36:59.000000000 +0100
++++ -	2021-03-07 21:13:44.992079145 +0100
+@@ -93,11 +93,18 @@
+     case __NR_sysinfo:
+     case __NR_times:
+     case __NR_uname:
++#if !defined(__GLIBC__)
++    case __NR_sched_getparam:
++    case __NR_sched_getscheduler:
++    case __NR_sched_setscheduler:
++#endif
+       return Allow();
+     case __NR_sched_getaffinity:
++#if defined(__GLIBC__)
+     case __NR_sched_getparam:
+     case __NR_sched_getscheduler:
+     case __NR_sched_setscheduler:
++#endif
+       return RestrictSchedTarget(GetPolicyPid(), sysno);
+     case __NR_prlimit64:
+       // See crbug.com/662450 and setrlimit comment above.
diff --git a/srcpkgs/qt6-webengine/patches/0022-canonicalize-file-name-musl.patch b/srcpkgs/qt6-webengine/patches/0022-canonicalize-file-name-musl.patch
new file mode 100644
index 000000000000..893ed2d41bb4
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0022-canonicalize-file-name-musl.patch
@@ -0,0 +1,11 @@
+--- qtwebengine/src/3rdparty/chromium/third_party/nasm/nasmlib/realpath.c	2019-09-23 14:24:20.000000000 +0200
++++ -	2019-10-11 06:27:28.450329986 +0200
+@@ -57,7 +57,7 @@
+  */
+ char *nasm_realpath(const char *rel_path)
+ {
+-    char *rp = canonicalize_file_name(rel_path);
++    char *rp = realpath(rel_path, NULL);
+     return rp ? rp : nasm_strdup(rel_path);
+ }
+ 
diff --git a/srcpkgs/qt6-webengine/patches/0089-enable-ppc64.patch b/srcpkgs/qt6-webengine/patches/0089-enable-ppc64.patch
new file mode 100644
index 000000000000..4fb19ccdd2e5
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0089-enable-ppc64.patch
@@ -0,0 +1,37 @@
+From 463f1234c57a36e78ff666bd55094a9d4e68f296 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Sat, 18 Jan 2020 23:52:55 +0100
+Subject: [PATCH 1/3] Enable ppc64 builds
+
+---
+ configure.pri                  | 1 +
+ mkspecs/features/functions.prf | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/configure.pri b/configure.pri
+index 3a144e3f8..cabe8b24a 100644
+--- a/configure.pri	2021-02-24 10:45:58.000000000 +0100
++++ -	2021-03-07 21:18:43.124754796 +0100
+@@ -144,6 +144,7 @@
+     contains(QT_ARCH, "arm")|contains(QT_ARCH, "arm64"): return(true)
+     contains(QT_ARCH, "mips"): return(true)
+     contains(QT_ARCH, "mips64"): return(true)
++    contains(QT_ARCH, "power64"): return(true)
+     qtLog("Architecture not supported.")
+     return(false)
+ }
+diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
+index 512e2523b..e31123654 100644
+--- a/mkspecs/features/functions.prf	2021-02-24 10:45:58.000000000 +0100
++++ -	2021-03-07 21:19:21.345036293 +0100
+@@ -107,6 +107,7 @@
+     contains(qtArch, "mips"): return(mipsel)
+     contains(qtArch, "mips64"): return(mips64el)
+     contains(qtArch, "mips64el"): return(mips64el)
++    contains(qtArch, "power64"): return(ppc64)
+     return(unknown)
+ }
+ 
+-- 
+2.26.0
+
diff --git a/srcpkgs/qt6-webengine/patches/0110-size_t.patch b/srcpkgs/qt6-webengine/patches/0110-size_t.patch
new file mode 100644
index 000000000000..462e3202279f
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0110-size_t.patch
@@ -0,0 +1,16 @@
+--- a/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h	2021-02-23 16:36:59.000000000 +0100
++++ -	2021-03-07 21:44:25.477989726 +0100
+@@ -239,11 +239,11 @@
+ using ProgramKeyType   = std::array<uint8_t, 20>;
+ using CacheProgramFunc = void (*)(PlatformMethods *platform,
+                                   const ProgramKeyType &key,
+-                                  size_t programSize,
++                                  std::size_t programSize,
+                                   const uint8_t *programBytes);
+ inline void DefaultCacheProgram(PlatformMethods *platform,
+                                 const ProgramKeyType &key,
+-                                size_t programSize,
++                                std::size_t programSize,
+                                 const uint8_t *programBytes)
+ {}
+ 
diff --git a/srcpkgs/qt6-webengine/patches/0111-armv7l-neon.patch b/srcpkgs/qt6-webengine/patches/0111-armv7l-neon.patch
new file mode 100644
index 000000000000..368099b981cc
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0111-armv7l-neon.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/skia/BUILD.gn	2020-09-01 13:02:34.000000000 +0200
++++ b/src/3rdparty/chromium/skia/BUILD.gn	2020-10-06 20:51:48.834970455 +0200
+@@ -772,7 +772,6 @@
+         # Root build config sets -mfpu=$arm_fpu, which we expect to be neon
+         # when running this.
+         if (!arm_use_neon) {
+-          configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
+           cflags += [ "-mfpu=neon" ]
+         }
+       }
diff --git a/srcpkgs/qt6-webengine/patches/0112-arm-user_vfp.patch b/srcpkgs/qt6-webengine/patches/0112-arm-user_vfp.patch
new file mode 100644
index 000000000000..6e2d62f35ee6
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0112-arm-user_vfp.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
++++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
+@@ -17,6 +17,17 @@
+ 
+ #include <stdint.h>
+ #include <sys/user.h>
++#if !defined(__GLIBC__)
++struct user_vfp {
++	unsigned long long fpregs[32];
++	unsigned long fpscr;
++};
++struct user_vfp_exc {
++	unsigned long fpexc;
++	unsigned long fpinst;
++	unsigned long fpinst2;
++};
++#endif /* !defined(__GLIBC__) */
+ 
+ #include <type_traits>
+ 
diff --git a/srcpkgs/qt6-webengine/patches/0113-arm-elf_auxv_t.patch b/srcpkgs/qt6-webengine/patches/0113-arm-elf_auxv_t.patch
new file mode 100644
index 000000000000..5c7cbfc46f65
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0113-arm-elf_auxv_t.patch
@@ -0,0 +1,18 @@
+--- a/src/3rdparty/chromium/v8/src/base/cpu.cc	2020-09-01 13:02:34.000000000 +0200
++++ b/src/3rdparty/chromium/v8/src/base/cpu.cc	2020-10-06 21:28:45.124882085 +0200
+@@ -109,6 +109,15 @@
+ #define HWCAP_IDIV  (HWCAP_IDIVA | HWCAP_IDIVT)
+ #define HWCAP_LPAE  (1 << 20)
+ 
++#ifndef __GLIBC__
++#include <elf.h>
++#ifdef __LP64__
++typedef Elf64_auxv_t elf_auxv_t;
++#else
++typedef Elf32_auxv_t elf_auxv_t;
++#endif
++#endif
++
+ static uint32_t ReadELFHWCaps() {
+ #if V8_GLIBC_PREREQ(2, 16)
+   return static_cast<uint32_t>(getauxval(AT_HWCAP));
diff --git a/srcpkgs/qt6-webengine/patches/0114-time64.patch b/srcpkgs/qt6-webengine/patches/0114-time64.patch
new file mode 100644
index 000000000000..6a98dd4e480e
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0114-time64.patch
@@ -0,0 +1,89 @@
+Description: fix seccomp-bpf failures in syscalls 0403, 0407
+ glibc ≥ 2.31 uses these syscalls on 32-bit platforms:
+ .
+ - https://sourceware.org/git/?p=glibc.git;a=commit;h=2e44b10b42d68d98
+ - https://sourceware.org/git/?p=glibc.git;a=commit;h=ec138c67cbda8b58
+Author: Andreas Müller <schnitzeltony@gmail.com>
+Forwarded: no
+Last-Update: 2020-09-02
+
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -148,7 +148,14 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+     return Allow();
+ #endif
+ 
+-  if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) {
++  if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep
++#if defined(__NR_clock_gettime64)
++                                  || sysno == __NR_clock_gettime64
++#endif
++#if defined(__NR_clock_nanosleep_time64)
++                                  || sysno == __NR_clock_nanosleep_time64
++#endif
++  ) {
+     return RestrictClockID();
+   }
+ 
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc
+@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf
+       case __NR_clock_gettime:
+       case __NR_clock_getres:
+       case __NR_clock_nanosleep:
++#if defined(__NR_clock_nanosleep_time64)
++      case __NR_clock_nanosleep_time64:
++#endif
++#if defined(__NR_clock_gettime64)
++      case __NR_clock_gettime64:
++#endif
+         return RestrictClockID();
+       default:
+         return Allow();
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int s
+                                 // filtered by RestrictClokID().
+     case __NR_clock_gettime:    // Parameters filtered by RestrictClockID().
+     case __NR_clock_nanosleep:  // Parameters filtered by RestrictClockID().
++#if defined(__NR_clock_gettime64)
++    case __NR_clock_gettime64:  // Parameters filtered by RestrictClockID().
++#endif
++#if defined(__NR_clock_nanosleep_time64)
++    case __NR_clock_nanosleep_time64:  // Parameters filtered by RestrictClockID().
++#endif
+     case __NR_clock_settime:    // Privileged.
+ #if defined(__i386__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
+--- a/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+@@ -1385,6 +1385,14 @@
+ #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
+ #endif
+ 
++#if !defined(__NR_clock_gettime64)
++#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403)
++#endif
++
++#if !defined(__NR_clock_nanosleep_time64)
++#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407)
++#endif
++
+ // ARM private syscalls.
+ #if !defined(__ARM_NR_BASE)
+ #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
+--- a/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
+@@ -1433,4 +1433,12 @@
+ #define __NR_memfd_create (__NR_Linux + 354)
+ #endif
+ 
++#if !defined(__NR_clock_gettime64)
++#define __NR_clock_gettime64 (__NR_Linux + 403)
++#endif
++
++#if !defined(__NR_clock_nanosleep_time64)
++#define __NR_clock_nanosleep_time64 (__NR_Linux + 407)
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_
diff --git a/srcpkgs/qt6-webengine/patches/0121-glibc-2.33.patch b/srcpkgs/qt6-webengine/patches/0121-glibc-2.33.patch
new file mode 100644
index 000000000000..3a0ba3b2d854
--- /dev/null
+++ b/srcpkgs/qt6-webengine/patches/0121-glibc-2.33.patch
@@ -0,0 +1,144 @@
+# Patch made by Kevin Kofler <Kevin@tigcc.ticalc.org>
+# https://bugzilla.redhat.com/show_bug.cgi?id=1904652
+
+diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc	2020-11-07 02:22:36.000000000 +0100
++++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc	2021-01-20 02:14:53.066223906 +0100
+@@ -257,6 +257,18 @@
+     return RestrictKillTarget(current_pid, sysno);
+   }
+ 
++#if defined(__NR_newfstatat)
++  if (sysno == __NR_newfstatat) {
++    return RewriteFstatatSIGSYS();
++  }
++#endif
++
++#if defined(__NR_fstatat64)
++  if (sysno == __NR_fstatat64) {
++    return RewriteFstatatSIGSYS();
++  }
++#endif
++
+   if (SyscallSets::IsFileSystem(sysno) ||
+       SyscallSets::IsCurrentDirectory(sysno)) {
+     return Error(fs_denied_errno);
+diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc	2020-11-07 02:22:36.000000000 +0100
++++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc	2021-01-22 19:02:55.651668257 +0100
+@@ -6,6 +6,8 @@
+ 
+ #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
+ 
++#include <errno.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <string.h>
+@@ -355,6 +357,35 @@
+   return -ENOSYS;
+ }
+ 
++intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
++                            void* aux) {
++  switch (args.nr) {
++#if defined(__NR_newfstatat)
++    case __NR_newfstatat:
++#endif
++#if defined(__NR_fstatat64)
++    case __NR_fstatat64:
++#endif
++#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
++      if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
++          && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
++        return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
++                                    reinterpret_cast<struct stat64 *>(args.args[2]));
++      } else {
++        errno = EACCES;
++        return -1;
++      }
++      break;
++#endif
++  }
++
++  CrashSIGSYS_Handler(args, aux);
++
++  // Should never be reached.
++  RAW_CHECK(false);
++  return -ENOSYS;
++}
++
+ bpf_dsl::ResultExpr CrashSIGSYS() {
+   return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
+ }
+@@ -387,6 +418,10 @@
+   return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
+ }
+ 
++bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
++  return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
++}
++
+ void AllocateCrashKeys() {
+ #if !defined(OS_NACL_NONSFI)
+   if (seccomp_crash_key)
+diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
+--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h	2020-11-07 02:22:36.000000000 +0100
++++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h	2021-01-20 02:11:04.583714199 +0100
+@@ -62,6 +62,10 @@
+ // sched_setparam(), sched_setscheduler()
+ SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
+                                            void* aux);
++// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
++// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, 
++                                             void* aux);
+ 
+ // Variants of the above functions for use with bpf_dsl.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
+@@ -72,6 +76,7 @@
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
++SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
+ 
+ // Allocates a crash key so that Seccomp information can be recorded.
+ void AllocateCrashKeys();
+diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc
+--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc	2020-11-07 02:22:36.000000000 +0100
++++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc	2021-01-20 02:41:12.033133269 +0100
+@@ -261,4 +261,13 @@
+ 
+ #endif  // defined(MEMORY_SANITIZER)
+ 
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
++{
++#if defined(__NR_fstat64)
++    return syscall(__NR_fstat64, fd, buf);
++#else
++    return syscall(__NR_fstat, fd, buf);
++#endif
++}
++
+ }  // namespace sandbox
+diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h
+--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h	2020-11-07 02:22:36.000000000 +0100
++++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h	2021-01-20 02:40:26.499827829 +0100
+@@ -17,6 +17,7 @@
+ struct rlimit64;
+ struct cap_hdr;
+ struct cap_data;
++struct stat64;
+ 
+ namespace sandbox {
+ 
+@@ -84,6 +85,9 @@
+                                  const struct sigaction* act,
+                                  struct sigaction* oldact);
+ 
++// Recent glibc rewrites fstat to fstatat.
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
++
+ }  // namespace sandbox
+ 
+ #endif  // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_
diff --git a/srcpkgs/qt6-webengine/template b/srcpkgs/qt6-webengine/template
new file mode 100644
index 000000000000..45aeb56b42b1
--- /dev/null
+++ b/srcpkgs/qt6-webengine/template
@@ -0,0 +1,93 @@
+# Template file for 'qt6-webengine'
+pkgname=qt6-webengine
+version=6.2.0alpha
+revision=1
+wrksrc="qtwebengine-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=true
+ -DQT_FEATURE_webengine_system_ffmpeg=ON
+ -DQT_FEATURE_webengine_system_libevent=ON
+ -DQT_FEATURE_webengine_system_gn=ON
+ -DPKG_CONFIG_HOST_EXECUTABLE=${PKG_CONFIG_FOR_BUILD}"
+hostmakedepends="qt6-base-devel perl pkg-config nodejs python
+ protobuf gperf flex nss-devel libwebp-devel"
+makedepends="qt6-base-devel qt6-declarative-devel pulseaudio-devel
+ alsa-lib-devel libvpx-devel pciutils-devel opus-devel libxslt-devel
+ libxml2-devel freetype-devel lcms2-devel libwebp-devel icu-devel
+ re2-devel zlib-devel libpng-devel minizip-devel harfbuzz-devel
+ nss-devel libXcursor-devel libXcomposite-devel libXScrnSaver-devel
+ protobuf-devel ffmpeg-devel snappy-devel libevent-devel pipewire-devel
+ qt6-quickcontrols2-devel qt6-location-devel qt6-webchannel-devel"
+short_desc="Cross-platform application and UI framework - Webengine"
+maintainer="John <me@johnnynator.dev>"
+license="GPL-3.0-only, GPL-2.0-only, LGPL-3.0-only BSD-3-Clause"
+homepage="https://www.qt.io"
+distfiles="https://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtwebengine-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=e509436aa22b952e6195c146cf06a839b85aaa0724feb85f0b78516dc42105a4
+
+if [ -z "$CROSS_BUILD" ];then
+	configure_args+=" -DCMAKE_TOOLCHAIN_FILE=/usr/lib/cmake/Qt6/qt.toolchain.cmake"
+fi
+
+if [ "$XBPS_LIBC" = "musl" ]; then
+	hostmakedepends+=" musl-legacy-compat"
+fi
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	makedepends+=" musl-legacy-compat"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+	broken="webengine can be built only if word size matches"
+fi
+
+if [ "$XBPS_WORDSIZE" -eq 32 ]; then
+	nodebug=yes
+	LDFLAGS="-Wl,--no-keep-memory"
+fi
+
+if [ "$XBPS_TARGET_ENDIAN" != "le" ]; then
+	broken="webengine only supports little endian"
+fi
+
+_bootstrap_gn() {
+	# Bootstrap gn (generate ninja)
+	echo "Bootstrapping 'gn'"
+	cd ${wrksrc}/src/3rdparty/gn
+	CFLAGS="$CFLAGS_host" CXXFLAGS="$CXXFLAGS_host" LDFLAGS="$LDFLAGS_host" \
+	PKGCONFIG=/usr/bin/pkgconfig PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" \
+		python2 build/gen.py --no-last-commit-position --out-path \
+			${wrksrc}/src/3rdparty/gn/out/Release --cc "${CC_host:-$CC}" \
+			--cxx "${CXX_host:-$CXX}" --ld "${CXX_host:-$CXX}" --ar "${AR_host:-$AR}" \
+			--qt-version "${version}.qtwebengine.qt.io"
+	ninja -C out/Release gn
+	cd ${wrksrc}
+}
+
+pre_configure() {
+	cp ${FILESDIR}/resolv_compat.h ${wrksrc}/src/3rdparty/chromium/net/dns
+	_bootstrap_gn
+	export PATH="$PATH:${wrksrc}/src/3rdparty/gn/out/Release"
+}
+
+pre_build() {
+	export PATH="$PATH:${wrksrc}/src/3rdparty/gn/out/Release"
+}
+
+post_install() {
+	rm -r ${DESTDIR}/builddir
+	mv ${DESTDIR}/usr/resources ${DESTDIR}/usr/share/qt6
+	mv ${DESTDIR}/usr/translations ${DESTDIR}/usr/share/qt6
+}
+
+qt6-webengine-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-webchannel-devel>=${version}_1
+	 qt6-declarative-devel>=${version}_1 qt6-location-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+	}
+}

From d173e9e63fd5ea4ca38412f4b00b97ac0fd4639b Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sun, 27 Jun 2021 16:00:28 +0200
Subject: [PATCH 25/25] New package: qt6-location-6.2.0alpha

---
 common/shlibs                 |  1 +
 srcpkgs/qt6-location-devel    |  1 +
 srcpkgs/qt6-location/template | 27 +++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 120000 srcpkgs/qt6-location-devel
 create mode 100644 srcpkgs/qt6-location/template

diff --git a/common/shlibs b/common/shlibs
index e6d1ef7157b4..e3b64dfad96b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2063,6 +2063,7 @@ libQt6VirtualKeyboard.so.6 qt6-virtualkeyboard-6.1.0_1
 libQt6SerialPort.so.6 qt6-serialport-6.2.0alpha_1
 libQt6WebSockets.so.6 qt6-websockets-6.2.0alpha_1
 libQt6WebChannel.so.6 qt6-webchannel-6.2.0alpha_1
+libQt6Positioning.so.6 qt6-location-6.2.0alpha_1
 libnpth.so.0 npth-1.1_1
 libnpupnp.so.4 libnpupnp-4.0.2_1
 libglfw.so.3 glfw-3.0.4_1
diff --git a/srcpkgs/qt6-location-devel b/srcpkgs/qt6-location-devel
new file mode 120000
index 000000000000..7924c82dd3f4
--- /dev/null
+++ b/srcpkgs/qt6-location-devel
@@ -0,0 +1 @@
+qt6-location
\ No newline at end of file
diff --git a/srcpkgs/qt6-location/template b/srcpkgs/qt6-location/template
new file mode 100644
index 000000000000..3bad3ab8aade
--- /dev/null
+++ b/srcpkgs/qt6-location/template
@@ -0,0 +1,27 @@
+# Template file for 'qt6-location'
+pkgname=qt6-location
+version=6.2.0alpha
+revision=1
+wrksrc="qtlocation-everywhere-src-${version/alpha/-alpha}"
+build_style=cmake
+configure_args="-DQT_HOST_PATH=/usr"
+hostmakedepends="perl qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-serialport-devel qt6-declarative-devel GConf-devel"
+short_desc="Cross-platform application and UI framework - location"
+maintainer="John <me@johnnynator.dev>"
+license="(LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND GPL-3.0-only with Qt-GPL-exception-1.0"
+homepage="https://qt.io/"
+distfiles="http://download.qt.io/development_releases/qt/${version%.*}/${version/alpha/-alpha}/submodules/qtlocation-everywhere-src-${version/alpha/-alpha}.tar.xz"
+checksum=514a84d73ccb7af5f7921b99a5742314c8875bd4cb1a982a09b28a8080c117c8
+
+qt6-location-devel_package() {
+	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/cmake
+		vmove usr/lib/qt6/mkspecs
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.prl"
+	}
+}

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

end of thread, other threads:[~2021-10-15 23:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-27 19:18 [PR PATCH] [wip] qt6: update to 6.2 (alpha) Johnnynator
2021-06-27 19:20 ` [PR PATCH] [Updated] " Johnnynator
2021-06-27 19:37 ` Johnnynator
2021-06-27 19:38 ` Johnnynator
2021-06-27 20:17 ` [PR REVIEW] " ericonr
2021-06-27 20:29 ` Johnnynator
2021-09-12 14:47 ` [PR PATCH] [Updated] " Johnnynator
2021-10-03 13:14 ` Johnnynator
2021-10-03 13:22 ` Johnnynator
2021-10-03 13:25 ` [PR PATCH] [Merged]: " Johnnynator
2021-10-15 23:13 ` vSLG

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